Consider adding support for FreeBSD
Đá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
- Lĩnh vực
- build-system, ci-cd, operating-systems
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_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.
- 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
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của AppImage/type2-runtime
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
AppImage/type2-runtime#153 ·
-
fusermount3 get's skipped if not setuid, which breaks new fuse implementationsCó thể đã có người làm @probonopd đã nhận 18 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
AppImage/type2-runtime#150 · 4 bình luận ·
-
Some apps can break unless it is run extractedCó thể đã có người làm @probonopd đã nhận 6 ngày trước. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
AppImage/type2-runtime#144 · 2 bình luận ·
-
Tagged ReleasesĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
AppImage/type2-runtime#140 · 17 bình luận · 3 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
AppImage/type2-runtime#133 · 11 bình luận · 1 reaction ·
Tất cả issue của AppImage/type2-runtime
Issue tương tự
-
Linux notifications: the default action's ' ' label shows as a blank button in xfce4-notifydĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
kovidgoyal/kitty#10625 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Feature Status: Needs Triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
docs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
RubyMetric/chsrc#396 ·