diff --git a/classes/windowing.yaml b/classes/windowing.yaml new file mode 100644 index 00000000..a551608d --- /dev/null +++ b/classes/windowing.yaml @@ -0,0 +1,16 @@ +Config: + WINDOWING_WAYLAND: + type: bool + default: false + WINDOWING_X11: + type: bool + default: false + +buildVars: [WINDOWING_WAYLAND, WINDOWING_X11] +buildSetup: | + windowingWaylandOnOff () { + [[ ${WINDOWING_WAYLAND} -eq 1 ]] && echo ON || echo OFF + } + windowingX11OnOff () { + [[ ${WINDOWING_X11} -eq 1 ]] && echo ON || echo OFF + } diff --git a/recipes/devel/itstool.yaml b/recipes/devel/itstool.yaml new file mode 100644 index 00000000..24060afc --- /dev/null +++ b/recipes/devel/itstool.yaml @@ -0,0 +1,28 @@ +inherit: [autotools, autoconf, python3] + +metaEnvironment: + PKG_VERSION: "2.0.7+lxml_migration" + PKG_LICENSE: "GPL-3.0-or-later" + +depends: + - python::lxml + +checkoutSCM: + scm: git + # url: ${GITHUB_MIRROR}/itstool/itstool.git + url: https://github.com/nwellnhof/itstool.git + # The latest itstool release uses libxml2, but the python bindings of + # libxml2 are deprecated. Use a version from the lxml transformation pull + # request until it's merged and a new release is published. + # See https://github.com/itstool/itstool/pull/57/ + commit: 0f6751a586422719442eb7e9ddfe635ec7ca06fb + +buildScript: | + export PYTHON=python3 + autotoolsBuild -s $1 + +packageScript: | + autotoolsPackageTgt + +provideTools: + itstool: "usr/bin" diff --git a/recipes/graphics/freerdp.yaml b/recipes/graphics/freerdp.yaml new file mode 100644 index 00000000..fd80f27f --- /dev/null +++ b/recipes/graphics/freerdp.yaml @@ -0,0 +1,74 @@ +inherit: [cmake, windowing] + +metaEnvironment: + PKG_LICENSE: "Apache-2.0" + PKG_VERSION: "3.23.0" + +depends: + - libs::alsa-lib-dev + - libs::openssl-dev + - if: "${WINDOWING_X11}" + depends: + - libs::xorg::libxkbfile-dev + - libs::xorg::libX11-dev + - libs::xorg::libXcursor-dev + - libs::xorg::libXi-dev + - libs::xorg::libXinerama-dev + - libs::xorg::libXv-dev + - libs::xorg::libXrandr-dev + - libs::zlib-dev + - use: [] + depends: + - libs::alsa-lib-tgt + - libs::openssl-tgt + - if: "${WINDOWING_X11}" + depends: + - libs::xorg::libxkbfile-tgt + - libs::xorg::libX11-tgt + - libs::xorg::libXcursor-tgt + - libs::xorg::libXi-tgt + - libs::xorg::libXinerama-tgt + - libs::xorg::libXv-tgt + - libs::xorg::libXrandr-tgt + - libs::zlib-tgt + +checkoutSCM: + scm: url + url: https://pub.freerdp.com/releases/freerdp-${PKG_VERSION}.tar.xz + digestSHA256: c4f7b3763d2915c1db6806f055f3573b640331adfaf722a8735d740378c1b5bb + stripComponents: 1 + +buildScript: | + CONFIG_OPTS=() + + CONFIG_OPTS+=("-DWITH_ALSA=ON") + CONFIG_OPTS+=("-DWITH_UNICODE_BUILTIN=ON") + CONFIG_OPTS+=("-DWITH_CLIENT_SDL=OFF") + CONFIG_OPTS+=("-DWITH_CUPS=OFF") + CONFIG_OPTS+=("-DWITH_CAIRO=OFF") + CONFIG_OPTS+=("-DCHANNEL_URBDRC=OFF") + CONFIG_OPTS+=("-DWITH_FUSE=OFF") + CONFIG_OPTS+=("-DWITH_X11=$(windowingX11OnOff)") + CONFIG_OPTS+=("-DWITH_SWSCALE=OFF") + CONFIG_OPTS+=("-DWITH_KRB5=OFF") + CONFIG_OPTS+=("-DWITH_PULSE=OFF") + CONFIG_OPTS+=("-DWITH_FFMPEG=OFF") + CONFIG_OPTS+=("-DWITH_SERVER=OFF") + CONFIG_OPTS+=("-DWITH_SERVER_INTERFACE=OFF") + CONFIG_OPTS+=("-DWITH_THIRD_PARTY=OFF") + + cmakeBuild $1 \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DCMAKE_SKIP_RPATH=TRUE \ + -DCMAKE_SKIP_INSTALL_RPATH=TRUE \ + -DBUILD_TESTING=OFF \ + -DWITH_GPROF=OFF \ + -DWITH_MANPAGES=OFF \ + -DWITH_PROFILER=OFF \ + -DWITH_SAMPLE=OFF \ + ${CONFIG_OPTS[@]} \ + +provideDeps: ['*-tgt'] +packageScript: | + cmakePackageTgt diff --git a/recipes/graphics/ratpoison.yaml b/recipes/graphics/ratpoison.yaml new file mode 100644 index 00000000..2ccc1b1e --- /dev/null +++ b/recipes/graphics/ratpoison.yaml @@ -0,0 +1,26 @@ +inherit: [autotools] + +metaEnvironment: + PKG_LICENSE: "GPL-2.0-or-later" + PKG_VERSION: "1.4.9" + +checkoutSCM: + scm: url + url: https://download-mirror.savannah.gnu.org/releases/ratpoison/ratpoison-${PKG_VERSION}.tar.xz + digestSHA256: d98fa4be025ecca453c407ff311ab3949f29f20d6d8abedf8f0716b85fc8d1f1 + stripComponents: 1 + +depends: + - libs::xorg::libX11-dev + - use: [] + depends: + - libs::xorg::libX11-tgt + +buildScript: | + autotoolsBuild $1 --without-xft \ + --without-xkb \ + --without-xrandr + +provideDeps: ['*-tgt'] +packageScript: | + autotoolsPackageBin diff --git a/recipes/libs/appstream.yaml b/recipes/libs/appstream.yaml new file mode 100644 index 00000000..aa3b014e --- /dev/null +++ b/recipes/libs/appstream.yaml @@ -0,0 +1,86 @@ +inherit: [meson] + +metaEnvironment: + PKG_LICENSE: "GPL-2.0-or-later" + PKG_VERSION: "1.1.2" + +depends: + - tools: + target-toolchain: host-compat-toolchain + use: [tools] + depends: + - devel::gperf + - devel::itstool + - name: python::lxml + use: [result] + + - libs::glib-dev + - libs::libfyaml-dev + - libs::libpcre2-dev + - libs::libxml2-dev + - libs::libxmlb-dev + - net::curl-dev + - use: [] + depends: + - libs::glib-tgt + - libs::libfyaml-tgt + - libs::libpcre2-tgt + - libs::libxml2-tgt + - libs::libxmlb-tgt + - net::curl-tgt + +checkoutSCM: + scm: url + url: ${GITHUB_MIRROR}/ximion/appstream/archive/refs/tags/v${PKG_VERSION}.tar.gz + digestSHA256: 564ec87b16e9e4ee81fb021e612250fd27f3a3ecd31c209a5dd1ff59def3022d + stripComponents: 1 + +buildTools: [gettext, glib, gperf, itstool] +buildScript: | + mesonBuild $1 \ + -Dsystemd=false \ + -Dzstd-support=false \ + -Dgir=false \ + -Dstemming=false \ + -Dapidocs=false \ + -Ddocs=false \ + -Dinstall-docs=false \ + -Dbash-completion=false \ + -Dman=false + +multiPackage: + native: + packageScript: | + rsync -a --delete $1/install/ . + provideTools: + appstream-native: "usr/bin" + "": + depends: + # appstream references itself. the referenced version has to be a host + # native build (non cross) + - name: libs::appstream-native + tools: + target-toolchain: host-native-toolchain + use: [tools] + buildTools: [appstream-native] + buildSetup: | + # appstream needs a 'full' native appstream, not only the tools, to build... + export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:${BOB_TOOL_PATHS['appstream-native']}/../lib/pkgconfig + multiPackage: + "dev": + packageScript: | + mesonPackageDev + provideDeps: ['*-dev'] + "tgt": + packageScript: | + mesonPackageTgt + provideDeps: ['*-tgt'] + "": + depends: + - use: [] + name: libs::appstream-tgt + packageScript: | + mesonPackageBin + provideDeps: ['*-tgt'] + provideTools: + appstream: usr/bin diff --git a/recipes/libs/fltk.yaml b/recipes/libs/fltk.yaml new file mode 100644 index 00000000..b9b5dce4 --- /dev/null +++ b/recipes/libs/fltk.yaml @@ -0,0 +1,45 @@ +inherit: [cmake, windowing] + +metaEnvironment: + PKG_DESCRIPTION: "Fast Light Toolkit" + PKG_LICENSE: "LGPL-2.0-only WITH FLTK-exception" + PKG_VERSION: "1.3.11" + +depends: + - libs::libpng-dev + - if: "${WINDOWING_X11}" + name: libs::xorg::libX11-dev + - libs::zlib-dev + - virtual::libs::libegl-dev + - virtual::libs::libjpeg-dev + - use: [] + depends: + - libs::libpng-tgt + - if: "${WINDOWING_X11}" + name: libs::xorg::libX11-tgt + - libs::zlib-tgt + - virtual::libs::libegl-tgt + - virtual::libs::libjpeg-tgt + +checkoutSCM: + scm: url + url: ${GITHUB_MIRROR}/fltk/fltk/releases/download/release-${PKG_VERSION}/fltk-${PKG_VERSION}-source.tar.bz2 + digestSHA256: ca2e144e5f89173cd094cc273940d56230b1bf613083a0792e6406dc191cd99f + stripComponents: 1 + +buildScript: | + cmakeBuild $1 \ + -DFLTK_BUILD_TEST=0 \ + -DFLTK_BUILD_EXAMPLES=0 \ + -DFLTK_BACKEND_X11=$(windowingX11OnOff) + +multiPackage: + dev: + provideDeps: ['*-dev'] + packageScript: | + cmakePackageDev $1 "usr/share/" "usr/share/fltk/***" + + tgt: + provideDeps: ['*-tgt'] + packageScript: | + cmakePackageTgt diff --git a/recipes/libs/libfyaml.yaml b/recipes/libs/libfyaml.yaml new file mode 100644 index 00000000..31947455 --- /dev/null +++ b/recipes/libs/libfyaml.yaml @@ -0,0 +1,34 @@ +inherit: [cmake, patch] + +metaEnvironment: + PKG_VERSION: "0.9.5" + PKG_LICENSE: "MIT" + +checkoutSCM: + scm: url + url: ${GITHUB_MIRROR}/pantoniou/libfyaml/releases/download/v${PKG_VERSION}/libfyaml-${PKG_VERSION}.tar.gz + digestSHA256: 9acbc9737808b2833a51be0d4b361987ab6bbbb19cbda7c0c5c83148c8addd8a + stripComponents: 1 + +checkoutDeterministic: True +checkoutScript: | + patchApplySeries $<@libfyaml/*.patch@> + +depends: + - libs::libyaml-dev + - use: [] + depends: + - libs::libyaml-tgt + +buildScript: | + cmakeBuild $1 \ + -DBUILD_TESTING=OFF \ + -DCOMPILER_SUPPORTS_WNO_TAUTOLOGICAL_CONSTANT_OUT_OF_RANGE_COMPARE=0 + +multiPackage: + dev: + provideDeps: ['*-dev'] + packageScript: cmakePackageDev + tgt: + provideDeps: ['*-tgt'] + packageScript: cmakePackageTgt diff --git a/recipes/libs/libfyaml/0001-utils-fix-overflow-checks.patch b/recipes/libs/libfyaml/0001-utils-fix-overflow-checks.patch new file mode 100644 index 00000000..6fd056c0 --- /dev/null +++ b/recipes/libs/libfyaml/0001-utils-fix-overflow-checks.patch @@ -0,0 +1,64 @@ +From c71802e0ee84e34ee5a2e964fdae9a0db7df3378 Mon Sep 17 00:00:00 2001 +From: Ralf Hubert +Date: Tue, 10 Mar 2026 07:17:03 +0100 +Subject: [PATCH] utils: fix overflow checks + +Fix a compile error raised on the custom overflow implementations, e.g.: + + src/util/fy-utils.h:232:23: error: '__result' undeclared (first use in + this function); did you mean '__res'? + __overflow = ((__a ^ __result) & (__b & __result)) < 0; \ + +Signed-off-by: Ralf Hubert +--- + src/tool/fy-tool-util.h | 4 ++-- + src/util/fy-utils.h | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/tool/fy-tool-util.h b/src/tool/fy-tool-util.h +index 1094e44..62b0e94 100644 +--- a/src/tool/fy-tool-util.h ++++ b/src/tool/fy-tool-util.h +@@ -99,7 +99,7 @@ static inline bool fy_add_overflow_size_t(size_t a, size_t b, size_t *resp) + \ + __res = __a + __b; \ + /* overflow when signs of a, b same, but results different */ \ +- __overflow = ((__a ^ __result) & (__b & __result)) < 0; \ ++ __overflow = ((__a ^ __res) & (__b & __res)) < 0; \ + *(_resp) = __res; \ + __overflow; \ + }) +@@ -132,7 +132,7 @@ static inline bool fy_sub_overflow_size_t(size_t a, size_t b, size_t *resp) + \ + __res = __a - __b; \ + /* overflow when signs of a, b differ, but results different from minuend */ \ +- __overflow = ((__a ^ __b) & (__a & __result)) < 0; \ ++ __overflow = ((__a ^ __b) & (__a & __res)) < 0; \ + *(_resp) = __res; \ + __overflow; \ + }) +diff --git a/src/util/fy-utils.h b/src/util/fy-utils.h +index e7ac43c..018874b 100644 +--- a/src/util/fy-utils.h ++++ b/src/util/fy-utils.h +@@ -229,7 +229,7 @@ void fy_keyword_iter_end(struct fy_keyword_iter *iter); + \ + __res = __a + __b; \ + /* overflow when signs of a, b same, but results different */ \ +- __overflow = ((__a ^ __result) & (__b & __result)) < 0; \ ++ __overflow = ((__a ^ __res) & (__b & __res)) < 0; \ + *(_resp) = __res; \ + __overflow; \ + }) +@@ -255,7 +255,7 @@ void fy_keyword_iter_end(struct fy_keyword_iter *iter); + \ + __res = __a - __b; \ + /* overflow when signs of a, b differ, but results different from minuend */ \ +- __overflow = ((__a ^ __b) & (__a & __result)) < 0; \ ++ __overflow = ((__a ^ __b) & (__a & __res)) < 0; \ + *(_resp) = __res; \ + __overflow; \ + }) +-- +2.52.0 + diff --git a/recipes/libs/libxmlb.yaml b/recipes/libs/libxmlb.yaml new file mode 100644 index 00000000..0bc550e0 --- /dev/null +++ b/recipes/libs/libxmlb.yaml @@ -0,0 +1,34 @@ +inherit: [meson] + +metaEnvironment: + PKG_VERSION: "0.3.25" + PKG_LICENSE: "LGPL-2.1-or-later" + +checkoutSCM: + scm: url + url: ${GITHUB_MIRROR}/hughsie/libxmlb/releases/download/${PKG_VERSION}/libxmlb-${PKG_VERSION}.tar.xz + digestSHA256: 77f2768c9debd2e946173cdf9465efd987849805e7c58251c5772ea728a61d9a + stripComponents: 1 + +depends: + - libs::glib-dev + - use: [] + depends: + - libs::glib-tgt + +buildScript: | + mesonBuild $1 \ + -Dintrospection=false \ + -Dgtkdoc=false \ + -Dtests=false \ + -Dcli=false + +multiPackage: + dev: + provideDeps: ['*-dev'] + packageScript: | + mesonPackageDev + tgt: + provideDeps: ['*-tgt'] + packageScript: | + mesonPackageTgt diff --git a/recipes/python/lxml.yaml b/recipes/python/lxml.yaml index 16eda4d7..8b381d8b 100644 --- a/recipes/python/lxml.yaml +++ b/recipes/python/lxml.yaml @@ -2,7 +2,7 @@ inherit: [patch, "python3::setuptools", "python3::cext"] metaEnvironment: PKG_LICENSE: "BSD-3-Clause" - PKG_VERSION: "5.3.1" + PKG_VERSION: "6.0.0" depends: - tools: @@ -25,7 +25,7 @@ depends: checkoutSCM: scm: url url: https://github.com/lxml/lxml/archive/refs/tags/lxml-${PKG_VERSION}.tar.gz - digestSHA1: f2c04d861f72d7119697194f6e46d3cdfd272e0c + digestSHA256: 5560ee7bd3bcea0e64221bbb23f4ee1d222296ef25ba217e327a5f1d963005d9 stripComponents: 1 checkoutDeterministic: True diff --git a/recipes/utils/tigervnc.yaml b/recipes/utils/tigervnc.yaml new file mode 100644 index 00000000..0882db41 --- /dev/null +++ b/recipes/utils/tigervnc.yaml @@ -0,0 +1,68 @@ +inherit: [cmake, windowing] + +metaEnvironment: + PKG_LICENSE: "GPL-2.0-or-later" + PKG_VERSION: "1.16.0" + +depends: + - name: libs::appstream + tools: + target-toolchain: host-compat-toolchain + use: [tools] + + - core::linux-pam-dev + - libs::fltk-dev + - libs::fontconfig-dev + - libs::mesa3d-dev + - libs::pixman-dev + + - if: "${WINDOWING_X11}" + depends: + - libs::xorg::libXdamage-dev + - libs::xorg::libXft-dev + - libs::xorg::libXinerama-dev + - libs::xorg::libXrender-dev + - libs::xorg::libXmu-dev + + - libs::xorg::libXi-dev + - libs::zlib-dev + - virtual::libs::libjpeg-dev + + - use: [] + depends: + - core::linux-pam-tgt + - libs::fltk-tgt + - libs::fontconfig-tgt + - libs::mesa3d-tgt + - libs::pixman-tgt + + - if: "${WINDOWING_X11}" + depends: + - libs::xorg::libXdamage-tgt + - libs::xorg::libXft-tgt + - libs::xorg::libXinerama-tgt + - libs::xorg::libXrender-tgt + - libs::xorg::libXmu-tgt + + - libs::xorg::libXi-tgt + - libs::zlib-tgt + - virtual::libs::libjpeg-tgt + +checkoutSCM: + scm: url + url: ${GITHUB_MIRROR}/TigerVNC/tigervnc/archive/refs/tags/v${PKG_VERSION}.tar.gz + digestSHA256: 10512fc0254ae3bde41c19d18c15f7ebd8cd476261afe0611c41965d635d46e8 + stripComponents: 1 + +buildTools: [gettext, appstream] +buildScript: | + # provide appstream ITS files + export GETTEXTDATADIRS="${BOB_TOOL_PATHS['appstream']}/../share/gettext/" + # FIXME: fltk depends on png and dl but the cmake magic did not + # provide these libs?? + export LDFLAGS="${LDFLAGS} -lpng -ldl" + cmakeBuild $1 -Wno-dev + +provideDeps: ['*-tgt'] +packageScript: | + cmakePackageTgt diff --git a/tests/buildall/recipes/all.yaml b/tests/buildall/recipes/all.yaml index 747b8265..81e1ff69 100644 --- a/tests/buildall/recipes/all.yaml +++ b/tests/buildall/recipes/all.yaml @@ -21,8 +21,10 @@ depends: - graphics::fonts::xorg::schumacher-misc - graphics::fonts::xorg::sony-misc - graphics::fonts::xorg::sun-misc + - graphics::freerdp - graphics::imagemagick - graphics::kmscube + - graphics::ratpoison - graphics::wayland::wayland @@ -30,6 +32,7 @@ depends: - kernel::linux-image - libs::alsa-lib-tgt + - libs::appstream-tgt - libs::libassuan-tgt - libs::libksba-tgt - libs::botan-tgt @@ -39,6 +42,7 @@ depends: - libs::dbus-glib-tgt - libs::double-conversion-tgt - libs::elfutils + - libs::fltk-tgt - libs::fontconfig-tgt - libs::freetype-tgt - libs::fribidi-tgt @@ -103,6 +107,7 @@ depends: - libs::qt6-wayland-tgt - libs::slirp-tgt - libs::tinyxml2-tgt + - libs::libxmlb-tgt - libs::yajl-tgt - multimedia::alsa-utils @@ -204,6 +209,7 @@ depends: - utils::strace - utils::sysbench - utils::tidy + - utils::tigervnc - utils::ttysnoop - utils::xorriso - utils::xxd diff --git a/tests/buildall/recipes/buildall.yaml b/tests/buildall/recipes/buildall.yaml index 62fd5015..c453c50e 100644 --- a/tests/buildall/recipes/buildall.yaml +++ b/tests/buildall/recipes/buildall.yaml @@ -9,6 +9,7 @@ depends: - devel::gengetopt - devel::groff - devel::intltool + - devel::itstool - devel::lua-bin - devel::makedepend - devel::nasm