From b286d8bc575725ee772811ed976db0f7f8356ed4 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Mon, 23 Feb 2026 10:08:48 +0100 Subject: [PATCH 1/8] nsxiv: Move from sxiv to maintained nsxiv From the [Web site](https://nsxiv.codeberg.page/): > Neo (or New or Not) Simple (or Small or Suckless) X Image Viewer > > nsxiv is a fork of the now-unmaintained sxiv with the purpose of being a > (mostly) drop-in replacement for sxiv, maintaining its interface and adding > simple, sensible features. nsxiv is free software licensed under > GPL-2.0-or-later and aims to be easy to modify and customize. --- sxiv.be0 => nsxiv.be0 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename sxiv.be0 => nsxiv.be0 (72%) diff --git a/sxiv.be0 b/nsxiv.be0 similarity index 72% rename from sxiv.be0 rename to nsxiv.be0 index e0d5f521a..5adc969f3 100755 --- a/sxiv.be0 +++ b/nsxiv.be0 @@ -1,8 +1,8 @@ #!/usr/bin/env beesh -# BEE_VERSION sxiv-24-0 +# BEE_VERSION nsxiv-24-0 -SRCURL[0]="https://github.com/muennich/sxiv/archive/v${PKGFULLVERSION}.tar.gz sxiv-${PKGFULLVERSION}.tar.gz" +SRCURL[0]="https://codeberg.org/nsxiv/nsxiv/archive/v${PKGFULLVERSION}.tar.gz nsxiv-${PKGFULLVERSION}.tar.gz" # PATCHURL+=() From 824eea2c9b34c5b126fc450775a9ff10216a9a78 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Mon, 23 Feb 2026 10:11:36 +0100 Subject: [PATCH 2/8] nsxiv: Download source archive from beehive.molgen.mpg.de --- nsxiv.be0 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nsxiv.be0 b/nsxiv.be0 index 5adc969f3..caa91ede2 100755 --- a/nsxiv.be0 +++ b/nsxiv.be0 @@ -1,8 +1,9 @@ #!/usr/bin/env beesh -# BEE_VERSION nsxiv-24-0 +# BEE_VERSION nsxiv-34-0 -SRCURL[0]="https://codeberg.org/nsxiv/nsxiv/archive/v${PKGFULLVERSION}.tar.gz nsxiv-${PKGFULLVERSION}.tar.gz" +#SRCURL[0]="https://codeberg.org/nsxiv/nsxiv/archive/v${PKGFULLVERSION}.tar.gz nsxiv-${PKGFULLVERSION}.tar.gz" +SRCURL[0]="https://beehive.molgen.mpg.de/8e05562b16ff71dd3ce7a5ea5d076b79/nsxiv-34.tar.gz" # PATCHURL+=() From 6e662713eb9fa8ec60fd6af890209aeddf34de09 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Mon, 23 Feb 2026 10:17:33 +0100 Subject: [PATCH 3/8] nsxiv: Set CC to avoid using non-existing c99 [BEE] => entering bee_build() .. [BEE] make -j300 PREFIX=/usr EPREFIX=/usr BINDIR=/usr/bin SBINDIR=/usr/sbin LIBEXECDIR=/usr/libexec SYSCONFDIR=/etc SHAREDSTATEDIR=/var LOCALSTATEDIR=/var LIBDIR=/usr/lib INCLUDEDIR=/usr/include DATAROOTDIR=/usr/share DATADIR=/usr/share INFODIR=/usr/share/info LOCALEDIR=/usr/share/locale MANDIR=/usr/share/man DOCDIR=/usr/share/doc/nsxiv GEN config.h cp config.def.h config.h CC autoreload.o c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o autoreload.o autoreload.c CC commands.o make: c99: No such file or directory make: *** [Makefile:35: autoreload.o] Error 127 make: *** Waiting for unfinished jobs.... c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o commands.o commands.c make: c99: No such file or directory make: *** [Makefile:35: commands.o] Error 127 CC image.o c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o image.o image.c make: c99: No such file or directory CC main.o make: *** [Makefile:35: image.o] Error 127 c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o main.o main.c make: c99: No such file or directory make: *** [Makefile:35: main.o] Error 127 CC window.o CC thumbs.o c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o window.o window.c CC util.o make: c99: No such file or directory make: *** [Makefile:35: window.o] Error 127 c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o thumbs.o thumbs.c make: c99: No such file or directory make: *** [Makefile:35: thumbs.o] Error 127 c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 -DHAVE_LIBEXIF=1 -DHAVE_LIBFONTS=1 -DHAVE_INOTIFY=1 -I/usr/include/freetype2 -I/usr/include/freetype2 -c -o util.o util.c make: c99: No such file or directory make: *** [Makefile:35: util.o] Error 127 GEN version.h --- nsxiv.be0 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nsxiv.be0 b/nsxiv.be0 index caa91ede2..956cbb630 100755 --- a/nsxiv.be0 +++ b/nsxiv.be0 @@ -25,9 +25,10 @@ SRCURL[0]="https://beehive.molgen.mpg.de/8e05562b16ff71dd3ce7a5ea5d076b79/nsxiv- # bee_configure #} -#mee_build() { -# bee_build -#} +mee_build() { + export CC=gcc + bee_build +} #mee_install() { # bee_install From 9969701d7fd001004aa7dad65db9195ff5c8648f Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Mon, 23 Feb 2026 11:35:10 +0100 Subject: [PATCH 4/8] imlib2: Update version from 1.7.4 to 1.12.6 --- imlib2.be0 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imlib2.be0 b/imlib2.be0 index b8e2ec66c..a9a5be9c0 100755 --- a/imlib2.be0 +++ b/imlib2.be0 @@ -1,9 +1,9 @@ #!/bin/env beesh -# BEE_VERSION imlib2-1.7.4-0 +# BEE_VERSION imlib2-1.12.6-0 # SRCURL[0]="http://downloads.sourceforge.net/enlightenment/imlib2-${PKGVERSION}.tar.gz" -SRCURL[0]="https://beehive.molgen.mpg.de/8a78944805534600171c202fd5b625a5/imlib2-1.7.4.tar.gz" +SRCURL[0]="https://beehive.molgen.mpg.de/9c19861d3453ce0ccbec0672d731beb5/imlib2-1.12.6.tar.gz" # PATCHURL[0]="" From 6975cccd7e9a622cf7daa182ee9104d3e9e73691 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 11 Sep 2026 21:51:37 +0200 Subject: [PATCH 5/8] nsxiv: Pass CC on make's command line instead of exporting it bee_build() in /usr/libexec/bee/beesh.d/make.sh forwards its arguments to make, so `bee_build CC=gcc` sets CC as a command-line variable, which outranks an assignment in the Makefile. Exporting CC works only as long as nsxiv leaves CC unset: `c99` is make's built-in default, switched from `cc` by the `.POSIX:` line in nsxiv's Makefile, and the environment beats a built-in default. The day upstream writes `CC = c99` into config.mk, the environment loses and the build fails again with: CC autoreload.o c99 -Wall -pedantic -O2 -DNDEBUG -D_XOPEN_SOURCE=700 [...] -c -o autoreload.o autoreload.c make: c99: No such file or directory make: *** [Makefile:35: autoreload.o] Error 127 Co-Authored-By: Claude Opus 5 --- nsxiv.be0 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nsxiv.be0 b/nsxiv.be0 index 956cbb630..dcd128e7a 100755 --- a/nsxiv.be0 +++ b/nsxiv.be0 @@ -26,8 +26,7 @@ SRCURL[0]="https://beehive.molgen.mpg.de/8e05562b16ff71dd3ce7a5ea5d076b79/nsxiv- #} mee_build() { - export CC=gcc - bee_build + bee_build CC=gcc } #mee_install() { From 882ff1d95aa57d92c325177370b1e7a875ab3506 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 11 Sep 2026 22:17:39 +0200 Subject: [PATCH 6/8] giflib: Update version from 4.1.6 to 5.2.2 imlib2 1.12.6, needed for nsxiv 34, does not build against giflib 4.1.6 (2007), because its GIF loader takes `bool' from gif_lib.h, which giflib 5.2 lets include : loader_gif.c: In function '_load': loader_gif.c:69:5: error: unknown type name 'bool' 69 | bool multiframe; | ^~~~ loader_gif.c:5:1: note: 'bool' is defined in header ''; did you forget to '#include '? 4 | #include +++ |+#include make[4]: *** [Makefile:982: loader_gif.lo] Error 1 giflib 5 dropped autotools in favour of a plain Makefile, so mee_configure goes away; bee's make.sh hands PREFIX, BINDIR, LIBDIR and MANDIR to make. Upstream builds no manual pages by default and lists the DocBook XML sources in MANUAL_PAGES, so install-man would copy gif2rgb.xml and friends into man1. `make -C doc manpages' turns them into roff with xmlto, and the generated pages are passed to install-man as a command-line variable. The soname changes from libgif.so.4 to libgif.so.7; emacs, emacs-29.3, mplayer and mencoder still link the old one, which giflib_compat provides. Upstream also deleted two dozen tools (gif2ps, gifasm, gifcolor, gifhisto, gifinfo, icon2gif, raw2gif, rgb2gif, text2gif, ...), leaving gif2rgb, gifbuild, gifclrmp, giffix, giftext and giftool. Co-Authored-By: Claude Opus 5 --- giflib.be0 | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/giflib.be0 b/giflib.be0 index 78c137ddb..d61c97087 100755 --- a/giflib.be0 +++ b/giflib.be0 @@ -1,9 +1,9 @@ #!/bin/env beesh -# BEE_VERSION giflib-4.1.6-1 +# BEE_VERSION giflib-5.2.2-0 -# SRCURL[0]="http://downloads.sourceforge.net/giflib/giflib-4.1.6.tar.bz2" -SRCURL[0]="https://beehive.molgen.mpg.de/7125644155ae6ad33dbc9fc15a14735f/giflib-4.1.6.tar.bz2" +# SRCURL[0]="https://downloads.sourceforge.net/giflib/giflib-${PKGVERSION}.tar.gz" +SRCURL[0]="https://beehive.molgen.mpg.de/913dd251492134e235ee3c9a91987a4d/giflib-5.2.2.tar.gz" # PATCHURL[0]="" @@ -11,14 +11,23 @@ SRCURL[0]="https://beehive.molgen.mpg.de/7125644155ae6ad33dbc9fc15a14735f/giflib # bee_patch #} -#mee_configure() { -# bee_configure -#} +# giflib dropped autotools after 4.1.6 and ships a plain Makefile, so there is +# nothing to configure: bee's make.sh passes PREFIX, BINDIR, LIBDIR and MANDIR, +# and INCDIR follows PREFIX. -#mee_build() { -# bee_build -#} +# The manual pages are DocBook XML that xmlto turns into roff, and upstream's +# `all' target does not build them. +mee_build() { + bee_build + bee_build -C doc manpages +} -#mee_install() { -# bee_install -#} +# MANUAL_PAGES in the top-level Makefile lists the XML sources, so install-man +# would install DocBook into man1. Passing the generated pages on make's +# command line overrides that, and giflib.7 goes where section 7 belongs. +mee_install() { + bee_install MANUAL_PAGES="doc/gif2rgb.1 doc/gifbuild.1 doc/gifclrmp.1 doc/giffix.1 doc/giftext.1 doc/giftool.1" + + install -d -m 755 ${D}/usr/share/man/man7 + install -m 644 ${S}/doc/giflib.7 ${D}/usr/share/man/man7/ +} From e820703091dce6bfdea01e602fc4f230b9e04f6d Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 11 Sep 2026 22:17:46 +0200 Subject: [PATCH 7/8] giflib_compat: Add version 4.1.6 giflib 5.2.2 installs libgif.so.7, so the consumers already linked against the old soname would stop working: $ ldd /usr/bin/emacs | grep libgif libgif.so.4 => /lib/libgif.so.4 (0x00007f5fc2e6f000) Besides emacs and emacs-29.3 that is mplayer and mencoder. Build the old release once more and keep nothing but the runtime library, so that the header, the linker symlink, the static library and the tools keep coming from giflib. Co-Authored-By: Claude Opus 5 --- giflib_compat.be0 | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 giflib_compat.be0 diff --git a/giflib_compat.be0 b/giflib_compat.be0 new file mode 100644 index 000000000..28df4ef13 --- /dev/null +++ b/giflib_compat.be0 @@ -0,0 +1,35 @@ +#!/usr/bin/env beesh + +# BEE_VERSION giflib_compat-4.1.6-0 + +# SRCURL[0]="http://downloads.sourceforge.net/giflib/giflib-4.1.6.tar.bz2" +SRCURL[0]="https://beehive.molgen.mpg.de/7125644155ae6ad33dbc9fc15a14735f/giflib-4.1.6.tar.bz2" + +# PATCHURL[0]="" + +#mee_patch() { +# bee_patch +#} + +mee_configure() { + bee_configure \ + --disable-static +} + +#mee_build() { +# bee_build +#} + +#mee_install() { +# bee_install +#} + +# Keep nothing but libgif.so.4, which giflib 5 no longer provides, for the +# binaries already linked against it: emacs, mplayer and mencoder. Header, +# linker symlink and tools come from giflib. +mee_install_post() { + rm -r ${D}/usr/bin + rm -r ${D}/usr/include + rm ${D}/usr/lib/libgif.la + rm ${D}/usr/lib/libgif.so +} From 4947032c0af74a4a11e3c3303bd5d005ae849cb1 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 11 Sep 2026 22:18:11 +0200 Subject: [PATCH 8/8] libheif: Update version from 1.15.2 to 1.23.4 imlib2 1.12.6, needed for nsxiv 34, uses heif_error_success, which libheif only defines since 1.17.0: loader_heif.c: In function '_heif_writer': loader_heif.c:186:31: error: 'heif_error_success' undeclared (first use in this function); did you mean 'heif_error_code'? 186 | struct heif_error error = heif_error_success; | ^~~~~~~~~~~~~~~~~~ | heif_error_code make[4]: *** [Makefile:1017: heif_la-loader_heif.lo] Error 1 libheif replaced autotools with CMake in 1.16.0, so --disable-go (the Go bindings are gone) and --disable-static (BUILD_SHARED_LIBS is on anyway) lose their counterpart. libsharpyuv wants libwebp 1.2 or later while /usr has 0.5.1, hence -DWITH_LIBSHARPYUV=OFF; libde265 and x265 are built in, so HEIC decoding and encoding work as before. The soname stays libheif.so.1, so no compatibility package is needed. The tools are renamed though: heif-convert gives way to heif-dec, and heif-enc, heif-info, heif-view and heif-thumbnailer join it. Co-Authored-By: Claude Opus 5 --- libheif.be0 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/libheif.be0 b/libheif.be0 index fe91985b0..59bbd92f1 100755 --- a/libheif.be0 +++ b/libheif.be0 @@ -1,13 +1,13 @@ #!/usr/bin/env beesh -# BEE_VERSION libheif-1.15.2-0 +# BEE_VERSION libheif-1.23.4-0 #SRCURL[0]="https://github.com/strukturag/libheif/releases/download/v${PKGVERSION}/libheif-${PKGVERSION}.tar.gz" -SRCURL[0]="https://beehive.molgen.mpg.de/d51b100549f9f31f923f5f047e937fe0/libheif-1.15.2.tar.gz" +SRCURL[0]="https://beehive.molgen.mpg.de/9cd6d40e19496a839dc9a7ba0b750f76/libheif-1.23.4.tar.gz" # PATCHURL+=() -BEE_BUILDTYPE=autotools +BEE_BUILDTYPE=cmake # build_in_sourcedir @@ -21,10 +21,15 @@ BEE_BUILDTYPE=autotools # bee_patch "${@}" #} +# libheif replaced autotools with CMake in 1.16.0, so --disable-go (the Go +# bindings are gone) and --disable-static (BUILD_SHARED_LIBS is on) no longer +# have a counterpart. libsharpyuv needs libwebp 1.2 or later, and /usr has +# 0.5.1. mee_configure() { bee_configure \ - --disable-go \ - --disable-static + -DWITH_LIBSHARPYUV=OFF \ + -DBUILD_DOCUMENTATION=OFF \ + -DBUILD_TESTING=OFF } #mee_build() {