summaryrefslogtreecommitdiffstats
path: root/source/ap
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap')
-rwxr-xr-xsource/ap/amp/amp.SlackBuild2
-rwxr-xr-xsource/ap/bc/bc.SlackBuild2
-rwxr-xr-xsource/ap/bpe/bpe.SlackBuild9
-rwxr-xr-xsource/ap/cdrtools/cdrtools.SlackBuild3
-rwxr-xr-xsource/ap/cups-browsed/cups-browsed.SlackBuild144
-rw-r--r--source/ap/cups-browsed/cups-browsed.url1
-rw-r--r--source/ap/cups-browsed/doinst.sh (renamed from source/ap/cups-filters/doinst.sh)0
-rw-r--r--source/ap/cups-browsed/slack-desc19
-rw-r--r--source/ap/cups-filters/CVE-2023-24805.patch167
-rwxr-xr-xsource/ap/cups-filters/cups-filters.SlackBuild43
-rw-r--r--source/ap/cups-filters/cups-filters.url2
-rw-r--r--source/ap/cups-filters/slack-desc2
-rwxr-xr-xsource/ap/cups/cups.SlackBuild8
-rwxr-xr-xsource/ap/ghostscript/ghostscript.SlackBuild14
-rw-r--r--source/ap/ghostscript/ghostscript.url2
-rw-r--r--source/ap/groff/0006-Revert-upstream-change-of-mapping-special-characters.patch76
-rwxr-xr-xsource/ap/groff/groff.SlackBuild8
-rwxr-xr-xsource/ap/gutenprint/gutenprint.SlackBuild6
-rw-r--r--source/ap/hplip/0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch622
-rw-r--r--source/ap/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch150
-rw-r--r--source/ap/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch29
-rw-r--r--source/ap/hplip/0026-remove-unicode-space-from-models.dat11
-rw-r--r--source/ap/hplip/hplip-covscan.patch615
-rw-r--r--source/ap/hplip/hplip-hpaio-gcc14.patch114
-rw-r--r--source/ap/hplip/hplip-pcardext-disable.patch16
-rw-r--r--source/ap/hplip/hplip-pserror-c99.patch17
-rw-r--r--source/ap/hplip/hplip-scan-hpaio-include.patch19
-rw-r--r--source/ap/hplip/hplip-scan-orblite-c99.patch21
-rwxr-xr-xsource/ap/hplip/hplip.SlackBuild28
-rwxr-xr-xsource/ap/inxi/fetch-inxi.sh2
-rwxr-xr-xsource/ap/inxi/inxi.SlackBuild11
-rwxr-xr-xsource/ap/ispell/ispell.SlackBuild2
-rwxr-xr-xsource/ap/joe/joe.SlackBuild2
-rwxr-xr-xsource/ap/jove/jove.SlackBuild103
-rw-r--r--source/ap/jove/jove.glibc-2.30.diff17
-rw-r--r--source/ap/jove/jove.makefile.diff132
-rw-r--r--source/ap/jove/jove.url4
-rwxr-xr-xsource/ap/ksh93/ksh93.SlackBuild17
-rwxr-xr-xsource/ap/libx86/libx86.SlackBuild3
-rw-r--r--source/ap/linuxdoc-tools/ChangeLog.txt19
-rwxr-xr-xsource/ap/linuxdoc-tools/arm/build9
-rw-r--r--source/ap/linuxdoc-tools/doinst.sh13
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build82
-rwxr-xr-xsource/ap/linuxdoc-tools/postbuildfixes.sh28
-rw-r--r--source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.20-lib64.patch10
-rw-r--r--source/ap/linuxdoc-tools/sources/linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch25
-rwxr-xr-xsource/ap/linuxdoc-tools/sources/source.download111
-rwxr-xr-xsource/ap/linuxdoc-tools/trackbuild.linuxdoc-tools6
-rw-r--r--source/ap/lxc/lxc-slackware.in17
-rwxr-xr-xsource/ap/lxc/lxc.SlackBuild89
-rwxr-xr-xsource/ap/man-db/man-db.SlackBuild19
-rw-r--r--source/ap/man-db/man-db.cron2
-rwxr-xr-xsource/ap/man-pages/man-pages.SlackBuild22
-rw-r--r--source/ap/mariadb/doinst.sh1
-rwxr-xr-xsource/ap/mariadb/mariadb.SlackBuild20
-rw-r--r--source/ap/mc/bogus.cflags.diff10
-rwxr-xr-xsource/ap/mc/mc.SlackBuild15
-rw-r--r--source/ap/moc/0011-ffmpeg-7.0.patch37
-rwxr-xr-xsource/ap/moc/moc.SlackBuild20
-rwxr-xr-xsource/ap/mpg123/mpg123.SlackBuild14
-rwxr-xr-xsource/ap/nano/nano.SlackBuild11
-rwxr-xr-xsource/ap/nvme-cli/nvme-cli.SlackBuild17
-rwxr-xr-xsource/ap/pamixer/pamixer.SlackBuild2
-rwxr-xr-xsource/ap/powertop/powertop.SlackBuild2
-rwxr-xr-xsource/ap/rpm/rpm.SlackBuild8
-rwxr-xr-xsource/ap/rzip/rzip.SlackBuild3
-rwxr-xr-xsource/ap/sc-im/sc-im.SlackBuild22
-rwxr-xr-xsource/ap/sc/sc.SlackBuild3
-rw-r--r--source/ap/sc/sc.gcc14.diff11
-rwxr-xr-xsource/ap/scdoc/scdoc.SlackBuild110
-rw-r--r--source/ap/scdoc/scdoc.url2
-rw-r--r--source/ap/scdoc/slack-desc19
-rw-r--r--source/ap/screen/26source_encoding.patch353
-rw-r--r--source/ap/screen/45suppress_remap.patch13
-rw-r--r--source/ap/screen/52fix_screen_utf8_nfd.patch41
-rwxr-xr-xsource/ap/screen/screen.SlackBuild17
-rwxr-xr-xsource/ap/seejpeg/seejpeg.SlackBuild3
-rw-r--r--source/ap/slackpkg/files/core-functions.sh21
-rwxr-xr-xsource/ap/slackpkg/slackpkg.SlackBuild2
-rwxr-xr-xsource/ap/sox/sox.SlackBuild3
-rwxr-xr-xsource/ap/sqlite/sqlite.SlackBuild11
-rw-r--r--source/ap/stow/slack-desc19
-rwxr-xr-xsource/ap/stow/stow.SlackBuild145
-rwxr-xr-xsource/ap/sudo/sudo.SlackBuild14
-rwxr-xr-xsource/ap/texinfo/texinfo.SlackBuild17
-rwxr-xr-xsource/ap/undervolt/undervolt.SlackBuild8
-rwxr-xr-xsource/ap/vim/vim-gvim.SlackBuild4
-rwxr-xr-xsource/ap/vim/vim.SlackBuild4
-rwxr-xr-xsource/ap/vorbis-tools/vorbis-tools.SlackBuild3
-rwxr-xr-xsource/ap/xfsdump/xfsdump.SlackBuild2
-rw-r--r--source/ap/zsh/0007-zsh-configure-c99.patch44
-rwxr-xr-xsource/ap/zsh/zsh.SlackBuild2
92 files changed, 2768 insertions, 1180 deletions
diff --git a/source/ap/amp/amp.SlackBuild b/source/ap/amp/amp.SlackBuild
index 1f955b2a9..85ee4749d 100755
--- a/source/ap/amp/amp.SlackBuild
+++ b/source/ap/amp/amp.SlackBuild
@@ -58,7 +58,7 @@ zcat $CWD/amp-gcc34.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exi
# Avoid crashes caused by using agressive optimization with newer compilers:
zcat $CWD/amp.do.not.overoptimize.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
chown -R root:root .
-./configure --prefix=/usr $ARCH-slackware-linux || exit 1
+CFLAGS="-Wno-error=implicit-int" ./configure --prefix=/usr $ARCH-slackware-linux || exit 1
make || exit 1
mkdir -p $PKG/usr/doc $PKG/usr/bin $PKG/usr/man/man1
strip amp
diff --git a/source/ap/bc/bc.SlackBuild b/source/ap/bc/bc.SlackBuild
index 7bd6b2740..4c5504e00 100755
--- a/source/ap/bc/bc.SlackBuild
+++ b/source/ap/bc/bc.SlackBuild
@@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=bc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-5}
+BUILD=${BUILD:-6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/bpe/bpe.SlackBuild b/source/ap/bpe/bpe.SlackBuild
index f415472d1..3ed4529e1 100755
--- a/source/ap/bpe/bpe.SlackBuild
+++ b/source/ap/bpe/bpe.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=bpe
VERSION=2.01.00
-BUILD=${BUILD:-6}
+BUILD=${BUILD:-7}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -54,6 +54,9 @@ else
SLKCFLAGS="-O2"
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=implicit-int"
+
TMP=${TMP:-/tmp}
PKG=$TMP/package-bpe
@@ -71,7 +74,8 @@ zcat $CWD/bpe.port.to.strerror.diff.gz | patch -p1 --verbose || exit 1
CFLAGS="$SLKCFLAGS" \
./configure \
- --prefix=/usr || exit 1
+ --prefix=/usr \
+ $ARCH-slackware-linux-gnu || exit 1
make || exit 1
make install DESTDIR=$PKG || exit 1
( cd $PKG
@@ -88,4 +92,3 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
makepkg -l y -c n $TMP/bpe-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/ap/cdrtools/cdrtools.SlackBuild b/source/ap/cdrtools/cdrtools.SlackBuild
index 34334abbf..fe4f79166 100755
--- a/source/ap/cdrtools/cdrtools.SlackBuild
+++ b/source/ap/cdrtools/cdrtools.SlackBuild
@@ -66,6 +66,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+# GCC 14 "fix":
+export CFLAGS="-Wno-error=implicit-int -Wno-error=implicit-function-declaration"
+
# When running make below, you'll see "errors" like these:
# config.h:34:10: fatal error: lconfig.h: No such file or directory
# 34 | #include "lconfig.h"
diff --git a/source/ap/cups-browsed/cups-browsed.SlackBuild b/source/ap/cups-browsed/cups-browsed.SlackBuild
new file mode 100755
index 000000000..e8c295b70
--- /dev/null
+++ b/source/ap/cups-browsed/cups-browsed.SlackBuild
@@ -0,0 +1,144 @@
+#!/bin/bash
+
+# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=cups-browsed
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i686 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Configure, build, and install:
+if [ ! -r configure ]; then
+ if [ -x ./autogen.sh ]; then
+ NOCONFIGURE=1 ./autogen.sh
+ else
+ autoreconf -vif
+ fi
+fi
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-cups-rundir=/run/cups \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --mandir=/usr/man \
+ --disable-static \
+ --build=$ARCH-slackware-linux || exit 1
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Don't ship .la files:
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+mkdir -p $PKG/etc/rc.d
+mv $PKG/etc/init.d/cups-browsed $PKG/etc/rc.d/rc.cups-browsed
+chmod 0644 $PKG/etc/rc.d/rc.cups-browsed
+rm -rf $PKG/etc/init.d $PKG/etc/rc{0,2,3,5}.d
+
+find $PKG/etc -type f -exec mv {} {}.new \;
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \+
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS* CHANGES* CONTRIBUTING* COPYING* ChangeLog* DEVELOPING* INSTALL* LICENSE* NEWS* NOTICE* README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# If there's a CHANGES.md file, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r CHANGES.md ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat CHANGES.md | head -n 1000 > $DOCSDIR/CHANGES.md
+ touch -r CHANGES.md $DOCSDIR/CHANGES.md
+fi
+
+# Nope:
+rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/CHANGES-1.x*
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/cups-browsed/cups-browsed.url b/source/ap/cups-browsed/cups-browsed.url
new file mode 100644
index 000000000..8c533178f
--- /dev/null
+++ b/source/ap/cups-browsed/cups-browsed.url
@@ -0,0 +1 @@
+https://github.com/OpenPrinting/cups-browsed
diff --git a/source/ap/cups-filters/doinst.sh b/source/ap/cups-browsed/doinst.sh
index 35b624517..35b624517 100644
--- a/source/ap/cups-filters/doinst.sh
+++ b/source/ap/cups-browsed/doinst.sh
diff --git a/source/ap/cups-browsed/slack-desc b/source/ap/cups-browsed/slack-desc
new file mode 100644
index 000000000..5bf3c02a0
--- /dev/null
+++ b/source/ap/cups-browsed/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+cups-browsed: cups-browsed (CUPS printer queue browser)
+cups-browsed:
+cups-browsed: The cups-browsed daemon is used to browse the network for remote CUPS
+cups-browsed: queues and IPP network printers and automatically create local queues
+cups-browsed: pointing to them.
+cups-browsed:
+cups-browsed: Homepage: http://www.openprinting.org
+cups-browsed:
+cups-browsed:
+cups-browsed:
+cups-browsed:
diff --git a/source/ap/cups-filters/CVE-2023-24805.patch b/source/ap/cups-filters/CVE-2023-24805.patch
deleted file mode 100644
index e84312a82..000000000
--- a/source/ap/cups-filters/CVE-2023-24805.patch
+++ /dev/null
@@ -1,167 +0,0 @@
---- ./backend/beh.c.orig 2023-01-24 19:38:24.000000000 -0600
-+++ ./backend/beh.c 2023-05-19 13:08:27.724167656 -0500
-@@ -22,12 +22,14 @@
- #include "backend-private.h"
- #include <cups/array.h>
- #include <ctype.h>
-+#include <sys/wait.h>
-+
-
- /*
- * Local globals...
- */
-
--static int job_canceled = 0; /* Set to 1 on SIGTERM */
-+static volatile int job_canceled = 0; /* Set to 1 on SIGTERM */
-
- /*
- * Local functions...
-@@ -213,21 +215,44 @@
- char **argv, /* I - Command-line arguments */
- char *filename) { /* I - File name of input data */
- const char *cups_serverbin; /* Location of programs */
-+ char *backend_argv[8]; // Arguments for called CUPS backend
- char scheme[1024], /* Scheme from URI */
- *ptr, /* Pointer into scheme */
-- cmdline[65536]; /* Backend command line */
-- int retval;
-+ backend_path[2048]; // Backend path
-+ int pid,
-+ wait_pid,
-+ wait_status,
-+ retval = 0;
-+ int bytes;
-+
-
- /*
- * Build the backend command line...
- */
-
-- strncpy(scheme, uri, sizeof(scheme) - 1);
-- if (strlen(uri) > 1023)
-- scheme[1023] = '\0';
-+ scheme[0] = '\0';
-+ strncat(scheme, uri, sizeof(scheme) - 1);
- if ((ptr = strchr(scheme, ':')) != NULL)
- *ptr = '\0';
--
-+ else
-+ {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid URI, no colon (':') to mark end of scheme part.\n");
-+ exit (CUPS_BACKEND_FAILED);
-+ }
-+ if (strchr(scheme, '/'))
-+ {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid URI, scheme contains a slash ('/').\n");
-+ exit (CUPS_BACKEND_FAILED);
-+ }
-+ if (!strcmp(scheme, ".") || !strcmp(scheme, ".."))
-+ {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid URI, scheme (\"%s\") is a directory.\n",
-+ scheme);
-+ exit (CUPS_BACKEND_FAILED);
-+ }
- if ((cups_serverbin = getenv("CUPS_SERVERBIN")) == NULL)
- cups_serverbin = CUPS_SERVERBIN;
-
-@@ -235,16 +260,26 @@
- fprintf(stderr,
- "ERROR: beh: Direct output into a file not supported.\n");
- exit (CUPS_BACKEND_FAILED);
-- } else
-- snprintf(cmdline, sizeof(cmdline),
-- "%s/backend/%s '%s' '%s' '%s' '%s' '%s' %s",
-- cups_serverbin, scheme, argv[1], argv[2], argv[3],
-- /* Apply number of copies only if beh was called with a
-- file name and not with the print data in stdin, as
-- backends should handle copies only if they are called
-- with a file name */
-- (argc == 6 ? "1" : argv[4]),
-- argv[5], filename);
-+ }
-+
-+ backend_argv[0] = uri;
-+ backend_argv[1] = argv[1];
-+ backend_argv[2] = argv[2];
-+ backend_argv[3] = argv[3];
-+ backend_argv[4] = (argc == 6 ? "1" : argv[4]);
-+ backend_argv[5] = argv[5];
-+ backend_argv[6] = filename;
-+ backend_argv[7] = NULL;
-+
-+ bytes = snprintf(backend_path, sizeof(backend_path),
-+ "%s/backend/%s", cups_serverbin, scheme);
-+ if (bytes < 0 || bytes >= sizeof(backend_path))
-+ {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid scheme (\"%s\"), could not determing backend path.\n",
-+ scheme);
-+ exit (CUPS_BACKEND_FAILED);
-+ }
-
- /*
- * Overwrite the device URI and run the actual backend...
-@@ -253,17 +288,41 @@
- setenv("DEVICE_URI", uri, 1);
-
- fprintf(stderr,
-- "DEBUG: beh: Executing backend command line \"%s\"...\n",
-- cmdline);
-+ "DEBUG: beh: Executing backend command line \"%s '%s' '%s' '%s' '%s' '%s'%s%s\"...\n",
-+ backend_path, backend_argv[1], backend_argv[2], backend_argv[3],
-+ backend_argv[4], backend_argv[5],
-+ (backend_argv[6] && backend_argv[6][0] ? " " : ""),
-+ (backend_argv[6] && backend_argv[6][0] ? backend_argv[6] : ""));
- fprintf(stderr,
- "DEBUG: beh: Using device URI: %s\n",
- uri);
-
-- retval = system(cmdline) >> 8;
-+ if ((pid = fork()) == 0)
-+ {
-+ retval = execv(backend_path, backend_argv);
-+
-+ if (retval == -1)
-+ fprintf(stderr, "ERROR: Unable to execute backend: %s\n",
-+ strerror(errno));
-+ exit (CUPS_BACKEND_FAILED);
-+ }
-+ else if (pid < 0)
-+ {
-+ fprintf(stderr, "ERROR: Unable to fork for backend\n");
-+ return (CUPS_BACKEND_FAILED);
-+ }
-+
-+ while ((wait_pid = wait(&wait_status)) < 0 && errno == EINTR);
-
-- if (retval == -1)
-- fprintf(stderr, "ERROR: Unable to execute backend command line: %s\n",
-- strerror(errno));
-+ if (wait_pid >= 0 && wait_status)
-+ {
-+ if (WIFEXITED(wait_status))
-+ retval = WEXITSTATUS(wait_status);
-+ else if (WTERMSIG(wait_status) != SIGTERM)
-+ retval = WTERMSIG(wait_status);
-+ else
-+ retval = 0;
-+ }
-
- return (retval);
- }
-@@ -277,8 +336,10 @@
- sigterm_handler(int sig) { /* I - Signal number (unused) */
- (void)sig;
-
-- fprintf(stderr,
-- "DEBUG: beh: Job canceled.\n");
-+ const char * const msg = "DEBUG: beh: Job canceled.\n";
-+ // The if() is to eliminate the return value and silence the warning
-+ // about an unused return value.
-+ if (write(2, msg, strlen(msg)));
-
- if (job_canceled)
- _exit(CUPS_BACKEND_OK);
diff --git a/source/ap/cups-filters/cups-filters.SlackBuild b/source/ap/cups-filters/cups-filters.SlackBuild
index 6d3f26413..6e184adbf 100755
--- a/source/ap/cups-filters/cups-filters.SlackBuild
+++ b/source/ap/cups-filters/cups-filters.SlackBuild
@@ -24,12 +24,12 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=cups-filters
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-5}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -46,14 +46,11 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
@@ -78,7 +75,7 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-zcat $CWD/CVE-2023-24805.patch.gz | patch -p1 --verbose || exit 1
+# We "--disable-avahi" because this package can't even use it.
if [ ! -r configure ]; then
if [ -x ./autogen.sh ]; then
@@ -88,19 +85,20 @@ if [ ! -r configure ]; then
fi
fi
CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS -std=c++17 -fpermissive" \
+CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--infodir=/usr/info \
+ --runstatedir=/run \
--sysconfdir=/etc \
--localstatedir=/var \
--docdir=/usr/doc/$PKGNAM-$VERSION \
- --with-test-font-path=/usr/share/fonts/TTF/DejaVuSans.ttf \
- --without-php \
+ --disable-avahi \
--disable-mutool \
--disable-static \
+ --with-browseremoteprotocols=cups \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || exit 1
@@ -115,30 +113,25 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
find $PKG/usr/man -type f -exec gzip -9 {} \+
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-mkdir -p $PKG/etc/rc.d
-mv $PKG/etc/init.d/cups-browsed $PKG/etc/rc.d/rc.cups-browsed
-chmod 0644 $PKG/etc/rc.d/rc.cups-browsed
-rm -rf $PKG/etc/init.d $PKG/etc/rc{0,2,3,5}.d
-
-find $PKG/etc -type f -exec mv {} {}.new \;
-
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS COPYING* INSTALL ChangeLog NEWS README* THANKS TODO \
+ AUTHORS* CHANGES* CONTRIBUTING* COPYING* ChangeLog* DEVELOPING* INSTALL* LICENSE* NEWS* NOTICE* README* \
$PKG/usr/doc/${PKGNAM}-$VERSION
-# If there's a ChangeLog, installing at least part of the recent history
+# If there's a CHANGES.md, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
-if [ -r ChangeLog ]; then
+if [ -r CHANGES.md ]; then
DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
- cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
- touch -r ChangeLog $DOCSDIR/ChangeLog
+ cat CHANGES.md | head -n 1000 > $DOCSDIR/CHANGES.md
+ touch -r CHANGES.md $DOCSDIR/CHANGES.md
fi
+# Nope:
+rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/CHANGES-1.x*
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
-zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/cups-filters/cups-filters.url b/source/ap/cups-filters/cups-filters.url
index 7b1d5cdfa..54e28aa53 100644
--- a/source/ap/cups-filters/cups-filters.url
+++ b/source/ap/cups-filters/cups-filters.url
@@ -1 +1 @@
-http://www.openprinting.org/download/cups-filters/
+https://github.com/OpenPrinting/cups-filters
diff --git a/source/ap/cups-filters/slack-desc b/source/ap/cups-filters/slack-desc
index 9c2590f3b..6f6344b63 100644
--- a/source/ap/cups-filters/slack-desc
+++ b/source/ap/cups-filters/slack-desc
@@ -13,7 +13,7 @@ cups-filters: once part of the core CUPS distribution but is no longer included.
cups-filters: In addition it contains additional filters and software developed
cups-filters: independently.
cups-filters:
-cups-filters:
+cups-filters: Homepage: http://www.openprinting.org
cups-filters:
cups-filters:
cups-filters:
diff --git a/source/ap/cups/cups.SlackBuild b/source/ap/cups/cups.SlackBuild
index 506e7edc6..fbc459bd7 100755
--- a/source/ap/cups/cups.SlackBuild
+++ b/source/ap/cups/cups.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2011, 2012, 2015, 2017, 2018, 2019, 2021, 2022 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2015, 2017, 2018, 2019, 2021, 2022, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=cups
VERSION=${VERSION:-$(echo $PKGNAM-2*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -98,6 +98,7 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-cdsassl=no \
--docdir=/usr/doc \
--mandir=/usr/man \
+ --with-rundir=/run/cups \
$PAM_OPTIONS \
$SHADOW_OPTIONS \
--build=$ARCH-slackware-linux || exit 1
@@ -105,6 +106,9 @@ CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS || exit 1
make BUILDROOT=$PKG install || exit 1
+# These files are lost with a restart, so don't package them:
+rm -r $PKG/run
+
if [ ! -z "$PAM_OPTIONS" ]; then
# Allow pam config files to be edited by root:
chmod 644 $PKG/etc/pam.d/*
diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild
index af557de3e..ae0360ac0 100755
--- a/source/ap/ghostscript/ghostscript.SlackBuild
+++ b/source/ap/ghostscript/ghostscript.SlackBuild
@@ -32,7 +32,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -54,20 +54,20 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=incompatible-pointer-types -Wno-error=int-conversion"
+
cd $TMP
rm -rf ${SRCPREFIX}${PKGNAM}-${VERSION}
tar xvf $CWD/${SRCPREFIX}${PKGNAM}-$VERSION.tar.?z || exit 1
diff --git a/source/ap/ghostscript/ghostscript.url b/source/ap/ghostscript/ghostscript.url
index 12b9848de..7e133e7f9 100644
--- a/source/ap/ghostscript/ghostscript.url
+++ b/source/ap/ghostscript/ghostscript.url
@@ -1,2 +1,2 @@
https://github.com/ArtifexSoftware/ghostpdl-downloads
-https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10030/ghostscript-10.03.0.tar.xz
+https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10040/ghostscript-10.04.0.tar.xz
diff --git a/source/ap/groff/0006-Revert-upstream-change-of-mapping-special-characters.patch b/source/ap/groff/0006-Revert-upstream-change-of-mapping-special-characters.patch
new file mode 100644
index 000000000..66b6bd450
--- /dev/null
+++ b/source/ap/groff/0006-Revert-upstream-change-of-mapping-special-characters.patch
@@ -0,0 +1,76 @@
+https://src.fedoraproject.org/rpms/groff/raw/rawhide/f/0006-Revert-upstream-change-of-mapping-special-characters.patch
+
+From f4f76740ad4693cb967801e366f1d6410381dd71 Mon Sep 17 00:00:00 2001
+From: groff owner <groff-owner@fedoraproject.org>
+Date: Thu, 2 Nov 2023 13:09:37 +0000
+Subject: [PATCH] Revert upstream change of mapping special characters for
+ UTF-8
+
+Adopt Debian decision: https://salsa.debian.org/debian/groff/-/commit/d5394c68d70e6c5199b01d2522e094c8fd52e64e
+---
+ tmac/man.local | 16 ++++++++++++++++
+ tmac/mdoc.local | 17 ++++++++++++++++-
+ 2 files changed, 32 insertions(+), 1 deletion(-)
+
+diff --git a/tmac/man.local b/tmac/man.local
+index 5daa507..4bed937 100644
+--- a/tmac/man.local
++++ b/tmac/man.local
+@@ -2,6 +2,22 @@
+ .\"
+ .\" Put local modifications to groff_man(7)'s behavior here.
+ .\"
++.\" Adopting Debian's decision to preserve old mapping for UTF-8
++.\" Debian: As of groff 1.23.0, the "-", "'", "`", "^", and "~" input
++.\" characters are mapped to non-Basic Latin code points in output from
++.\" the "utf8" device, for consistency with other output devices such as
++.\" PDF. Unfortunately in practice this still causes far too much
++.\" disruption for innocent users of manual pages who just want to be able
++.\" to search for characters normally, so preserve the old behaviour.
++.\" Comment this out if you want to make sure that manual pages you're
++.\" writing are clear of these problems.
++.if '\*[.T]'utf8' \{\
++. char - \-
++. char ' \[aq]
++. char ` \[ga]
++. char ^ \[ha]
++. char ~ \[ti]
++.\}
+ .\" Change "0" to "1" to enable OSC 8 links on SGR-capable grotty(1)
+ .\" output devices.
+ .if !'\*[.T]'html' \
+diff --git a/tmac/mdoc.local b/tmac/mdoc.local
+index 94688ab..1bb47d6 100644
+--- a/tmac/mdoc.local
++++ b/tmac/mdoc.local
+@@ -2,6 +2,22 @@
+ .\"
+ .\" Put local modifications to groff_mdoc(7)'s behavior here.
+ .\"
++.\" Adopting Debian's decision to preserve old mapping for UTF-8
++.\" Debian: As of groff 1.23.0, the "-", "'", "`", "^", and "~" input
++.\" characters are mapped to non-Basic Latin code points in output from
++.\" the "utf8" device, for consistency with other output devices such as
++.\" PDF. Unfortunately in practice this still causes far too much
++.\" disruption for innocent users of manual pages who just want to be able
++.\" to search for characters normally, so preserve the old behaviour.
++.\" Comment this out if you want to make sure that manual pages you're
++.\" writing are clear of these problems.
++.if '\*[.T]'utf8' \{\
++. char - \-
++. char ' \[aq]
++. char ` \[ga]
++. char ^ \[ha]
++. char ~ \[ti]
++.\}
+ .\" "CW" is not a portable font name, but some man pages use it anyway.
+ .\" Uncomment this to suppress warnings produced by such pages. This
+ .\" test remaps the font to roman ("R") on nroff (terminal) devices. You
+@@ -12,4 +28,3 @@
+ .\" mode: nroff
+ .\" fill-column: 72
+ .\" End:
+-.\" vim: set filetype=groff textwidth=72:
+--
+2.41.0
+
diff --git a/source/ap/groff/groff.SlackBuild b/source/ap/groff/groff.SlackBuild
index b67eff1e6..ae3d40735 100755
--- a/source/ap/groff/groff.SlackBuild
+++ b/source/ap/groff/groff.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2005-2008, 2009, 2010, 2011, 2016, 2018, 2023 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2008, 2009, 2010, 2011, 2016, 2018, 2024 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=groff
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -80,6 +80,10 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+# Map special characters to enable unescaped hyphens and other characters
+# in man pages:
+zcat $CWD/0006-Revert-upstream-change-of-mapping-special-characters.patch.gz | patch --verbose -p1 || exit 1
+
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/ap/gutenprint/gutenprint.SlackBuild b/source/ap/gutenprint/gutenprint.SlackBuild
index f732d2b31..2904ee44c 100755
--- a/source/ap/gutenprint/gutenprint.SlackBuild
+++ b/source/ap/gutenprint/gutenprint.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gutenprint
VERSION=${VERSION:-$(echo gutenprint-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -60,6 +60,9 @@ else
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=int-conversion"
+
TMP=${TMP:-/tmp}
PKG=$TMP/package-gutenprint
rm -rf $PKG
@@ -76,6 +79,7 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/source/ap/hplip/0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch b/source/ap/hplip/0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch
new file mode 100644
index 000000000..d42d9bd3b
--- /dev/null
+++ b/source/ap/hplip/0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch
@@ -0,0 +1,622 @@
+From: Zdenek Dohnal <zdohnal@redhat.com>
+Date: Fri, 31 Jan 2020 13:50:05 +0100
+Subject: models.dat: Re-add drivers missing from 3.19.1
+
+several printers were removed in 3.19.1, but actually someone still uses them
+reported upstream https://bugs.launchpad.net/hplip/+bug/1843592
+bugzillas 1742949, 1740132, 1739855
+
+Origin: https://src.fedoraproject.org/rpms/hplip/blob/master/f/hplip-missing-drivers.patch
+---
+ Makefile.in | 4 +
+ cups_drv.inc | 2 +
+ data/models/models.dat | 477 ++++++++++++++++++++++++++++++++++++++++++++++++-
+ prnt/drv/hpcups.drv.in | 16 ++
+ 4 files changed, 490 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index aef0fbc..cdee8e7 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -1621,6 +1621,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-laserjet_3050-ps.ppd.gz \
+ ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
+ ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
+ ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
++ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
+ ppd/hpcups/hp-laserjet_m1005.ppd.gz \
+ ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
+ ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
+@@ -1738,6 +1739,7 @@ am__dist_ppd_DATA_DIST = prnt/ps/hp-laserjet_3050-ps.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
++ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
+ ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
+ ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
+ ppd/hpcups/hp-laserjet_tank_250x.ppd.gz \
+@@ -4106,6 +4108,7 @@ dist_unrel_DATA =
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
++@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m1005.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
+@@ -4222,6 +4225,7 @@ dist_unrel_DATA =
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
++@HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
+ @HPLIP_CLASS_DRIVER_FALSE@ ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
+diff --git a/cups_drv.inc b/cups_drv.inc
+index a87ea98..e39bde4 100644
+--- a/cups_drv.inc
++++ b/cups_drv.inc
+@@ -411,6 +411,7 @@ cups_ppd_printers = \
+ ppd/hpcups/hp-laserjet_cm1418fnw-pcl3.ppd.gz \
+ ppd/hpcups/hp-laserjet_cp1025.ppd.gz \
+ ppd/hpcups/hp-laserjet_cp1025nw.ppd.gz \
++ ppd/hpcups/hp-laserjet_cp_1025nw.ppd.gz \
+ ppd/hpcups/hp-laserjet_m1005.ppd.gz \
+ ppd/hpcups/hp-laserjet_m101-m106.ppd.gz \
+ ppd/hpcups/hp-laserjet_m109-m112.ppd.gz \
+@@ -527,6 +528,7 @@ cups_ppd_printers = \
+ ppd/hpcups/hp-laserjet_professional_p1607dn.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p1608dn.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p1609dn.ppd.gz \
++ ppd/hpcups/hp-laserjet_professional_p1102w.ppd.gz \
+ ppd/hpcups/hp-laserjet_professional_p_1102w.ppd.gz \
+ ppd/hpcups/hp-laserjet_tank_1020.ppd.gz \
+ ppd/hpcups/hp-laserjet_tank_150x.ppd.gz \
+diff --git a/data/models/models.dat b/data/models/models.dat
+index 12e9a08..7d9650b 100644
+--- a/data/models/models.dat
++++ b/data/models/models.dat
+@@ -2104,7 +2104,7 @@ usb-pid=411
+ usb-vid=3f0
+ wifi-config=0
+
+-[hp_laserjet_100_colormfp_m175]
++[hp_laserjet_100_colormfp_m175nw]
+ align-type=0
+ clean-type=0
+ color-cal-type=0
+@@ -2119,14 +2119,6 @@ io-support=14
+ job-storage=0
+ linefeed-cal-type=0
+ model1=HP LaserJet 100 Color MFP M175
+-model2=HP LaserJet 100 Color MFP M175a
+-model3=HP LaserJet 100 Color MFP M175b
+-model4=HP LaserJet 100 Color MFP M175c
+-model5=HP LaserJet 100 Color MFP M175e
+-model6=HP LaserJet 100 Color MFP M175nw
+-model7=HP LaserJet 100 Color MFP M175p
+-model8=HP LaserJet 100 Color MFP M175q
+-model9=HP LaserJet 100 Color MFP M175r
+ ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
+ monitor-type=0
+ panel-check-type=0
+@@ -2165,6 +2157,378 @@ usb-pid=62a
+ usb-vid=3f0
+ wifi-config=3
+
++[hp_laserjet_100_colormfp_m175r]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=14
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=3
++
++[hp_laserjet_100_colormfp_m175q]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=14
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=3
++
++[hp_laserjet_100_colormfp_m175p]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=14
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=3
++
++[hp_laserjet_100_colormfp_m175e]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=2
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=-1
++
++[hp_laserjet_100_colormfp_m175a]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++family-ppd=hp-postscript-laserjet-pro.ppd
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=2
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=-1
++
++[hp_laserjet_100_colormfp_m175c]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=2
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=-1
++
++[hp_laserjet_100_colormfp_m175b]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cm1312_mfp.png
++io-mfp-mode=3
++io-mode=1
++io-support=2
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet 100 Color MFP M175
++ppd-name=hp-laserjet_100_color_mfp_m175-ps.ppd
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=64
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=3
++scan-type=5
++status-battery-check=0
++status-dynamic-counters=0
++status-type=10
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.11.7
++tech-class=Postscript
++family-class=Undefined
++tech-subclass=Normal
++tech-type=4
++usb-pid=62a
++usb-vid=3f0
++wifi-config=-1
++
+ [officejet_100_mobile_l411]
+ align-type=-1
+ clean-type=1
+@@ -17867,6 +18231,58 @@ usb-pid=2c17
+ usb-vid=3f0
+ wifi-config=0
+
++[hp_laserjet_cp_1025nw]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=1
++fax-type=0
++fw-download=False
++icon=hp_color_laserjet_cp2025.png
++io-mfp-mode=1
++io-mode=1
++io-support=14
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet Pro CP 1025nw Color Printer Series
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=1
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=CE310A
++r0-agent1-type=1
++r0-agent2-kind=4
++r0-agent2-sku=CE311A
++r0-agent2-type=4
++r0-agent3-kind=4
++r0-agent3-sku=CE313A
++r0-agent3-type=5
++r0-agent4-kind=4
++r0-agent4-sku=CE312A
++r0-agent4-type=6
++scan-src=0
++scan-type=0
++status-battery-check=0
++status-dynamic-counters=0
++status-type=8
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.12.4
++tech-class=LJZjsColor
++family-class=LJ-Class4
++tech-subclass=Advanced
++tech-type=4
++usb-pid=112a
++usb-vid=3f0
++wifi-config=3
++
+ [hp_laserjet_cp1025nw]
+ align-type=0
+ clean-type=0
+@@ -18468,6 +18884,49 @@ usb-pid=3011
+ usb-vid=3f0
+ wifi-config=0
+
++[hp_laserjet_professional_p1102w]
++align-type=0
++clean-type=0
++color-cal-type=0
++copy-type=0
++embedded-server-type=0
++fax-type=0
++fw-download=False
++icon=HP_LaserJet_1012.png
++io-mfp-mode=6
++io-mode=1
++io-support=10
++job-storage=0
++linefeed-cal-type=0
++model1=HP LaserJet Professional P1102w Printer
++monitor-type=0
++panel-check-type=0
++pcard-type=0
++plugin=1
++plugin-reason=1
++power-settings=0
++pq-diag-type=0
++r-type=0
++r0-agent1-kind=4
++r0-agent1-sku=85A
++r0-agent1-type=1
++scan-src=0
++scan-type=0
++status-battery-check=0
++status-dynamic-counters=0
++status-type=8
++support-released=True
++support-subtype=219b2b
++support-type=2
++support-ver=3.10.4
++tech-class=LJZjsMono
++family-class=LJ-Class4
++tech-subclass=NoAutoDuplex
++tech-type=3
++usb-pid=32a
++usb-vid=3f0
++wifi-config=3
++
+ [hp_laserjet_professional_p1102]
+ align-type=0
+ clean-type=0
+diff --git a/prnt/drv/hpcups.drv.in b/prnt/drv/hpcups.drv.in
+index 494758d..af65389 100644
+--- a/prnt/drv/hpcups.drv.in
++++ b/prnt/drv/hpcups.drv.in
+@@ -22688,6 +22688,14 @@ Group "RLT/HP Real Life Technologies"
+ Attribute "Product" "" "(HP LaserJet Professional p1102 Printer)"
+ Attribute "Product" "" "(HP LaserJet Professional p1102s Printer)"
+ }
++ {
++ ModelName "HP LaserJet Professional p1102w"
++ Attribute "NickName" "" "HP LaserJet Professional p1102w, hpcups $Version, requires proprietary plugin"
++ Attribute "ShortNickName" "" "HP LaserJet Professional p1102w hpijs"
++ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:hp laserjet professional p1102w;DES:hp laserjet professional p1102w;"
++ PCFileName "hp-laserjet_professional_p1102w.ppd"
++ Attribute "Product" "" "(HP LaserJet Professional p1102w Printer)"
++ }
+ {
+ ModelName "HP LaserJet Professional p1106"
+ Attribute "NickName" "" "HP LaserJet Professional p1106, hpcups $Version"
+@@ -23122,6 +23130,14 @@ Group "RLT/HP Real Life Technologies"
+ PCFileName "hp-laserjet_cp1025nw.ppd"
+ Attribute "Product" "" "(HP LaserJet Pro cp1025nw Color Printer Series)"
+ }
++ {
++ ModelName "HP LaserJet Cp 1025nw"
++ Attribute "NickName" "" "HP LaserJet Cp 1025nw, hpcups $Version, requires proprietary plugin"
++ Attribute "ShortNickName" "" "HP LaserJet Cp 1025nw hpijs"
++ Attribute "1284DeviceID" "" "MFG:Hewlett-Packard;MDL:hp laserjet cp 1025nw;DES:hp laserjet cp 1025nw;"
++ PCFileName "hp-laserjet_cp_1025nw.ppd"
++ Attribute "Product" "" "(HP LaserJet Pro Cp 1025nw Color Printer Series)"
++ }
+ }
+ } // End LJZjsColor (for proprietary plugin)
+
diff --git a/source/ap/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch b/source/ap/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch
new file mode 100644
index 000000000..b001a26b6
--- /dev/null
+++ b/source/ap/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch
@@ -0,0 +1,150 @@
+From: =?utf-8?b?THVib8WhIERvbGXFvmVs?= <lubos@dolezel.info>
+Date: Fri, 22 Jul 2016 09:33:05 +0200
+Subject: Allow non-JPEG scanning on the HP DeskJet 3520 All-in-One and
+ similar devices
+
+LP: #1245578
+---
+ scan/sane/bb_ledm.c | 47 +++++++++++++++++++++++++++++++++++++++++------
+ scan/sane/ledm.c | 12 +++++++-----
+ 2 files changed, 48 insertions(+), 11 deletions(-)
+
+diff --git a/scan/sane/bb_ledm.c b/scan/sane/bb_ledm.c
+index 4b18af8..168a6ab 100644
+--- a/scan/sane/bb_ledm.c
++++ b/scan/sane/bb_ledm.c
+@@ -189,7 +189,7 @@ Keep-Alive: 20\r\nProxy-Connection: keep-alive\r\nCookie: AccessCounter=new\r\n0
+ <YStart>%d</YStart>\
+ <Height>%d</Height>\
+ <Format>%s</Format>\
+-<CompressionQFactor>15</CompressionQFactor>\
++<CompressionQFactor>0</CompressionQFactor>\
+ <ColorSpace>%s</ColorSpace>\
+ <BitDepth>%d</BitDepth>\
+ <InputSource>%s</InputSource>\
+@@ -234,6 +234,38 @@ Keep-Alive: 300\r\nProxy-Connection: keep-alive\r\nCookie: AccessCounter=new\r\n
+ # define JOBSTATE_COMPLETED "<j:JobState>Completed</j:JobState>"
+ # define PRESCANPAGE "<PreScanPage>"
+
++static int parse_status_elements(const char *payload, int size, struct wscn_create_scan_job_response *resp)
++{
++ char tag[512];
++ char value[128];
++ char *tail=(char *)payload;
++
++ while (1)
++ {
++ get_tag(tail, size-(tail-payload), tag, sizeof(tag), &tail);
++
++ if (!tag[0])
++ break;
++
++ if (strncmp(tag, "ImageWidth", 10) == 0)
++ {
++ get_element(tail, size-(tail-payload), value, sizeof(value), &tail);
++ resp->pixels_per_line = strtol(value, NULL, 10);
++ }
++ else if (strncmp(tag, "ImageHeight", 11) == 0)
++ {
++ get_element(tail, size-(tail-payload), value, sizeof(value), &tail);
++ resp->lines = strtol(value, NULL, 10);
++ }
++ else if (strncmp(tag, "BytesPerLine", 12) == 0)
++ {
++ get_element(tail, size-(tail-payload), value, sizeof(value), &tail);
++ resp->bytes_per_line = strtol(value, NULL, 10);
++ }
++ }
++ return 0;
++}
++
+ static int parse_scan_elements(const char *payload, int size, struct wscn_scan_elements *elements)
+ {
+ char tag[512];
+@@ -764,8 +796,7 @@ int bb_get_parameters(struct ledm_session *ps, SANE_Parameters *pp, int option)
+ if (ps->currentCompression == SF_RAW && ps->currentScanMode != CE_GRAY8)
+ {
+ /* Set scan parameters based on scan job response values */
+- //pp->lines = pbb->job.lines;
+- pp->lines = (int)(SANE_UNFIX(ps->effectiveBry - ps->effectiveTly)/MM_PER_INCH*ps->currentResolution);
++ pp->lines = pbb->job.lines;
+ pp->pixels_per_line = pbb->job.pixels_per_line;
+ pp->bytes_per_line = pbb->job.bytes_per_line;
+ }
+@@ -786,8 +817,8 @@ int bb_get_parameters(struct ledm_session *ps, SANE_Parameters *pp, int option)
+ break;
+ case SPO_BEST_GUESS: /* called by xsane & sane_start */
+ /* Set scan parameters based on best guess. */
+- pp->lines = (int)round(SANE_UNFIX(ps->effectiveBry - ps->effectiveTly)/MM_PER_INCH*ps->currentResolution);
+- pp->pixels_per_line = (int)round(SANE_UNFIX(ps->effectiveBrx -ps->effectiveTlx)/MM_PER_INCH*ps->currentResolution);
++ pp->lines = (int)(SANE_UNFIX(ps->effectiveBry - ps->effectiveTly)/MM_PER_INCH*ps->currentResolution);
++ pp->pixels_per_line = ps->image_traits.iPixelsPerRow;
+ pp->bytes_per_line = BYTES_PER_LINE(pp->pixels_per_line, pp->depth * factor);
+ break;
+ default:
+@@ -896,7 +927,7 @@ SANE_Status bb_start_scan(struct ledm_session *ps)
+ (int) ((ps->currentBrx / 5548.7133) - (ps->currentTlx / 5548.7133)),//<Width>
+ (int) (ps->currentTly / 5548.7133),//<YStart>
+ (int) ((ps->currentBry / 5548.7133) - (ps->currentTly / 5548.7133)),//<Height>
+- "Jpeg",//<Format>
++ (ps->currentCompression == SF_RAW) ? "Raw" : "Jpeg", //<Format>
+ (! strcmp(ce_element[ps->currentScanMode], "Color8")) ? "Color" : (! strcmp(ce_element[ps->currentScanMode], "Gray8")) ? "Gray" : "Gray",//<ColorSpace>
+ ((! strcmp(ce_element[ps->currentScanMode], "Color8")) || (! strcmp(ce_element[ps->currentScanMode], "Gray8"))) ? 8: 8,//<BitDepth>
+ ps->currentInputSource == IS_PLATEN ? is_element[1] : is_element[2],//<InputSource>
+@@ -994,6 +1025,7 @@ SANE_Status bb_start_scan(struct ledm_session *ps)
+ _DBG("bb_start_scan() read_http_payload FAILED len=%d buf=%s\n", len, buf);
+ break;
+ }
++
+ //For a new scan, buf must contain <PreScanPage>.
+ if (NULL == strstr(buf,PRESCANPAGE))
+ { //i.e Paper is not present in Scanner
+@@ -1012,6 +1044,9 @@ SANE_Status bb_start_scan(struct ledm_session *ps)
+ stat = SANE_STATUS_GOOD;
+ goto bugout;
+ }
++ // Parse buf here
++ parse_status_elements(buf, len, &pbb->job);
++
+ usleep(500000);//0.5 sec delay
+ }//end while()
+
+diff --git a/scan/sane/ledm.c b/scan/sane/ledm.c
+index ac9d604..a56f534 100644
+--- a/scan/sane/ledm.c
++++ b/scan/sane/ledm.c
+@@ -170,11 +170,11 @@ static int set_scan_mode_side_effects(struct ledm_session *ps, enum COLOR_ENTRY
+ case CE_GRAY8:
+ case CE_COLOR8:
+ default:
+-// ps->compressionList[j] = STR_COMPRESSION_NONE;
+-// ps->compressionMap[j++] = SF_RAW;
++ ps->compressionList[j] = STR_COMPRESSION_NONE;
++ ps->compressionMap[j++] = SF_RAW;
+ ps->compressionList[j] = STR_COMPRESSION_JPEG;
+ ps->compressionMap[j++] = SF_JPEG;
+- ps->currentCompression = SF_JPEG;
++ ps->currentCompression = SF_RAW;
+ ps->option[LEDM_OPTION_JPEG_QUALITY].cap |= SANE_CAP_SOFT_SELECT; /* enable jpeg quality */
+ break;
+ }
+@@ -690,7 +690,7 @@ SANE_Status ledm_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
+ }
+ else
+ { /* Set default. */
+- ps->currentCompression = SF_JPEG;
++ ps->currentCompression = SF_RAW;
+ stat = SANE_STATUS_GOOD;
+ }
+ break;
+@@ -995,7 +995,9 @@ SANE_Status ledm_start(SANE_Handle handle)
+ }
+ }
+ else
+- ipGetImageTraits(ps->ip_handle, NULL, &ps->image_traits); /* get valid image traits */
++ {
++ ipGetOutputTraits(ps->ip_handle, &ps->image_traits); /* get valid image traits */
++ }
+
+ stat = SANE_STATUS_GOOD;
+
diff --git a/source/ap/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch b/source/ap/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
new file mode 100644
index 000000000..f3a8c1732
--- /dev/null
+++ b/source/ap/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
@@ -0,0 +1,29 @@
+From 04b5a1ddac1dd90c5a392f23aaf7df42eae32918 Mon Sep 17 00:00:00 2001
+From: Gaurav Sood <gaurav-sood@invalid-email.launchpad.net>
+Date: Thu, 4 May 2017 18:32:08 +0200
+Subject: Fix handling of unicode filenames in sixext.py
+
+LP: #1480152
+Closes: #861731
+---
+ base/sixext.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/base/sixext.py b/base/sixext.py
+index 0bf4fc4f4..311bf72c6 100644
+--- a/base/sixext.py
++++ b/base/sixext.py
+@@ -110,11 +110,11 @@ if PY3:
+
+
+ def to_string_utf8(s):
+- return s.decode("utf-8")
++ return s.decode("utf-8", 'ignore')
+
+
+ def to_string_latin(s):
+- return s.decode("latin-1")
++ return s.decode("latin-1", 'ignore')
+
+
+ def to_unicode(s, enc=None):
diff --git a/source/ap/hplip/0026-remove-unicode-space-from-models.dat b/source/ap/hplip/0026-remove-unicode-space-from-models.dat
new file mode 100644
index 000000000..67434f3a0
--- /dev/null
+++ b/source/ap/hplip/0026-remove-unicode-space-from-models.dat
@@ -0,0 +1,11 @@
+--- ./data/models/models.dat.orig 2023-11-27 09:06:40.000000000 -0600
++++ ./data/models/models.dat 2024-04-28 14:03:19.702517817 -0500
+@@ -77629,7 +77629,7 @@
+ io-support=14
+ job-storage=0
+ linefeed-cal-type=0
+-model1=HP Color LaserJet Enterprise MFP X58045dn 
++model1=HP Color LaserJet Enterprise MFP X58045dn
+ model2=HP Color LaserJet Enterprise MFP X58045
+ monitor-type=0
+ panel-check-type=0
diff --git a/source/ap/hplip/hplip-covscan.patch b/source/ap/hplip/hplip-covscan.patch
new file mode 100644
index 000000000..6c8858165
--- /dev/null
+++ b/source/ap/hplip/hplip-covscan.patch
@@ -0,0 +1,615 @@
+diff -up hplip-3.23.3/common/utils.c.covscan hplip-3.23.3/common/utils.c
+--- hplip-3.23.3/common/utils.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/common/utils.c 2023-05-29 13:58:10.969395214 +0200
+@@ -1,5 +1,9 @@
++#ifndef _GNU_SOURCE
++#define _GNU_SOURCE
++#endif
++
+ #include "utils.h"
+-#include "string.h"
++#include <string.h>
+ #include <dlfcn.h>
+ #include <sys/stat.h>
+ #include <errno.h>
+diff -up hplip-3.23.3/io/hpmud/hpmud.c.covscan hplip-3.23.3/io/hpmud/hpmud.c
+--- hplip-3.23.3/io/hpmud/hpmud.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/io/hpmud/hpmud.c 2023-05-29 13:58:10.970395208 +0200
+@@ -759,6 +759,7 @@ enum HPMUD_RESULT hpmud_get_dstat(HPMUD_
+ }
+
+ strncpy(ds->uri, msp->device[dd].uri, sizeof(ds->uri));
++ ds->uri[sizeof(ds->uri)-1] = '\0';
+ ds->io_mode = msp->device[dd].io_mode;
+ ds->channel_cnt = msp->device[dd].channel_cnt;
+ ds->mlc_up = msp->device[dd].mlc_up;
+diff -up hplip-3.23.3/io/hpmud/jd.c.covscan hplip-3.23.3/io/hpmud/jd.c
+--- hplip-3.23.3/io/hpmud/jd.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/io/hpmud/jd.c 2023-05-29 13:58:10.970395208 +0200
+@@ -31,6 +31,7 @@
+ #endif
+
+ #include <signal.h>
++#include <stdlib.h>
+ #include "hpmud.h"
+ #include "hpmudi.h"
+
+diff -up hplip-3.23.3/io/hpmud/model.c.covscan hplip-3.23.3/io/hpmud/model.c
+--- hplip-3.23.3/io/hpmud/model.c.covscan 2023-05-29 13:58:10.958395279 +0200
++++ hplip-3.23.3/io/hpmud/model.c 2023-05-29 13:58:10.970395208 +0200
+@@ -117,6 +117,7 @@ static int ReadConfig()
+ if (rcbuf[0] == '[')
+ {
+ strncpy(section, rcbuf, sizeof(section)); /* found new section */
++ section[sizeof(section)-1] = '\0';
+ continue;
+ }
+
+@@ -125,6 +126,7 @@ static int ReadConfig()
+ if ((strncasecmp(section, "[dirs]", 6) == 0) && (strcasecmp(key, "home") == 0))
+ {
+ strncpy(homedir, value, sizeof(homedir));
++ homedir[sizeof(homedir)-1] = '\0';
+ break; /* done */
+ }
+ }
+diff -up hplip-3.23.3/io/hpmud/musb.c.covscan hplip-3.23.3/io/hpmud/musb.c
+--- hplip-3.23.3/io/hpmud/musb.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/io/hpmud/musb.c 2023-05-29 13:58:10.970395208 +0200
+@@ -776,7 +776,7 @@ static int device_id(int fd, unsigned ch
+ len = size-1; /* leave byte for zero termination */
+ if (len > 2)
+ len -= 2;
+- memcpy(buffer, buffer+2, len); /* remove length */
++ memmove(buffer, buffer+2, len); /* remove length */
+ buffer[len]=0;
+ DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
+
+diff -up hplip-3.23.3/io/hpmud/pp.c.covscan hplip-3.23.3/io/hpmud/pp.c
+--- hplip-3.23.3/io/hpmud/pp.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/io/hpmud/pp.c 2023-05-29 13:58:10.970395208 +0200
+@@ -632,7 +632,7 @@ static int device_id(int fd, char *buffe
+ len = size-1; /* leave byte for zero termination */
+ if (len > 2)
+ len -= 2;
+- memcpy(buffer, buffer+2, len); /* remove length */
++ memmove(buffer, buffer+2, len); /* remove length */
+ buffer[len]=0;
+
+ DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
+diff -up hplip-3.23.3/Makefile.am.covscan hplip-3.23.3/Makefile.am
+--- hplip-3.23.3/Makefile.am.covscan 2023-05-29 13:58:10.944395361 +0200
++++ hplip-3.23.3/Makefile.am 2023-05-29 13:58:10.969395214 +0200
+@@ -3,7 +3,7 @@
+ #
+ # (c) 2004-2015 Copyright HP Development Company, LP
+ # Author: David Suffield, Naga Samrat Chowdary Narla, Sarbeswar Meher
+-INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/
++INCLUDES = -Iip -Iio/hpmud -Iscan/sane -Iprnt/hpijs -Icommon/ -Iprotocol
+ CFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
+ CXXFLAGS+= -DCONFDIR=\"$(hplip_confdir)\"
+
+@@ -310,7 +310,7 @@ dist_pcard_DATA = pcard/__init__.py pcar
+ pcardextdir = $(pyexecdir)
+ pcardext_LTLIBRARIES = pcardext.la
+ pcardext_la_LDFLAGS = -module -avoid-version
+-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c
++pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
+ pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
+
+ # prnt
+@@ -322,7 +322,7 @@ lib_LTLIBRARIES += libhpipp.la
+ #hpipp_LTLIBRARIES = hpipp.la
+ #hpipp_la_LDFLAGS = -module -avoid-version
+ libhpipp_la_SOURCES = protocol/hp_ipp.c protocol/hp_ipp.h protocol/hp_ipp_i.h
+-libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\"
++libhpipp_la_CFLAGS = -DCONFDIR=\"$(hplip_confdir)\" -D_GNU_SOURCE
+ libhpipp_la_LDFLAGS = -version-info 0:1:0
+ libhpipp_la_LIBADD = libhpmud.la
+
+diff -up hplip-3.23.3/pcard/fat.c.covscan hplip-3.23.3/pcard/fat.c
+--- hplip-3.23.3/pcard/fat.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/pcard/fat.c 2023-05-29 13:58:10.971395203 +0200
+@@ -519,14 +519,17 @@ int FatFreeSpace(void)
+
+ int FatDiskAttributes( PHOTO_CARD_ATTRIBUTES * pa )
+ {
+- strncpy( pa->OEMID, bpb.OEMID, 8 );
++ strncpy(pa->OEMID, bpb.OEMID, sizeof(pa->OEMID));
++ pa->OEMID[sizeof(pa->OEMID)-1] = '\0';
+ pa->BytesPerSector = bpb.BytesPerSector;
+ pa->SectorsPerCluster = bpb.SectorsPerCluster;
+ pa->ReservedSectors = bpb.ReservedSectors;
+ pa->SectorsPerFat = bpb.SectorsPerFat;
+ pa->RootEntries = bpb.RootEntries;
+- strncpy( pa->SystemID, (char *)bpb.SystemID, 8 );
+- strncpy( pa->VolumeLabel, (char *)bpb.VolumeLabel, 11 );
++ strncpy(pa->SystemID, (char *)bpb.SystemID, sizeof(pa->SystemID));
++ pa->SystemID[sizeof(pa->SystemID)-1] = '\0';
++ strncpy(pa->VolumeLabel, (char *)bpb.VolumeLabel, sizeof(pa->VolumeLabel));
++ pa->VolumeLabel[sizeof(pa->VolumeLabel)-1] = '\0';
+ pa->WriteProtect = da.WriteProtect;
+
+ return 0;
+@@ -741,6 +744,7 @@ int FatSetCWD(char *dir)
+ return 1;
+
+ strncpy(cwd.Name, fa.Name, sizeof(cwd.Name));
++ cwd.Name[sizeof(cwd.Name)-1] = '\0';
+ cwd.StartSector = ConvertClusterToSector(fa.StartCluster);
+ cwd.CurrSector = cwd.StartSector;
+ cwd.StartCluster = fa.StartCluster;
+diff -up hplip-3.23.3/prnt/hpijs/context2.cpp.covscan hplip-3.23.3/prnt/hpijs/context2.cpp
+--- hplip-3.23.3/prnt/hpijs/context2.cpp.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/prnt/hpijs/context2.cpp 2023-05-29 13:58:10.971395203 +0200
+@@ -1302,6 +1302,7 @@ DRIVER_ERROR PrintContext::SelectDevice
+ if(0 == strnlen((const char *)pSS->strDevID, DevIDBuffSize))
+ {
+ strncpy((char *)pSS->strDevID,szDeviceId,DevIDBuffSize);
++ pSS->strDevID[sizeof(pSS->strDevID)-1] = '\0';
+ }
+ thePrinter = pPFI->CreatePrinter (pSS, familyHandle);
+ if (thePrinter->constructor_error != NO_ERROR)
+diff -up hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan hplip-3.23.3/prnt/hpijs/systemservices.cpp
+--- hplip-3.23.3/prnt/hpijs/systemservices.cpp.covscan 2023-03-28 09:26:27.000000000 +0200
++++ hplip-3.23.3/prnt/hpijs/systemservices.cpp 2023-05-29 13:58:10.971395203 +0200
+@@ -396,7 +396,10 @@ void SystemServices::AdjustIO(IO_MODE IM
+ IOMode.bDevID =IM.bDevID && IOMode.bDevID;
+
+ if (model)
++ {
+ strncpy(strModel,model, sizeof(strModel));
++ strModel[sizeof(strModel)-1] = '\0';
++ }
+ }
+
+ APDK_END_NAMESPACE
+diff -up hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan hplip-3.23.3/prnt/hpps/hppsfilter.c
+--- hplip-3.23.3/prnt/hpps/hppsfilter.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/prnt/hpps/hppsfilter.c 2023-05-29 13:58:10.972395197 +0200
+@@ -274,13 +274,13 @@ static void WriteHeader(char **argument)
+ /* Writing Header Information
+ argument[1] = JOB ID , argument[2]= USERNAME, argument[3] = TITLE */
+ hpwrite("\x1b%-12345X@PJL JOBNAME=", strlen("\x1b%-12345X@PJL JOBNAME="));
+- sprintf(buffer, "hplip_%s_%s\x0a", argument[2], argument[1]);
++ snprintf(buffer, MAX_BUFFER-1, "hplip_%s_%s\x0a", argument[2], argument[1]);
+ hpwrite(buffer, strlen(buffer));
+ memset(buffer, 0, sizeof(buffer));
+- sprintf(buffer, "@PJL SET USERNAME=\"%s\"\x0a", argument[2]);
++ snprintf(buffer, MAX_BUFFER-1, "@PJL SET USERNAME=\"%s\"\x0a", argument[2]);
+ hpwrite(buffer, strlen(buffer));
+ memset(buffer, 0, sizeof(buffer));
+- sprintf(buffer, "@PJL SET JOBNAME=\"%s\"\x0a", argument[3]);
++ snprintf(buffer, MAX_BUFFER-1, "@PJL SET JOBNAME=\"%s\"\x0a", argument[3]);
+ hpwrite(buffer, strlen(buffer));
+ fprintf(stderr, "HP PS filter func = WriteHeader : WRITING PJL HEADER INFO\n");
+ return;
+diff -up hplip-3.23.3/protocol/hp_ipp.h.covscan hplip-3.23.3/protocol/hp_ipp.h
+--- hplip-3.23.3/protocol/hp_ipp.h.covscan 2023-05-29 13:58:10.972395197 +0200
++++ hplip-3.23.3/protocol/hp_ipp.h 2023-05-29 13:59:03.645085468 +0200
+@@ -168,6 +168,11 @@ HPIPP_RESULT parseResponseHeader(char* h
+ HPIPP_RESULT prepend_http_header(raw_ipp *raw_request,const char *resource);
+ enum HPMUD_RESULT sendUSBRequest(char *buf, int size, raw_ipp *responseptr, char * device_uri);
+ enum HPMUD_RESULT sendUSBFileRequest(char *buf, int size, int fileHandle,raw_ipp *responseptr, char *device_uri);
++void _releaseCupsInstance();
++int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, char *model, char *info);
++int delCupsPrinter(char *pr_name);
++int setDefaultCupsPrinter(char *pr_name);
++int controlCupsPrinter(char *pr_name, int op);
+
+ ipp_t * createFaxDetailRequest(const char *printer_name);
+ ipp_t * getDeviceFaxModemAttributes(char* device_uri,char* printer_name, int *count);
+diff -up hplip-3.23.3/scan/sane/bb_ledm.c.covscan hplip-3.23.3/scan/sane/bb_ledm.c
+--- hplip-3.23.3/scan/sane/bb_ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/bb_ledm.c 2023-05-29 13:58:10.972395197 +0200
+@@ -26,6 +26,7 @@
+ # include "http.h"
+ # include "xml.h"
+ # include <stdlib.h>
++# include <unistd.h>
+
+ # include <stdint.h>
+
+diff -up hplip-3.23.3/scan/sane/common.h.covscan hplip-3.23.3/scan/sane/common.h
+--- hplip-3.23.3/scan/sane/common.h.covscan 2023-05-29 13:58:10.727396637 +0200
++++ hplip-3.23.3/scan/sane/common.h 2023-05-29 13:58:10.972395197 +0200
+@@ -36,7 +36,7 @@
+ #define _STRINGIZE(x) #x
+ #define STRINGIZE(x) _STRINGIZE(x)
+
+-#define BUG(args...) {syslog(LOG_ERR, __FILE__ " " STRINGIZE(__LINE__) ": " args); DBG(2, __FILE__ " " STRINGIZE(__LINE__) ": " args);}
++#define BUG_SCAN(args...) {syslog(LOG_ERR, __FILE__ " " STRINGIZE(__LINE__) ": " args); DBG(2, __FILE__ " " STRINGIZE(__LINE__) ": " args);}
+ #define BUG_DUMP(data, size) bugdump((data), (size))
+ #define BUG_SZ(args...) {syslog(LOG_ERR, args); DBG(2, args);}
+
+diff -up hplip-3.23.3/scan/sane/escl.c.covscan hplip-3.23.3/scan/sane/escl.c
+--- hplip-3.23.3/scan/sane/escl.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/escl.c 2023-05-29 13:58:10.972395197 +0200
+@@ -849,7 +849,7 @@ SANE_Status escl_control_option(SANE_Han
+ //DBG8("escl_control_option (option=%s) action=%d\n", ps->option[option].name, action);
+ if (stat != SANE_STATUS_GOOD)
+ {
+- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
++ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ }
+
+ return stat;
+@@ -1159,7 +1159,7 @@ void escl_close(SANE_Handle handle)
+
+ if (ps == NULL || ps != session)
+ {
+- BUG("invalid sane_close\n");
++ BUG_SCAN("invalid sane_close\n");
+ return;
+ }
+
+diff -up hplip-3.23.3/scan/sane/http.c.covscan hplip-3.23.3/scan/sane/http.c
+--- hplip-3.23.3/scan/sane/http.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/http.c 2023-05-29 13:58:10.973395191 +0200
+@@ -36,6 +36,7 @@
+ #include <string.h>
+ #include <syslog.h>
+ #include <ctype.h>
++#include <unistd.h>
+ #include "hpmud.h"
+ #include "http.h"
+
+diff -up hplip-3.23.3/scan/sane/io.c.covscan hplip-3.23.3/scan/sane/io.c
+--- hplip-3.23.3/scan/sane/io.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/io.c 2023-05-29 13:58:10.973395191 +0200
+@@ -50,7 +50,7 @@ int __attribute__ ((visibility ("hidden"
+
+ if (dbus_error_is_set(&dbus_err))
+ {
+- BUG("dBus Connection Error (%s)!\n", dbus_err.message);
++ BUG_SCAN("dBus Connection Error (%s)!\n", dbus_err.message);
+ dbus_error_free(&dbus_err);
+ }
+
+@@ -79,7 +79,7 @@ int __attribute__ ((visibility ("hidden"
+
+ if (NULL == msg)
+ {
+- BUG("dbus message is NULL!\n");
++ BUG_SCAN("dbus message is NULL!\n");
+ return 0;
+ }
+
+@@ -94,7 +94,7 @@ int __attribute__ ((visibility ("hidden"
+
+ if (!dbus_connection_send(dbus_conn, msg, NULL))
+ {
+- BUG("dbus message send failed!\n");
++ BUG_SCAN("dbus message send failed!\n");
+ return 0;
+ }
+
+diff -up hplip-3.23.3/scan/sane/ledm.c.covscan hplip-3.23.3/scan/sane/ledm.c
+--- hplip-3.23.3/scan/sane/ledm.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/ledm.c 2023-05-29 13:58:10.973395191 +0200
+@@ -813,7 +813,7 @@ SANE_Status ledm_control_option(SANE_Han
+
+ if (stat != SANE_STATUS_GOOD)
+ {
+- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
++ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name, action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ }
+
+ return stat;
+@@ -1078,7 +1078,7 @@ void ledm_close(SANE_Handle handle)
+
+ if (ps == NULL || ps != session)
+ {
+- BUG("invalid sane_close\n");
++ BUG_SCAN("invalid sane_close\n");
+ return;
+ }
+
+diff -up hplip-3.23.3/scan/sane/marvell.c.covscan hplip-3.23.3/scan/sane/marvell.c
+--- hplip-3.23.3/scan/sane/marvell.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/marvell.c 2023-05-29 13:58:10.976395173 +0200
+@@ -134,7 +134,7 @@ static int get_ip_data(struct marvell_se
+
+ if (!ps->ip_handle)
+ {
+- BUG("invalid ipconvert state\n");
++ BUG_SCAN("invalid ipconvert state\n");
+ goto bugout;
+ }
+
+@@ -335,7 +335,7 @@ static struct marvell_session *create_se
+
+ if ((ps = malloc(sizeof(struct marvell_session))) == NULL)
+ {
+- BUG("malloc failed: %m\n");
++ BUG_SCAN("malloc failed: %m\n");
+ return NULL;
+ }
+ memset(ps, 0, sizeof(struct marvell_session));
+@@ -402,7 +402,7 @@ SANE_Status marvell_open(SANE_String_Con
+
+ if (session)
+ {
+- BUG("session in use\n");
++ BUG_SCAN("session in use\n");
+ return SANE_STATUS_DEVICE_BUSY;
+ }
+
+@@ -431,7 +431,7 @@ SANE_Status marvell_open(SANE_String_Con
+
+ if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
+ {
+- BUG("unable to open device %s\n", session->uri);
++ BUG_SCAN("unable to open device %s\n", session->uri);
+ goto bugout;
+
+ free(session);
+@@ -441,7 +441,7 @@ SANE_Status marvell_open(SANE_String_Con
+
+ if (hpmud_open_channel(session->dd, HPMUD_S_MARVELL_SCAN_CHANNEL, &session->cd) != HPMUD_R_OK)
+ {
+- BUG("unable to open %s channel %s\n", HPMUD_S_MARVELL_SCAN_CHANNEL, session->uri);
++ BUG_SCAN("unable to open %s channel %s\n", HPMUD_S_MARVELL_SCAN_CHANNEL, session->uri);
+ stat = SANE_STATUS_DEVICE_BUSY;
+ goto bugout;
+ }
+@@ -554,7 +554,7 @@ void marvell_close(SANE_Handle handle)
+
+ if (ps == NULL || ps != session)
+ {
+- BUG("invalid sane_close\n");
++ BUG_SCAN("invalid sane_close\n");
+ return;
+ }
+
+@@ -849,7 +849,7 @@ SANE_Status marvell_control_option(SANE_
+ stat = SANE_STATUS_GOOD;
+ break;
+ }
+- BUG("value=%d brymin=%d brymax=%d\n", *int_value, ps->bryRange.min, ps->bryRange.max);
++ BUG_SCAN("value=%d brymin=%d brymax=%d\n", *int_value, ps->bryRange.min, ps->bryRange.max);
+ }
+ else
+ { /* Set default. */
+@@ -866,7 +866,7 @@ SANE_Status marvell_control_option(SANE_
+
+ if (stat != SANE_STATUS_GOOD)
+ {
+- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
++ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
+ action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ }
+
+@@ -905,7 +905,7 @@ SANE_Status marvell_start(SANE_Handle ha
+
+ if (set_extents(ps))
+ {
+- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
++ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
+ ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
+ stat = SANE_STATUS_INVAL;
+ goto bugout;
+@@ -963,7 +963,7 @@ SANE_Status marvell_start(SANE_Handle ha
+ /* Open image processor. */
+ if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
+ {
+- BUG("unable open image processor: err=%d\n", ret);
++ BUG_SCAN("unable open image processor: err=%d\n", ret);
+ stat = SANE_STATUS_INVAL;
+ goto bugout;
+ }
+@@ -1023,7 +1023,7 @@ SANE_Status marvell_read(SANE_Handle han
+
+ if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
+ {
+- BUG("ipConvert error=%x\n", ret);
++ BUG_SCAN("ipConvert error=%x\n", ret);
+ goto bugout;
+ }
+
+diff -up hplip-3.23.3/scan/sane/sclpml.c.covscan hplip-3.23.3/scan/sane/sclpml.c
+--- hplip-3.23.3/scan/sane/sclpml.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/sclpml.c 2023-05-29 13:58:10.976395173 +0200
+@@ -30,6 +30,7 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <string.h>
++#include <sys/time.h>
+ #include "sane.h"
+ #include "saneopts.h"
+ #include "common.h"
+@@ -2090,7 +2091,7 @@ void sclpml_close(SANE_Handle handle)
+ DBG(8, "sane_hpaio_close(): %s %d\n", __FILE__, __LINE__);
+ if (hpaio == NULL || hpaio != session)
+ {
+- BUG("invalid sane_close\n");
++ BUG_SCAN("invalid sane_close\n");
+ return;
+ }
+
+diff -up hplip-3.23.3/scan/sane/soap.c.covscan hplip-3.23.3/scan/sane/soap.c
+--- hplip-3.23.3/scan/sane/soap.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/soap.c 2023-05-29 13:58:10.977395167 +0200
+@@ -142,7 +142,7 @@ static int get_ip_data(struct soap_sessi
+
+ if (!ps->ip_handle)
+ {
+- BUG("invalid ipconvert state\n");
++ BUG_SCAN("invalid ipconvert state\n");
+ goto bugout;
+ }
+
+@@ -219,7 +219,7 @@ static struct soap_session *create_sessi
+
+ if ((ps = malloc(sizeof(struct soap_session))) == NULL)
+ {
+- BUG("malloc failed: %m\n");
++ BUG_SCAN("malloc failed: %m\n");
+ return NULL;
+ }
+ memset(ps, 0, sizeof(struct soap_session));
+@@ -418,7 +418,7 @@ SANE_Status soap_open(SANE_String_Const
+
+ if (session)
+ {
+- BUG("session in use\n");
++ BUG_SCAN("session in use\n");
+ return SANE_STATUS_DEVICE_BUSY;
+ }
+
+@@ -434,7 +434,7 @@ SANE_Status soap_open(SANE_String_Const
+
+ if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
+ {
+- BUG("unable to open device %s\n", session->uri);
++ BUG_SCAN("unable to open device %s\n", session->uri);
+ goto bugout;
+
+ free(session);
+@@ -519,7 +519,7 @@ void soap_close(SANE_Handle handle)
+
+ if (ps == NULL || ps != session)
+ {
+- BUG("invalid sane_close\n");
++ BUG_SCAN("invalid sane_close\n");
+ return;
+ }
+
+@@ -824,7 +824,7 @@ SANE_Status soap_control_option(SANE_Han
+
+ if (stat != SANE_STATUS_GOOD)
+ {
+- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
++ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
+ action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ }
+
+@@ -862,7 +862,7 @@ SANE_Status soap_start(SANE_Handle handl
+ ps->user_cancel = 0;
+ if (set_extents(ps))
+ {
+- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
++ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
+ ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
+ stat = SANE_STATUS_INVAL;
+ goto bugout;
+@@ -913,7 +913,7 @@ SANE_Status soap_start(SANE_Handle handl
+ /* Open image processor. */
+ if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
+ {
+- BUG("unable open image processor: err=%d\n", ret);
++ BUG_SCAN("unable open image processor: err=%d\n", ret);
+ stat = SANE_STATUS_INVAL;
+ goto bugout;
+ }
+@@ -955,7 +955,7 @@ SANE_Status soap_start(SANE_Handle handl
+
+ if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
+ {
+- BUG("ipConvert error=%x\n", ret);
++ BUG_SCAN("ipConvert error=%x\n", ret);
+ stat = SANE_STATUS_IO_ERROR;
+ goto bugout;
+ }
+@@ -1007,7 +1007,7 @@ SANE_Status soap_read(SANE_Handle handle
+
+ if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
+ {
+- BUG("ipConvert error=%x\n", ret);
++ BUG_SCAN("ipConvert error=%x\n", ret);
+ goto bugout;
+ }
+
+diff -up hplip-3.23.3/scan/sane/soapht.c.covscan hplip-3.23.3/scan/sane/soapht.c
+--- hplip-3.23.3/scan/sane/soapht.c.covscan 2023-03-28 09:26:11.000000000 +0200
++++ hplip-3.23.3/scan/sane/soapht.c 2023-05-29 13:58:10.977395167 +0200
+@@ -136,7 +136,7 @@ static int get_ip_data(struct soap_sessi
+
+ if (!ps->ip_handle)
+ {
+- BUG("invalid ipconvert state\n");
++ BUG_SCAN("invalid ipconvert state\n");
+ goto bugout;
+ }
+
+@@ -435,7 +435,7 @@ static struct soap_session *create_sessi
+
+ if ((ps = malloc(sizeof(struct soap_session))) == NULL)
+ {
+- BUG("malloc failed: %m\n");
++ BUG_SCAN("malloc failed: %m\n");
+ return NULL;
+ }
+ memset(ps, 0, sizeof(struct soap_session));
+@@ -459,7 +459,7 @@ SANE_Status soapht_open(SANE_String_Cons
+
+ if (session)
+ {
+- BUG("session in use\n");
++ BUG_SCAN("session in use\n");
+ return SANE_STATUS_DEVICE_BUSY;
+ }
+
+@@ -475,7 +475,7 @@ SANE_Status soapht_open(SANE_String_Cons
+
+ if (hpmud_open_device(session->uri, ma.mfp_mode, &session->dd) != HPMUD_R_OK)
+ {
+- BUG("unable to open device %s\n", session->uri);
++ BUG_SCAN("unable to open device %s\n", session->uri);
+ goto bugout;
+
+ free(session);
+@@ -554,7 +554,7 @@ void soapht_close(SANE_Handle handle)
+
+ if (ps == NULL || ps != session)
+ {
+- BUG("invalid sane_close\n");
++ BUG_SCAN("invalid sane_close\n");
+ return;
+ }
+
+@@ -904,7 +904,7 @@ SANE_Status soapht_control_option(SANE_H
+
+ if (stat != SANE_STATUS_GOOD)
+ {
+- BUG("control_option failed: option=%s action=%s\n", ps->option[option].name,
++ BUG_SCAN("control_option failed: option=%s action=%s\n", ps->option[option].name,
+ action==SANE_ACTION_GET_VALUE ? "get" : action==SANE_ACTION_SET_VALUE ? "set" : "auto");
+ }
+
+@@ -946,7 +946,7 @@ SANE_Status soapht_start(SANE_Handle han
+
+ if (set_extents(ps))
+ {
+- BUG("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
++ BUG_SCAN("invalid extents: tlx=%d brx=%d tly=%d bry=%d minwidth=%d minheight%d maxwidth=%d maxheight=%d\n",
+ ps->currentTlx, ps->currentTly, ps->currentBrx, ps->currentBry, ps->min_width, ps->min_height, ps->tlxRange.max, ps->tlyRange.max);
+ stat = SANE_STATUS_INVAL;
+ goto bugout;
+@@ -1032,7 +1032,7 @@ SANE_Status soapht_start(SANE_Handle han
+ /* Open image processor. */
+ if ((ret = ipOpen(pXform-xforms, xforms, 0, &ps->ip_handle)) != IP_DONE)
+ {
+- BUG("unable open image processor: err=%d\n", ret);
++ BUG_SCAN("unable open image processor: err=%d\n", ret);
+ stat = SANE_STATUS_INVAL;
+ goto bugout;
+ }
+@@ -1075,7 +1075,7 @@ SANE_Status soapht_start(SANE_Handle han
+
+ if (ret & (IP_INPUT_ERROR | IP_FATAL_ERROR | IP_DONE))
+ {
+- BUG("ipConvert error=%x\n", ret);
++ BUG_SCAN("ipConvert error=%x\n", ret);
+ stat = SANE_STATUS_IO_ERROR;
+ goto bugout;
+ }
+@@ -1124,7 +1124,7 @@ SANE_Status soapht_read(SANE_Handle hand
+
+ if(ret & (IP_INPUT_ERROR | IP_FATAL_ERROR))
+ {
+- BUG("ipConvert error=%x\n", ret);
++ BUG_SCAN("ipConvert error=%x\n", ret);
+ goto bugout;
+ }
+
diff --git a/source/ap/hplip/hplip-hpaio-gcc14.patch b/source/ap/hplip/hplip-hpaio-gcc14.patch
new file mode 100644
index 000000000..f7d195ed1
--- /dev/null
+++ b/source/ap/hplip/hplip-hpaio-gcc14.patch
@@ -0,0 +1,114 @@
+diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
+index 57d1dde..3475929 100644
+--- a/scan/sane/hpaio.c
++++ b/scan/sane/hpaio.c
+@@ -379,7 +379,7 @@ extern SANE_Status sane_hpaio_get_devices(const SANE_Device ***deviceList, SANE_
+ ResetDeviceList(&DeviceList);
+ DevDiscovery(localOnly);
+ *deviceList = (const SANE_Device **)DeviceList;
+- SANE_Device*** devList;
++ const SANE_Device*** devList;
+ orblite_get_devices(devList, localOnly);
+
+ return SANE_STATUS_GOOD;
+diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
+index 2eb7aba..4eaa468 100644
+--- a/scan/sane/orblite.c
++++ b/scan/sane/orblite.c
+@@ -64,28 +64,28 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
+ SANE_NAME_SCAN_TL_X, SANE_TITLE_SCAN_TL_X, SANE_DESC_SCAN_TL_X, // name, title, desc
+ SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeLeft // constraint_type, constraint
+ },
+
+ {
+ SANE_NAME_SCAN_TL_Y, SANE_TITLE_SCAN_TL_Y, SANE_DESC_SCAN_TL_Y, // name, title, desc
+ SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeTop // constraint_type, constraint
++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeTop // constraint_type, constraint
+ },
+
+ {
+ SANE_NAME_SCAN_BR_X, SANE_TITLE_SCAN_BR_X, SANE_DESC_SCAN_BR_X, // name, title, desc
+ SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeRight // constraint_type, constraint
++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeRight // constraint_type, constraint
+ },
+
+ {
+ SANE_NAME_SCAN_BR_Y, SANE_TITLE_SCAN_BR_Y, SANE_DESC_SCAN_BR_Y, // name, title, desc
+ SANE_TYPE_FIXED, SANE_UNIT_MM, sizeof(SANE_Fixed),// type, unit, size
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_RANGE, (SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
++ SANE_CONSTRAINT_RANGE, (const SANE_Char**)&SANE_rangeBottom // constraint_type, constraint
+ },
+
+ // optResolution, // resolution group
+@@ -93,7 +93,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
+ SANE_NAME_SCAN_RESOLUTION, SANE_TITLE_SCAN_RESOLUTION, SANE_DESC_SCAN_RESOLUTION, // name, title, desc
+ SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
++ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
+ },
+
+ // optMode, // color/depth group
+@@ -101,7 +101,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
+ SANE_NAME_SCAN_MODE, SANE_TITLE_SCAN_MODE, SANE_DESC_SCAN_MODE, // name, title, desc
+ SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_modes // constraint type, constraint
++ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_modes // constraint type, constraint
+ },
+
+ // optSource,
+@@ -109,7 +109,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
+ SANE_NAME_SCAN_SOURCE, SANE_TITLE_SCAN_SOURCE, SANE_DESC_SCAN_SOURCE, // name, title, desc
+ SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_sources // constraint type, constraint
++ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_sources // constraint type, constraint
+ },
+
+ // optPaperSize,
+@@ -117,7 +117,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
+ SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
+ SANE_TYPE_STRING, SANE_UNIT_NONE, 256, // type, unit, size,
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_STRING_LIST, (SANE_Char**)SANE_paper_sizes // constraint type, constraint
++ SANE_CONSTRAINT_STRING_LIST, (const SANE_Char**)SANE_paper_sizes // constraint type, constraint
+ },
+
+ // optPaperSize,
+@@ -125,7 +125,7 @@ SANE_Option_Descriptor DefaultOrbOptions[] = {
+ SANE_NAME_PAPER_SIZE, SANE_TITLE_PAPER_SIZE, SANE_DESC_PAPER_SIZE, // name, title, desc
+ SANE_TYPE_INT, SANE_UNIT_DPI, sizeof(SANE_Word), // type, unit, size,
+ SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT, // cap(ability)
+- SANE_CONSTRAINT_WORD_LIST, (SANE_Char**)SANE_resolutions // constraint type, constraint
++ SANE_CONSTRAINT_WORD_LIST, (const SANE_Char**)SANE_resolutions // constraint type, constraint
+ },
+ #ifdef NOTDEF
+ // default template
+@@ -274,6 +274,7 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
+ SANE_Auth_Callback authorize;
+ const SANE_Device *** device_list;
+ SANE_Bool local_only;
++ void * temp_handle;
+
+
+ // Allocate handle, set all handle values to zero
+@@ -305,7 +306,9 @@ orblite_open (SANE_String_Const devicename, SANE_Handle * handle)
+ if (stat != SANE_STATUS_GOOD)
+ return stat;
+
+- stat = g_handle->bb_orblite_open(devicename, &g_handle);
++ temp_handle = g_handle;
++ stat = g_handle->bb_orblite_open(devicename, &temp_handle);
++ g_handle = temp_handle;
+ if (stat == SANE_STATUS_GOOD)
+ *handle = g_handle;
+
diff --git a/source/ap/hplip/hplip-pcardext-disable.patch b/source/ap/hplip/hplip-pcardext-disable.patch
new file mode 100644
index 000000000..c16fb5a25
--- /dev/null
+++ b/source/ap/hplip/hplip-pcardext-disable.patch
@@ -0,0 +1,16 @@
+--- ./Makefile.am.orig 2024-05-10 18:14:51.431337550 -0500
++++ ./Makefile.am 2024-05-10 18:15:37.078338571 -0500
+@@ -306,13 +306,6 @@
+ pcarddir = $(hplipdir)/pcard
+ dist_pcard_DATA = pcard/__init__.py pcard/photocard.py
+
+-# pcardext
+-pcardextdir = $(pyexecdir)
+-pcardext_LTLIBRARIES = pcardext.la
+-pcardext_la_LDFLAGS = -module -avoid-version
+-pcardext_la_SOURCES = pcard/pcardext/pcardext.c pcard/fat.c pcard/pcardext/pcardext.h
+-pcardext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
+-
+ # prnt
+ prntdir = $(hplipdir)/prnt
+ dist_prnt_DATA = prnt/cups.py prnt/__init__.py prnt/ldl.py prnt/pcl.py prnt/colorcal.py
diff --git a/source/ap/hplip/hplip-pserror-c99.patch b/source/ap/hplip/hplip-pserror-c99.patch
new file mode 100644
index 000000000..747af3abf
--- /dev/null
+++ b/source/ap/hplip/hplip-pserror-c99.patch
@@ -0,0 +1,17 @@
+prnt/pserror.c: Replace an implicit int with an explicit int
+
+Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
+
+diff --git a/prnt/hpps/pserror.c b/prnt/hpps/pserror.c
+index 114d7e1b5fa364fb..493b49c27917a7e6 100644
+--- a/prnt/hpps/pserror.c
++++ b/prnt/hpps/pserror.c
+@@ -24,7 +24,7 @@ extern char *program ; /* Defined by main program, giving program name */
+ void message(int flags, char *format, ...)
+ {
+ va_list args ;
+- static column = 0 ; /* current screen column for message wrap */
++ static int column = 0 ; /* current screen column for message wrap */
+ char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
+ char *bufptr = msgbuf ; /* message buffer pointer */
+
diff --git a/source/ap/hplip/hplip-scan-hpaio-include.patch b/source/ap/hplip/hplip-scan-hpaio-include.patch
new file mode 100644
index 000000000..79d1d94b7
--- /dev/null
+++ b/source/ap/hplip/hplip-scan-hpaio-include.patch
@@ -0,0 +1,19 @@
+scam/sane/hpaio.c: Include orblite.h for more function prototypes
+
+Otherwise the build fails with compilers which do not support
+implicit function declarations.
+
+Submitted upstream: <https://bugs.launchpad.net/hplip/+bug/1997875>
+
+diff --git a/scan/sane/hpaio.c b/scan/sane/hpaio.c
+index d342626822fc2190..57d1ddea32fb5816 100644
+--- a/scan/sane/hpaio.c
++++ b/scan/sane/hpaio.c
+@@ -50,6 +50,7 @@
+ #include "sclpml.h"
+ #include "escl.h"
+ #include "io.h"
++#include "orblite.h"
+ #include "orblitei.h"
+
+
diff --git a/source/ap/hplip/hplip-scan-orblite-c99.patch b/source/ap/hplip/hplip-scan-orblite-c99.patch
new file mode 100644
index 000000000..c921f22f1
--- /dev/null
+++ b/source/ap/hplip/hplip-scan-orblite-c99.patch
@@ -0,0 +1,21 @@
+diff --git a/scan/sane/orblite.c b/scan/sane/orblite.c
+index ba86640..2eb7aba 100644
+--- a/scan/sane/orblite.c
++++ b/scan/sane/orblite.c
+@@ -20,6 +20,7 @@
+ #include "orblitei.h"
+ #include "orblite.h"//Added New
+ #include <math.h>
++#include <dlfcn.h>
+ #include "utils.h"
+ #include "io.h"
+
+@@ -195,7 +196,7 @@ bugout:
+
+ static int bb_unload(SANE_THandle ps)
+ {
+- _DBG("Calling orblite bb_unload: \n");
++ DBG("Calling orblite bb_unload: \n");
+ if (ps->bb_handle)
+ {
+ dlclose(ps->bb_handle);
diff --git a/source/ap/hplip/hplip.SlackBuild b/source/ap/hplip/hplip.SlackBuild
index 2d389d5e4..6f3d1f2e5 100755
--- a/source/ap/hplip/hplip.SlackBuild
+++ b/source/ap/hplip/hplip.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=hplip
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -63,6 +63,9 @@ else
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+#SLKCFLAGS="$SLKCFLAGS -Wno-error=implicit-int -Wno-error=incompatible-pointer-types"
+
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
@@ -86,6 +89,16 @@ zcat $CWD/hplip.python3.shebang.diff.gz | patch -p1 --verbose || exit 1
# Fix the desktop file to show correct icon and category
zcat $CWD/fix-desktop-file.patch.gz | patch -p1 --verbose || exit 1
+# GCC 14 fixes:
+cat $CWD/hplip-pserror-c99.patch | patch -p1 --verbose || exit 1
+cat $CWD/hplip-hpaio-gcc14.patch | patch -p1 --verbose || exit 1
+cat $CWD/hplip-covscan.patch | patch -p1 --verbose || exit 1
+cat $CWD/hplip-scan-orblite-c99.patch | patch -p1 --verbose || exit 1
+cat $CWD/hplip-scan-hpaio-include.patch | patch -p1 --verbose || exit 1
+
+# This extension was never ported to python3:
+cat $CWD/hplip-pcardext-disable.patch | patch -p1 --verbose || exit 1
+
# Choose correct options depending on whether PAM is installed:
if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
unset SHADOW_OPTIONS
@@ -117,6 +130,18 @@ zcat $CWD/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch.gz | p
# Add a cups-2.2.x header since some definitions were moved:
zcat $CWD/0021-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch.gz | patch -p1 -l --verbose || exit 1
+# Fix for python3:
+zcat $CWD/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch.gz | patch -p1 --verbose || exit 1
+
+# Add back some printer drivers that were removed upstream:
+zcat $CWD/0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch.gz | patch -p1 --verbose || exit 1
+
+# Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i(n-one and similar):
+zcat $CWD/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch.gz | patch -p1 --verbose || exit 1
+
+# Remove a unicode space character to fix more python3 breakage:
+zcat $CWD/0026-remove-unicode-space-from-models.dat.gz | patch -p1 --verbose || exit 1
+
# autoreconf will fail if these files do not exist:
for file in NEWS README AUTHORS ChangeLog ; do
if [ ! -r $file ]; then
@@ -191,4 +216,3 @@ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/ap/inxi/fetch-inxi.sh b/source/ap/inxi/fetch-inxi.sh
index 2e8025c51..cf75d93f7 100755
--- a/source/ap/inxi/fetch-inxi.sh
+++ b/source/ap/inxi/fetch-inxi.sh
@@ -24,7 +24,7 @@
PKGNAM=inxi
# Pull a stable branch + patches
-BRANCH=${1:-3.3.33-1}
+BRANCH=${1:-3.3.35-1}
# Clear download area:
rm -rf ${PKGNAM}
diff --git a/source/ap/inxi/inxi.SlackBuild b/source/ap/inxi/inxi.SlackBuild
index 4f0bf8bb9..327a8160e 100755
--- a/source/ap/inxi/inxi.SlackBuild
+++ b/source/ap/inxi/inxi.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -51,14 +51,11 @@ PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
diff --git a/source/ap/ispell/ispell.SlackBuild b/source/ap/ispell/ispell.SlackBuild
index eceeb7351..35a2d22ef 100755
--- a/source/ap/ispell/ispell.SlackBuild
+++ b/source/ap/ispell/ispell.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ispell
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/joe/joe.SlackBuild b/source/ap/joe/joe.SlackBuild
index 7c3e9d70a..56b5628fe 100755
--- a/source/ap/joe/joe.SlackBuild
+++ b/source/ap/joe/joe.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=joe
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/jove/jove.SlackBuild b/source/ap/jove/jove.SlackBuild
index e29dc8e76..af64248c6 100755
--- a/source/ap/jove/jove.SlackBuild
+++ b/source/ap/jove/jove.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2017, 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,17 +23,18 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=jove
-VERSION=4.16.0.74
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
- arm*) export ARCH=arm ;;
+ case "$(uname -m)" in
+ i?86) ARCH=i586 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) ARCH=$(uname -m) ;;
esac
+ export ARCH
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
@@ -44,32 +45,47 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
-NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
TMP=${TMP:-/tmp}
-PKG=$TMP/package-jove
+PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf jove$VERSION
-tar xvf $CWD/jove$VERSION.tar.?z* || exit 1
-cd jove$VERSION || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+# Fix install prefix:
+sed -i "s|JOVEHOME = /usr/local|JOVEHOME = /usr|g" Makefile
+
+# Use lib64 if needed:
+if [ "$LIBDIRSUFFIX" = "64" ]; then
+ sed -i "s|JLIBDIR = \$(JOVEHOME)/lib/jove|JLIBDIR = \$(JOVEHOME)/lib64/jove|g" Makefile
+fi
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -77,49 +93,38 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-zcat $CWD/jove.makefile.diff.gz | patch -p1 --verbose --backup || exit 1
-
-# Patch due to removal of stropts.h:
-zcat $CWD/jove.glibc-2.30.diff.gz | patch -p1 --verbose --backup || exit 1
-
-# More patching needed now:
-sed -i -e "s#/lib/jove#/lib${LIBDIRSUFFIX}/jove#" \
- -e "s#^OPTFLAGS = .*#OPTFLAGS = $SLKCFLAGS#" Makefile
-
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Create jove-recover symlink
-( cd $PKG/usr/bin
- ln -s ../lib${LIBDIRSUFFIX}/jove/recover jove-recover
-)
-
-# Install teach-jove file:
-cp -a --verbose doc/teach-jove $PKG/usr/lib${LIBDIRSUFFIX}/jove/teach-jove
-chown root:root $PKG/usr/lib${LIBDIRSUFFIX}/jove/teach-jove
-chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/jove/teach-jove
-
-find $PKG | xargs file | grep -e "executable" -e "shared object" \
- | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-
-# Compress man pages
-( cd $PKG/usr/man
- rm man1/jovetool.1 man1/xjove.1
- find . -type f -exec gzip -9 {} \+
- for i in $( find . -type l ) ; do
- ln -s $( readlink $i ).gz $i.gz ; rm $i
- done
-)
-
-# Copy program documentation into the package
-mkdir -p $PKG/usr/doc/jove$VERSION
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \+
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- README* $PKG/usr/doc/jove$VERSION
+ ChangeLog LICENSE* README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mv $PKG/usr/share/doc/jove/example.rc $PKG/usr/doc/${PKGNAM}-$VERSION
+rm -r $PKG/usr/share/doc
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
-# Build the package:
cd $PKG
-/sbin/makepkg -l y -c n $TMP/jove-$VERSION-$ARCH-$BUILD.txz
-
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/jove/jove.glibc-2.30.diff b/source/ap/jove/jove.glibc-2.30.diff
deleted file mode 100644
index 684e73d4f..000000000
--- a/source/ap/jove/jove.glibc-2.30.diff
+++ /dev/null
@@ -1,17 +0,0 @@
---- ./iproc.c.orig 2008-05-20 21:35:18.000000000 -0500
-+++ ./iproc.c 2019-08-19 17:28:01.899194246 -0500
-@@ -536,14 +536,6 @@
-
- # ifdef SVR4_PTYS
- # include <stdlib.h> /* for grantpt and unlockpt, at least in Solaris 2.3 */
--# if _XOPEN_SOURCE >= 500
-- /* Linux/glibc no longer pretends to support STREAMS (XSR) (2008) */
--# if _XOPEN_STREAMS != -1
--# include <stropts.h>
--# endif
--# else
--# include <sys/stropts.h>
--# endif
- extern char *ptsname proto((int /*filedes*/)); /* get name of slave */
- # endif
-
diff --git a/source/ap/jove/jove.makefile.diff b/source/ap/jove/jove.makefile.diff
deleted file mode 100644
index 8bf2be4bc..000000000
--- a/source/ap/jove/jove.makefile.diff
+++ /dev/null
@@ -1,132 +0,0 @@
---- jove4.16.0.70/Makefile 2005-09-30 19:14:41.000000000 -0300
-+++ jove4.16.0.70.new/Makefile 2009-03-04 02:01:26.000000000 -0300
-@@ -21,13 +21,14 @@
- # If they don't exist, this makefile will try to create the directories
- # LIBDIR and SHAREDIR. All others must already exist.
-
--JOVEHOME = /usr/local
-+JOVEHOME = /usr
- SHAREDIR = $(JOVEHOME)/lib/jove
- LIBDIR = $(JOVEHOME)/lib/jove
- BINDIR = $(JOVEHOME)/bin
- XEXT=
- MANDIR = $(JOVEHOME)/man/man$(MANEXT)
- MANEXT = 1
-+DESTDIR := ${DESTDIR}
-
- # TMPDIR is where the tmp files get stored, usually /tmp, /var/tmp, or
- # /usr/tmp. If you wish to be able to recover buffers after a system
-@@ -56,12 +57,12 @@
- INSTALLFLAGS = # -g bin -o root
-
- # to install executable files
--XINSTALL=cp
-+XINSTALL=/usr/bin/install -c -m 755 -D
- #XINSTALL=/usr/ucb/install $(INSTALLFLAGS) -c -m 755 # -s
- #CYGWIN32: XINSTALL=install $(INSTALLFLAGS) -c -m 755
-
- # to install text files
--TINSTALL=cp
-+TINSTALL=/usr/bin/install -c -m 644 -D
- #TINSTALL=/usr/ucb/install $(INSTALLFLAGS) -c -m 644
- #CYGWIN32: TINSTALL=install $(INSTALLFLAGS) -c -m 644
-
-@@ -137,7 +138,7 @@
- # Add -DUSE_EXIT if you're profiling or using purify (this causes Jove
- # to exit using exit(), instead of _exit()).
-
--SYSDEFS = -DBSDPOSIX_STDC
-+SYSDEFS = -DSYSVR4 -D_XOPEN_SOURCE=500
-
- # Select optimization level (flags passed to compiling and linking steps).
- # On most systems: -g for debugging, -O for optimization.
-@@ -146,7 +147,7 @@
- # On DEC OSF/1 and Digital UNIX VV4.0, add -std1 to enable ANSI C features
- # and perhaps -g3 for more debugging info with optimization.
-
--OPTFLAGS = -O
-+OPTFLAGS := ${OPTFLAGS}
-
- # For making dependencies under BSD systems
- DEPENDFLAG = -M
-@@ -360,7 +361,7 @@
- install: $(LIBDIR) $(SHAREDIR) \
- $(TEACH-JOVE) $(CMDS.DOC) $(TERMSDIR)docs \
- $(PORTSRVINST) $(RECOVER) $(JOVE) $(TEACHJOVE) $(MANUALS)
-- $(TINSTALL) doc/jove.rc $(JOVERC)
-+ $(TINSTALL) doc/jove.rc $(DESTDIR)$(JOVERC)
- @echo See the README about changes to /etc/rc or /etc/rc.local
- @echo so that the system recovers jove files on reboot after a crash
-
-@@ -371,7 +372,7 @@
- test -d $(SHAREDIR) || mkdir $(SHAREDIR)
-
- $(TEACH-JOVE): doc/teach-jove
-- $(TINSTALL) doc/teach-jove $(TEACH-JOVE)
-+ $(TINSTALL) doc/teach-jove $(DESTDIR)$(TEACH-JOVE)
-
- doc/cmds.doc: doc/cmds.macros.nr doc/cmds.nr
- $(NROFF) doc/cmds.macros.nr doc/cmds.nr > doc/cmds.doc
-@@ -383,25 +384,25 @@
- ( cd doc; tbl intro.nr | $(TROFF) -ms - cmds.nr contents.nr $(TROFFPOST) >jove.man.ps )
-
- $(CMDS.DOC): doc/cmds.doc
-- $(TINSTALL) doc/cmds.doc $(CMDS.DOC)
-+ $(TINSTALL) doc/cmds.doc $(DESTDIR)$(CMDS.DOC)
-
- $(JOVERC): doc/jove.rc
-- $(TINSTALL) doc/jove.rc $(JOVERC)
-+ $(TINSTALL) doc/jove.rc $(DESTDIR)$(JOVERC)
-
- $(TERMSDIR)docs: $(DOCTERMS)
-- $(TINSTALL) $(DOCTERMS) $(TERMSDIR)
-+ $(TINSTALL) $(DOCTERMS) $(DESTDIR)$(TERMSDIR)
-
- $(PORTSRV): portsrv$(XEXT)
-- $(XINSTALL) portsrv$(XEXT) $(PORTSRV)
-+ $(XINSTALL) portsrv$(XEXT) $(DESTDIR)$(PORTSRV)
-
- $(RECOVER): recover$(XEXT)
-- $(XINSTALL) recover$(XEXT) $(RECOVER)
-+ $(XINSTALL) recover$(XEXT) $(DESTDIR)$(RECOVER)
-
- $(JOVE): jjove$(XEXT)
-- $(XINSTALL) jjove$(XEXT) $(JOVE)
-+ $(XINSTALL) jjove$(XEXT) $(DESTDIR)$(JOVE)
-
- $(TEACHJOVE): teachjove$(XEXT)
-- $(XINSTALL) teachjove$(XEXT) $(TEACHJOVE)
-+ $(XINSTALL) teachjove$(XEXT) $(DESTDIR)$(TEACHJOVE)
-
- doc/jove.$(MANEXT): doc/jove.nr
- sed -e 's;<TMPDIR>;$(TMPDIR);' \
-@@ -410,7 +411,7 @@
- -e 's;<SHELL>;$(DFLTSHELL);' doc/jove.nr > doc/jove.$(MANEXT)
-
- $(JOVEM): doc/jove.$(MANEXT)
-- $(TINSTALL) doc/jove.$(MANEXT) $(JOVEM)
-+ $(TINSTALL) doc/jove.$(MANEXT) $(DESTDIR)$(JOVEM)
-
- # doc/jove.doc is the formatted manpage (only needed by DOS)
- # Building it should be like building $(JOVEM) except that we
-@@ -427,17 +428,17 @@
- -e 's;<SHELL>;$(DFLTSHELL);' doc/teachjove.nr > doc/teachjove.$(MANEXT)
-
- $(TEACHJOVEM): doc/teachjove.$(MANEXT)
-- $(TINSTALL) doc/teachjove.$(MANEXT) $(TEACHJOVEM)
-+ $(TINSTALL) doc/teachjove.$(MANEXT) $(DESTDIR)$(TEACHJOVEM)
-
- $(XJOVEM): doc/xjove.nr
-- $(TINSTALL) doc/xjove.nr $(XJOVEM)
-+ $(TINSTALL) doc/xjove.nr $(DESTDIR)$(XJOVEM)
-
- doc/jovetool.$(MANEXT): doc/jovetool.nr
- sed -e 's;<MANDIR>;$(MANDIR);' \
- -e 's;<MANEXT>;$(MANEXT);' doc/jovetool.nr > doc/jovetool.$(MANEXT)
-
- $(JOVETOOLM): doc/jovetool.$(MANEXT)
-- $(TINSTALL) doc/jovetool.$(MANEXT) $(JOVETOOLM)
-+ $(TINSTALL) doc/jovetool.$(MANEXT) $(DESTDIR)$(JOVETOOLM)
-
- echo:
- @echo $(C-FILES) $(HEADERS)
diff --git a/source/ap/jove/jove.url b/source/ap/jove/jove.url
index 024b00c40..1b3868917 100644
--- a/source/ap/jove/jove.url
+++ b/source/ap/jove/jove.url
@@ -1,3 +1 @@
-ftp://ftp.cs.toronto.edu/cs/ftp/pub/hugh/jove-dev
-# Old stable site:
-#ftp://ftp.cs.toronto.edu/cs/ftp/pub/moraes/jove
+https://github.com/jonmacs/jove
diff --git a/source/ap/ksh93/ksh93.SlackBuild b/source/ap/ksh93/ksh93.SlackBuild
index af5614be7..5626a914d 100755
--- a/source/ap/ksh93/ksh93.SlackBuild
+++ b/source/ap/ksh93/ksh93.SlackBuild
@@ -30,7 +30,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -45,21 +45,12 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
diff --git a/source/ap/libx86/libx86.SlackBuild b/source/ap/libx86/libx86.SlackBuild
index cbf9f9867..2c6dfcd0f 100755
--- a/source/ap/libx86/libx86.SlackBuild
+++ b/source/ap/libx86/libx86.SlackBuild
@@ -64,6 +64,9 @@ else
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=int-conversion -Wno-error=incompatible-pointer-types"
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
diff --git a/source/ap/linuxdoc-tools/ChangeLog.txt b/source/ap/linuxdoc-tools/ChangeLog.txt
index b5e57dc7d..affa8b00a 100644
--- a/source/ap/linuxdoc-tools/ChangeLog.txt
+++ b/source/ap/linuxdoc-tools/ChangeLog.txt
@@ -1,3 +1,22 @@
+Thu Apr 11 08:08:08 UTC 2024
+ linuxdoc-tools 0.9.83, build 1.
+ Stuart Winter <mozes@slackware.com>
+ Version changes:
+ * Upgraded to linuxdoc-tools 0.9.83
+ * Upgraded to gtk-doc 1.34.0
+ * Upgraded to asciidoc 10.2.0
+ Maintenance:
+ * postbuildfixes.sh: Eliminate any remaining empty Python directories
+ after purging Python cache files.
+ Comment asciidoc config file '.new' renaming code, as asciidoc no longer
+ provides such files.
+ * linuxdoc-tools.build: corrected detection of the RiscV64 architecture.
+ Drop 'install/doinst.sh' as it was only used to manage installation of
+ the asciidoc configuration files.
+ * gnome-doc-utils: Refreshed SRPM. Added a build-time configuration patch
+ in preparation for Python 3.12.
+ * docbook-style-xsl: Refreshed SRPM whilst looking for new patches.
+
Thu Aug 12 10:02:06 BST 2021
linuxdoc-tools 0.9.82, build 1.
Stuart Winter <mozes@slackware.com>
diff --git a/source/ap/linuxdoc-tools/arm/build b/source/ap/linuxdoc-tools/arm/build
index 708dd6997..8ec625f74 100755
--- a/source/ap/linuxdoc-tools/arm/build
+++ b/source/ap/linuxdoc-tools/arm/build
@@ -1,15 +1,14 @@
#!/bin/bash
-# armel/build
-# Check package dependencies, set metadata and launch
-# package build script.
-# by Stuart Winter <stuart@armedslack.org>
+# arm/build
+# Build wrapper for ap/linuxdoc-tools on Slackware ARM
+# Stuart Winter <mozes@slackware.com>
#
source /usr/share/slackdev/buildkit.sh
# Package metadata:
export PKGNAM=linuxdoc-tools
-export VERSION=${VERSION:-0.9.82}
+export VERSION=${VERSION:-0.9.83}
export BUILD=${BUILD:-1}
export PKGSERIES=${PKGSERIES:-ap}
export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.txz
diff --git a/source/ap/linuxdoc-tools/doinst.sh b/source/ap/linuxdoc-tools/doinst.sh
deleted file mode 100644
index b9a1d17b6..000000000
--- a/source/ap/linuxdoc-tools/doinst.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-config() {
- NEW="$1"
- OLD="$( dirname $NEW )/$( basename $NEW .new )"
- # If there's no config file by that name, mv it over:
- if [ ! -r $OLD ]; then
- mv $NEW $OLD
- elif [ "$( md5sum < $OLD )" = "$( md5sum < $NEW )" ]; then # toss the redundant copy
- rm $NEW
- fi
- # Otherwise, we leave the .new copy for the admin to consider...
-}
-
diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build
index e95d9b69c..c68a7b52e 100755
--- a/source/ap/linuxdoc-tools/linuxdoc-tools.build
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -4,7 +4,7 @@
# Script: linuxdoc-tools.build
# Purpose: Build & install all components that form the linuxdoc-tools
# Slackware Package.
-# Credit: written by Stuart Winter <mozes@slackware.com>
+# Author: Stuart Winter <mozes@slackware.com>, 2005-2024
# with the docbook build code by Jerome Pinot <ngc891@gmail.com>
# and some script code taken from Debian, Red Hat/Fedora &
# Linux From Scratch documentation
@@ -23,7 +23,7 @@
LINUXDOCTOOLSVER=$PKGVERSION
# Bundled package versions:
-ASCIIDOCVER=9.1.0
+ASCIIDOCVER=10.2.0
DSSSLSTYLESHEETSVER=1.79 # docbook-dsssl-*.tar.xz (plus -doc- source archive), not SRPM.
XSLSTYLESHEETSVER=1.79.2 # docbook-style-xsl-*src.rpm ("DocBook XSL Stylesheets" in our ChangeLog.txt)
DOCBOOKUTILSVER=0.6.14
@@ -31,7 +31,7 @@ SGMLDTD3VER=3.1
SGMLDTD4VER=4.5
XMLDTDVER=4.5
GNOMEDOCUTILSVER=0.20.10
-GTKDOCVER=1.33.2
+GTKDOCVER=1.34.0
SGMLSPLVER=1.03ii
OPENJADEVER=1.3.2
OPENSPVER=1.5.2
@@ -53,7 +53,7 @@ case $ARCH in
export LIBDIRSUFFIX="64"
export HOSTTARGET=""
;;
- riscv) export SLKCFLAGS="-O2"
+ riscv64) export SLKCFLAGS="-O2"
export LIBDIRSUFFIX="64"
export HOSTTARGET=""
;;
@@ -78,7 +78,7 @@ function build_asciidoc() {
# Extract source:
cd $TMP
rm -rf asciidoc
-mkdir asciidoc && cd asciidoc
+mkdir -p asciidoc{,-collect} && cd asciidoc
rpm2cpio $CWD/sources/asciidoc-${ASCIIDOCVER}*.src.rpm | cpio -div || exit 1
tar xvf asciidoc-py-*.tar.*z
cd asciidoc-py-*/ || exit 1
@@ -92,11 +92,12 @@ find . \
# Apply patches:
# Assemble patch list from spec file:
# grep -E '^Patch[0-9].*: ' *.spec | awk -F: '{print $2" \\"}'
-#for i in \
-# \
-# \
-# ; do patch -p1 --verbose < ../${i} || exit 1
-#done || exit 1
+for i in \
+ \
+ asciidoc-table-separator.patch \
+ \
+ ; do patch -p1 --verbose < ../${i} || exit 1
+done || exit 1
# Configure:
autoreconf -v
@@ -116,20 +117,34 @@ if [ "$1" = "nodocs" ]; then
echo "*** Built asciidoc without documentation - expect errors above ***"
echo "******************************************************************"
else
- make install docs || exit 1
+ # It's the full build and installation:
+ # Install the documentation into a temporary location so that we can
+ # filter it manually, as it does not respect --mandir and there's a good
+ # amount of superfluous stuff that we don't want to package:
+ make install docs DESTDIR=$TMP/asciidoc-collect || exit 1
+ # "make install" target doesn't include the docs, so we can install
+ # everything else for collection by slacktrack directly:
+ make install || exit 1
+ [ ! -x /usr/bin/asciidoc ] && { echo "*** Error: asciidoc wasn't installed! ***" ; exit 1;}
+
+ # Copy docs:
+ mkdir -vpm755 /usr/doc/asciidoc-$ASCIIDOCVER
+ cp -fav \
+ BUGS.adoc CHANGELOG.adoc COPYRIGHT LICENSE README.md \
+ /usr/doc/asciidoc-$ASCIIDOCVER/
+
+ # Collect what we want and place it into the file system for collection
+ # by slacktrack:
+ pushd $TMP/asciidoc-collect/usr/doc/asciidoc-*/
+ # Man pages:
+ mv -fv doc/{asciidoc.1,a2x.1} /usr/man/man1/
+ rm -fv doc/*.1.txt # wipe the sources
+ # Other stuff:
+ # We're omitting these dirs: dblatex/ docbook-xsl/
+ mv -fv doc images /usr/doc/asciidoc-$ASCIIDOCVER/
+ popd
fi
-find /etc/asciidoc -type f -print0 | xargs -0 chmod 644
-
-# After the build completes, we'll rename the asciidoc config files to '.new'
-# (see 'postbuildfixes.sh'), but for now we need them in place so that the
-# application works, since asciidoc is used to build some of this monolithic package.
-
-# Copy docs:
-mkdir -vpm755 /usr/doc/asciidoc-$ASCIIDOCVER
-cp -fav \
- BUGS.txt CHANGELOG.txt COPY* README.asciidoc \
- /usr/doc/asciidoc-$ASCIIDOCVER/
}
# Build asciidoc without any documentation (man pages). We'll have
@@ -329,9 +344,8 @@ patch --verbose -p1 < ../opensp-nodeids.patch || exit 1
find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}'
find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}'
-# Configure without optimisation. OpenSP & OpenJade
-# are sensitive to optimisations, resulting in segfaults,
-# particularly on the ARM platform. Apparently -O1 will work but
+# Configure without optimisation. OpenSP & OpenJade are sensitive to optimisations,
+# resulting in segfaults, particularly on the ARM platform. Apparently -O1 will work but
# let's just leave it as is.
#
# This is configured not to build the documentation. If anybody really needs
@@ -395,7 +409,7 @@ mv -fv /usr/doc/OpenSP /usr/doc/OpenSP-$OPENSPVER
####################### Build OpenJade ############################
# Reference:
-# http://cblfs.cross-lfs.org/index.php/OpenJade
+# https://www.linuxfromscratch.org/blfs/view/stable/pst/openjade.html
# Extract source:
cd $TMP
@@ -776,6 +790,7 @@ find . \
# Apply patches:
# Note: 'docbook-style-xsl-non-recursive-string-subst.patch' is applied separately
# as it needs a different patch level.
+# We don't apply 'docbook-style-xsl-1.79.2-fix-gtk-doc-multilib.patch'
for i in \
\
docbook-xsl-pagesetup.patch \
@@ -787,7 +802,7 @@ for i in \
\
; do patch --verbose -p1 < ../../$i
done || exit 1
-patch -p2 < ../../docbook-style-xsl-non-recursive-string-subst.patch || exit 1
+patch --verbose -p2 < ../../docbook-style-xsl-non-recursive-string-subst.patch || exit 1
cp -fav ../../docbook-style-xsl.Makefile Makefile
# Switch to UTF-8 files:
@@ -952,8 +967,8 @@ cd $TMP
mkdir linuxdoc-tools && cd linuxdoc-tools
#rpm2cpio $CWD/sources/linuxdoc-tools-${LINUXDOCTOOLSVER}*.src.rpm | cpio -div || exit 1
#tar xvf linuxdoc-tools_$LINUXDOCTOOLSVER.tar.gz
-tar xvf $CWD/sources/linuxdoc-tools_$LINUXDOCTOOLSVER.tar.?z
-cd linuxdoc-tools-$LINUXDOCTOOLSVER || exit 1
+tar xvf $CWD/sources/linuxdoc-tools-$LINUXDOCTOOLSVER.tar.?z
+cd linuxdoc-tools*/ || exit 1
chown -R root:root .
find . \
@@ -974,8 +989,8 @@ export PATH=$( echo $PATH | sed -e 's?:/usr/share/texmf/bin??g' -e 's?/usr/share
# latest linuxdoc-tools source. It simply changed the default page size to 'Letter'.
# Probably not too much to worry about there.
for i in \
- linuxdoc-tools-0.9.20-lib64.patch.xz ; do
- xzcat $CWD/sources/$i | patch -p1 || exit 1
+ linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch.xz ; do
+ xzcat $CWD/sources/$i | patch --verbose -p1 || exit 1
done || exit 1
# Find out what our Vendor perl directory is:
@@ -1055,6 +1070,7 @@ find . \
for i in \
\
gnome-doc-utils-0.20.10-python3.patch \
+ gnome-doc-utils-0.20.10-configure-py312.patch \
\
; do patch --verbose -p1 < ../$i
done || exit 1
@@ -1113,7 +1129,7 @@ find . \
# and we've never included it.
for i in \
\
- 0001-Partially-revert-a-gtk-doc-1.31-change-that-broke-e-.patch \
+ 74.patch \
\
; do patch --verbose -p1 < ../$i
done || exit 1
@@ -1255,4 +1271,4 @@ build_asciidoc
rm -rf /install
mkdir -vpm755 /install
install -vpm644 $CWD/slack-desc /install
-zcat $CWD/doinst.sh.gz > /install/doinst.sh
+#zcat $CWD/doinst.sh.gz > /install/doinst.sh
diff --git a/source/ap/linuxdoc-tools/postbuildfixes.sh b/source/ap/linuxdoc-tools/postbuildfixes.sh
index 9382245cc..e659c3763 100755
--- a/source/ap/linuxdoc-tools/postbuildfixes.sh
+++ b/source/ap/linuxdoc-tools/postbuildfixes.sh
@@ -40,6 +40,11 @@ chmod -R a-s .
# Remove dangling symlinks from /usr/doc. asciidoc-8.6.7 was a culprit.
find usr/doc -xtype l -print0 | xargs -0 rm -fv
+# Delete any empty directories left over by the removal of the orphaned Python cache
+# files. e.g.
+# usr/lib/python3.11/site-packages/mesonbuild/__pycache__/
+find usr/lib*/python* -type d -empty -delete
+
# Ensure some permissions.
# I don't know why but these dirs are installed chmod 1755:
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/
@@ -75,20 +80,21 @@ find . -name "*.txt" | while read docfile ; do
done
popd
+# Gone in asciidoc-10, but retaining for future reference:
# Allow preservation of conf files for ascii-doc. Some of the other bundled
# packages may benefit from this treatment, but nobody's asked for anything
# other than asciidoc in over 10 years!
-echo "Renaming configuration files to '.conf.new'.."
-find etc/asciidoc -type f -name '*.conf' -print0 | xargs -0i mv -fv '{}' '{}.new'
-# Search for any dangling symlinks created by renaming the files:
-if [ ! -z "$( find -L etc/asciidoc -type l -print )" ]; then
- echo "WARNING: Dangling symlinks in etc/asciidoc -- you need to fix them!"
- find -L etc/asciidoc -type l -print
-fi
-# Populate the doinst.sh script
-find etc/asciidoc -type f -name '*.conf.new' | while read cfile ; do
- echo "config $cfile" >> install/doinst.sh
-done
+#echo "Renaming configuration files to '.conf.new'.."
+##find etc/asciidoc -type f -name '*.conf' -print0 | xargs -0i mv -fv '{}' '{}.new'
+## Search for any dangling symlinks created by renaming the files:
+#if [ ! -z "$( find -L etc/asciidoc -type l -print )" ]; then
+# echo "WARNING: Dangling symlinks in etc/asciidoc -- you need to fix them!"
+# find -L etc/asciidoc -type l -print
+#fi
+## Populate the doinst.sh script
+#find etc/asciidoc -type f -name '*.conf.new' | while read cfile ; do
+# echo "config $cfile" >> install/doinst.sh
+#done
# Now you should manually extract the .t?z
# - check through the install/doinst.sh script;
diff --git a/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.20-lib64.patch b/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.20-lib64.patch
deleted file mode 100644
index 66ff2a31e..000000000
--- a/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.20-lib64.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- linuxdoc-tools-0.9.60/bin/linuxdoc.in.orig
-+++ linuxdoc-tools-0.9.60/bin/linuxdoc.in
-@@ -23,6 +23,7 @@
- $AuxBinDir = "@auxbindir@";
-
- use lib "@pkgdatadir@";
-+use lib "@prefix@/lib64/perl5";
- use lib "@perl5libdir@";
-
- # ---------------------------------------------------------------------
diff --git a/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch b/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch
new file mode 100644
index 000000000..429de253e
--- /dev/null
+++ b/source/ap/linuxdoc-tools/sources/linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch
@@ -0,0 +1,25 @@
+From 453fa2fb9d10c2ded7a46d550592f79dd7653e39 Mon Sep 17 00:00:00 2001
+From: Julien Rische <jrische@redhat.com>
+Date: Sun, 5 Feb 2023 23:30:27 +0100
+Subject: [PATCH] [downstream] Added fix to have lib64 in perl path on
+ 64bit machine
+
+---
+ bin/linuxdoc.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/bin/linuxdoc.in b/bin/linuxdoc.in
+index 615ef06..3d3455f 100755
+--- a/bin/linuxdoc.in
++++ b/bin/linuxdoc.in
+@@ -12,6 +12,7 @@ use 5.006;
+ use strict;
+
+ use lib "@pkgdatadir@";
++use lib "@prefix@/lib64/perl5";
+ use lib "@perl5libdir@";
+
+ use LinuxDocTools::Utils qw{ldt_which};
+--
+2.39.1
+
diff --git a/source/ap/linuxdoc-tools/sources/source.download b/source/ap/linuxdoc-tools/sources/source.download
index 4801ed32c..b86ef7a05 100755
--- a/source/ap/linuxdoc-tools/sources/source.download
+++ b/source/ap/linuxdoc-tools/sources/source.download
@@ -1,36 +1,44 @@
-# Extract all SRPM URLs to make it easy to download.
-# Often there's nothing that's changed between the version of the SRPM we hold, and
-# the upstream version - the version was increased due to a rebuild within Fedora.
-# However, I update our copy of the SRPM regardless, since it eases maintenance.
+# source/ap/linuxdoc-tools/sources/source.download
+# Upstream source references.
+# Stuart Winter <mozes@slackware.com>
#
-# grep -E "^wget.*src.rpm$" source.download
-#
-
-# Incase you're wondering why we're using source RPMs, this is because
-# they contain patches required to either fix build or runtime problems,
-# and it's easier to maintain this hunk of a package when the patches &
-# sources are self contained.
+# Incase you're wondering why we're using source RPMs, this is because they contain
+# patches required to either fix build or runtime problems, and it's easier to
+# maintain this hunk of a package when the patches & sources are self contained.
#
# Some sources have been recompressed with LZMA for better compression results.
+#
+# Note: Due to the passage of time, certain SRPM URLs may no longer be accessible,
+# having been stored in the Slackware repository for several years. To minimise
+# unnecessary churn within in the Slackware source tree, we update the SRPMs only
+# when their content has been modified.
# linuxdoc-tools:
+# "In the wild" references:
# https://packages.debian.org/sid/linuxdoc-tools
+# https://src.fedoraproject.org/rpms/linuxdoc-tools
+# https://packages.gentoo.org/packages/app-text/linuxdoc-tools
#
# This provides things such as sgml2txt.
-wget http://deb.debian.org/debian/pool/main/l/linuxdoc-tools/linuxdoc-tools_0.9.82.orig.tar.gz
-# We're taking some patches from here - now separated out:
-#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/l/linuxdoc-tools-0.9.68-3.fc19.src.rpm
+# This has been recompressed locally.
+wget http://deb.debian.org/debian/pool/main/l/linuxdoc-tools/linuxdoc-tools_0.9.83.orig.tar.gz
+# Applied patches:
+# lib64 patch for perl path:
+# Renamed locally: linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch.xz
+# https://src.fedoraproject.org/rpms/linuxdoc-tools/raw/rawhide/f/0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch
# OpenSP:
# http://openjade.sourceforge.net/download.html
-# wget -c http://kent.dl.sourceforge.net/sourceforge/openjade/OpenSP-1.5.2.tar.gz
+# wget http://kent.dl.sourceforge.net/sourceforge/openjade/OpenSP-1.5.2.tar.gz
#
+# https://src.fedoraproject.org/rpms/opensp
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/
#
-wget -c https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/opensp-1.5.2-38.fc35.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/opensp-1.5.2-38.fc35.src.rpm
# OpenJade:
# http://openjade.sourceforge.net/
+# https://src.fedoraproject.org/rpms/openjade
# We're only using a gcc 4.6 patch from Fedora's SRPM:
# There are other patches such as "nola" and "nsl", but we aren't using them.
#
@@ -40,69 +48,61 @@ wget -c https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everyt
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/o/openjade-1.3.2-59.fc29.src.rpm
# sgmltools-common.
-# It's broken and needs patching so we'll use Fedora's.
-#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
-#
+# https://src.fedoraproject.org/rpms/sgml-common
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/s/
#
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/s/sgml-common-0.6.3-57.fc35.src.rpm
+# Docbook Style DSSSL:
# http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-dsssl.html
-# Check versions:
+# https://src.fedoraproject.org/rpms/docbook-style-dsssl
# http://sourceforge.net/projects/docbook/files/
-wget -c ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/docbook-dsssl-1.79.tar.bz2
-wget -c http://switch.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-doc-1.79.tar.bz2
-# Why don't they put the patches into the distributed source...???
-#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz
-#
-#
+wget http://switch.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-doc-1.79.tar.bz2
+
+# Docbook-utils:
+# https://src.fedoraproject.org/rpms/docbook-utils
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/
#
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-utils-0.6.14-53.fc35.src.rpm
#
#
-
+# Docbook Style XSL
+#
+# https://src.fedoraproject.org/rpms/docbook-style-xsl
+#
# We use the Fedora "docbook-style-xsl" SRPM for this rather than the original source which is why
# these "docbook-xsl*" files aren't in our sources directory.
-#wget -c "http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.75.2/docbook-xsl-1.75.2.tar.bz2?use_mirror=freefr"
-##wget -c "http://downloads.sourceforge.net/project/docbook/docbook-xsl-doc/1.75.2/docbook-xsl-doc-1.75.2.tar.bz2?use_mirror=freefr"
+#wget "http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.75.2/docbook-xsl-1.75.2.tar.bz2?use_mirror=freefr"
+##wget "http://downloads.sourceforge.net/project/docbook/docbook-xsl-doc/1.75.2/docbook-xsl-doc-1.75.2.tar.bz2?use_mirror=freefr"
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-style-xsl-1.79.2-15.fc35.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/d/docbook-style-xsl-1.79.2-22.fc40.src.rpm
# http://www.linuxfromscratch.org/blfs/view/svn/pst/docbook.html
-wget -c http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
+wget http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
# https://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608
#
# gnome-doc-utils, needed to build gtk-doc:
-# Recompressed with LZMA after download.
-# I guess this mirror is out of date now. It's easier to just look at Fedora's development
-# directory anyway :-)
-# wget -c http://ftp.acc.umu.se/pub/GNOME/sources/gnome-doc-utils/0.20/gnome-doc-utils-0.20.0.tar.bz2
+# https://src.fedoraproject.org/rpms/gnome-doc-utils
#
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gnome-doc-utils-0.20.10-26.fc35.src.rpm
+wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gnome-doc-utils-0.20.10-37.fc40.src.rpm
# gtk-doc:
# There aren't any patches taken from the SRPM, but you can check the version used in Fedora
# and see if any are being applied. We will pull the source archive from the SRPM:
#
+# https://src.fedoraproject.org/rpms/gtk-doc
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gtk-doc-1.33.2-4.fc35.src.rpm
-https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gtk-doc-1.32-2.fc32.src.rpm
-#wget -c http://ftp.acc.umu.se/pub/GNOME/sources/gtk-doc/1.21/gtk-doc-1.21.tar.xz
-# http://git.gnome.org/browse/gtk-doc/commit/?id=2bffebcf9c125f5610b8fb660d42c3c5b9dfd4f0
+wget https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/g/gtk-doc-1.34.0-1.fc41.src.rpm
# xmlto
-# https://fedorahosted.org/releases/x/m/xmlto
-# wget -c --no-check-certificate https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.23.tar.bz2
-# Fedora includes a patch, so we'll take it:
-#
+# https://src.fedoraproject.org/rpms/xmlto
# https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/x
#
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/x/xmlto-0.0.28-12.fc31.src.rpm
@@ -110,43 +110,44 @@ wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everythin
# AsciiDoc
# http://www.methods.co.nz/asciidoc/ <<--- no longer updated. Taking src from Fedora's SRPM.
# Also http://asciidoc.org/
+# https://src.fedoraproject.org/rpms/asciidoc
# Taken some patches from Fedora.
#
-wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/a/asciidoc-9.1.0-3.fc35.src.rpm
+wget https://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/a/asciidoc-10.2.0-9.fc40.src.rpm
# docbook2X:
#
# Pre-requisite PERL modules for docbook2X:
# https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/
#
+# https://src.fedoraproject.org/rpms/perl-XML-NamespaceSupport
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-NamespaceSupport-1.12-15.fc35.src.rpm
+# https://src.fedoraproject.org/rpms/perl-XML-SAX
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-SAX-1.02-8.fc35.src.rpm
+# https://src.fedoraproject.org/rpms/perl-XML-SAX-Base
wget https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/source/tree/Packages/p/perl-XML-SAX-Base-1.09-15.fc35.src.rpm
-
-
# sgmlspl
# http://www.cs.indiana.edu/~asengupt/sgml/SGMLSpm/DOC/HTML/sgmlspl/sgmlspl.html
# http://packages.debian.org/search?keywords=sgmlspl&searchon=names&suite=all&section=all
# There's nothing in the FTP download site at this time, so I'll take it from Debian.
-wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
-wget -c http://http.debian.net/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-36.debian.tar.xz
-
+wget http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
+wget http://http.debian.net/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-36.debian.tar.xz
#
#http://packages.debian.org/sid/docbook2x
# Fedora keep it here, but Debian have a couple of (what look to be useful) patches.
-#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook2X-0.8.8-14.fc19.src.rpm
+#wget ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook2X-0.8.8-14.fc19.src.rpm
#
# https://packages.debian.org/search?keywords=docbook2x&searchon=names&suite=all&section=all
-wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8.orig.tar.gz
+wget http://ftp.de.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8.orig.tar.gz
wget http://deb.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8-17.debian.tar.xz
# DocBook docs:
# http://www.oasis-open.org/docbook/sgml/
#
-#wget -c http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip
-#wget -c http://www.docbook.org/sgml/4.5/docbook-4.5.zip
+#wget http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip
+#wget http://www.docbook.org/sgml/4.5/docbook-4.5.zip
# We use Debian's source because it's more convenient since they package all versions in one archive:
# https://packages.debian.org/search?keywords=docbook&searchon=names&suite=all&section=all
-wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz
+wget http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz
#
diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
index b2e9c26f1..cd280da63 100755
--- a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
+++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
@@ -21,8 +21,8 @@
# Package info:
PKGNAM=linuxdoc-tools
-export PKGVERSION=0.9.82 # use the version of linuxdoc-tools as the package version.
-BUILD=${BUILD:-4}
+export PKGVERSION=0.9.83 # use the version of linuxdoc-tools as the package version.
+BUILD=${BUILD:-1}
PKGEXT=${PKGEXT:-txz}
# Automatically determine the architecture we're building on:
@@ -67,8 +67,8 @@ rm -rf ~/.texlive* # incase you were using Texlive rather than Textex-3
# but is slower. However, if you really want extra speed, copy
# this entire package source directory to a temporary location
# and run it from there.
+# This is the recommended option to use during development cycles:
# TFS="--touch-filesystem-faster"
-
TFS="--touch-filesystem-first"
# Launch the build script:
diff --git a/source/ap/lxc/lxc-slackware.in b/source/ap/lxc/lxc-slackware.in
index 422fa1d82..c9678c183 100644
--- a/source/ap/lxc/lxc-slackware.in
+++ b/source/ap/lxc/lxc-slackware.in
@@ -146,6 +146,11 @@ sed -i "s,pg::powerokwait:/sbin/genpowerfail stop,pg::powerokwait:/sbin/shutdown
# create the library symlinks
chroot $rootfs ldconfig
+# Make sure that the certificate links are updated:
+if [ -x $rootfs/usr/sbin/update-ca-certificates ]; then
+ chroot $rootfs /bin/bash -c "LC_ALL=C /usr/sbin/update-ca-certificates"
+fi
+
# set a default combination for the luggage
echo "root:root" | chroot $rootfs chpasswd 2> /dev/null
echo "Root default password is 'root', please change it!"
@@ -238,6 +243,7 @@ bash
bin
bridge-utils
bzip2
+ca-certificates
coreutils
cracklib
cyrus-sasl
@@ -255,18 +261,25 @@ etc
eudev
findutils
gawk
+glibc-zoneinfo
+gnupg
gnupg2
gnutls
grep
gzip
hostname
+icu4c
iproute2
iptables
iputils
kmod
less
+libassuan
libcap-ng
libffi
+libgcrypt
+libgpg-error
+libksba
libmnl
libnl3
libpcap
@@ -280,16 +293,20 @@ net-tools
nettle
network-scripts
ncurses
+npth
pam
openssh
+openssl
openssl-solibs
p11-kit
+perl
pkgtools
procps-ng
sed
shadow
sharutils
slackpkg
+sqlite
sysklogd
sysvinit
sysvinit-functions
diff --git a/source/ap/lxc/lxc.SlackBuild b/source/ap/lxc/lxc.SlackBuild
index 69951be5f..a76649056 100755
--- a/source/ap/lxc/lxc.SlackBuild
+++ b/source/ap/lxc/lxc.SlackBuild
@@ -27,12 +27,12 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=lxc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d -)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -49,14 +49,11 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
@@ -81,45 +78,38 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-# Our python package is not split:
-#sed -i "s|PKG_CHECK_MODULES(\[PYTHONDEV.*||" configure.ac || exit 1
-
-if [ ! -r configure ]; then
- NOCONFIGURE=1 ./autogen.sh
-fi
-
-# Enable python stuff only if python3 is installed.
-python=""
-# Python bindings don't seem to be part of the standard package at this time,
-# so we'll comment this next line out for now:
-#[ -x /usr/bin/python3 ] && export PYTHON=/usr/bin/python3 && python="--enable-python"
-
-# Configure:
-# lua is autodetected
-CFLAGS="$SLKCFLAGS -Wno-error=incompatible-pointer-types" \
-./configure \
+# Configure, build, and install:
+export CFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS"
+mkdir meson-build
+cd meson-build
+meson setup \
--prefix=/usr \
+ --libdir=lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/libexec \
+ --bindir=/usr/bin \
+ --sbindir=/usr/sbin \
+ --includedir=/usr/include \
+ --datadir=/usr/share \
+ --mandir=/usr/man \
--sysconfdir=/etc \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
--localstatedir=/var \
- --mandir=/usr/man \
- --docdir=/usr/doc/$PKGNAM-$VERSION \
- --infodir=/usr/info \
- --with-global-conf=/etc/lxc/lxc.conf \
- --with-rootfs-path=/var/lib/rootfs-lxc \
- --disable-werror \
- --disable-apparmor \
- --disable-static \
- $python \
- --enable-pam \
- --build=$ARCH-slackware-linux || exit 1
-
-# Build and install:
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
-
-# Don't ship .la files:
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+ --buildtype=release \
+ -Ddoc-path=/usr/doc/$PKGNAM-$VERSION \
+ -Dglobal-config-path=/etc/lxc \
+ -Drootfs-mount-path=/var/lib/rootfs-lxc \
+ -Dapparmor=false \
+ -Dpam-cgroup=true \
+ -Dinit-script=sysvinit \
+ .. || exit 1
+ "${NINJA:=ninja}" $NUMJOBS || exit 1
+ DESTDIR=$PKG $NINJA install || exit 1
+cd ..
+
+# The PAM module gets installed in the wrong location and there's no config
+# option to put it in the right place, so we'll do it ourselves:
+mkdir -p $PKG/lib${LIBDIRSUFFIX}
+mv $PKG/usr/lib${LIBDIRSUFFIX}/security $PKG/lib${LIBDIRSUFFIX}
# Add the template file:
cat $CWD/lxc-slackware.in > $PKG/usr/share/lxc/templates/lxc-slackware
@@ -138,10 +128,11 @@ mv $PKG/etc/default/lxc $PKG/etc/default/lxc.new
# Install an init script (non executable by default):
install -D -m 0644 $CWD/rc.lxc $PKG/etc/rc.d/rc.lxc.new
-# Put bash completion files in system directory:
-mkdir -p $PKG/usr/share/bash-completion/completions
-mv $PKG/etc/bash_completion.d/* $PKG/usr/share/bash-completion/completions
-rm -r $PKG/etc/bash_completion.d
+# Remove init scripts that we do not use:
+rm -r $PKG/etc/init.d
+
+# --disable-static
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a
# Strip binaries:
( cd $PKG
@@ -152,7 +143,7 @@ rm -r $PKG/etc/bash_completion.d
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS* CONTRIBUTING* COPYING* INSTALL* MAINTAINERS* NEWS* README* TODO* \
+ AUTHORS* CODING_STYLE* CONTRIBUTING* COPYING* LICENSE* MAINTAINERS* README* \
doc/FAQ.txt \
$PKG/usr/doc/${PKGNAM}-$VERSION
diff --git a/source/ap/man-db/man-db.SlackBuild b/source/ap/man-db/man-db.SlackBuild
index 7868dfe40..749bb2477 100755
--- a/source/ap/man-db/man-db.SlackBuild
+++ b/source/ap/man-db/man-db.SlackBuild
@@ -8,7 +8,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=man-db
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
MAN2HTML=${MAN2HTML:-20180101}
@@ -62,7 +62,7 @@ MAN2HTML=${MAN2HTML:-20180101}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i586 ;;
+ i?86) ARCH=i686 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -82,21 +82,12 @@ OUTPUT=${OUTPUT:-$TMP}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
diff --git a/source/ap/man-db/man-db.cron b/source/ap/man-db/man-db.cron
index caf447742..a8be995ce 100644
--- a/source/ap/man-db/man-db.cron
+++ b/source/ap/man-db/man-db.cron
@@ -10,4 +10,4 @@ mkdir -p /var/cache/man
# Regenerate the index databases caches used by man-db.
# These increase perfomance and provide features such as whatis and apropos.
-ionice -c3 nice -n 19 /usr/bin/mandb --quiet
+ionice -c3 nice -n 19 /usr/bin/mandb -c --quiet
diff --git a/source/ap/man-pages/man-pages.SlackBuild b/source/ap/man-pages/man-pages.SlackBuild
index 7acba4656..1815fe88a 100755
--- a/source/ap/man-pages/man-pages.SlackBuild
+++ b/source/ap/man-pages/man-pages.SlackBuild
@@ -43,8 +43,8 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf man-pages-$VERSION
-tar xvf $CWD/man-pages-$VERSION.tar.?z
-tar xvf $CWD/man-pages-posix-*.tar.?z
+tar xvf $CWD/man-pages-$VERSION.tar.?z || exit 1
+tar xvf $CWD/man-pages-posix-*.tar.?z || exit 1
echo "Fixing permissions..."
chown -R root:root man-pages-$VERSION man-pages-posix-*
chmod -R a-s,u+rw,go+r-w man-pages-$VERSION man-pages-posix-*
@@ -59,8 +59,20 @@ find man-pages-posix-* \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-mkdir -p $PKG/usr/man
-cp -a man-pages-$VERSION/man* $PKG/usr/man
+# Wow, this new build system is something else.
+# Let's not use it.
+# cd man-pages-$VERSION || exit 1
+#make || exit 1
+#make install prefix=/usr DESTDIR=$PKG || exit 1
+#mv $PKG/usr/share/man $PKG/usr
+#rmdir $PKG/usr/share
+
+# Add the release version, which is about the only useful thing "make" does:
+sed -i "s/(unreleased)/$VERSION/g" man-pages-${VERSION}/man/man*/*
+
+# Install the man pages:
+mkdir -p $PKG/usr
+cp -a man-pages-${VERSION}/man $PKG/usr
# Are these other POSIX manpages of any real usefulness here?
# Granted there may be some historical interest, and it's nice
@@ -100,7 +112,7 @@ rm -r $TEMPDIR
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- man-pages-$VERSION/{CONTRIBUTING,Changes,README,man-pages-${VERSION}.Announce,man-pages-${VERSION}.lsm} \
+ man-pages-$VERSION/{CONTRIBUTING*,Changes,INSTALL,LICENSES*,README*,RELEASE,lsm} \
man-pages-posix-*/POSIX-COPYRIGHT \
$PKG/usr/doc/${PKGNAM}-$VERSION
diff --git a/source/ap/mariadb/doinst.sh b/source/ap/mariadb/doinst.sh
index f65d4269f..c7d5f91cd 100644
--- a/source/ap/mariadb/doinst.sh
+++ b/source/ap/mariadb/doinst.sh
@@ -15,6 +15,7 @@ config() {
if [ -e etc/rc.d/rc.mysqld ]; then
cp -a etc/rc.d/rc.mysqld etc/rc.d/rc.mysqld.new.incoming
cat etc/rc.d/rc.mysqld.new > etc/rc.d/rc.mysqld.new.incoming
+ touch -r etc/rc.d/rc.mysqld.new etc/rc.d/rc.mysqld.new.incoming
mv etc/rc.d/rc.mysqld.new.incoming etc/rc.d/rc.mysqld.new
fi
diff --git a/source/ap/mariadb/mariadb.SlackBuild b/source/ap/mariadb/mariadb.SlackBuild
index e89014d08..a62aeb98a 100755
--- a/source/ap/mariadb/mariadb.SlackBuild
+++ b/source/ap/mariadb/mariadb.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2012, 2013, 2014, 2017, 2018, 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012, 2013, 2014, 2017, 2018, 2020, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# Copyright 2011, 2012, 2013, 2014, 2017 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
@@ -50,7 +50,7 @@ KEEPTESTS=${KEEPTESTS:-NO}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -69,18 +69,15 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
fi
rm -rf $PKG
@@ -203,6 +200,7 @@ chmod 0755 $PKG/var/run/mysql
mkdir -p $PKG/etc/rc.d
# This is installed chmod 644 so that the server does not run by default.
zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new
+touch -r $CWD/rc.mysqld.gz $PKG/etc/rc.d/rc.mysqld.new
rm -rf $PKG/etc/init.d $PKG/usr/libexec/rcmysql
# Install mysqlaccess.conf
diff --git a/source/ap/mc/bogus.cflags.diff b/source/ap/mc/bogus.cflags.diff
new file mode 100644
index 000000000..0fec13e7f
--- /dev/null
+++ b/source/ap/mc/bogus.cflags.diff
@@ -0,0 +1,10 @@
+--- ./m4.include/mc-cflags.m4.orig 2024-01-20 13:34:38.000000000 -0600
++++ ./m4.include/mc-cflags.m4 2024-05-08 12:42:18.326695150 -0500
+@@ -57,7 +57,6 @@
+ AX_APPEND_COMPILE_FLAGS([-Wmissing-format-attribute], [mc_configured_cflags], [$EXTRA_OPTION])
+ AX_APPEND_COMPILE_FLAGS([-Wmissing-parameter-type], [mc_configured_cflags], [$EXTRA_OPTION])
+ AX_APPEND_COMPILE_FLAGS([-Wmissing-prototypes], [mc_configured_cflags], [$EXTRA_OPTION])
+- AX_APPEND_COMPILE_FLAGS([-Wmissing-variable-declarations], [mc_configured_cflags], [$EXTRA_OPTION])
+ AX_APPEND_COMPILE_FLAGS([-Wnested-externs], [mc_configured_cflags], [$EXTRA_OPTION])
+ AX_APPEND_COMPILE_FLAGS([-Wno-long-long], [mc_configured_cflags], [$EXTRA_OPTION])
+ AX_APPEND_COMPILE_FLAGS([-Wno-unreachable-code], [mc_configured_cflags], [$EXTRA_OPTION])
diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild
index 19082a848..557d6829c 100755
--- a/source/ap/mc/mc.SlackBuild
+++ b/source/ap/mc/mc.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -46,12 +46,10 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
else
SLKCFLAGS="-O2"
fi
@@ -73,9 +71,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-if [ ! -x ./configure ]; then
- ./autogen.sh
-fi
+cat $CWD/bogus.cflags.diff | patch -p1 --verbose || exit 1
+autoreconf -vif
CFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/ap/moc/0011-ffmpeg-7.0.patch b/source/ap/moc/0011-ffmpeg-7.0.patch
new file mode 100644
index 000000000..a1ce6d7e4
--- /dev/null
+++ b/source/ap/moc/0011-ffmpeg-7.0.patch
@@ -0,0 +1,37 @@
+--- ./decoder_plugins/ffmpeg/ffmpeg.m4.orig 2022-10-09 12:44:06.000000000 -0500
++++ ./decoder_plugins/ffmpeg/ffmpeg.m4 2024-08-07 21:13:42.693200094 -0500
+@@ -44,7 +44,7 @@
+ LIBS="$LIBS $ffmpeg_LIBS"
+ AC_CHECK_MEMBERS([struct AVProbeData.mime_type], [], [],
+ [#include <libavformat/avformat.h>])
+- AC_CHECK_HEADERS([libavutil/channel_layout.h])
++ AC_CHECK_HEADERS([libavutil/ch_layout.h])
+ AC_SEARCH_LIBS(av_packet_alloc, avcodec,
+ [AC_DEFINE([HAVE_AV_PACKET_FNS], 1,
+ [Define to 1 if you have the `av_packet_*' functions.])])
+--- ./decoder_plugins/ffmpeg/ffmpeg.c.orig 2022-10-09 12:44:06.000000000 -0500
++++ ./decoder_plugins/ffmpeg/ffmpeg.c 2024-08-07 21:14:12.958229068 -0500
+@@ -35,9 +35,7 @@
+ #include <libavformat/avformat.h>
+ #include <libavutil/mathematics.h>
+ #if HAVE_LIBAVUTIL_CHANNEL_LAYOUT_H
+-# include <libavutil/channel_layout.h>
+-#else
+-# include <libavutil/audioconvert.h>
++# include <libavutil/ch_layout.h>
+ #endif
+
+ /* FFmpeg also likes common names, without that, our common.h and log.h
+@@ -561,10 +559,10 @@
+ /* Downmix multi-channel audios to stereo. */
+ static void set_downmixing (struct ffmpeg_data *data)
+ {
+- if (av_get_channel_layout_nb_channels (data->enc->channel_layout) <= 2)
++ if (av_get_ch_layout_nb_channels (data->enc->ch_layout) <= 2)
+ return;
+
+- data->enc->request_channel_layout = AV_CH_LAYOUT_STEREO;
++ data->enc->request_ch_layout = AV_CH_LAYOUT_STEREO;
+ }
+
+ static int ffmpeg_io_read_cb (void *s, uint8_t *buf, int count)
diff --git a/source/ap/moc/moc.SlackBuild b/source/ap/moc/moc.SlackBuild
index 673f9c28e..7c8a58131 100755
--- a/source/ap/moc/moc.SlackBuild
+++ b/source/ap/moc/moc.SlackBuild
@@ -24,12 +24,12 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=moc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d -)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -46,14 +46,11 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
@@ -88,6 +85,10 @@ cat $CWD/0007-cur-dts.patch | patch -p1 --verbose || exit 1
cat $CWD/0008-Rename-configure.in-to-configure.ac.patch | patch -p1 --verbose || exit 1
cat $CWD/0009-Add-https-to-is_url.patch | patch -p1 --verbose || exit 1
cat $CWD/0010-ffmpeg-6.0.patch | patch -p1 --verbose || exit 1
+cat $CWD/0011-ffmpeg-7.0.patch | patch -p1 --verbose || exit 1
+
+# We have a partial patch for ffmpeg7, but it still hits compile errors.
+# We'll disable it pending a complete fix.
# Configure:
if [ ! -r configure ]; then
@@ -97,7 +98,7 @@ if [ ! -r configure ]; then
autoreconf -vif
fi
fi
-CFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS -Wno-error=implicit-function-declaration" \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -105,6 +106,7 @@ CFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--docdir=/usr/doc/$PKGNAM-$VERSION \
--infodir=/usr/info \
+ --without-ffmpeg \
--build=$ARCH-slackware-linux || exit 1
# Build and install:
diff --git a/source/ap/mpg123/mpg123.SlackBuild b/source/ap/mpg123/mpg123.SlackBuild
index 262184756..496eae0d1 100755
--- a/source/ap/mpg123/mpg123.SlackBuild
+++ b/source/ap/mpg123/mpg123.SlackBuild
@@ -30,7 +30,7 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -40,16 +40,12 @@ fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
- TARGET="x86"
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
- TARGET=""
+ TARGET="sse"
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
TARGET="x86-64"
elif [ "$ARCH" = "arm" ]; then
diff --git a/source/ap/nano/nano.SlackBuild b/source/ap/nano/nano.SlackBuild
index a9b7b28a8..385e0c02e 100755
--- a/source/ap/nano/nano.SlackBuild
+++ b/source/ap/nano/nano.SlackBuild
@@ -31,7 +31,7 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -46,16 +46,13 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
ARCHQUADLET=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
ARCHQUADLET=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
ARCHQUADLET=""
elif [ "$ARCH" = "arm" ]; then
diff --git a/source/ap/nvme-cli/nvme-cli.SlackBuild b/source/ap/nvme-cli/nvme-cli.SlackBuild
index a7f5e5b11..141f02554 100755
--- a/source/ap/nvme-cli/nvme-cli.SlackBuild
+++ b/source/ap/nvme-cli/nvme-cli.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i586 ;;
+ i?86) ARCH=i686 ;;
arm*) readelf /usr/bin/file -A | grep -E -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
@@ -47,21 +47,12 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
diff --git a/source/ap/pamixer/pamixer.SlackBuild b/source/ap/pamixer/pamixer.SlackBuild
index b8041bcce..2cdbea4d5 100755
--- a/source/ap/pamixer/pamixer.SlackBuild
+++ b/source/ap/pamixer/pamixer.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=pamixer
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/ap/powertop/powertop.SlackBuild b/source/ap/powertop/powertop.SlackBuild
index fbfb597df..91af9cee4 100755
--- a/source/ap/powertop/powertop.SlackBuild
+++ b/source/ap/powertop/powertop.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=powertop
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/rpm/rpm.SlackBuild b/source/ap/rpm/rpm.SlackBuild
index 1120faa73..48ed1fbeb 100755
--- a/source/ap/rpm/rpm.SlackBuild
+++ b/source/ap/rpm/rpm.SlackBuild
@@ -26,14 +26,14 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=rpm
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -52,10 +52,10 @@ if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "arm" ]; then
SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
diff --git a/source/ap/rzip/rzip.SlackBuild b/source/ap/rzip/rzip.SlackBuild
index 716b98ec0..352efbce2 100755
--- a/source/ap/rzip/rzip.SlackBuild
+++ b/source/ap/rzip/rzip.SlackBuild
@@ -55,6 +55,9 @@ else
SLKCFLAGS="-O2"
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=implicit-int"
+
TMP=${TMP:-/tmp}
PKG=$TMP/package-rzip
diff --git a/source/ap/sc-im/sc-im.SlackBuild b/source/ap/sc-im/sc-im.SlackBuild
index b48e8fa7f..513754d69 100755
--- a/source/ap/sc-im/sc-im.SlackBuild
+++ b/source/ap/sc-im/sc-im.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
- i?86) ARCH=i586 ;;
+ i?86) ARCH=i686 ;;
arm*) readelf /usr/bin/file -A | grep -E -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$(uname -m) ;;
@@ -47,26 +47,20 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+export CFLAGS="$SLKCFLAGS -Wno-error=implicit-function-declaration"
+
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
@@ -91,7 +85,7 @@ sed -i "s,/usr/local,/usr,g" Makefile
sed -i "s,name = scim,name = sc-im,g" Makefile
# Fix mandir:
sed -i "s,share/man/man1,man/man1,g" Makefile
-make || exit 1
+make $NUMJOBS || exit 1
make install DESTDIR=$PKG
# Strip binaries:
diff --git a/source/ap/sc/sc.SlackBuild b/source/ap/sc/sc.SlackBuild
index 5cbd9be47..b815dd55f 100755
--- a/source/ap/sc/sc.SlackBuild
+++ b/source/ap/sc/sc.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=sc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-10}
+BUILD=${BUILD:-11}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -87,6 +87,7 @@ find . \
# Old software, modern compiler:
zcat $CWD/sc-7.16-3.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/sc.gcc14.diff.gz | patch -p1 --verbose || exit 1
# Build:
make $NUMJOBS || exit 1
diff --git a/source/ap/sc/sc.gcc14.diff b/source/ap/sc/sc.gcc14.diff
new file mode 100644
index 000000000..25c9f1e0b
--- /dev/null
+++ b/source/ap/sc/sc.gcc14.diff
@@ -0,0 +1,11 @@
+--- ./Makefile.orig 2024-05-11 16:51:27.919158388 -0500
++++ ./Makefile 2024-05-11 16:53:10.235160676 -0500
+@@ -336,7 +336,7 @@
+ # real effect on the reliability of the program, but may concern some
+ # people who don't understand them.
+ #CFLAGS=-DSYSV3 -O2 -Wall -pipe
+-CFLAGS=-DSYSV3 -O2 -pipe
++CFLAGS=-DSYSV3 -O2 -pipe -Wno-error=implicit-function-declaration -Wno-error=implicit-int
+ LIB=-lm -lncurses
+
+ # All of the source files
diff --git a/source/ap/scdoc/scdoc.SlackBuild b/source/ap/scdoc/scdoc.SlackBuild
new file mode 100755
index 000000000..d0515a9a1
--- /dev/null
+++ b/source/ap/scdoc/scdoc.SlackBuild
@@ -0,0 +1,110 @@
+#!/bin/bash
+
+# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=scdoc
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i686 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+CFLAGS="$SLKCFLAGS" \
+PREFIX=/usr \
+MANDIR=/usr/man \
+make $NUMJOBS || exit 1
+
+CFLAGS="$SLKCFLAGS" \
+DESTDIR=$PKG \
+PREFIX=/usr \
+MANDIR=/usr/man \
+make install || exit 1
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \+
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ COPYING* README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/scdoc/scdoc.url b/source/ap/scdoc/scdoc.url
new file mode 100644
index 000000000..4126b0cf5
--- /dev/null
+++ b/source/ap/scdoc/scdoc.url
@@ -0,0 +1,2 @@
+https://git.sr.ht/~sircmpwn/scdoc
+https://git.sr.ht/~sircmpwn/scdoc/archive/1.11.3.tar.gz
diff --git a/source/ap/scdoc/slack-desc b/source/ap/scdoc/slack-desc
new file mode 100644
index 000000000..660f9bde8
--- /dev/null
+++ b/source/ap/scdoc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+scdoc: scdoc (simple man page generator)
+scdoc:
+scdoc: scdoc is a simple man page generator for POSIX systems written in C99.
+scdoc:
+scdoc: Homepage: https://git.sr.ht/~sircmpwn/scdoc
+scdoc:
+scdoc:
+scdoc:
+scdoc:
+scdoc:
+scdoc:
diff --git a/source/ap/screen/26source_encoding.patch b/source/ap/screen/26source_encoding.patch
deleted file mode 100644
index 1094ac518..000000000
--- a/source/ap/screen/26source_encoding.patch
+++ /dev/null
@@ -1,353 +0,0 @@
-Author: Ben Finney <ben@benfinney.id.au>
-Description: Replace the composed characters with their respective description.
---- a/process.c
-+++ b/process.c
-@@ -250,177 +250,177 @@
-
- /* digraph table taken from old vim and rfc1345 */
- static struct digraph digraphs[MAX_DIGRAPH + 1] = {
-- {{' ', ' '}, 160}, /* */
-- {{'N', 'S'}, 160}, /* */
-- {{'~', '!'}, 161}, /* */
-- {{'!', '!'}, 161}, /* */
-- {{'!', 'I'}, 161}, /* */
-- {{'c', '|'}, 162}, /* */
-- {{'c', 't'}, 162}, /* */
-- {{'$', '$'}, 163}, /* */
-- {{'P', 'd'}, 163}, /* */
-- {{'o', 'x'}, 164}, /* */
-- {{'C', 'u'}, 164}, /* */
-- {{'C', 'u'}, 164}, /* */
-- {{'E', 'u'}, 164}, /* */
-- {{'Y', '-'}, 165}, /* */
-- {{'Y', 'e'}, 165}, /* */
-- {{'|', '|'}, 166}, /* */
-- {{'B', 'B'}, 166}, /* */
-- {{'p', 'a'}, 167}, /* */
-- {{'S', 'E'}, 167}, /* */
-- {{'"', '"'}, 168}, /* */
-- {{'\'', ':'}, 168}, /* */
-- {{'c', 'O'}, 169}, /* */
-- {{'C', 'o'}, 169}, /* */
-- {{'a', '-'}, 170}, /* */
-- {{'<', '<'}, 171}, /* */
-- {{'-', ','}, 172}, /* */
-- {{'N', 'O'}, 172}, /* */
-- {{'-', '-'}, 173}, /* */
-- {{'r', 'O'}, 174}, /* */
-- {{'R', 'g'}, 174}, /* */
-- {{'-', '='}, 175}, /* */
-- {{'\'', 'm'}, 175}, /* */
-- {{'~', 'o'}, 176}, /* */
-- {{'D', 'G'}, 176}, /* */
-- {{'+', '-'}, 177}, /* */
-- {{'2', '2'}, 178}, /* */
-- {{'2', 'S'}, 178}, /* */
-- {{'3', '3'}, 179}, /* */
-- {{'3', 'S'}, 179}, /* */
-- {{'\'', '\''}, 180}, /* */
-- {{'j', 'u'}, 181}, /* */
-- {{'M', 'y'}, 181}, /* */
-- {{'p', 'p'}, 182}, /* */
-- {{'P', 'I'}, 182}, /* */
-- {{'~', '.'}, 183}, /* */
-- {{'.', 'M'}, 183}, /* */
-- {{',', ','}, 184}, /* */
-- {{'\'', ','}, 184}, /* */
-- {{'1', '1'}, 185}, /* */
-- {{'1', 'S'}, 185}, /* */
-- {{'o', '-'}, 186}, /* */
-- {{'>', '>'}, 187}, /* */
-- {{'1', '4'}, 188}, /* */
-- {{'1', '2'}, 189}, /* */
-- {{'3', '4'}, 190}, /* */
-- {{'~', '?'}, 191}, /* */
-- {{'?', '?'}, 191}, /* */
-- {{'?', 'I'}, 191}, /* */
-- {{'A', '`'}, 192}, /* */
-- {{'A', '!'}, 192}, /* */
-- {{'A', '\''}, 193}, /* */
-- {{'A', '^'}, 194}, /* */
-- {{'A', '>'}, 194}, /* */
-- {{'A', '~'}, 195}, /* */
-- {{'A', '?'}, 195}, /* */
-- {{'A', '"'}, 196}, /* */
-- {{'A', ':'}, 196}, /* */
-- {{'A', '@'}, 197}, /* */
-- {{'A', 'A'}, 197}, /* */
-- {{'A', 'E'}, 198}, /* */
-- {{'C', ','}, 199}, /* */
-- {{'E', '`'}, 200}, /* */
-- {{'E', '!'}, 200}, /* */
-- {{'E', '\''}, 201}, /* */
-- {{'E', '^'}, 202}, /* */
-- {{'E', '>'}, 202}, /* */
-- {{'E', '"'}, 203}, /* */
-- {{'E', ':'}, 203}, /* */
-- {{'I', '`'}, 204}, /* */
-- {{'I', '!'}, 204}, /* */
-- {{'I', '\''}, 205}, /* */
-- {{'I', '^'}, 206}, /* */
-- {{'I', '>'}, 206}, /* */
-- {{'I', '"'}, 207}, /* */
-- {{'I', ':'}, 207}, /* */
-- {{'D', '-'}, 208}, /* */
-- {{'N', '~'}, 209}, /* */
-- {{'N', '?'}, 209}, /* */
-- {{'O', '`'}, 210}, /* */
-- {{'O', '!'}, 210}, /* */
-- {{'O', '\''}, 211}, /* */
-- {{'O', '^'}, 212}, /* */
-- {{'O', '>'}, 212}, /* */
-- {{'O', '~'}, 213}, /* */
-- {{'O', '?'}, 213}, /* */
-- {{'O', '"'}, 214}, /* */
-- {{'O', ':'}, 214}, /* */
-- {{'/', '\\'}, 215}, /* */
-- {{'*', 'x'}, 215}, /* */
-- {{'O', '/'}, 216}, /* */
-- {{'U', '`'}, 217}, /* */
-- {{'U', '!'}, 217}, /* */
-- {{'U', '\''}, 218}, /* */
-- {{'U', '^'}, 219}, /* */
-- {{'U', '>'}, 219}, /* */
-- {{'U', '"'}, 220}, /* */
-- {{'U', ':'}, 220}, /* */
-- {{'Y', '\''}, 221}, /* */
-- {{'I', 'p'}, 222}, /* */
-- {{'T', 'H'}, 222}, /* */
-- {{'s', 's'}, 223}, /* */
-- {{'s', '"'}, 223}, /* */
-- {{'a', '`'}, 224}, /* */
-- {{'a', '!'}, 224}, /* */
-- {{'a', '\''}, 225}, /* */
-- {{'a', '^'}, 226}, /* */
-- {{'a', '>'}, 226}, /* */
-- {{'a', '~'}, 227}, /* */
-- {{'a', '?'}, 227}, /* */
-- {{'a', '"'}, 228}, /* */
-- {{'a', ':'}, 228}, /* */
-- {{'a', 'a'}, 229}, /* */
-- {{'a', 'e'}, 230}, /* */
-- {{'c', ','}, 231}, /* */
-- {{'e', '`'}, 232}, /* */
-- {{'e', '!'}, 232}, /* */
-- {{'e', '\''}, 233}, /* */
-- {{'e', '^'}, 234}, /* */
-- {{'e', '>'}, 234}, /* */
-- {{'e', '"'}, 235}, /* */
-- {{'e', ':'}, 235}, /* */
-- {{'i', '`'}, 236}, /* */
-- {{'i', '!'}, 236}, /* */
-- {{'i', '\''}, 237}, /* */
-- {{'i', '^'}, 238}, /* */
-- {{'i', '>'}, 238}, /* */
-- {{'i', '"'}, 239}, /* */
-- {{'i', ':'}, 239}, /* */
-- {{'d', '-'}, 240}, /* */
-- {{'n', '~'}, 241}, /* */
-- {{'n', '?'}, 241}, /* */
-- {{'o', '`'}, 242}, /* */
-- {{'o', '!'}, 242}, /* */
-- {{'o', '\''}, 243}, /* */
-- {{'o', '^'}, 244}, /* */
-- {{'o', '>'}, 244}, /* */
-- {{'o', '~'}, 245}, /* */
-- {{'o', '?'}, 245}, /* */
-- {{'o', '"'}, 246}, /* */
-- {{'o', ':'}, 246}, /* */
-- {{':', '-'}, 247}, /* */
-- {{'o', '/'}, 248}, /* */
-- {{'u', '`'}, 249}, /* */
-- {{'u', '!'}, 249}, /* */
-- {{'u', '\''}, 250}, /* */
-- {{'u', '^'}, 251}, /* */
-- {{'u', '>'}, 251}, /* */
-- {{'u', '"'}, 252}, /* */
-- {{'u', ':'}, 252}, /* */
-- {{'y', '\''}, 253}, /* */
-- {{'i', 'p'}, 254}, /* */
-- {{'t', 'h'}, 254}, /* */
-- {{'y', '"'}, 255}, /* */
-- {{'y', ':'}, 255}, /* */
-- {{'"', '['}, 196}, /* */
-- {{'"', '\\'}, 214}, /* */
-- {{'"', ']'}, 220}, /* */
-- {{'"', '{'}, 228}, /* */
-- {{'"', '|'}, 246}, /* */
-- {{'"', '}'}, 252}, /* */
-- {{'"', '~'}, 223} /* */
-+ {{' ', ' '}, 0x00a0}, /* NO-BREAK SPACE */
-+ {{'N', 'S'}, 0x00a0}, /* NO-BREAK SPACE */
-+ {{'~', '!'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */
-+ {{'!', '!'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */
-+ {{'!', 'I'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */
-+ {{'c', '|'}, 0x00a2}, /* CENT SIGN */
-+ {{'c', 't'}, 0x00a2}, /* CENT SIGN */
-+ {{'$', '$'}, 0x00a3}, /* POUND SIGN */
-+ {{'P', 'd'}, 0x00a3}, /* POUND SIGN */
-+ {{'o', 'x'}, 0x00a4}, /* CURRENCY SIGN */
-+ {{'C', 'u'}, 0x00a4}, /* CURRENCY SIGN */
-+ {{'C', 'u'}, 0x00a4}, /* CURRENCY SIGN */
-+ {{'E', 'u'}, 0x00a4}, /* CURRENCY SIGN */
-+ {{'Y', '-'}, 0x00a5}, /* YEN SIGN */
-+ {{'Y', 'e'}, 0x00a5}, /* YEN SIGN */
-+ {{'|', '|'}, 0x00a6}, /* BROKEN BAR */
-+ {{'B', 'B'}, 0x00a6}, /* BROKEN BAR */
-+ {{'p', 'a'}, 0x00a7}, /* SECTION SIGN */
-+ {{'S', 'E'}, 0x00a7}, /* SECTION SIGN */
-+ {{'"', '"'}, 0x00a8}, /* DIAERESIS */
-+ {{'\'', ':'}, 0x00a8}, /* DIAERESIS */
-+ {{'c', 'O'}, 0x00a9}, /* COPYRIGHT SIGN */
-+ {{'C', 'o'}, 0x00a9}, /* COPYRIGHT SIGN */
-+ {{'-', 'a'}, 0x00aa}, /* FEMININE ORDINAL INDICATOR */
-+ {{'<', '<'}, 0x00ab}, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
-+ {{'-', ','}, 0x00ac}, /* NOT SIGN */
-+ {{'N', 'O'}, 0x00ac}, /* NOT SIGN */
-+ {{'-', '-'}, 0x00ad}, /* SOFT HYPHEN */
-+ {{'r', 'O'}, 0x00ae}, /* REGISTERED SIGN */
-+ {{'R', 'g'}, 0x00ae}, /* REGISTERED SIGN */
-+ {{'-', '='}, 0x00af}, /* MACRON */
-+ {{'\'', 'm'}, 0x00af}, /* MACRON */
-+ {{'~', 'o'}, 0x00b0}, /* DEGREE SIGN */
-+ {{'D', 'G'}, 0x00b0}, /* DEGREE SIGN */
-+ {{'+', '-'}, 0x00b1}, /* PLUS-MINUS SIGN */
-+ {{'2', '2'}, 0x00b2}, /* SUPERSCRIPT TWO */
-+ {{'2', 'S'}, 0x00b2}, /* SUPERSCRIPT TWO */
-+ {{'3', '3'}, 0x00b3}, /* SUPERSCRIPT THREE */
-+ {{'3', 'S'}, 0x00b3}, /* SUPERSCRIPT THREE */
-+ {{'\'', '\''}, 0x00b4}, /* ACUTE ACCENT */
-+ {{'j', 'u'}, 0x00b5}, /* MICRO SIGN */
-+ {{'M', 'y'}, 0x00b5}, /* MICRO SIGN */
-+ {{'p', 'p'}, 0x00b6}, /* PILCROW SIGN */
-+ {{'P', 'I'}, 0x00b6}, /* PILCROW SIGN */
-+ {{'~', '.'}, 0x00b7}, /* MIDDLE DOT */
-+ {{'.', 'M'}, 0x00b7}, /* MIDDLE DOT */
-+ {{',', ','}, 0x00b8}, /* CEDILLA */
-+ {{'\'', ','}, 0x00b8}, /* CEDILLA */
-+ {{'1', '1'}, 0x00b9}, /* SUPERSCRIPT ONE */
-+ {{'1', 'S'}, 0x00b9}, /* SUPERSCRIPT ONE */
-+ {{'-', 'o'}, 0x00ba}, /* MASCULINE ORDINAL INDICATOR */
-+ {{'>', '>'}, 0x00bb}, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
-+ {{'1', '4'}, 0x00bc}, /* VULGAR FRACTION ONE QUARTER */
-+ {{'1', '2'}, 0x00bd}, /* VULGAR FRACTION ONE HALF */
-+ {{'3', '4'}, 0x00be}, /* VULGAR FRACTION THREE QUARTERS */
-+ {{'~', '?'}, 0x00bf}, /* INVERTED QUESTION MARK */
-+ {{'?', '?'}, 0x00bf}, /* INVERTED QUESTION MARK */
-+ {{'?', 'I'}, 0x00bf}, /* INVERTED QUESTION MARK */
-+ {{'A', '`'}, 0x00c0}, /* LATIN CAPITAL LETTER A WITH GRAVE */
-+ {{'A', '!'}, 0x00c0}, /* LATIN CAPITAL LETTER A WITH GRAVE */
-+ {{'A', '\''}, 0x00c1}, /* LATIN CAPITAL LETTER A WITH ACUTE */
-+ {{'A', '^'}, 0x00c2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
-+ {{'A', '>'}, 0x00c2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
-+ {{'A', '~'}, 0x00c3}, /* LATIN CAPITAL LETTER A WITH TILDE */
-+ {{'A', '?'}, 0x00c3}, /* LATIN CAPITAL LETTER A WITH TILDE */
-+ {{'A', '"'}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
-+ {{'A', ':'}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
-+ {{'A', '@'}, 0x00c5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */
-+ {{'A', 'A'}, 0x00c5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */
-+ {{'A', 'E'}, 0x00c6}, /* LATIN CAPITAL LETTER AE */
-+ {{'C', ','}, 0x00c7}, /* LATIN CAPITAL LETTER C WITH CEDILLA */
-+ {{'E', '`'}, 0x00c8}, /* LATIN CAPITAL LETTER E WITH GRAVE */
-+ {{'E', '!'}, 0x00c8}, /* LATIN CAPITAL LETTER E WITH GRAVE */
-+ {{'E', '\''}, 0x00c9}, /* LATIN CAPITAL LETTER E WITH ACUTE */
-+ {{'E', '^'}, 0x00ca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
-+ {{'E', '>'}, 0x00ca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
-+ {{'E', '"'}, 0x00cb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
-+ {{'E', ':'}, 0x00cb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
-+ {{'I', '`'}, 0x00cc}, /* LATIN CAPITAL LETTER I WITH GRAVE */
-+ {{'I', '!'}, 0x00cc}, /* LATIN CAPITAL LETTER I WITH GRAVE */
-+ {{'I', '\''}, 0x00cd}, /* LATIN CAPITAL LETTER I WITH ACUTE */
-+ {{'I', '^'}, 0x00ce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
-+ {{'I', '>'}, 0x00ce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
-+ {{'I', '"'}, 0x00cf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */
-+ {{'I', ':'}, 0x00cf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */
-+ {{'D', '-'}, 0x00d0}, /* LATIN CAPITAL LETTER ETH */
-+ {{'N', '~'}, 0x00d1}, /* LATIN CAPITAL LETTER N WITH TILDE */
-+ {{'N', '?'}, 0x00d1}, /* LATIN CAPITAL LETTER N WITH TILDE */
-+ {{'O', '`'}, 0x00d2}, /* LATIN CAPITAL LETTER O WITH GRAVE */
-+ {{'O', '!'}, 0x00d2}, /* LATIN CAPITAL LETTER O WITH GRAVE */
-+ {{'O', '\''}, 0x00d3}, /* LATIN CAPITAL LETTER O WITH ACUTE */
-+ {{'O', '^'}, 0x00d4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
-+ {{'O', '>'}, 0x00d4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
-+ {{'O', '~'}, 0x00d5}, /* LATIN CAPITAL LETTER O WITH TILDE */
-+ {{'O', '?'}, 0x00d5}, /* LATIN CAPITAL LETTER O WITH TILDE */
-+ {{'O', '"'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
-+ {{'O', ':'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
-+ {{'/', '\\'}, 0x00d7}, /* MULTIPLICATION SIGN */
-+ {{'*', 'x'}, 0x00d7}, /* MULTIPLICATION SIGN */
-+ {{'O', '/'}, 0x00d8}, /* LATIN CAPITAL LETTER O WITH STROKE */
-+ {{'U', '`'}, 0x00d9}, /* LATIN CAPITAL LETTER U WITH GRAVE */
-+ {{'U', '!'}, 0x00d9}, /* LATIN CAPITAL LETTER U WITH GRAVE */
-+ {{'U', '\''}, 0x00da}, /* LATIN CAPITAL LETTER U WITH ACUTE */
-+ {{'U', '^'}, 0x00db}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
-+ {{'U', '>'}, 0x00db}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
-+ {{'U', '"'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
-+ {{'U', ':'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
-+ {{'Y', '\''}, 0x00dd}, /* LATIN CAPITAL LETTER Y WITH ACUTE */
-+ {{'I', 'p'}, 0x00de}, /* LATIN CAPITAL LETTER THORN */
-+ {{'T', 'H'}, 0x00de}, /* LATIN CAPITAL LETTER THORN */
-+ {{'s', 's'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */
-+ {{'s', '"'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */
-+ {{'a', '`'}, 0x00e0}, /* LATIN SMALL LETTER A WITH GRAVE */
-+ {{'a', '!'}, 0x00e0}, /* LATIN SMALL LETTER A WITH GRAVE */
-+ {{'a', '\''}, 0x00e1}, /* LATIN SMALL LETTER A WITH ACUTE */
-+ {{'a', '^'}, 0x00e2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
-+ {{'a', '>'}, 0x00e2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
-+ {{'a', '~'}, 0x00e3}, /* LATIN SMALL LETTER A WITH TILDE */
-+ {{'a', '?'}, 0x00e3}, /* LATIN SMALL LETTER A WITH TILDE */
-+ {{'a', '"'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */
-+ {{'a', ':'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */
-+ {{'a', 'a'}, 0x00e5}, /* LATIN SMALL LETTER A WITH RING ABOVE */
-+ {{'a', 'e'}, 0x00e6}, /* LATIN SMALL LETTER AE */
-+ {{'c', ','}, 0x00e7}, /* LATIN SMALL LETTER C WITH CEDILLA */
-+ {{'e', '`'}, 0x00e8}, /* LATIN SMALL LETTER E WITH GRAVE */
-+ {{'e', '!'}, 0x00e8}, /* LATIN SMALL LETTER E WITH GRAVE */
-+ {{'e', '\''}, 0x00e9}, /* LATIN SMALL LETTER E WITH ACUTE */
-+ {{'e', '^'}, 0x00ea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
-+ {{'e', '>'}, 0x00ea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */
-+ {{'e', '"'}, 0x00eb}, /* LATIN SMALL LETTER E WITH DIAERESIS */
-+ {{'e', ':'}, 0x00eb}, /* LATIN SMALL LETTER E WITH DIAERESIS */
-+ {{'i', '`'}, 0x00ec}, /* LATIN SMALL LETTER I WITH GRAVE */
-+ {{'i', '!'}, 0x00ec}, /* LATIN SMALL LETTER I WITH GRAVE */
-+ {{'i', '\''}, 0x00ed}, /* LATIN SMALL LETTER I WITH ACUTE */
-+ {{'i', '^'}, 0x00ee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
-+ {{'i', '>'}, 0x00ee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
-+ {{'i', '"'}, 0x00ef}, /* LATIN SMALL LETTER I WITH DIAERESIS */
-+ {{'i', ':'}, 0x00ef}, /* LATIN SMALL LETTER I WITH DIAERESIS */
-+ {{'d', '-'}, 0x00f0}, /* LATIN SMALL LETTER ETH */
-+ {{'n', '~'}, 0x00f1}, /* LATIN SMALL LETTER N WITH TILDE */
-+ {{'n', '?'}, 0x00f1}, /* LATIN SMALL LETTER N WITH TILDE */
-+ {{'o', '`'}, 0x00f2}, /* LATIN SMALL LETTER O WITH GRAVE */
-+ {{'o', '!'}, 0x00f2}, /* LATIN SMALL LETTER O WITH GRAVE */
-+ {{'o', '\''}, 0x00f3}, /* LATIN SMALL LETTER O WITH ACUTE */
-+ {{'o', '^'}, 0x00f4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
-+ {{'o', '>'}, 0x00f4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
-+ {{'o', '~'}, 0x00f5}, /* LATIN SMALL LETTER O WITH TILDE */
-+ {{'o', '?'}, 0x00f5}, /* LATIN SMALL LETTER O WITH TILDE */
-+ {{'o', '"'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */
-+ {{'o', ':'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */
-+ {{'-', ':'}, 0x00f7}, /* DIVISION SIGN */
-+ {{'o', '/'}, 0x00f8}, /* LATIN SMALL LETTER O WITH STROKE */
-+ {{'u', '`'}, 0x00f9}, /* LATIN SMALL LETTER U WITH GRAVE */
-+ {{'u', '!'}, 0x00f9}, /* LATIN SMALL LETTER U WITH GRAVE */
-+ {{'u', '\''}, 0x00fa}, /* LATIN SMALL LETTER U WITH ACUTE */
-+ {{'u', '^'}, 0x00fb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
-+ {{'u', '>'}, 0x00fb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */
-+ {{'u', '"'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */
-+ {{'u', ':'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */
-+ {{'y', '\''}, 0x00fd}, /* LATIN SMALL LETTER Y WITH ACUTE */
-+ {{'i', 'p'}, 0x00fe}, /* LATIN SMALL LETTER THORN */
-+ {{'t', 'h'}, 0x00fe}, /* LATIN SMALL LETTER THORN */
-+ {{'y', '"'}, 0x00ff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */
-+ {{'y', ':'}, 0x00ff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */
-+ {{'"', '['}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
-+ {{'"', '\\'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
-+ {{'"', ']'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
-+ {{'"', '{'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */
-+ {{'"', '|'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */
-+ {{'"', '}'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */
-+ {{'"', '~'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */
- };
-
- #define RESIZE_FLAG_H 1
diff --git a/source/ap/screen/45suppress_remap.patch b/source/ap/screen/45suppress_remap.patch
deleted file mode 100644
index 85109a2ef..000000000
--- a/source/ap/screen/45suppress_remap.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Author: Loic Minier <lool@dooz.org>
-Description: Unbreak several useful keybindings.
---- a/termcap.c
-+++ b/termcap.c
-@@ -552,8 +552,6 @@
- else
- break;
- }
-- if (n < KMAP_KEYS)
-- domap = 1;
- if (map == 0 && domap)
- return 0;
- if (map && !domap)
diff --git a/source/ap/screen/52fix_screen_utf8_nfd.patch b/source/ap/screen/52fix_screen_utf8_nfd.patch
deleted file mode 100644
index 0aa72d5ed..000000000
--- a/source/ap/screen/52fix_screen_utf8_nfd.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-## 52fix_screen_utf8_nfd.dpatch by Nobuhiro Iwamatsu <iwamatsu@debian.org>
-##
-## DP: screen outputs screen "ÿ" after a connected character.
-## DP: This is a character without the need.
-## DP: This happens in UTF-8 environment.
-## DP: Before : screen$ ruby1.9.1 -e 'puts "\u304b\u3099.."'
-## DP: がÿ...
-## DP: patch applied : screen $ ruby1.9.1 -e 'puts "\u304b\u3099.."'
-## DP: が..
-## DP: Report from http://d.hatena.ne.jp/mrkn/20101014/fix_screen_utf8_nfd_bug
-## DP: Copyright Kenta Murata (mrkn) <mrkn@ruby-lang.org>
-## DP: Modified by Nobuhiro Iwamatsu <iwamatsu@debian.org>
-
-Index: screen/ansi.c
-===================================================================
---- screen.orig/ansi.c 2012-03-20 22:15:02.000000000 +0100
-+++ screen/ansi.c 2012-03-20 22:41:45.000000000 +0100
-@@ -725,6 +725,10 @@
- LPutChar(&curr->w_layer, &omc, ox, oy);
- LGotoPos(&curr->w_layer, curr->w_x, curr->w_y);
- }
-+ if (curr->w_mbcs)
-+ {
-+ curr->w_rend.mbcs = curr->w_mbcs = 0;
-+ }
- break;
- }
- font = curr->w_rend.font;
-Index: screen/display.c
-===================================================================
---- screen.orig/display.c 2012-03-20 22:41:28.000000000 +0100
-+++ screen/display.c 2012-03-20 22:41:45.000000000 +0100
-@@ -603,7 +603,7 @@
- D_x += D_AM ? 1 : -1;
- D_mbcs = 0;
- }
-- else if (utf8_isdouble(c))
-+ else if (utf8_isdouble(c) || (c >= 0xd800 && c < 0xe000))
- {
- D_mbcs = c;
- D_x++;
diff --git a/source/ap/screen/screen.SlackBuild b/source/ap/screen/screen.SlackBuild
index 960c38d3e..3353606c8 100755
--- a/source/ap/screen/screen.SlackBuild
+++ b/source/ap/screen/screen.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2022 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2022, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -44,14 +44,11 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
@@ -78,10 +75,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-# Apply patches taken from Debian:
+# Apply patches^H^H taken from Debian:
for pf in \
- 26source_encoding.patch.gz \
- 45suppress_remap.patch.gz \
52fix_screen_utf8_nfd.patch.gz \
; do zcat $CWD/$pf | patch --verbose -p1 || exit 1
done
diff --git a/source/ap/seejpeg/seejpeg.SlackBuild b/source/ap/seejpeg/seejpeg.SlackBuild
index cb3ba4adb..6bb06e2a1 100755
--- a/source/ap/seejpeg/seejpeg.SlackBuild
+++ b/source/ap/seejpeg/seejpeg.SlackBuild
@@ -73,7 +73,7 @@ find . \
( cd libjpeg-6a ; ./configure ; make || exit 1 ) || exit 1
ln -sf libjpeg-6a jpeglib
-make seejpeg || exit 1
+CFLAGS="-Wno-error=incompatible-pointer-types" make seejpeg || exit 1
strip seejpeg
cat seejpeg > $PKG/usr/bin/seejpeg
@@ -89,4 +89,3 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
# Build the package:
cd $PKG
/sbin/makepkg -l y -c n $TMP/seejpeg-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/ap/slackpkg/files/core-functions.sh b/source/ap/slackpkg/files/core-functions.sh
index ede3d3f42..626a9b8e8 100644
--- a/source/ap/slackpkg/files/core-functions.sh
+++ b/source/ap/slackpkg/files/core-functions.sh
@@ -31,6 +31,17 @@ One or more errors occurred while slackpkg was running:
}
trap 'cleanup' 2 14 15 # trap CTRL+C and kill
+# Define which version of gnupg to use. We'll prefer gpg1 since it has fewer
+# dependencies, then gpg2, and if we don't find that we'll blindly set this
+# to gpg and deal with it later.
+if which gpg1 > /dev/null 2> /dev/null ; then
+ GPG=gpg1
+elif which gpg2 > /dev/null 2> /dev/null ; then
+ GPG=gpg2
+else
+ GPG=gpg
+fi
+
# This create an spinning bar
spinning() {
local WAITFILE
@@ -371,7 +382,7 @@ as slackpkg cannot function without awk.\n"
# Check if gpg is enabled but no GPG command are found.
#
- if ! [ "$(which gpg2 2>/dev/null)" ] && [ "${CHECKGPG}" = "on" ]; then
+ if ! [ "$(which $GPG 2>/dev/null)" ] && [ "${CHECKGPG}" = "on" ]; then
CHECKGPG=off
echo -e "\n\
gpg package not found! Please disable GPG in ${CONF}/slackpkg.conf or install\n\
@@ -384,7 +395,7 @@ file distributed with slackpkg.\n"
# Check if the Slackware GPG key are found in the system
#
- GPGFIRSTTIME="$(gpg2 --list-keys \"$SLACKKEY\" 2>/dev/null \
+ GPGFIRSTTIME="$($GPG --list-keys \"$SLACKKEY\" 2>/dev/null \
| grep -c "$SLACKKEY")"
if [ "$GPGFIRSTTIME" = "0" ] && \
[ "$CMD" != "search" ] && \
@@ -546,7 +557,7 @@ function checkmd5() {
# Verify the GPG signature of files/packages
#
function checkgpg() {
- gpg2 --verify ${1}.asc ${1} 2>/dev/null && echo "1" || echo "0"
+ $GPG --verify ${1}.asc ${1} 2>/dev/null && echo "1" || echo "0"
}
# Fetch $SLACKKEY from a trusted source
@@ -585,8 +596,8 @@ Do you want to import the GPG key from this source? (YES|NO)\n"
# Import $SLACKKEY
function import_gpg_key() {
mkdir -p ~/.gnupg
- gpg2 --yes --batch --delete-key "$SLACKKEY" &>/dev/null
- gpg2 --import $TMPDIR/gpgkey &>/dev/null && \
+ $GPG --yes --batch --delete-key "$SLACKKEY" &>/dev/null
+ $GPG --import $TMPDIR/gpgkey &>/dev/null && \
echo -e "\t\t\tSlackware Linux Project's GPG key added"
}
diff --git a/source/ap/slackpkg/slackpkg.SlackBuild b/source/ap/slackpkg/slackpkg.SlackBuild
index eab285bb4..fa8cc2c92 100755
--- a/source/ap/slackpkg/slackpkg.SlackBuild
+++ b/source/ap/slackpkg/slackpkg.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=slackpkg
VERSION=${VERSION:-15.0.10}
ARCH="noarch"
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
diff --git a/source/ap/sox/sox.SlackBuild b/source/ap/sox/sox.SlackBuild
index fa8c4d363..2cc0fb7ce 100755
--- a/source/ap/sox/sox.SlackBuild
+++ b/source/ap/sox/sox.SlackBuild
@@ -52,6 +52,9 @@ else
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=implicit-function-declaration"
+
# If this package is being built for ALSA (no PulseAudio), use the _alsa $TAG:
if [ ! -r /usr/lib${LIBDIRSUFFIX}/pkgconfig/libpulse.pc ]; then
TAG="_alsa"
diff --git a/source/ap/sqlite/sqlite.SlackBuild b/source/ap/sqlite/sqlite.SlackBuild
index a9d8139fe..60baa99d0 100755
--- a/source/ap/sqlite/sqlite.SlackBuild
+++ b/source/ap/sqlite/sqlite.SlackBuild
@@ -50,7 +50,7 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -68,14 +68,11 @@ fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
diff --git a/source/ap/stow/slack-desc b/source/ap/stow/slack-desc
new file mode 100644
index 000000000..9c2a9f33d
--- /dev/null
+++ b/source/ap/stow/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+stow: stow (symlink farm manager)
+stow:
+stow: GNU Stow is a symlink farm manager which takes distinct sets of
+stow: software and/or data located in separate directories on the
+stow: filesystem, and makes them all appear to be installed in a single
+stow: directory tree. Stow helps to administer, upgrade, install, and remove
+stow: files in independent software packages without confusing them with
+stow: other files sharing the same file system space.
+stow:
+stow: Homepage: https://www.gnu.org/software/stow/
+stow:
diff --git a/source/ap/stow/stow.SlackBuild b/source/ap/stow/stow.SlackBuild
new file mode 100755
index 000000000..426a530d0
--- /dev/null
+++ b/source/ap/stow/stow.SlackBuild
@@ -0,0 +1,145 @@
+#!/bin/bash
+
+# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=stow
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i686 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
+
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Configure, build, and install:
+if [ ! -r configure ]; then
+ if [ -x ./autogen.sh ]; then
+ NOCONFIGURE=1 ./autogen.sh
+ else
+ autoreconf -vif
+ fi
+fi
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-static \
+ --build=$ARCH-slackware-linux || exit 1
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Don't ship .la files:
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \+
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# We'll take care of this, thanks
+rm -rf $PKG/usr/doc
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ ChangeLog INSTALL* README* \
+ doc/manual-split \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/sudo/sudo.SlackBuild b/source/ap/sudo/sudo.SlackBuild
index 42b9895d6..23f8a39f2 100755
--- a/source/ap/sudo/sudo.SlackBuild
+++ b/source/ap/sudo/sudo.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -52,17 +52,11 @@ PKG=$TMP/package-sudo
rm -rf $PKG
mkdir -p $TMP $PKG/var/db
-if [ "$ARCH" = "i386" ]; then
- SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
diff --git a/source/ap/texinfo/texinfo.SlackBuild b/source/ap/texinfo/texinfo.SlackBuild
index cba119234..0309cb0eb 100755
--- a/source/ap/texinfo/texinfo.SlackBuild
+++ b/source/ap/texinfo/texinfo.SlackBuild
@@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@@ -46,21 +46,12 @@ fi
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-if [ "$ARCH" = "i586" ]; then
- SLKCFLAGS="-O2 -march=i586 -mtune=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686"
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+if [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
- LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
diff --git a/source/ap/undervolt/undervolt.SlackBuild b/source/ap/undervolt/undervolt.SlackBuild
index afa15d021..d1b089b19 100755
--- a/source/ap/undervolt/undervolt.SlackBuild
+++ b/source/ap/undervolt/undervolt.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2020 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2020, 2024 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=undervolt
VERSION=${VERSION:-$(echo ${PKGNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -58,7 +58,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
-python3 setup.py install --root=$PKG || exit 1
+unshare -n python3 -m build --wheel --no-isolation || exit 1
+
+python3 -m installer --destdir "$PKG" dist/*.whl || exit 1
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a *.rst *.txt \
diff --git a/source/ap/vim/vim-gvim.SlackBuild b/source/ap/vim/vim-gvim.SlackBuild
index 44b11e81d..ec9d0d1d1 100755
--- a/source/ap/vim/vim-gvim.SlackBuild
+++ b/source/ap/vim/vim-gvim.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2013, 2016, 2018, 2019, 2021, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013, 2016, 2018, 2019, 2021, 2023, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -43,7 +43,7 @@ LUAINTERP=${LUAINTERP:-dynamic}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
diff --git a/source/ap/vim/vim.SlackBuild b/source/ap/vim/vim.SlackBuild
index 9897abc4a..ff6e8de6e 100755
--- a/source/ap/vim/vim.SlackBuild
+++ b/source/ap/vim/vim.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2008, 2009, 2010, 2013, 2016, 2018, 2019, 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -53,7 +53,7 @@ fi
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
diff --git a/source/ap/vorbis-tools/vorbis-tools.SlackBuild b/source/ap/vorbis-tools/vorbis-tools.SlackBuild
index 7f23e008e..41d813480 100755
--- a/source/ap/vorbis-tools/vorbis-tools.SlackBuild
+++ b/source/ap/vorbis-tools/vorbis-tools.SlackBuild
@@ -69,6 +69,9 @@ else
LIBDIRSUFFIX=""
fi
+# GCC 14 "fix":
+SLKCFLAGS="$SLKCFLAGS -Wno-error=implicit-function-declaration"
+
rm -rf $PKG
mkdir -p $TMP $PKG
diff --git a/source/ap/xfsdump/xfsdump.SlackBuild b/source/ap/xfsdump/xfsdump.SlackBuild
index 18d782cfa..e3d65f2d0 100755
--- a/source/ap/xfsdump/xfsdump.SlackBuild
+++ b/source/ap/xfsdump/xfsdump.SlackBuild
@@ -31,7 +31,7 @@ NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i586 ;;
+ i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
diff --git a/source/ap/zsh/0007-zsh-configure-c99.patch b/source/ap/zsh/0007-zsh-configure-c99.patch
new file mode 100644
index 000000000..c4b36231b
--- /dev/null
+++ b/source/ap/zsh/0007-zsh-configure-c99.patch
@@ -0,0 +1,44 @@
+Avoid incompatible pointer types in terminfo global variable checks.
+Some compilers reject these incompatible pointer types, causing the
+checks to always fail, when these variables are in fact available.
+
+Submitted upstream: <https://www.zsh.org/mla/workers/2023/msg01112.html>
+
+diff --git a/configure.ac b/configure.ac
+index a58242f453b4a8f3..5534f42df14eb28c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1769,27 +1769,27 @@ if test x$zsh_cv_path_term_header != xnone; then
+ fi
+
+ AC_MSG_CHECKING(if boolcodes is available)
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = boolcodes; puts(*test);]])],[AC_DEFINE(HAVE_BOOLCODES) boolcodes=yes],[boolcodes=no])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)boolcodes; puts(*test);]])],[AC_DEFINE(HAVE_BOOLCODES) boolcodes=yes],[boolcodes=no])
+ AC_MSG_RESULT($boolcodes)
+
+ AC_MSG_CHECKING(if numcodes is available)
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = numcodes; puts(*test);]])],[AC_DEFINE(HAVE_NUMCODES) numcodes=yes],[numcodes=no])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)numcodes; puts(*test);]])],[AC_DEFINE(HAVE_NUMCODES) numcodes=yes],[numcodes=no])
+ AC_MSG_RESULT($numcodes)
+
+ AC_MSG_CHECKING(if strcodes is available)
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = strcodes; puts(*test);]])],[AC_DEFINE(HAVE_STRCODES) strcodes=yes],[strcodes=no])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)strcodes; puts(*test);]])],[AC_DEFINE(HAVE_STRCODES) strcodes=yes],[strcodes=no])
+ AC_MSG_RESULT($strcodes)
+
+ AC_MSG_CHECKING(if boolnames is available)
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = boolnames; puts(*test);]])],[AC_DEFINE(HAVE_BOOLNAMES) boolnames=yes],[boolnames=no])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)boolnames; puts(*test);]])],[AC_DEFINE(HAVE_BOOLNAMES) boolnames=yes],[boolnames=no])
+ AC_MSG_RESULT($boolnames)
+
+ AC_MSG_CHECKING(if numnames is available)
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = numnames; puts(*test);]])],[AC_DEFINE(HAVE_NUMNAMES) numnames=yes],[numnames=no])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)numnames; puts(*test);]])],[AC_DEFINE(HAVE_NUMNAMES) numnames=yes],[numnames=no])
+ AC_MSG_RESULT($numnames)
+
+ AC_MSG_CHECKING(if strnames is available)
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = strnames; puts(*test);]])],[AC_DEFINE(HAVE_STRNAMES) strnames=yes],[strnames=no])
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[$term_includes]], [[char **test = (char **)strnames; puts(*test);]])],[AC_DEFINE(HAVE_STRNAMES) strnames=yes],[strnames=no])
+ AC_MSG_RESULT($strnames)
+
+ dnl There are apparently defective terminal library headers on some
diff --git a/source/ap/zsh/zsh.SlackBuild b/source/ap/zsh/zsh.SlackBuild
index 3a5aa5c69..361b365ab 100755
--- a/source/ap/zsh/zsh.SlackBuild
+++ b/source/ap/zsh/zsh.SlackBuild
@@ -77,6 +77,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+cat $CWD/0007-zsh-configure-c99.patch | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \