summaryrefslogtreecommitdiffstats
path: root/source/a
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xsource/a/aaa_libraries/aaa_libraries.SlackBuild2
-rwxr-xr-xsource/a/etc/etc.SlackBuild2
-rw-r--r--source/a/etc/group.new1
-rw-r--r--source/a/etc/passwd.new1
-rw-r--r--source/a/etc/shadow.new1
-rwxr-xr-xsource/a/gettext/gettext-tools.SlackBuild2
-rwxr-xr-xsource/a/gettext/gettext.SlackBuild2
-rwxr-xr-xsource/a/pkgtools/pkgtools.SlackBuild2
-rw-r--r--source/a/pkgtools/scripts/setup.services24
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.M10
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild2
-rwxr-xr-xsource/ap/cups-filters/cups-filters.SlackBuild3
-rwxr-xr-xsource/ap/cups/cups.SlackBuild2
-rw-r--r--source/ap/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch113
-rwxr-xr-xsource/ap/hplip/hplip.SlackBuild19
-rw-r--r--source/ap/hplip/hplip.is_alive.diff94
-rw-r--r--source/ap/hplip/hplip.python3.10.diff77
-rw-r--r--source/ap/xmltoman/slack-desc19
-rwxr-xr-xsource/ap/xmltoman/xmltoman.SlackBuild119
-rw-r--r--source/ap/xmltoman/xmltoman.url1
20 files changed, 186 insertions, 310 deletions
diff --git a/source/a/aaa_libraries/aaa_libraries.SlackBuild b/source/a/aaa_libraries/aaa_libraries.SlackBuild
index ac8f28057..7630e67ad 100755
--- a/source/a/aaa_libraries/aaa_libraries.SlackBuild
+++ b/source/a/aaa_libraries/aaa_libraries.SlackBuild
@@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=aaa_libraries
VERSION=${VERSION:-15.1}
-BUILD=${BUILD:-25}
+BUILD=${BUILD:-26}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/a/etc/etc.SlackBuild b/source/a/etc/etc.SlackBuild
index 35e514145..52c86d829 100755
--- a/source/a/etc/etc.SlackBuild
+++ b/source/a/etc/etc.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=etc
VERSION=15.1
-BUILD=${BUILD:-4}
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/a/etc/group.new b/source/a/etc/group.new
index 963a320ca..b44f6f611 100644
--- a/source/a/etc/group.new
+++ b/source/a/etc/group.new
@@ -56,5 +56,6 @@ nobody:x:98:nobody
nogroup:x:99:
users:x:100:
console:x:101:
+avahi:x:214:
colord:x:303:
ldap:x:330:
diff --git a/source/a/etc/passwd.new b/source/a/etc/passwd.new
index 32810e417..1337f161a 100644
--- a/source/a/etc/passwd.new
+++ b/source/a/etc/passwd.new
@@ -34,5 +34,6 @@ postfix:x:91:91:User for Postfix MTA:/dev/null:/bin/false
dovecot:x:94:94:User for Dovecot processes:/dev/null:/bin/false
dovenull:x:95:95:User for Dovecot login processing:/dev/null:/bin/false
nobody:x:99:99:nobody:/:/bin/false
+avahi:x:214:214:User for avahi:/dev/null:/bin/false
colord:x:303:303:User for colord:/var/lib/colord:/bin/false
ldap:x:330:330:OpenLDAP server:/var/lib/openldap:/bin/false
diff --git a/source/a/etc/shadow.new b/source/a/etc/shadow.new
index 7b6d8b18b..add579ad6 100644
--- a/source/a/etc/shadow.new
+++ b/source/a/etc/shadow.new
@@ -34,5 +34,6 @@ postfix:*:9797:0:::::
dovecot:*:9797:0:::::
dovenull:*:9797:0:::::
nobody:*:9797:0:::::
+avahi:*:9797:0:::::
colord:*:9797:0:::::
ldap:*:9797:0:::::
diff --git a/source/a/gettext/gettext-tools.SlackBuild b/source/a/gettext/gettext-tools.SlackBuild
index d6ff14131..80bcbdc94 100755
--- a/source/a/gettext/gettext-tools.SlackBuild
+++ b/source/a/gettext/gettext-tools.SlackBuild
@@ -23,7 +23,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gettext-tools
-VERSION=0.22.4
+VERSION=0.22.5
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/a/gettext/gettext.SlackBuild b/source/a/gettext/gettext.SlackBuild
index 4d47b21c0..77aeee327 100755
--- a/source/a/gettext/gettext.SlackBuild
+++ b/source/a/gettext/gettext.SlackBuild
@@ -23,7 +23,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gettext
-VERSION=0.22.4
+VERSION=0.22.5
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild
index a11006a97..2f5142d00 100755
--- a/source/a/pkgtools/pkgtools.SlackBuild
+++ b/source/a/pkgtools/pkgtools.SlackBuild
@@ -30,7 +30,7 @@ PKGNAM=pkgtools
# *** UPDATE THESE WITH EACH BUILD:
VERSION=15.1
ARCH=${ARCH:-noarch}
-BUILD=${BUILD:-8}
+BUILD=${BUILD:-9}
# 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/a/pkgtools/scripts/setup.services b/source/a/pkgtools/scripts/setup.services
index 768254329..a2bf6281c 100644
--- a/source/a/pkgtools/scripts/setup.services
+++ b/source/a/pkgtools/scripts/setup.services
@@ -42,6 +42,28 @@ if [ -r etc/rc.d/rc.atd ]; then
EOF
fi
+if [ -r etc/rc.d/rc.avahidaemon ]; then
+ if [ -x etc/rc.d/rc.avahidaemon ]; then
+ RC_AVAHIDAEMON=on
+ else
+ RC_AVAHIDAEMON=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.avahidaemon" "Zeroconf implementation" $AVAHIDAEMON "Avahi is a system which facilitates service discovery on a local network." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.avahidnsconfd ]; then
+ if [ -x etc/rc.d/rc.avahidnsconfd ]; then
+ RC_AVAHIDNDCONFD=on
+ else
+ RC_AVAHIDNDCONFD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.avahidnsconfd" "Unicast DNS server for Avahi" $RC_AVAHIDNDCONFD "Queries the LAN for DNS servers that can be listed in /etc/resolv.conf." \\
+EOF
+fi
+
if [ -r etc/rc.d/rc.bind ]; then
if [ -x etc/rc.d/rc.bind ]; then
RC_BIND=on
@@ -361,7 +383,7 @@ if [ ! $? = 0 ]; then
exit
fi
-for service in rc.atalk rc.atd rc.bind rc.crond rc.cups rc.dovecot rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.nfsd rc.ntpd rc.openldap rc.openvpn rc.pcmcia rc.postfix rc.rpc rc.samba rc.saslauthd rc.smartd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do
+for service in rc.atalk rc.atd rc.avahidaemon rc.avahidnsconfd rc.bind rc.crond rc.cups rc.dovecot rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.nfsd rc.ntpd rc.openldap rc.openvpn rc.pcmcia rc.postfix rc.rpc rc.samba rc.saslauthd rc.smartd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do
if [ -f etc/rc.d/$service ]; then
if grep -w $service $TMP/reply 1> /dev/null ; then
chmod 755 etc/rc.d/$service
diff --git a/source/a/sysvinit-scripts/scripts/rc.M b/source/a/sysvinit-scripts/scripts/rc.M
index e4424489e..ecb510913 100644
--- a/source/a/sysvinit-scripts/scripts/rc.M
+++ b/source/a/sysvinit-scripts/scripts/rc.M
@@ -144,6 +144,16 @@ elif [ -x /etc/rc.d/rc.networkmanager ]; then
/etc/rc.d/rc.networkmanager start
fi
+# Start Avahi mDNS/DNS-SD daemon:
+if [ -x /etc/rc.d/rc.avahidaemon ]; then
+ /etc/rc.d/rc.avahidaemon start
+fi
+
+# Start Avahi mDNS/DNS-SD DNS server configuration daemon:
+if [ -x /etc/rc.d/rc.avahidnsconfd ]; then
+ /etc/rc.d/rc.avahidnsconfd start
+fi
+
# Start networking daemons:
if [ -x /etc/rc.d/rc.inet2 ]; then
/etc/rc.d/rc.inet2
diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
index 0f085c17f..ee366d3bc 100755
--- a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
+++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=sysvinit-scripts
VERSION=${VERSION:-15.1}
ARCH=noarch
-BUILD=${BUILD:-12}
+BUILD=${BUILD:-13}
# 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/cups-filters/cups-filters.SlackBuild b/source/ap/cups-filters/cups-filters.SlackBuild
index 5ce7b1d06..040153401 100755
--- a/source/ap/cups-filters/cups-filters.SlackBuild
+++ b/source/ap/cups-filters/cups-filters.SlackBuild
@@ -24,7 +24,7 @@ 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:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -99,7 +99,6 @@ CXXFLAGS="$SLKCFLAGS -std=c++17 -fpermissive" \
--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 \
diff --git a/source/ap/cups/cups.SlackBuild b/source/ap/cups/cups.SlackBuild
index 560fafbbf..506e7edc6 100755
--- a/source/ap/cups/cups.SlackBuild
+++ b/source/ap/cups/cups.SlackBuild
@@ -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:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch b/source/ap/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
deleted file mode 100644
index 8d3b4d7bf..000000000
--- a/source/ap/hplip/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From fa9c0cf1a5db9bf8880b4796d5e3e0da46534e3d Mon Sep 17 00:00:00 2001
-From: Didier Raboud <odyx@debian.org>
-Date: Tue, 21 Aug 2018 18:18:10 +0200
-Subject: Remove all ImageProcessor functionality, which is closed-source
-
----
- Makefile.am | 14 ++------------
- prnt/hpcups/HPCupsFilter.cpp | 21 ---------------------
- 2 files changed, 2 insertions(+), 33 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 1b097c4f9..8d5d78c9f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -166,7 +166,7 @@ if !HPLIP_CLASS_DRIVER
- dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
- endif #HPLIP_CLASS_DRIVER
-
--dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
-+dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
- dist_noinst_SCRIPTS += dat2drv.py install.py hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
-
- if !HPLIP_CLASS_DRIVER
-@@ -594,7 +594,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
- prnt/hpcups/ImageProcessor.h
-
- hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
--hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
-+hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
- #else
- #hpcupsdir = $(cupsfilterdir)
- #hpcups_PROGRAMS = hpcups
-@@ -686,16 +686,6 @@ endif #HPLIP_CLASS_DRIVER
-
- install-data-hook:
- if HPLIP_BUILD
-- if [ \( "$(UNAME)" = "x86_64" -a -d "$(libdir)/" \) ]; then \
-- cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
-- chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
-- ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
-- fi; \
-- if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
-- cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
-- chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
-- ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
-- fi
- if !HPLIP_CLASS_DRIVER
- # If scanner build, add hpaio entry to sane dll.conf.
- if [ "$(scan_build)" = "yes" ]; then \
-diff --git a/prnt/hpcups/HPCupsFilter.cpp b/prnt/hpcups/HPCupsFilter.cpp
-index 5b282d83f..0bacfafac 100644
---- a/prnt/hpcups/HPCupsFilter.cpp
-+++ b/prnt/hpcups/HPCupsFilter.cpp
-@@ -31,7 +31,6 @@
- \*****************************************************************************/
-
- #include "HPCupsFilter.h"
--#include "ImageProcessor.h"
-
- #include <signal.h>
- #include <sys/wait.h>
-@@ -637,16 +636,10 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
-
-
- sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
-- image_processor_t* imageProcessor = imageProcessorCreate();
-
- while (cupsRasterReadHeader2(cups_raster, &cups_header))
- {
-
-- IMAGE_PROCESSOR_ERROR result = imageProcessorStartPage(imageProcessor, &cups_header);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
-- }
--
- current_page_number++;
-
- if (current_page_number == 1) {
-@@ -745,12 +738,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
- color_raster = rgbRaster;
- black_raster = kRaster;
-
-- result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
-- }
--
--
- if ((y == 0) && !is_ljmono) {
- //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
- //may not skip blank lines before actual data
-@@ -780,12 +767,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
- }
- } // for() loop end
-
-- result = imageProcessorEndPage(imageProcessor);
-- if (result != IPE_SUCCESS){
-- dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
-- }
--
--
- m_Job.NewPage();
- if (err != NO_ERROR) {
- break;
-@@ -800,8 +781,6 @@ int HPCupsFilter::processRasterData(cups_raster_t *cups_raster)
- rgbRaster = NULL;
- }
-
-- imageProcessorDestroy(imageProcessor);
--
- unlink(hpPreProcessedRasterFile);
- return ret_status;
- }
diff --git a/source/ap/hplip/hplip.SlackBuild b/source/ap/hplip/hplip.SlackBuild
index 38247ba4f..9c0ed10ab 100755
--- a/source/ap/hplip/hplip.SlackBuild
+++ b/source/ap/hplip/hplip.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for hplip
# Copyright 2006-2010 Robby Workman, Northport, Alabama, USA
-# Copyright 2006-2021 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006-2024 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -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:-7}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -86,12 +86,6 @@ 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
-# Fix for deprecated python function:
-zcat $CWD/hplip.is_alive.diff.gz | patch -p1 --verbose || exit 1
-
-# Patch for Python 3.10:
-zcat $CWD/hplip.python3.10.diff.gz | patch -p1 --verbose || exit 1
-
# Choose correct options depending on whether PAM is installed:
if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
unset SHADOW_OPTIONS
@@ -112,14 +106,6 @@ sed -i.env-python -e 's,^#!/usr/bin/env python,#!/usr/bin/python3,' \
prnt/filters/hpps \
fax/filters/pstotiff
-# Forget it folks - this ImageProcessor closed-source blob is broken, and there
-# is no way to fix it. We will use this patch from Debian to remove it from
-# hplip, reverting to the way things worked in the 3.18.6 release. If HP ever
-# sees fit to make ImageProcessor mandatory, we'll likely stick with the last
-# hplip release that can be made to work without it, and any HP printers that
-# require a newer version of hplip will not be supported.
-zcat $CWD/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch.gz | patch -p1 -l --verbose || exit 1
-
# 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
@@ -157,6 +143,7 @@ PYTHON=/usr/bin/python3 \
--enable-foomatic-rip-hplip-install \
--enable-pp-build \
--disable-foomatic-ppd-install \
+ --disable-imageProcessor-build \
--enable-foomatic-drv-install \
--enable-network-build=yes \
--enable-qt5 \
diff --git a/source/ap/hplip/hplip.is_alive.diff b/source/ap/hplip/hplip.is_alive.diff
deleted file mode 100644
index 532da9ff5..000000000
--- a/source/ap/hplip/hplip.is_alive.diff
+++ /dev/null
@@ -1,94 +0,0 @@
-diff --git a/copier/copier.py b/copier/copier.py
-index a595baa..7794f48 100644
---- a/copier/copier.py
-+++ b/copier/copier.py
-@@ -73,13 +73,13 @@ class PMLCopyDevice(device.Device):
-
- def isCopyActive(self):
- if self.copy_thread is not None:
-- return self.copy_thread.isAlive()
-+ return self.copy_thread.is_alive()
- else:
- return False
-
- def waitForCopyThread(self):
- if self.copy_thread is not None and \
-- self.copy_thread.isAlive():
-+ self.copy_thread.is_alive():
-
- self.copy_thread.join()
-
-diff --git a/fax/fax.py b/fax/fax.py
-index 3d69226..0878a64 100644
---- a/fax/fax.py
-+++ b/fax/fax.py
-@@ -478,13 +478,13 @@ class FaxDevice(device.Device):
-
- def isSendFaxActive(self):
- if self.send_fax_thread is not None:
-- return self.send_fax_thread.isAlive()
-+ return self.send_fax_thread.is_alive()
- else:
- return False
-
- def waitForSendFaxThread(self):
- if self.send_fax_thread is not None and \
-- self.send_fax_thread.isAlive():
-+ self.send_fax_thread.is_alive():
-
- try:
- self.send_fax_thread.join()
-diff --git a/fax/pmlfax.py b/fax/pmlfax.py
-index b68ff6a..b1020d0 100644
---- a/fax/pmlfax.py
-+++ b/fax/pmlfax.py
-@@ -179,13 +179,13 @@ class PMLFaxDevice(FaxDevice):
-
- def isUploadLogActive(self):
- if self.upload_log_thread is not None:
-- return self.upload_log_thread.isAlive()
-+ return self.upload_log_thread.is_alive()
- else:
- return False
-
- def waitForUploadLogThread(self):
- if self.upload_log_thread is not None and \
-- self.upload_log_thread.isAlive():
-+ self.upload_log_thread.is_alive():
-
- self.upload_log_thread.join()
-
-diff --git a/scan/sane.py b/scan/sane.py
-index b6c4acd..e8f8db8 100755
---- a/scan/sane.py
-+++ b/scan/sane.py
-@@ -378,14 +378,14 @@ class ScanDevice:
-
- def isScanActive(self):
- if self.scan_thread is not None:
-- return self.scan_thread.isAlive() and self.scan_thread.scan_active
-+ return self.scan_thread.is_alive() and self.scan_thread.scan_active
- else:
- return False
-
-
- def waitForScanDone(self):
- if self.scan_thread is not None and \
-- self.scan_thread.isAlive() and \
-+ self.scan_thread.is_alive() and \
- self.scan_thread.scan_active:
-
- try:
-@@ -398,9 +398,9 @@ class ScanDevice:
- #time.sleep(0.5)
- if self.scan_thread is not None:
- while True:
-- #print self.scan_thread.isAlive()
-+ #print self.scan_thread.is_alive()
- #print self.scan_thread.scan_active
-- if self.scan_thread.isAlive() and \
-+ if self.scan_thread.is_alive() and \
- self.scan_thread.scan_active:
- return
-
-
diff --git a/source/ap/hplip/hplip.python3.10.diff b/source/ap/hplip/hplip.python3.10.diff
deleted file mode 100644
index 5963f567a..000000000
--- a/source/ap/hplip/hplip.python3.10.diff
+++ /dev/null
@@ -1,77 +0,0 @@
-diff --git a/io/mudext/hpmudext.c b/io/mudext/hpmudext.c
-index dca3e9d..dfcd22a 100644
---- a/io/mudext/hpmudext.c
-+++ b/io/mudext/hpmudext.c
-@@ -24,6 +24,8 @@ Authors: Don Welch, David Suffield, Naga Samrat Chowdary Narla
-
- \*****************************************************************************/
-
-+#define PY_SSIZE_T_CLEAN
-+
- #include <Python.h>
- #include <stdarg.h>
- #include "hpmud.h"
-@@ -187,14 +189,22 @@ static PyObject *write_channel(PyObject *self, PyObject *args)
- HPMUD_CHANNEL cd;
- int timeout = 30;
- char * buf;
-- int buf_size = 0;
-+ Py_ssize_t buf_size = 0;
-+ int buf_size_asInt = 0;
- int bytes_written = 0;
-
- if (!PyArg_ParseTuple(args, "iis#|i", &dd, &cd, &buf, &buf_size, &timeout))
- return NULL;
-
-+ if (buf_size < INT_MIN)
-+ buf_size_asInt = INT_MIN;
-+ else if (buf_size > INT_MAX)
-+ buf_size_asInt = INT_MAX;
-+ else
-+ buf_size_asInt = (int)buf_size;
-+
- Py_BEGIN_ALLOW_THREADS
-- result = hpmud_write_channel(dd, cd, buf, buf_size, timeout, &bytes_written);
-+ result = hpmud_write_channel(dd, cd, buf, buf_size_asInt, timeout, &bytes_written);
- Py_END_ALLOW_THREADS
-
- return Py_BuildValue("(ii)", result, bytes_written);
-@@ -231,14 +241,22 @@ static PyObject *set_pml(PyObject *self, PyObject *args)
- char * oid;
- int type;
- char * data;
-- int data_size;
-+ Py_ssize_t data_size = 0;
-+ int data_size_asInt = 0;
- int pml_result;
-
- if (!PyArg_ParseTuple(args, "iisis#", &dd, &cd, &oid, &type, &data, &data_size))
- return NULL;
-
-+ if (data_size < INT_MIN)
-+ data_size_asInt = INT_MIN;
-+ else if (data_size > INT_MAX)
-+ data_size_asInt = INT_MAX;
-+ else
-+ data_size_asInt = (int)data_size;
-+
- Py_BEGIN_ALLOW_THREADS
-- result = hpmud_set_pml(dd, cd, oid, type, (void *)data, data_size, &pml_result);
-+ result = hpmud_set_pml(dd, cd, oid, type, (void *)data, data_size_asInt, &pml_result);
- Py_END_ALLOW_THREADS
-
- return Py_BuildValue("(ii)", result, pml_result);
-diff --git a/scan/scanext/scanext.c b/scan/scanext/scanext.c
-index 1e6b514..597abd8 100755
---- a/scan/scanext/scanext.c
-+++ b/scan/scanext/scanext.c
-@@ -45,6 +45,8 @@ PERFORMANCE OF THIS SOFTWARE.
- *******************************************************************/
-
-
-+#define PY_SSIZE_T_CLEAN
-+
- /* _ScanDevice objects */
-
- #include "Python.h"
-
diff --git a/source/ap/xmltoman/slack-desc b/source/ap/xmltoman/slack-desc
new file mode 100644
index 000000000..a95af03d3
--- /dev/null
+++ b/source/ap/xmltoman/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------------------------------------------------------|
+xmltoman: xmltoman (convert XML to groff or HTML)
+xmltoman:
+xmltoman: xmltoman and xmlmantohtml are two very simple scripts for converting
+xmltoman: XML to groff or HTML.
+xmltoman:
+xmltoman: Homepage: https://github.com/atsb/xmltoman
+xmltoman:
+xmltoman:
+xmltoman:
+xmltoman:
+xmltoman:
diff --git a/source/ap/xmltoman/xmltoman.SlackBuild b/source/ap/xmltoman/xmltoman.SlackBuild
new file mode 100755
index 000000000..40f40e450
--- /dev/null
+++ b/source/ap/xmltoman/xmltoman.SlackBuild
@@ -0,0 +1,119 @@
+#!/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=xmltoman
+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=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:
+ *) 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" = "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-$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 {} \+
+
+sed -i "s|prefix=/usr/local|prefix=/usr|g" Makefile
+sed -i "s|share/man|man|g" Makefile
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# 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* ChangeLog LICENSE* README* \
+ $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/xmltoman/xmltoman.url b/source/ap/xmltoman/xmltoman.url
new file mode 100644
index 000000000..eecc189b2
--- /dev/null
+++ b/source/ap/xmltoman/xmltoman.url
@@ -0,0 +1 @@
+https://github.com/atsb/xmltoman