-
Notifications
You must be signed in to change notification settings - Fork 0
Port XLibre X server to OpenWrt #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 15 commits
fed1476
5170eed
256c1d2
8a6d62a
3291efd
2512d17
08e6651
4ea2a25
d642d98
7c49b53
1e652de
c30cfd8
be08765
d5ebbd6
910de64
e42f5d2
3c5ff1c
10db6b8
2cc489a
2a7331d
ea52abd
d9464fa
a1685d1
afba637
6643355
f09f11b
f499604
25ac323
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,211 @@ | ||
| name: Build X11 Packages | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| - 'copilot/**' | ||
| pull_request: | ||
| branches: | ||
| - master | ||
| workflow_dispatch: | ||
|
|
||
| jobs: | ||
| build: | ||
| name: Build X11 packages (${{ matrix.target }}) | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - target: x86-generic | ||
| sdk_url: https://downloads.openwrt.org/releases/24.10.5/targets/x86/generic/openwrt-sdk-24.10.5-x86-generic_gcc-13.3.0_musl.Linux-x86_64.tar.zst | ||
| sdk_name: openwrt-sdk-24.10.5-x86-generic_gcc-13.3.0_musl.Linux-x86_64 | ||
| - target: bcm27xx-bcm2711 | ||
| sdk_url: https://downloads.openwrt.org/releases/24.10.5/targets/bcm27xx/bcm2711/openwrt-sdk-24.10.5-bcm27xx-bcm2711_gcc-13.3.0_musl.Linux-x86_64.tar.zst | ||
| sdk_name: openwrt-sdk-24.10.5-bcm27xx-bcm2711_gcc-13.3.0_musl.Linux-x86_64 | ||
|
|
||
| steps: | ||
| - name: Checkout video feed | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| path: video | ||
|
|
||
| - name: Install dependencies | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y build-essential ccache ecj fastjar file g++ gawk \ | ||
| gettext git java-propose-classpath libelf-dev libncurses5-dev \ | ||
| libncursesw5-dev libssl-dev python3 python3-setuptools python3-setuptools \ | ||
| rsync unzip wget xsltproc zlib1g-dev zstd | ||
|
|
||
| - name: Download and extract OpenWrt SDK | ||
| run: | | ||
| wget -q "${{ matrix.sdk_url }}" -O sdk.tar.zst | ||
| zstd -d sdk.tar.zst -o sdk.tar | ||
| tar -xf sdk.tar | ||
| mv "${{ matrix.sdk_name }}" sdk | ||
|
|
||
| - name: Configure feeds | ||
| run: | | ||
| cd sdk | ||
| # Add the video feed (our local checkout) | ||
| echo "src-link video $GITHUB_WORKSPACE/video" >> feeds.conf.default | ||
| # Update and install feeds | ||
| ./scripts/feeds update -a | ||
| ./scripts/feeds install -a -p video | ||
|
|
||
| - name: Build X11 core libraries | ||
| run: | | ||
| cd sdk | ||
| # Enable packages for build | ||
| # Protocol and build infrastructure | ||
| make defconfig | ||
|
|
||
| # Build core X11 protocol packages first | ||
| echo "Building xorgproto..." | ||
| make package/xorgproto/compile V=s || true | ||
|
|
||
| echo "Building xorg-macros..." | ||
| make package/xorg-macros/compile V=s || true | ||
|
|
||
| echo "Building libxtrans..." | ||
| make package/libxtrans/compile V=s || true | ||
|
|
||
| echo "Building xcb-proto..." | ||
| make package/xcb-proto/compile V=s || true | ||
|
|
||
| - name: Build X11 authentication libraries | ||
| run: | | ||
| cd sdk | ||
| echo "Building libxau..." | ||
| make package/libxau/compile V=s || true | ||
|
|
||
| echo "Building libxdmcp..." | ||
| make package/libxdmcp/compile V=s || true | ||
|
|
||
| - name: Build XCB and X11 libraries | ||
| run: | | ||
| cd sdk | ||
| echo "Building libxcb..." | ||
| make package/libxcb/compile V=s || true | ||
|
|
||
| echo "Building libx11..." | ||
| make package/libx11/compile V=s || true | ||
|
|
||
| - name: Build X11 extension libraries | ||
| run: | | ||
| cd sdk | ||
| echo "Building libxext..." | ||
| make package/libxext/compile V=s || true | ||
|
|
||
| echo "Building libxfixes..." | ||
| make package/libxfixes/compile V=s || true | ||
|
|
||
| echo "Building libxrender..." | ||
| make package/libxrender/compile V=s || true | ||
|
|
||
| echo "Building libxrandr..." | ||
| make package/libxrandr/compile V=s || true | ||
|
|
||
| echo "Building libxi..." | ||
| make package/libxi/compile V=s || true | ||
|
|
||
| echo "Building libxinerama..." | ||
| make package/libxinerama/compile V=s || true | ||
|
|
||
| echo "Building libxshmfence..." | ||
| make package/libxshmfence/compile V=s || true | ||
|
||
|
|
||
| - name: Build X11 session libraries | ||
| run: | | ||
| cd sdk | ||
| echo "Building libice..." | ||
| make package/libice/compile V=s || true | ||
|
|
||
| echo "Building libsm..." | ||
| make package/libsm/compile V=s || true | ||
|
|
||
| - name: Build X11 toolkit libraries | ||
| run: | | ||
| cd sdk | ||
| echo "Building libxt..." | ||
| make package/libxt/compile V=s || true | ||
|
|
||
| echo "Building libxmu..." | ||
| make package/libxmu/compile V=s || true | ||
|
|
||
| echo "Building libxpm..." | ||
| make package/libxpm/compile V=s || true | ||
|
|
||
| echo "Building libxaw..." | ||
| make package/libxaw/compile V=s || true | ||
|
|
||
| - name: Build X11 font and misc libraries | ||
| run: | | ||
| cd sdk | ||
| echo "Building libxfont2..." | ||
| make package/libxfont2/compile V=s || true | ||
|
|
||
| echo "Building libxkbfile..." | ||
| make package/libxkbfile/compile V=s || true | ||
|
|
||
| echo "Building libxft..." | ||
| make package/libxft/compile V=s || true | ||
|
|
||
| echo "Building libpciaccess..." | ||
| make package/libpciaccess/compile V=s || true | ||
|
|
||
| echo "Building libxcvt..." | ||
| make package/libxcvt/compile V=s || true | ||
|
|
||
| - name: Build XLibre X server | ||
| run: | | ||
| cd sdk | ||
| echo "Building xlibre..." | ||
| make package/xlibre/compile V=s || true | ||
|
|
||
| - name: Build X11 input drivers | ||
| run: | | ||
| cd sdk | ||
| echo "Building xf86-input-evdev..." | ||
| make package/xf86-input-evdev/compile V=s || true | ||
|
|
||
| echo "Building xf86-input-libinput..." | ||
| make package/xf86-input-libinput/compile V=s || true | ||
|
|
||
| - name: Build X11 utilities | ||
| run: | | ||
| cd sdk | ||
| echo "Building xkbcomp..." | ||
| make package/xkbcomp/compile V=s || true | ||
|
|
||
| echo "Building xauth..." | ||
| make package/xauth/compile V=s || true | ||
|
|
||
| echo "Building xinit..." | ||
| make package/xinit/compile V=s || true | ||
|
|
||
| echo "Building xrandr..." | ||
| make package/xrandr/compile V=s || true | ||
|
|
||
| echo "Building xterm..." | ||
| make package/xterm/compile V=s || true | ||
|
|
||
| - name: Collect build results | ||
| run: | | ||
| cd sdk | ||
| echo "=== Build Results ===" | ||
| echo "Listing built packages:" | ||
| find bin/packages -name "*.ipk" -type f 2>/dev/null | sort || echo "No packages built" | ||
| echo "" | ||
| echo "=== Package count ===" | ||
| find bin/packages -name "*.ipk" -type f 2>/dev/null | wc -l || echo "0" | ||
|
|
||
| - name: Upload built packages | ||
| uses: actions/upload-artifact@v4 | ||
| if: always() | ||
| with: | ||
| name: x11-packages-${{ matrix.target }} | ||
| path: sdk/bin/packages/ | ||
| if-no-files-found: warn | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,108 @@ | ||
| include $(TOPDIR)/rules.mk | ||
|
|
||
| PKG_NAME:=xlibre | ||
| PKG_VERSION:=25.1.1 | ||
| PKG_RELEASE:=1 | ||
|
|
||
| PKG_SOURCE_PROTO:=git | ||
| PKG_SOURCE_URL:=https://github.com/X11Libre/xserver.git | ||
| PKG_SOURCE_VERSION:=xlibre-xserver-$(PKG_VERSION) | ||
| PKG_MIRROR_HASH:=skip | ||
|
||
|
|
||
| PKG_MAINTAINER:= | ||
| PKG_LICENSE:=MIT | ||
|
Comment on lines
+12
to
+13
|
||
| PKG_LICENSE_FILES:=COPYING | ||
|
|
||
| PKG_INSTALL:=1 | ||
|
|
||
| PKG_BUILD_DEPENDS:=xorgproto libxtrans | ||
|
|
||
| include $(INCLUDE_DIR)/package.mk | ||
| include $(INCLUDE_DIR)/meson.mk | ||
|
|
||
| define Package/xlibre | ||
| SECTION:=video-frameworks | ||
| CATEGORY:=Video | ||
| SUBMENU:=Frameworks and Toolkits | ||
| TITLE:=XLibre X server | ||
| URL:=https://github.com/X11Libre/xserver | ||
| DEPENDS:=+libdrm +libpciaccess +libx11 +libxau \ | ||
| +libxcb +libxcvt +libxdmcp +libxext +libxfixes +libxfont2 +libxkbfile \ | ||
| +libxshmfence +pixman +libnettle | ||
| endef | ||
|
|
||
| define Package/xlibre/description | ||
| XLibre is a display server implementation of the X Window System Protocol | ||
| Version 11. It has been forked from the X.Org Server to clean up and | ||
| strengthen the existing code base while maintaining backward compatibility | ||
| to make X11 a viable choice for the future. | ||
| endef | ||
|
|
||
| MESON_ARGS += \ | ||
| -Dxorg=true \ | ||
| -Dxephyr=false \ | ||
| -Dxfbdev=false \ | ||
| -Dxnest=false \ | ||
| -Dxvfb=false \ | ||
| -Dxwin=false \ | ||
| -Dxquartz=false \ | ||
| -Dglamor=false \ | ||
| -Dglx=false \ | ||
| -Ddri1=false \ | ||
| -Ddri2=false \ | ||
| -Ddri3=false \ | ||
| -Ddrm=true \ | ||
| -Dudev=false \ | ||
| -Dudev_kms=false \ | ||
| -Dhal=false \ | ||
| -Dsystemd_logind=false \ | ||
| -Dsystemd_notify=false \ | ||
| -Dseatd_libseat=false \ | ||
| -Dxdmcp=true \ | ||
| -Dxdm-auth-1=true \ | ||
| -Dipv6=auto \ | ||
| -Ddpms=true \ | ||
| -Dscreensaver=true \ | ||
| -Dxres=true \ | ||
| -Dxinerama=true \ | ||
| -Dxv=true \ | ||
| -Dxvmc=false \ | ||
| -Ddga=false \ | ||
| -Dxf86bigfont=false \ | ||
| -Dsha1=libnettle \ | ||
| -Ddefault_font_path=/usr/share/fonts/X11/misc,/usr/share/fonts/X11/TTF,/usr/share/fonts/X11/OTF,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi \ | ||
| -Dxkb_dir=/usr/share/X11/xkb \ | ||
| -Dxkb_output_dir=/tmp/xkb \ | ||
| -Dxkb_default_rules=evdev \ | ||
|
Comment on lines
+73
to
+76
|
||
| -Dxkb_default_model=pc105 \ | ||
| -Dxkb_default_layout=us \ | ||
| -Dlog_dir=/var/log \ | ||
| -Dmodule_dir=/usr/lib/xorg/modules \ | ||
| -Ddocs=false \ | ||
| -Ddevel-docs=false | ||
|
|
||
| define Build/InstallDev | ||
| $(INSTALL_DIR) $(1)/usr/include/xorg | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/include/xorg/*.h $(1)/usr/include/xorg/ | ||
| $(INSTALL_DIR) $(1)/usr/lib | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/ 2>/dev/null || true | ||
| $(INSTALL_DIR) $(1)/usr/lib/pkgconfig | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/ | ||
| $(INSTALL_DIR) $(1)/usr/share/aclocal | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/share/aclocal/*.m4 $(1)/usr/share/aclocal/ 2>/dev/null || true | ||
| endef | ||
|
|
||
| define Package/xlibre/install | ||
| $(INSTALL_DIR) $(1)/usr/bin | ||
| $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/X $(1)/usr/bin/ | ||
| $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/Xorg $(1)/usr/bin/ | ||
| $(INSTALL_DIR) $(1)/usr/lib | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/ 2>/dev/null || true | ||
| $(INSTALL_DIR) $(1)/usr/lib/xorg/modules | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/xorg/modules/* $(1)/usr/lib/xorg/modules/ | ||
| $(INSTALL_DIR) $(1)/usr/share/X11/xorg.conf.d | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/share/X11/xorg.conf.d/* $(1)/usr/share/X11/xorg.conf.d/ 2>/dev/null || true | ||
| $(INSTALL_DIR) $(1)/var/log | ||
| endef | ||
|
|
||
| $(eval $(call BuildPackage,xlibre)) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| include $(TOPDIR)/rules.mk | ||
|
|
||
| PKG_NAME:=freetype | ||
| PKG_VERSION:=2.13.3 | ||
| PKG_RELEASE:=1 | ||
|
|
||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz | ||
| PKG_SOURCE_URL:=@SF/freetype | ||
| PKG_HASH:=0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289 | ||
|
|
||
| PKG_MAINTAINER:= | ||
| PKG_LICENSE:=FTL GPL-2.0-or-later | ||
| PKG_LICENSE_FILES:=LICENSE.TXT | ||
|
|
||
| PKG_INSTALL:=1 | ||
|
|
||
| PKG_BUILD_DEPENDS:=zlib | ||
|
|
||
| include $(INCLUDE_DIR)/package.mk | ||
| include $(INCLUDE_DIR)/meson.mk | ||
|
|
||
| define Package/libfreetype | ||
| SECTION:=libs | ||
| CATEGORY:=Libraries | ||
| SUBMENU:=Video | ||
| TITLE:=FreeType font rendering library | ||
| URL:=https://freetype.org/ | ||
| DEPENDS:=+zlib | ||
| endef | ||
|
|
||
| define Package/libfreetype/description | ||
| FreeType is a freely available software library to render fonts. | ||
| endef | ||
|
|
||
| MESON_ARGS += \ | ||
| -Dzlib=enabled \ | ||
| -Dbzip2=disabled \ | ||
| -Dpng=disabled \ | ||
| -Dharfbuzz=disabled \ | ||
| -Dbrotli=disabled \ | ||
| -Dmmap=enabled \ | ||
| -Dtests=disabled | ||
|
|
||
| define Build/InstallDev | ||
| $(INSTALL_DIR) $(1)/usr/include/freetype2 | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/include/freetype2/* $(1)/usr/include/freetype2/ | ||
| $(INSTALL_DIR) $(1)/usr/lib | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfreetype.so* $(1)/usr/lib/ | ||
| $(INSTALL_DIR) $(1)/usr/lib/pkgconfig | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/ | ||
| endef | ||
|
|
||
| define Package/libfreetype/install | ||
| $(INSTALL_DIR) $(1)/usr/lib | ||
| $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfreetype.so.* $(1)/usr/lib/ | ||
| endef | ||
|
|
||
| $(eval $(call BuildPackage,libfreetype)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
python3-setuptoolsis listed twice in the apt-get install line, which is redundant and makes the dependency list harder to audit.