Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Consider adding support for FreeBSD

Aperta
#126 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@neilpang ci sta già lavorando.

Dal 29/7/2026.

  • #149 di @neilpang — aperta

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

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_PATHNAME sysctl 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di AppImage/type2-runtime

Tutte le issue di AppImage/type2-runtime

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.