Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Consider adding support for FreeBSD

Đang mở
#126 4 bình luận 0 reaction 0 người được giao Xem trên GitHub

@neilpang đang làm issue này rồi.

Từ ngày 29/7/2026.

  • #149 của @neilpang — đang mở

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
28/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
c, github-actions

Hướng nghiên cứu

Bắt đầu với phần build type2-runtime được tham chiếu và bản vá runtime của FreeBSD, sau đó kiểm tra Makefile và các entry point của runtime trong repository. So sánh workflow FreeBSD với build Linux hiện có và xác định những gì cần thiết cho các bản build AppImageTool và runtime native trên FreeBSD. Được xem là hoàn thành khi các runtime FreeBSD cho x86-64 và aarch64 build và thực thi chính xác thông qua workflow được ghi tài liệu.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
C
Star
74
Fork
38
Merge trung bình
3 giờ 31 phút
Pull request đã merge (30 ngày)
1

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của AppImage/type2-runtime

Tất cả issue của AppImage/type2-runtime

Issue tương tự

Thêm issue về C

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.