Consider adding support for FreeBSD
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 28/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- c, github-actions
- Ambito
- build-system, ci-cd, operating-systems
Direzione di ricerca
Inizia con la sezione di build di type2-runtime indicata e con la patch del runtime FreeBSD, quindi esamina il Makefile e gli entry point del runtime del repository. Confronta il workflow FreeBSD con la build Linux esistente e determina cosa è necessario per le build native di AppImageTool e del runtime su FreeBSD. Il lavoro è completato quando i runtime FreeBSD per x86-64 e aarch64 vengono compilati ed eseguiti correttamente tramite il workflow documentato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I recently experimented with custom built AppImage runtimes for my fre:ac project and managed to build AppImages for FreeBSD x86-64 and aarch64 with GitHub Actions.
I'm using vmactions/freebsd-vm for the build. Here is my workflow file for setting up the VMs.
I'm only building the runtimes and use the Linux AppImageTool for packaging. It would be great if a native AppImageTool and runtimes would be available for FreeBSD.
Here is the relevant part of my build script for building the runtime: type2-runtime build
I'm using libfuse 3.17.2 for this which has lots of fixes for BSDs over 3.16.2. I'm also patching the runtime with this patch for FreeBSD support. Main changes:
- Use the
KERN_PROC_PATHNAMEsysctl to get the AppImage path as /proc might not be available on FreeBSD - Don't search for a FUSE usermount prog; this should always be mount_fusefs on FreeBSD
- Wait for image to become available after mount
As for the last one, I'm not sure why this is necessary, but without it, the AppImage contents are not found when trying to execute AppRun. In my tests, waiting for an additional 10-20ms usually was enough for the files to become available. Maybe there are better ways to solve this.
Also, the aarch64 runtime is built with the ELF OS ABI set to GNU/Linux. I suspect this is a bug in the GNU binutils for FreeBSD aarch64 triggered by the presence of IFUNCs (which are imported from libmd.a). I'm calling elfedit --output-osabi FreeBSD $@ in the makefile to fix this.
x86-64 FreeBSD build times are only slightly longer than for Linux builds, mainly due to the time taken to setup the VM. aarch64 builds unfortunately are ~12x slower due to emulation and while GitHub Actions now has native aarch64 runners, those don't support nested virtualization.
Latest fre:ac AppImages for FreeBSD are available here.
It may also be possible to support other BSDs with a similar approach. @vmactions also has VMs for NetBSD, OpenBSD and DragonflyBSD. I'm not planning to try this anytime soon though.
- Lingua principale
- C
- Stelle
- 74
- Fork
- 38
- Merge medio
- 3h 31m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di AppImage/type2-runtime
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
AppImage/type2-runtime#153 ·
-
fusermount3 get's skipped if not setuid, which breaks new fuse implementationsForse già presa @probonopd l’ha presa 17 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
AppImage/type2-runtime#150 · 4 commenti ·
-
Some apps can break unless it is run extractedForse già presa @probonopd l’ha presa 5 giorni fa. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
AppImage/type2-runtime#144 · 2 commenti ·
-
Tagged ReleasesAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
AppImage/type2-runtime#140 · 17 commenti · 3 reazioni ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
AppImage/type2-runtime#133 · 11 commenti · 1 reazione ·
Tutte le issue di AppImage/type2-runtime
Issue simili
-
Discover carries headerEdges that nothing reads since #1914 moved E0507/E0517 to the compiler graphApertatech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
2个显示的问题Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
coolsnowwolf/lede#14209 ·
-
Status: Opened
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
I maintainer di solito rispondono entro 3 giorni