diff options
Diffstat (limited to 'source')
422 files changed, 4568 insertions, 4426 deletions
diff --git a/source/a/aaa_libraries/aaa_libraries.SlackBuild b/source/a/aaa_libraries/aaa_libraries.SlackBuild index 5b6c6b023..6e6bd5df4 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:-28} +BUILD=${BUILD:-31} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -142,6 +142,16 @@ chmod 755 $PKG/lib${LIBDIRSUFFIX}/lib*.so.* $PKG/usr/lib${LIBDIRSUFFIX}/lib*.so. # installpkg will create them if needed by running ldconfig. find $PKG -type l -exec rm --verbose "{}" \+ +# Time to ask for trouble. We should add a few compatibility symlinks for the +# non-wide ncurses libraries, and for the now built-in tic/tinfo: +( cd $PKG/lib${LIBDIRSUFFIX} + ln -sf libformw.so.6 libform.so.6 + ln -sf libmenuw.so.6 libmenu.so.6 + ln -sf libncurses++w.so.6 libncurses++.so.6 + ln -sf libncursesw.so.6 libncurses.so.6 + ln -sf libpanelw.so.6 libpanel.so.6 +) + mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh diff --git a/source/a/aaa_libraries/symlinks-to-tracked-libs b/source/a/aaa_libraries/symlinks-to-tracked-libs index 9ee542272..5895b029b 100644 --- a/source/a/aaa_libraries/symlinks-to-tracked-libs +++ b/source/a/aaa_libraries/symlinks-to-tracked-libs @@ -9,6 +9,7 @@ /lib/libcap.so.2 /lib/libdm.so.0 /lib/libelf.so.1 +/lib/libformw.so.6 /lib/libfuse.so.2 /lib/libgpm.so.2 /lib/libkeyutils.so.1 @@ -17,12 +18,14 @@ /lib/libk5crypto.so.3 /lib/libgssapi_krb5.so.2 /lib/liblzma.so.5 +/lib/libmenuw.so.6 /lib/libncurses.so.5 -/lib/libncurses.so.6 /lib/libncursesw.so.5 /lib/libncursesw.so.6 +/lib/libncurses++w.so.6 /lib/libnsl.so.2 /lib/libnsl.so.3 +/lib/libpanelw.so.6 /lib/libpcre.so.1 /lib/libpcre2-8.so.0 /lib/libpcreposix.so.0 @@ -30,6 +33,7 @@ /lib/libsigsegv.so.2 /lib/libsysfs.so.2 /lib/libtermcap.so.2 +/lib/libtic.so.6 /lib/libtinfo.so.6 /lib/libtirpc.so.3 /lib/libudev.so.1 @@ -42,9 +46,7 @@ /usr/lib/libexpat.so.1 /usr/lib/libffi.so.8 /usr/lib/libform.so.5 -/usr/lib/libform.so.6 /usr/lib/libformw.so.5 -/usr/lib/libformw.so.6 /usr/lib/libgdbm.so.4 /usr/lib/libgdbm.so.6 /usr/lib/libglib-2.0.so.0 @@ -64,14 +66,10 @@ /usr/lib/libldap.so.2 /usr/lib/libltdl.so.7 /usr/lib/libmenu.so.5 -/usr/lib/libmenu.so.6 /usr/lib/libmenuw.so.5 -/usr/lib/libmenuw.so.6 /usr/lib/libmm.so.14 /usr/lib/libpanel.so.5 -/usr/lib/libpanel.so.6 /usr/lib/libpanelw.so.5 -/usr/lib/libpanelw.so.6 /usr/lib/libpng14.so.14 /usr/lib/libpng16.so.16 /usr/lib/libpsl.so.5 diff --git a/source/a/aaa_libraries/tracked-files-tmp.d/aaa_libraries-boost b/source/a/aaa_libraries/tracked-files-tmp.d/aaa_libraries-boost new file mode 100644 index 000000000..522001674 --- /dev/null +++ b/source/a/aaa_libraries/tracked-files-tmp.d/aaa_libraries-boost @@ -0,0 +1,40 @@ +# We'll keep these around for a little while... probably remove on 2024-05-16 or thereabouts +/usr/lib/libboost_atomic.so.1.84.0 +/usr/lib/libboost_chrono.so.1.84.0 +/usr/lib/libboost_container.so.1.84.0 +/usr/lib/libboost_context.so.1.84.0 +/usr/lib/libboost_contract.so.1.84.0 +/usr/lib/libboost_coroutine.so.1.84.0 +/usr/lib/libboost_date_time.so.1.84.0 +/usr/lib/libboost_fiber.so.1.84.0 +/usr/lib/libboost_filesystem.so.1.84.0 +/usr/lib/libboost_graph.so.1.84.0 +/usr/lib/libboost_iostreams.so.1.84.0 +/usr/lib/libboost_json.so.1.84.0 +/usr/lib/libboost_locale.so.1.84.0 +/usr/lib/libboost_log.so.1.84.0 +/usr/lib/libboost_log_setup.so.1.84.0 +/usr/lib/libboost_math_c99.so.1.84.0 +/usr/lib/libboost_math_c99f.so.1.84.0 +/usr/lib/libboost_math_c99l.so.1.84.0 +/usr/lib/libboost_math_tr1.so.1.84.0 +/usr/lib/libboost_math_tr1f.so.1.84.0 +/usr/lib/libboost_math_tr1l.so.1.84.0 +/usr/lib/libboost_nowide.so.1.84.0 +/usr/lib/libboost_prg_exec_monitor.so.1.84.0 +/usr/lib/libboost_program_options.so.1.84.0 +/usr/lib/libboost_python311.so.1.84.0 +/usr/lib/libboost_random.so.1.84.0 +/usr/lib/libboost_regex.so.1.84.0 +/usr/lib/libboost_serialization.so.1.84.0 +/usr/lib/libboost_stacktrace_addr2line.so.1.84.0 +/usr/lib/libboost_stacktrace_basic.so.1.84.0 +/usr/lib/libboost_stacktrace_noop.so.1.84.0 +/usr/lib/libboost_system.so.1.84.0 +/usr/lib/libboost_thread.so.1.84.0 +/usr/lib/libboost_timer.so.1.84.0 +/usr/lib/libboost_type_erasure.so.1.84.0 +/usr/lib/libboost_unit_test_framework.so.1.84.0 +/usr/lib/libboost_url.so.1.84.0 +/usr/lib/libboost_wave.so.1.84.0 +/usr/lib/libboost_wserialization.so.1.84.0 diff --git a/source/a/aaa_libraries/tracked-files-tmp.d/boost b/source/a/aaa_libraries/tracked-files-tmp.d/boost deleted file mode 100644 index 63d13b3e1..000000000 --- a/source/a/aaa_libraries/tracked-files-tmp.d/boost +++ /dev/null @@ -1,41 +0,0 @@ -# We'll keep these around for a little while... probably remove on 2024-01-14 or thereabouts -/usr/lib/libboost_atomic.so.1.83.0 -/usr/lib/libboost_chrono.so.1.83.0 -/usr/lib/libboost_container.so.1.83.0 -/usr/lib/libboost_context.so.1.83.0 -/usr/lib/libboost_contract.so.1.83.0 -/usr/lib/libboost_coroutine.so.1.83.0 -/usr/lib/libboost_date_time.so.1.83.0 -/usr/lib/libboost_fiber.so.1.83.0 -/usr/lib/libboost_filesystem.so.1.83.0 -/usr/lib/libboost_graph.so.1.83.0 -/usr/lib/libboost_iostreams.so.1.83.0 -/usr/lib/libboost_json.so.1.83.0 -/usr/lib/libboost_locale.so.1.83.0 -/usr/lib/libboost_log.so.1.83.0 -/usr/lib/libboost_log_setup.so.1.83.0 -/usr/lib/libboost_math_c99.so.1.83.0 -/usr/lib/libboost_math_c99f.so.1.83.0 -/usr/lib/libboost_math_c99l.so.1.83.0 -/usr/lib/libboost_math_tr1.so.1.83.0 -/usr/lib/libboost_math_tr1f.so.1.83.0 -/usr/lib/libboost_math_tr1l.so.1.83.0 -/usr/lib/libboost_nowide.so.1.83.0 -/usr/lib/libboost_prg_exec_monitor.so.1.83.0 -/usr/lib/libboost_program_options.so.1.83.0 -/usr/lib/libboost_python27.so.1.83.0 -/usr/lib/libboost_python39.so.1.83.0 -/usr/lib/libboost_random.so.1.83.0 -/usr/lib/libboost_regex.so.1.83.0 -/usr/lib/libboost_serialization.so.1.83.0 -/usr/lib/libboost_stacktrace_addr2line.so.1.83.0 -/usr/lib/libboost_stacktrace_basic.so.1.83.0 -/usr/lib/libboost_stacktrace_noop.so.1.83.0 -/usr/lib/libboost_system.so.1.83.0 -/usr/lib/libboost_thread.so.1.83.0 -/usr/lib/libboost_timer.so.1.83.0 -/usr/lib/libboost_type_erasure.so.1.83.0 -/usr/lib/libboost_unit_test_framework.so.1.83.0 -/usr/lib/libboost_url.so.1.83.0 -/usr/lib/libboost_wave.so.1.83.0 -/usr/lib/libboost_wserialization.so.1.83.0 diff --git a/source/a/coreutils/coreutils.SlackBuild b/source/a/coreutils/coreutils.SlackBuild index 3d655f996..4805aa315 100755 --- a/source/a/coreutils/coreutils.SlackBuild +++ b/source/a/coreutils/coreutils.SlackBuild @@ -129,6 +129,7 @@ DEFAULT_POSIX2_VERSION=199209 \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --enable-install-program=arch \ --with-openssl=no \ + --enable-year2038 \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 diff --git a/source/a/elogind/11-prefer-deep-suspend.patch b/source/a/elogind/11-prefer-deep-suspend.patch new file mode 100644 index 000000000..c3d3d23b5 --- /dev/null +++ b/source/a/elogind/11-prefer-deep-suspend.patch @@ -0,0 +1,8 @@ +--- ./src/sleep/10-elogind.conf.orig 2024-04-16 02:21:44.000000000 -0500 ++++ ./src/sleep/10-elogind.conf 2024-04-16 13:32:01.046025234 -0500 +@@ -19,4 +19,4 @@ + #HandleNvidiaSleep=no + #HibernateByUsing= + #SuspendByUsing= +-#SuspendMode=s2idle deep ++SuspendMode=deep s2idle diff --git a/source/a/elogind/12-default-deep-suspend.patch b/source/a/elogind/12-default-deep-suspend.patch new file mode 100644 index 000000000..25eb73dc6 --- /dev/null +++ b/source/a/elogind/12-default-deep-suspend.patch @@ -0,0 +1,11 @@ +--- ./src/shared/sleep-config.c.orig 2024-04-16 02:21:44.000000000 -0500 ++++ ./src/shared/sleep-config.c 2024-04-22 13:31:58.033078814 -0500 +@@ -45,7 +45,7 @@ + #if 0 /// elogind supports suspend modes (deep s2idle) so we need defaults, too + /* Not used by SLEEP_SUSPEND */ + #else // 0 +- [SLEEP_SUSPEND] = STRV_MAKE("s2idle", "deep"), ++ [SLEEP_SUSPEND] = STRV_MAKE("deep", "s2idle"), + #endif // 0 + [SLEEP_HIBERNATE] = STRV_MAKE("platform", "shutdown"), + [SLEEP_HYBRID_SLEEP] = STRV_MAKE("suspend"), diff --git a/source/a/elogind/doinst.sh b/source/a/elogind/doinst.sh index e529fda15..e39e2aee3 100644 --- a/source/a/elogind/doinst.sh +++ b/source/a/elogind/doinst.sh @@ -29,6 +29,7 @@ preserve_perms() { preserve_perms etc/rc.d/rc.elogind.new config etc/elogind/logind.conf.new config etc/elogind/sleep.conf.new +config etc/elogind/sleep.conf.d/10-elogind.conf.new config etc/pam.d/elogind-user.new # Reload elogind-daemon: diff --git a/source/a/elogind/elogind.SlackBuild b/source/a/elogind/elogind.SlackBuild index dd89aa081..74d26ab85 100755 --- a/source/a/elogind/elogind.SlackBuild +++ b/source/a/elogind/elogind.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=elogind VERSION=${VERSION:-$(echo $PKGNAM-*.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,30 +98,51 @@ find . \ # but sed will still happily scribble all over everything. cat $CWD/elogind.nobody.nogroup.99.99.diff | patch -p1 --verbose || exit 1 +# OK, here's the scoop on s2idle. After doing some digging, it looks like both +# Intel and AMD have stopped officially supporting S3 sleep (aka "deep") with +# the latest generation of CPUs (although it "might work"). I've also seen a +# few people say that S3 is "not secure"... which if you're worried that a +# three letter agency might grab your sleeping laptop and extract the contents +# of the RAM while keeping it powered up, well, maybe in that sense it isn't. +# As far as s2idle, I have heard that it has the potential to be as much of a +# low power mode as deep, but that depends on how low the IRQ rate gets. In +# practice I have heard of s2idle draining a battery in half a day. +# +# Anyway, I tried s2idle here again (with the below sleep patches) and it still +# locks up my machine (a fairly recent Thinkpad X1). +# +# S3 works and has the best power savings of all the partially-on modes. +# Feel free to edit /etc/elogind/sleep.conf.d/10-elogind.conf if s2idle works +# for you, but we'll continue to default to deep for now. +# +# Don't prefer s2idle, as it doesn't seem to work: +cat $CWD/11-prefer-deep-suspend.patch | patch -p1 --verbose || exit 1 +cat $CWD/12-default-deep-suspend.patch | patch -p1 --verbose || exit 1 + # Configure, build, and install: export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" mkdir meson-build cd meson-build -meson \ - --buildtype release \ - --prefix /usr \ - --libdir /usr/lib${LIBDIRSUFFIX} \ - -Drootlibdir="/lib${LIBDIRSUFFIX}" \ - -Drootlibexecdir="/lib${LIBDIRSUFFIX}/elogind" \ +meson setup \ + --buildtype=release \ + --prefix=/usr \ + --libdir=/lib${LIBDIRSUFFIX} \ + --libexecdir=/lib${LIBDIRSUFFIX}/elogind \ + -Dpkgconfiglibdir=/usr/lib${LIBDIRSUFFIX}/pkgconfig \ + -Dpamlibdir=/lib${LIBDIRSUFFIX}/security \ -Dudevrulesdir="/lib/udev/rules.d" \ -Ddocdir="/usr/doc/$PKGNAM-$VERSION" \ -Dhtmldir="/usr/doc/$PKGNAM-$VERSION/html" \ -Dmandir="/usr/man" \ - -Dman=true \ - -Dhtml=false \ + -Dman=enabled \ + -Dhtml=disabled \ -Dbashcompletiondir="/usr/share/bash-completion/completions" \ -Dnobody-user=nobody \ -Dnobody-group=nogroup \ - -Dpam=true \ - -Dpamlibdir="/lib${LIBDIRSUFFIX}/security" \ + -Dpam=enabled \ -Dpamconfdir="/etc/pam.d" \ - -Dacl=true \ + -Dacl=enabled \ -Dsmack=false \ -Dutmp=true \ -Ddefault-hierarchy=legacy \ @@ -130,19 +151,21 @@ meson \ -Dpoweroff-path=/sbin/poweroff \ -Dreboot-path=/sbin/reboot \ -Ddefault-kill-user-processes=false \ + -Dmode=release \ .. || exit 1 "${NINJA:=ninja}" $NUMJOBS || exit 1 DESTDIR=$PKG $NINJA install || exit 1 cd .. -# Create symlinks for elogind binaries to /usr/bin/: -mkdir -p $PKG/usr/bin -ln -sf /bin/elogind-inhibit $PKG/usr/bin/elogind-inhibit -ln -sf /bin/loginctl $PKG/usr/bin/loginctl +# Create symlinks for elogind binaries to /bin/: +mkdir -p $PKG/bin +ln -sf /usr/bin/elogind-inhibit $PKG/bin/elogind-inhibit +ln -sf /usr/bin/loginctl $PKG/bin/loginctl # Make sure we do not overwrite the user's customizations: mv -i $PKG/etc/elogind/logind.conf{,.new} mv -i $PKG/etc/elogind/sleep.conf{,.new} +mv -i $PKG/etc/elogind/sleep.conf.d/10-elogind.conf{,.new} mv -i $PKG/etc/pam.d/elogind-user{,.new} # Strip binaries: @@ -168,7 +191,7 @@ mkdir -p $PKG/etc/elogind/logind.conf.d/ $PKG/etc/elogind/sleep.conf.d/ # Add login1 policy file that allows users in the 'power' group # to shutdown/reboot the computer: mkdir -p $PKG/usr/share/polkit-1/rules.d -zcat $CWD/10-enable-elogind-power.rules.gz > $PKG/usr/share/polkit-1/rules.d/10-enable-session-power.rules +cat $CWD/10-enable-elogind-power.rules > $PKG/usr/share/polkit-1/rules.d/10-enable-session-power.rules # We don't need the hidden files to make inferior package managers keep dirs: find $PKG -type f -name ".keep_dir" -exec rm -f {} \; diff --git a/source/a/elvis/elvis.SlackBuild b/source/a/elvis/elvis.SlackBuild index fe2817d3b..b3bd8261d 100755 --- a/source/a/elvis/elvis.SlackBuild +++ b/source/a/elvis/elvis.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=elvis VERSION=2.2_0 -BUILD=${BUILD:-8} +BUILD=${BUILD:-9} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/a/etc/doinst.sh b/source/a/etc/doinst.sh index 18b53f333..3734bc854 100644 --- a/source/a/etc/doinst.sh +++ b/source/a/etc/doinst.sh @@ -100,6 +100,15 @@ rm -f etc/gshadow.new rm -f etc/passwd.new rm -f etc/shadow.new +# We will add any missing entries to gshadow, but make no attempt to repair existing ones: +cat etc/group | while read line ; do + GRP="$(echo $line | cut -f 1 -d :)" + GMEMBERS="$(echo $line | rev | cut -f 1 -d : | rev)" + if ! grep -q "^${GRP}:" etc/gshadow ; then + echo "${GRP}:x::${GMEMBERS}" >> etc/gshadow + fi +done + # Make sure $HOME is correct for user sddm: chroot . /usr/sbin/usermod -d /var/lib/sddm sddm > /dev/null 2> /dev/null # Make sure that sddm is a member of group video: diff --git a/source/a/etc/etc.SlackBuild b/source/a/etc/etc.SlackBuild index 4dc6e0d59..f958d7628 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:-9} +BUILD=${BUILD:-11} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -80,4 +80,3 @@ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh # Build the package: cd $PKG /sbin/makepkg -l y -c n $TMP/etc-$VERSION-$ARCH-$BUILD.txz - diff --git a/source/a/etc/group.new b/source/a/etc/group.new index d4a516c68..2bcaf4ea9 100644 --- a/source/a/etc/group.new +++ b/source/a/etc/group.new @@ -59,6 +59,7 @@ nogroup:x:99: users:x:100: console:x:101: avahi:x:214: +nut:x:218: colord:x:303: nm-openvpn:x:320: ldap:x:330: diff --git a/source/a/etc/passwd.new b/source/a/etc/passwd.new index e926f2f4a..f7e8e0e26 100644 --- a/source/a/etc/passwd.new +++ b/source/a/etc/passwd.new @@ -37,6 +37,7 @@ dovenull:x:95:95:User for Dovecot login processing:/dev/null:/bin/false proftpd:x:97:97:User for ProFTPD:/:/bin/false nobody:x:99:99:nobody:/:/bin/false avahi:x:214:214:User for avahi:/dev/null:/bin/false +nut:x:218:218:User for NUT:/dev/null:/bin/false colord:x:303:303:User for colord:/var/lib/colord:/bin/false nm-openvpn:x:320:320:User for NetworkManager-openvpn:/var/lib/openvpn/chroot:/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 f2acecf78..3cbc04070 100644 --- a/source/a/etc/shadow.new +++ b/source/a/etc/shadow.new @@ -37,6 +37,7 @@ dovenull:*:9797:0::::: proftpd:*:9797:0::::: nobody:*:9797:0::::: avahi:*:9797:0::::: +nut:*:9797:0::::: colord:*:9797:0::::: nm-openvpn:*:9797:0::::: ldap:*:9797:0::::: diff --git a/source/a/genpower/genpower.halt.diff b/source/a/genpower/genpower.halt.diff deleted file mode 100644 index 05c6a23f1..000000000 --- a/source/a/genpower/genpower.halt.diff +++ /dev/null @@ -1,32 +0,0 @@ ---- ./genpowerfail.orig 2008-12-02 17:49:36.000000000 -0600 -+++ ./genpowerfail 2008-12-02 18:22:37.000000000 -0600 -@@ -36,23 +36,23 @@ - stats=`head -1 $statpath` - case "$stats" in - FAIL) # Power is down -- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & -+ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & - ;; - SCRAM) # Battery is low -- shutdown -r now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console & -+ shutdown -h now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console & - ;; - CABLE) # Possible bad cable -- shutdown -r +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & -+ shutdown -h +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & - ;; - *) # Unknown message, assume power is down -- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & -+ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & - ;; - - esac - else -- # genowerfail called, and upsstatus dosen't exist. -+ # genpowerfail called, and upsstatus dosen't exist. - # Assume user is using powerd, and shutdown. -- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & -+ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console & - - fi - ;; diff --git a/source/a/genpower/genpower.var.diff b/source/a/genpower/genpower.var.diff deleted file mode 100644 index fa3c9e998..000000000 --- a/source/a/genpower/genpower.var.diff +++ /dev/null @@ -1,34 +0,0 @@ ---- ./genpowerfail.orig Wed Apr 10 18:25:07 2002 -+++ ./genpowerfail Wed Apr 10 19:14:27 2002 -@@ -6,19 +6,19 @@ - # This script is also being run when the power comes - # up again (if it does in time!) - # --# Version: /etc/genpowerfail 1.0.1 -+# Version: /sbin/genpowerfail 1.0.1 - # - # Author: Tom Webster <webster@kaiwan.com> - # - - # Set the path. --PATH=/sbin:/etc:/bin:/usr/bin -+PATH=/sbin:/bin:/usr/bin:/usr/sbin - - # Set location of upsstatus file - statpath="/etc/upsstatus" - - # Set location of file containing PID of running shutdowns --spidpath="/etc/shutdownpid" -+spidpath="/var/run/shutdownpid" - - # See what happened. - case "$1" in -@@ -63,7 +63,7 @@ - shutdown -c "THE POWER IS BACK" - ;; - *) -- echo "Usage: /etc/genpowerfail {start|stop}" -+ echo "Usage: /sbin/genpowerfail {start|stop}" - exit 1 - ;; - esac diff --git a/source/a/genpower/slack-desc b/source/a/genpower/slack-desc deleted file mode 100644 index 242614456..000000000 --- a/source/a/genpower/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# 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------------------------------------------------------| -genpower: genpower (UPS monitoring daemon) -genpower: -genpower: The genpower daemon, genpowerd, will monitor the status of a serial -genpower: line connected to a UPS (Uninterruptible Power Supply). If a power -genpower: failure is detected, genpowerd will notify the system to take the -genpower: needed steps to react to the condition of the UPS. This may include -genpower: shutting the system down, or canceling a pending shutdown if the -genpower: power is restored. -genpower: -genpower: -genpower: diff --git a/source/a/gettext/gettext-tools.SlackBuild b/source/a/gettext/gettext-tools.SlackBuild index 80bcbdc94..871db6be2 100755 --- a/source/a/gettext/gettext-tools.SlackBuild +++ b/source/a/gettext/gettext-tools.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gettext-tools VERSION=0.22.5 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/a/gettext/gettext.SlackBuild b/source/a/gettext/gettext.SlackBuild index 77aeee327..b82d7b124 100755 --- a/source/a/gettext/gettext.SlackBuild +++ b/source/a/gettext/gettext.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gettext VERSION=0.22.5 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/a/gpm/gpm-1.20.1-weak-wgetch.patch b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch index 2546e17f7..cf10ee6b2 100644 --- a/source/a/gpm/gpm-1.20.1-weak-wgetch.patch +++ b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch @@ -1,5 +1,5 @@ ---- gpm-1.20.1/src/lib/libcurses.c.weak-wgetch 2002-12-24 17:57:16.000000000 -0500 -+++ gpm-1.20.1/src/lib/libcurses.c 2004-03-22 15:51:24.000000000 -0500 +--- ./src/lib/libcurses.c.orig 2012-10-26 16:21:38.000000000 -0500 ++++ ./src/lib/libcurses.c 2024-03-27 14:48:08.842064533 -0500 @@ -41,7 +41,12 @@ #endif /* HAVE_NCURSES_CURSES_H */ #endif /* HAVE_NCURSES_H */ @@ -14,13 +14,3 @@ int Gpm_Wgetch(WINDOW *win) { ---- gpm-1.20.1/configure.ac.weak-wgetch 2004-03-22 15:49:51.000000000 -0500 -+++ gpm-1.20.1/configure.ac 2004-03-22 15:51:24.000000000 -0500 -@@ -115,7 +115,7 @@ - AC_CHECK_LIB($i, wgetch,,,$TERMLIBS) - else :; fi - done -- SHARED_LIBS="$LIBS $TERMLIBS -lc" -+ SHARED_LIBS="-lc" - LIBS=$SAVELIBS ;; - esac diff --git a/source/a/gpm/gpm.SlackBuild b/source/a/gpm/gpm.SlackBuild index 767d7f352..d2f27c7f5 100755 --- a/source/a/gpm/gpm.SlackBuild +++ b/source/a/gpm/gpm.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gpm VERSION=1.20.7 -BUILD=${BUILD:-9} +BUILD=${BUILD:-10} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -80,36 +80,20 @@ zcat $CWD/gpm-1.20.5-close-fds.patch.gz | patch -p1 --verbose || exit 1 zcat $CWD/gpm-1.20.1-select-1.patch.gz | patch -p1 --verbose || exit 1 zcat $CWD/gpm.types.diff.gz | patch -p1 --verbose || exit 1 zcat $CWD/gpm.gcc7.diff.gz | patch -p1 --verbose || exit 1 - -sh autogen.sh - -# This is *supposed* to prevent linking libgpm.so with -lncurses, -# but for some reason it doesn't have the desired effect here. -# Any ideas? The patch is supposed to resolve a circular dependency -# between libgpm.so and libncurses.so. I don't notice any ill effects -# here, but perhaps the problem would occur if prelinking was used. -# Also, ncurses has not shown an ldd link to libgpm for several releases, -# so perhaps any problem that existed was fixed on their end. -# NOTE: Since this isn't preventing gpm from linking to ncurses, I'm -# commenting this patch out until we understand better if it's even -# useful for anything. Half a patch seems worse than no patch. -#zcat $CWD/gpm-1.20.1-weak-wgetch.patch.gz | patch -p1 --verbose || exit 1 - -# Since we aren't installing any Emacs Lisp files anyway, just brutally -# hack around this failing part of ./configure. This may be a brittle -# solution, so if it doesn't apply just go ahead and try without this -# patch and see if it's working or not. zcat $CWD/gpm.configure.diff.gz | patch -p1 --verbose || exit 1 -# Since we just patched configure.ac, run this again to carry the change -# into configure: -autoconf +# This patch is supposed to resolve a circular dependency between libgpm.so +# and libncurses.so: +zcat $CWD/gpm-1.20.1-weak-wgetch.patch.gz | patch -p1 --verbose || exit 1 + +sh autogen.sh CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --libdir=/usr/lib${LIBDIRSUFFIX} \ + --without-curses \ --build=$ARCH-slackware-linux || exit 1 make || exit 1 diff --git a/source/a/gpm/gpm.configure.diff b/source/a/gpm/gpm.configure.diff index fd25767f2..3dedb8907 100644 --- a/source/a/gpm/gpm.configure.diff +++ b/source/a/gpm/gpm.configure.diff @@ -1,16 +1,25 @@ ---- ./configure.ac.orig 2024-01-20 13:18:14.607950073 -0600 -+++ ./configure.ac 2024-01-20 13:19:06.734947190 -0600 -@@ -63,12 +63,7 @@ - ELISP="emacs/t-mouse.el emacs/t-mouse.elc" - fi - +--- ./configure.ac.footer.orig 2012-10-26 16:21:38.000000000 -0500 ++++ ./configure.ac.footer 2024-03-27 14:43:34.948058406 -0500 +@@ -49,22 +49,6 @@ + AC_PATH_PROG(MAKEINFO,makeinfo,no) + AC_PATH_PROG(DIFF,diff,no) + AC_PATH_PROG(SED,sed,no) +-AC_PATH_PROG(emacs,emacs,no) +- +-if test ${ac_cv_path_emacs} = no ; then +- EMACS=: +- ELISP= +-else +- EMACS=${ac_cv_path_emacs} +- ELISP="emacs/t-mouse.el emacs/t-mouse.elc" +-fi +- -if test $EMACS != : ; then - ITZ_PATH_SITE_LISP - lispdir=${itz_cv_path_site_lisp} -else - lispdir='${datadir}/emacs/site-lisp' -fi -+lispdir='${datadir}/emacs/site-lisp' # Header-checks AC_CHECK_HEADERS(syslog.h linux/input.h linux/joystick.h ncurses.h ncurses/curses.h curses.h) diff --git a/source/a/gptfdisk/gptfdisk.SlackBuild b/source/a/gptfdisk/gptfdisk.SlackBuild index fd62b7f2f..b284da19c 100755 --- a/source/a/gptfdisk/gptfdisk.SlackBuild +++ b/source/a/gptfdisk/gptfdisk.SlackBuild @@ -79,6 +79,8 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ +sed -i "s|ncursesw/ncurses.h|ncurses.h|g" gptcurses.cc + export LDFLAGS="$SLKLDFLAGS" export CXXFLAGS="$SLKCFLAGS" export CFLAGS="$SLKCFLAGS" diff --git a/source/a/less/007521ac3c95bc76.patch b/source/a/less/007521ac3c95bc76.patch new file mode 100644 index 000000000..663f222c0 --- /dev/null +++ b/source/a/less/007521ac3c95bc76.patch @@ -0,0 +1,73 @@ +From 007521ac3c95bc76e3d59c6dbfe75d06c8075c33 Mon Sep 17 00:00:00 2001 +From: Mark Nudelman <markn@greenwoodsoftware.com> +Date: Thu, 11 Apr 2024 17:49:48 -0700 +Subject: [PATCH] Fix bug when viewing a file whose name contains a newline. + +--- + filename.c | 31 +++++++++++++++++++++++++------ + 1 file changed, 25 insertions(+), 6 deletions(-) + +diff --git a/filename.c b/filename.c +index f90e0e82..a52c6354 100644 +--- a/filename.c ++++ b/filename.c +@@ -127,11 +127,20 @@ static constant char * metachars(void) + /* + * Is this a shell metacharacter? + */ +-static int metachar(char c) ++static lbool metachar(char c) + { + return (strchr(metachars(), c) != NULL); + } + ++/* ++ * Must use quotes rather than escape char for this metachar? ++ */ ++static lbool must_quote(char c) ++{ ++ /* {{ Maybe the set of must_quote chars should be configurable? }} */ ++ return (c == '\n'); ++} ++ + /* + * Insert a backslash before each metacharacter in a string. + */ +@@ -164,6 +173,9 @@ public char * shell_quoten(constant char *s, size_t slen) + * doesn't support escape chars. Use quotes. + */ + use_quotes = TRUE; ++ } else if (must_quote(*p)) ++ { ++ len += 3; /* open quote + char + close quote */ + } else + { + /* +@@ -194,15 +206,22 @@ public char * shell_quoten(constant char *s, size_t slen) + constant char *es = s + slen; + while (s < es) + { +- if (metachar(*s)) ++ if (!metachar(*s)) + { +- /* +- * Add the escape char. +- */ ++ *np++ = *s++; ++ } else if (must_quote(*s)) ++ { ++ /* Surround the char with quotes. */ ++ *np++ = openquote; ++ *np++ = *s++; ++ *np++ = closequote; ++ } else ++ { ++ /* Insert an escape char before the char. */ + strcpy(np, esc); + np += esclen; ++ *np++ = *s++; + } +- *np++ = *s++; + } + *np = '\0'; + } diff --git a/source/a/less/less.SlackBuild b/source/a/less/less.SlackBuild index 002899a60..b4ea88c72 100755 --- a/source/a/less/less.SlackBuild +++ b/source/a/less/less.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2005-2022 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2005-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=less VERSION=${VERSION:-$(echo less-*.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 @@ -74,7 +74,9 @@ tar xvf $CWD/less-$VERSION.tar.?z || exit 1 cd less-$VERSION || exit 1 # Fix path in manpage: -sed -i "s,/usr/local/etc,/etc,g" less.nro +if [ -r less.nro ]; then + sed -i "s,/usr/local/etc,/etc,g" less.nro +fi chown -R root:root . find . \ @@ -83,6 +85,9 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ +# newline in filenames patch for CVE-2024-32487: +cat $CWD/007521ac3c95bc76.patch | patch -p1 --verbose || exit 1 + if [ ! -r configure ]; then if [ -x ./autogen.sh ]; then NOCONFIGURE=1 ./autogen.sh diff --git a/source/a/less/lesspipe.sh b/source/a/less/lesspipe.sh index b5d76d48a..6bc9ff64d 100644 --- a/source/a/less/lesspipe.sh +++ b/source/a/less/lesspipe.sh @@ -33,7 +33,7 @@ lesspipe() { *.tgz | *.tar.gz | *.tar.Z | *.tar.z | *.tar.bz2 | *.tbz ) tar tvvf "$1" 2>/dev/null ;; *.tlz | *.tar.lz ) lzip -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;; *.txz | *.tar.xz ) xz -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;; - *.tzst | *.tar.zst | *.tar.zstd ) tar tvvf "$1" 2> /dev/null ;; + *.tzst | *.tzz | *.tar.zst | *.tar.zstd ) tar tvvf "$1" 2> /dev/null ;; *.zip) unzip -l "$1" 2>/dev/null ;; *.rpm) rpm -qpvl "$1" 2>/dev/null ;; *.rar) # check if rar is installed first diff --git a/source/a/libblockdev/doinst.sh b/source/a/libblockdev/doinst.sh index 09fe04bb0..79caef3de 100644 --- a/source/a/libblockdev/doinst.sh +++ b/source/a/libblockdev/doinst.sh @@ -11,5 +11,5 @@ config() { # Otherwise, we leave the .new copy for the admin to consider... } -config etc/libblockdev/conf.d/00-default.cfg.new -config etc/libblockdev/conf.d/10-lvm-dbus.cfg.new +config etc/libblockdev/3/conf.d/00-default.cfg.new +config etc/libblockdev/3/conf.d/10-lvm-dbus.cfg.new diff --git a/source/a/libblockdev/libblockdev.SlackBuild b/source/a/libblockdev/libblockdev.SlackBuild index 2a2dd5378..aed678d5e 100755 --- a/source/a/libblockdev/libblockdev.SlackBuild +++ b/source/a/libblockdev/libblockdev.SlackBuild @@ -24,8 +24,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libblockdev -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | rev | cut -f 2- -d -)} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -42,7 +42,7 @@ fi # 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" + echo "$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz" exit 0 fi @@ -116,10 +116,10 @@ make install DESTDIR=$PKG || exit 1 # Don't ship .la files: rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la -mv $PKG/etc/libblockdev/conf.d/00-default.cfg \ - $PKG/etc/libblockdev/conf.d/00-default.cfg.new -mv $PKG/etc/libblockdev/conf.d/10-lvm-dbus.cfg \ - $PKG/etc/libblockdev/conf.d/10-lvm-dbus.cfg.new +mv $PKG/etc/libblockdev/3/conf.d/00-default.cfg \ + $PKG/etc/libblockdev/3/conf.d/00-default.cfg.new +mv $PKG/etc/libblockdev/3/conf.d/10-lvm-dbus.cfg \ + $PKG/etc/libblockdev/3/conf.d/10-lvm-dbus.cfg.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 @@ -150,4 +150,4 @@ 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 +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz diff --git a/source/a/libpwquality/libpwquality.SlackBuild b/source/a/libpwquality/libpwquality.SlackBuild index 53bb2cda9..f0d73928d 100755 --- a/source/a/libpwquality/libpwquality.SlackBuild +++ b/source/a/libpwquality/libpwquality.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libpwquality 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/a/nut/doinst.sh b/source/a/nut/doinst.sh new file mode 100644 index 000000000..393069f41 --- /dev/null +++ b/source/a/nut/doinst.sh @@ -0,0 +1,30 @@ +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 [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + if [ -e $OLD ]; then + cp -a $OLD ${NEW}.incoming + cat $NEW > ${NEW}.incoming + mv ${NEW}.incoming $NEW + fi + config $NEW +} + +preserve_perms etc/rc.d/rc.nut-drvctl.new +preserve_perms etc/rc.d/rc.nut-upsd.new +preserve_perms etc/rc.d/rc.nut-upsmon.new + +for file in etc/nut/*.new ; do + config $file +done diff --git a/source/a/nut/nut.SlackBuild b/source/a/nut/nut.SlackBuild new file mode 100755 index 000000000..b8c6cd520 --- /dev/null +++ b/source/a/nut/nut.SlackBuild @@ -0,0 +1,196 @@ +#!/bin/bash + +# Copyright 2010 V'yacheslav Stetskevych <slava18 dont_spam_me gmail com> +# 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=nut +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 {} \+ + +# 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} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX}/nut \ + --sbindir=/usr/sbin \ + --sysconfdir=/etc/nut \ + --localstatedir=/var \ + --datadir=/usr/share/nut \ + --mandir=/usr/man \ + --docdir=/usr/doc/nut-$VERSION \ + --disable-static \ + --without-python2 \ + --with-dev \ + --with-serial \ + --with-usb \ + --with-snmp \ + --with-neon \ + --with-wrap \ + --with-cgi\ + --with-openssl \ + --with-libldtl \ + --with-cgipath=/usr/share/nut/cgi-bin \ + --with-htmlpath=/usr/share/nut/html \ + --with-drvpath=/usr/lib${LIBDIRSUFFIX}/nut \ + --with-statepath=/run/nut \ + --with-pidpath=/run/nut \ + --with-altpidpath=/run/nut \ + --with-udevdir=/lib/udev \ + --with-user=nut \ + --with-group=nut \ + --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 + +# Install the startup scripts: +mkdir -p $PKG/etc/rc.d +cp -a $CWD/rc.nut-drvctl $PKG/etc/rc.d/rc.nut-drvctl.new +cp -a $CWD/rc.nut-upsd $PKG/etc/rc.d/rc.nut-upsd.new +cp -a $CWD/rc.nut-upsmon $PKG/etc/rc.d/rc.nut-upsmon.new +chown root:root $PKG/etc/rc.d/rc.nut-* +chmod 644 $PKG/etc/rc.d/rc.nut-* + +# Install the bash_completion script: +mkdir -p $PKG/usr/share/bash-completion/completions +cp -a scripts/misc/nut.bash_completion $PKG/usr/share/bash-completion/completions/nut +chmod 755 $PKG/usr/share/bash-completion/completions/nut + +# Create the state directory: +mkdir -p $PKG/var/state/ups +chown nut:nut $PKG/var/state/ups +chmod 770 $PKG/var/state/ups + +# Change .sample files to .new: +for file in $PKG/etc/nut/*.sample ; do + mv $file $(echo $file | rev | cut -f 2- -d . | rev).new +done + +# 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* COPYING* ChangeLog INSTALL* LICENSE* MAINTAINERS* NEWS* README* TODO* UPGRADING* \ + docs \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# Redundant: +rm -rf $PKG/usr/doc/${PKGNAM}-$VERSION/docs/man + +# Clean up zero-length in the docs: +find $PKG/usr/doc -type f -size 0 -exec rm -f "{}" \; + +# 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 +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/a/nut/rc.nut-drvctl b/source/a/nut/rc.nut-drvctl new file mode 100644 index 000000000..c310d26c8 --- /dev/null +++ b/source/a/nut/rc.nut-drvctl @@ -0,0 +1,32 @@ +#!/bin/sh +# NUT ups model-specific drivers start-up and shutdown script. +# This should be started before rc.nut-upsd on the machine connected to the +# UPS's control port. See /etc/nut/ for configuration files. + +# Start upsdrvctl: +upsdrvctl_start() { + # Make sure the runtime directory is there: + mkdir -p /run/nut + chown -R nut:nut /run/nut + chmod 0770 /run/nut + # Load NUT driver(s): + echo "Starting the NUT UPS driver controller: upsdrvctl -u nut start" + upsdrvctl -u nut start +} + +# Stop upsdrvctl: +upsdrvctl_stop() { + echo "Stopping the NUT UPS driver controller." + upsdrvctl stop +} + +case "$1" in +'start') + upsdrvctl_start + ;; +'stop') + upsdrvctl_stop + ;; +*) + echo "usage $0 start|stop" +esac diff --git a/source/a/nut/rc.nut-upsd b/source/a/nut/rc.nut-upsd new file mode 100644 index 000000000..3ca7cdc0b --- /dev/null +++ b/source/a/nut/rc.nut-upsd @@ -0,0 +1,41 @@ +#!/bin/sh +# NUT upsd start-up and shutdown script. +# This should be started after rc.nut-drvctl on the machine connected to the +# UPS's control port. See /etc/nut/ for configuration files. + +# Start upsd: +upsd_start() { + # Make sure the runtime directory is there: + mkdir -p /run/nut + chown -R nut:nut /run/nut + chmod 0770 /run/nut + # Start the UPS daemon: + echo "Starting the NUT UPS information server: upsd -u nut" + upsd -u nut +} + +# Stop upsd: +upsd_stop() { + echo "Stopping the NUT UPS information server." + upsd -c stop +} + +# Reload configuration files for upsd: +upsd_reload() { + echo "Reloading configuration files for the NUT UPS information server: upsd -c reload" + upsd -c reload +} + +case "$1" in +'start') + upsd_start + ;; +'stop') + upsd_stop + ;; +'reload') + upsd_reload + ;; +*) + echo "usage $0 start|stop|reload" +esac diff --git a/source/a/nut/rc.nut-upsmon b/source/a/nut/rc.nut-upsmon new file mode 100644 index 000000000..8fc5ec8f8 --- /dev/null +++ b/source/a/nut/rc.nut-upsmon @@ -0,0 +1,46 @@ +#!/bin/sh +# NUT upsmon start-up and shutdown script. +# upsmon is the client process that is responsible for the most important part +# of UPS monitoring--shutting down the system when the power goes out. +# +# upsmon should be run on every machine that is powered by the UPS if you wish +# to support automatic shutdown on battery power. +# +# See /etc/nut/ for configuration files. + +# Start upsmon: +upsmon_start() { + # Make sure the runtime directory is there: + mkdir -p /run/nut + chown -R nut:nut /run/nut + chmod 0770 /run/nut + # Start the NUT UPS monitor and shutdown controller: + echo "Starting the NUT UPS monitor and shutdown controller: upsmon -u nut" + upsmon -u nut +} + +# Stop upsmon: +upsmon_stop() { + echo "Stopping the NUT UPS monitor and shutdown controller." + upsmon -c stop +} + +# Reload configuration files for upsmon: +upsmon_reload() { + echo "Reloading configuration files for the NUT UPS monitor and shutdown controller: upsmon -c reload" + upsmon -c reload +} + +case "$1" in +'start') + upsmon_start + ;; +'stop') + upsmon_stop + ;; +'reload') + upsmon_reload + ;; +*) + echo "usage $0 start|stop|reload" +esac diff --git a/source/a/nut/slack-desc b/source/a/nut/slack-desc new file mode 100644 index 000000000..cc5132318 --- /dev/null +++ b/source/a/nut/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------------------------------------------------------| +nut: nut (Network UPS Tools) +nut: +nut: The Network UPS Tools is a collection of programs which provide a +nut: common interface for monitoring and administering UPS hardware. +nut: It uses a layered apporoach to connect all the components. Drivers +nut: are provided for a wide assortment of equipment. The primary goal of +nut: the NUT project is to provide reliable monitoring of UPS hardware +nut: and ensure safe shutdowns of the systems which are connected. +nut: +nut: Homepage: https://www.networkupstools.org +nut: diff --git a/source/a/nvi/nvi.SlackBuild b/source/a/nvi/nvi.SlackBuild index d752ab28e..ea7859e52 100755 --- a/source/a/nvi/nvi.SlackBuild +++ b/source/a/nvi/nvi.SlackBuild @@ -98,7 +98,7 @@ cd build.unix --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ --enable-widechar \ --disable-static \ --program-prefix="n" \ diff --git a/source/a/pam/fedora-patches/pam-1.6.0-noflex.patch b/source/a/pam/fedora-patches/pam-1.6.0-noflex.patch deleted file mode 100644 index 706841c9d..000000000 --- a/source/a/pam/fedora-patches/pam-1.6.0-noflex.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up Linux-PAM-1.6.0/doc/Makefile.am.noflex Linux-PAM-1.6.0/doc/Makefile.am ---- Linux-PAM-1.6.0/doc/Makefile.am.noflex 2024-01-23 13:19:04.681955581 +0100 -+++ Linux-PAM-1.6.0/doc/Makefile.am 2024-01-23 13:19:49.740014426 +0100 -@@ -2,7 +2,7 @@ - # Copyright (c) 2005, 2006 Thorsten Kukuk <kukuk@suse.de> - # - --SUBDIRS = man specs sag adg mwg -+SUBDIRS = man sag adg mwg - - CLEANFILES = *~ - DISTCLEANFILES = custom-html.xsl custom-man.xsl -diff -up Linux-PAM-1.6.0/Makefile.am.noflex Linux-PAM-1.6.0/Makefile.am ---- Linux-PAM-1.6.0/Makefile.am.noflex 2024-01-23 13:19:04.681955581 +0100 -+++ Linux-PAM-1.6.0/Makefile.am 2024-01-23 13:21:03.428109219 +0100 -@@ -4,7 +4,7 @@ - - AUTOMAKE_OPTIONS = 1.9 gnu dist-xz no-dist-gzip check-news - --SUBDIRS = libpam tests libpamc libpam_misc modules po conf xtests -+SUBDIRS = libpam tests libpamc libpam_misc modules po doc xtests - - if HAVE_DOC - SUBDIRS += doc diff --git a/source/a/pam/pam.SlackBuild b/source/a/pam/pam.SlackBuild index cfe61ec73..25f1cfad1 100755 --- a/source/a/pam/pam.SlackBuild +++ b/source/a/pam/pam.SlackBuild @@ -99,7 +99,6 @@ done # Patches from the Fedora SRPM: zcat $CWD/fedora-patches/pam-1.5.3-unix-nomsg.patch.gz | patch -p1 --verbose || exit 1 -zcat $CWD/fedora-patches/pam-1.6.0-noflex.patch.gz | patch -p1 --verbose || exit 1 zcat $CWD/fedora-patches/pam-1.6.0-redhat-modules.patch.gz | patch -p1 --verbose || exit 1 # Improve the comments in /etc/environment: diff --git a/source/a/pam/pam.url b/source/a/pam/pam.url index d9bd3667c..8dde2e9f0 100644 --- a/source/a/pam/pam.url +++ b/source/a/pam/pam.url @@ -1,2 +1,3 @@ -#http://www.linux-pam.org/library/Linux-PAM-1.5.3.tar.bz2 https://github.com/linux-pam/linux-pam/releases +https://github.com/linux-pam/linux-pam/releases/download/v1.6.1/Linux-PAM-1.6.1.tar.xz +https://github.com/linux-pam/linux-pam/releases/download/v1.6.1/Linux-PAM-1.6.1.tar.xz.asc diff --git a/source/a/procps-ng/procps-ng.SlackBuild b/source/a/procps-ng/procps-ng.SlackBuild index 9ff42aeca..daea2eba0 100755 --- a/source/a/procps-ng/procps-ng.SlackBuild +++ b/source/a/procps-ng/procps-ng.SlackBuild @@ -27,7 +27,7 @@ VERSION=${VERSION:-4.0.4} PSMISCVER=${PSMISCVER:-v23.5} PROCINFONGVER=${PROCINFONGVER:-2.0.304} PROCINFOVER=${PROCINFOVER:-18} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -81,6 +81,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 {} \+ +# Fix for wide-only ncurses: +sed 's:<ncursesw/:<:g' -i src/watch.c + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6 index 21b5c4782..5fec619c0 100644 --- a/source/a/sysvinit-scripts/scripts/rc.6 +++ b/source/a/sysvinit-scripts/scripts/rc.6 @@ -323,27 +323,33 @@ fi # This is to ensure all processes have completed on SMP machines: wait -if [ -x /sbin/genpowerd -a -z "$container" ]; then - # See if this is a powerfail situation: - if grep -E -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then - # Signal UPS to shut off the inverter: - /sbin/genpowerd -k - if [ ! $? = 0 ]; then - echo - echo "There was an error signaling the UPS." - echo "Perhaps you need to edit /etc/genpowerd.conf to configure" - echo "the serial line and UPS type." - # Wasting 15 seconds of precious power: - /bin/sleep 15 - fi - fi -fi - if [ "$container" = "lxc" ]; then # Confirm successful shutdown of the container: echo "LXC container stopped." fi +# NUT UPS inverter shutdown support: +# If we see a file /etc/killpower, that means we want to shut off the UPS +# inverter on the way down. This will save as much battery power as possible +# and avoid unnecessary full-drain/full-recharge cycles. +if [ -e /etc/killpower -a -z "$container" ]; then + # First we need to restart udev or we won't be able to contact the UPS: + echo "Restarting udev to be able to shut the UPS inverter off..." + /etc/rc.d/rc.udev start + # Wasting precious battery power: + sleep 10 + echo "Shutting down UPS inverter..." + upsdrvctl shutdown + # The power should shut off during the following sleep, but we'll give a + # bit of notice otherwise. Also, be sure to set your machine to start when + # the power resumes in the BIOS settings so that it doesn't stay off. + sleep 45 + echo "The UPS power should have stopped by now, but has not." + echo "It's possible that the power came back during the shutdown process." + echo "Otherwise, check communication with the UPS." + sleep 15 +fi + # Now halt (poweroff with APM or ACPI enabled kernels) or reboot. if [ "$shutdown_command" = "reboot" ]; then echo "Rebooting." diff --git a/source/a/sysvinit-scripts/scripts/rc.M b/source/a/sysvinit-scripts/scripts/rc.M index fc63ce083..d5bc169a8 100644 --- a/source/a/sysvinit-scripts/scripts/rc.M +++ b/source/a/sysvinit-scripts/scripts/rc.M @@ -298,17 +298,27 @@ if [ -x /etc/rc.d/rc.smartd -a -z "$container" ]; then /etc/rc.d/rc.smartd start fi -# Monitor the UPS with genpowerd. -# To use this, uncomment this section and edit your settings in -# /etc/genpowerd.conf (serial device, UPS type, etc). For more information, -# see "man genpowerd" or the extensive documentation in the -# /usr/doc/genpower-*/ directory. -# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want -# support for stopping the UPS's inverter after the machine halts. -#if [ -x /sbin/genpowerd -a -z "$container" ]; then -# echo "Starting genpowerd daemon..." -# /sbin/genpowerd -#fi +# Load model-specific drivers for NUT (Network Uninterruptible power supply +# Tools). This should be started on the machine that controls the UPS. See +# the /etc/nut/ directory for configuration files. +# If you manage your UPS using a serial port, you'll need to add the nut user +# to the "dialout" group. +if [ -x /etc/rc.d/rc.nut-drvctl -a -z "$container" ]; then + /etc/rc.d/rc.nut-drvctl start +fi + +# Start the NUT UPS information server. This should be started on the machine +# that controls the UPS. See the /etc/nut/ directory for configuration files. +if [ -x /etc/rc.d/rc.nut-upsd -a -z "$container" ]; then + /etc/rc.d/rc.nut-upsd start +fi + +# Start the NUT UPS monitor and shutdown controller. This should be run on any +# machine that is powered by the UPS to monitor the power supply and initiate +# shutdown if necessary. See the /etc/nut/ directory for configuration files. +if [ -x /etc/rc.d/rc.nut-upsmon -a -z "$container" ]; then + /etc/rc.d/rc.nut-upsmon start +fi # Turn on process accounting. To enable process accounting, make sure the # option for BSD process accounting is enabled in your kernel, and then diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild index b4ea662e1..8180d4381 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:-15} +BUILD=${BUILD:-16} # 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/udisks/slack-desc b/source/a/udisks/slack-desc deleted file mode 100644 index d3093b536..000000000 --- a/source/a/udisks/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# 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------------------------------------------------------| -udisks: udisks (storage device daemon) -udisks: -udisks: The udisks project provides a storage daemon that implements D-Bus -udisks: interfaces that can be used to query and manipulate storage devices. -udisks: -udisks: It also includes a command-line tool, udisks(1), that can be used to -udisks: query and control the daemon. -udisks: -udisks: Homepage: http://www.freedesktop.org/wiki/Software/udisks -udisks: -udisks: diff --git a/source/a/udisks/udisks.glibc228.diff b/source/a/udisks/udisks.glibc228.diff deleted file mode 100644 index 43f6bf29a..000000000 --- a/source/a/udisks/udisks.glibc228.diff +++ /dev/null @@ -1,52 +0,0 @@ ---- ./src/device.c.orig 2014-03-10 03:57:48.000000000 -0500 -+++ ./src/device.c 2018-09-18 19:06:22.494073271 -0500 -@@ -33,6 +33,7 @@ - #include <sys/stat.h> - #include <sys/time.h> - #include <sys/resource.h> -+#include <sys/sysmacros.h> - #include <fcntl.h> - #include <pwd.h> - #include <grp.h> ---- ./src/daemon.c.orig 2014-03-10 03:57:48.000000000 -0500 -+++ ./src/daemon.c 2018-09-18 19:06:22.490073271 -0500 -@@ -45,6 +45,7 @@ - #include <sys/socket.h> - #include <sys/un.h> - #include <sys/utsname.h> -+#include <sys/sysmacros.h> - #include <net/if_arp.h> - #include <fcntl.h> - #include <signal.h> ---- ./src/mount-monitor.c.orig 2014-03-10 03:58:42.000000000 -0500 -+++ ./src/mount-monitor.c 2018-09-18 19:06:22.495073271 -0500 -@@ -28,7 +28,9 @@ - #include <errno.h> - #include <string.h> - #include <sys/types.h> -+#include <sys/sysmacros.h> - #include <sys/stat.h> -+ - #include <mntent.h> - - #include <glib.h> ---- ./tools/umount-udisks.c.orig 2014-03-10 03:57:48.000000000 -0500 -+++ ./tools/umount-udisks.c 2018-09-18 19:06:22.497073271 -0500 -@@ -30,6 +30,7 @@ - #include <string.h> - #include <sys/types.h> - #include <sys/stat.h> -+#include <sys/sysmacros.h> - #include <fcntl.h> - #include <pwd.h> - #include <grp.h> ---- ./tools/udisks.c.orig 2014-03-10 03:57:48.000000000 -0500 -+++ ./tools/udisks.c 2018-09-18 19:06:22.496073271 -0500 -@@ -31,6 +31,7 @@ - #include <sys/types.h> - #include <sys/stat.h> - #include <sys/wait.h> -+#include <sys/sysmacros.h> - #include <fcntl.h> - #include <pwd.h> - #include <grp.h> diff --git a/source/a/udisks/udisks.no.pci-db.diff b/source/a/udisks/udisks.no.pci-db.diff deleted file mode 100644 index ebb773c68..000000000 --- a/source/a/udisks/udisks.no.pci-db.diff +++ /dev/null @@ -1,32 +0,0 @@ -From c73b5ab54378ec6d7df9948c46ce87f98587af9a Mon Sep 17 00:00:00 2001 -From: Tom Gundersen <teg@jklm.no> -Date: Wed, 21 Nov 2012 02:36:47 +0100 -Subject: [PATCH] udev: remove redundant call to deprecated pci-db - -The binary is no longer shipped with systemd/udev. The functionality -is taken over by a builtin, which is ran for all devices, rendering -this rule superfluous. - -Cc: Jan de Groot <jgc@archlinux.org> -Signed-off-by: Tom Gundersen <teg@jklm.no> ---- - data/80-udisks.rules | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/data/80-udisks.rules b/data/80-udisks.rules -index d1c8c5d..4bf2b37 100644 ---- a/data/80-udisks.rules -+++ b/data/80-udisks.rules -@@ -1,10 +1,6 @@ - # Do not edit this file, it will be overwritten on updates - # - --# import names for PCI storage controllers --# --SUBSYSTEM=="pci", ACTION=="add|change", ENV{ID_MODEL_FROM_DATABASE}=="", ATTR{class}=="0x01*", IMPORT{program}="pci-db %p" -- - # Set eSATA port type for known eSATA CardBus adapters - first we want to ensure - # the device is on a cardbus controller (upper PCI device) - then we check - # vid/pid (lower PCI device) --- -1.8.0.1 diff --git a/source/a/udisks/udisks.url b/source/a/udisks/udisks.url deleted file mode 100644 index cef0134ba..000000000 --- a/source/a/udisks/udisks.url +++ /dev/null @@ -1 +0,0 @@ -http://hal.freedesktop.org/releases/ diff --git a/source/a/upower/upower.SlackBuild b/source/a/upower/upower.SlackBuild index 84336a8e1..a3a9a8a21 100755 --- a/source/a/upower/upower.SlackBuild +++ b/source/a/upower/upower.SlackBuild @@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=upower 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) "} diff --git a/source/a/util-linux/util-linux.SlackBuild b/source/a/util-linux/util-linux.SlackBuild index 35858a799..767804a2f 100755 --- a/source/a/util-linux/util-linux.SlackBuild +++ b/source/a/util-linux/util-linux.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=util-linux VERSION=${VERSION:-$(echo util-linux*.tar.xz | cut -d - -f 3 | rev | cut -f 3- -d . | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} ADJTIMEXVERS=1.29 SETSERIALVERS=2.17 @@ -119,6 +119,8 @@ else SHIP_SU=NO LOGIN_OPTIONS="--disable-login" fi +# Put any PAM modules in the proper directory: +sed -i "s|securelibdir = \$(libdir)/security|securelibdir = /lib${LIBDIRSUFFIX}/security|g" pam_lastlog2/src/Makemodule.am # Changing the fdisk -l output (this was done prior to util-linux-ng) broke # our installation scripts, so we have changed the name of partition type diff --git a/source/a/volume_key/volume_key.SlackBuild b/source/a/volume_key/volume_key.SlackBuild index 0ec4188ed..bcb3c0e2e 100755 --- a/source/a/volume_key/volume_key.SlackBuild +++ b/source/a/volume_key/volume_key.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=volume_key VERSION=${VERSION:-$(echo $PKGNAM-$PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/a/xz/f9cf4c05edd14dedfe63833f8ccbe41b55823b00.patch b/source/a/xz/f9cf4c05edd14dedfe63833f8ccbe41b55823b00.patch new file mode 100644 index 000000000..12ce12c41 --- /dev/null +++ b/source/a/xz/f9cf4c05edd14dedfe63833f8ccbe41b55823b00.patch @@ -0,0 +1,25 @@ +From f9cf4c05edd14dedfe63833f8ccbe41b55823b00 Mon Sep 17 00:00:00 2001 +From: Lasse Collin <lasse.collin@tukaani.org> +Date: Sat, 30 Mar 2024 14:36:28 +0200 +Subject: [PATCH] CMake: Fix sabotaged Landlock sandbox check. + +It never enabled it. +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1f019167..0e4d464f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1001,7 +1001,7 @@ if(NOT SANDBOX_FOUND AND ENABLE_SANDBOX MATCHES "^ON$|^landlock$") + #include <linux/landlock.h> + #include <sys/syscall.h> + #include <sys/prctl.h> +-. ++ + void my_sandbox(void) + { + (void)prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); +-- +2.20.1 diff --git a/source/a/xz/xz.SlackBuild b/source/a/xz/xz.SlackBuild index 0dcb9079d..f1b732bbc 100755 --- a/source/a/xz/xz.SlackBuild +++ b/source/a/xz/xz.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2009, 2010, 2011, 2012, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2009, 2010, 2011, 2012, 2018, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,8 +23,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=xz -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -80,7 +80,7 @@ mkdir -p $TMP $PKG cd $TMP rm -rf $PKGNAM-$VERSION -tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1 +tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1 cd $PKGNAM-$VERSION chown -R root:root . find . \ @@ -94,6 +94,17 @@ find . \ # memory use (these aren't indicating any sort of failure, so...) zcat $CWD/xz.default.verbosity.V_ERROR.diff.gz | patch -p1 --verbose || exit 1 +# More fallout from the incident: +cat $CWD/f9cf4c05edd14dedfe63833f8ccbe41b55823b00.patch | patch -p1 --verbose || exit 1 + +if [ ! -r configure ]; then + if [ -x ./autogen.sh ]; then + NOCONFIGURE=1 ./autogen.sh + else + autoreconf -vif + fi +fi + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/source/a/xz/xz.url b/source/a/xz/xz.url new file mode 100644 index 000000000..ce0a00766 --- /dev/null +++ b/source/a/xz/xz.url @@ -0,0 +1 @@ +https://github.com/tukaani-project/xz/tags 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..f353c1430 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 diff --git a/source/ap/cups-browsed/cups-browsed.SlackBuild b/source/ap/cups-browsed/cups-browsed.SlackBuild new file mode 100755 index 000000000..3823d256e --- /dev/null +++ b/source/ap/cups-browsed/cups-browsed.SlackBuild @@ -0,0 +1,153 @@ +#!/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=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 {} \+ + +# 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/l/python-tomli/slack-desc b/source/ap/cups-browsed/slack-desc index 80be264c2..5bf3c02a0 100644 --- a/source/l/python-tomli/slack-desc +++ b/source/ap/cups-browsed/slack-desc @@ -6,14 +6,14 @@ # customary to leave one space after the ':' except on otherwise blank lines. |-----handy-ruler------------------------------------------------------| -python-tomli: python-tomli (A lil' TOML parser) -python-tomli: -python-tomli: Tomli is a Python library for parsing TOML (a minimal configuration -python-tomli: file format). -python-tomli: -python-tomli: Homepage: https://github.com/hukkin/tomli -python-tomli: -python-tomli: -python-tomli: -python-tomli: -python-tomli: +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..e9cb6e17d 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:-5} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -78,7 +78,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 +88,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 +116,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/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..90c829319 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 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.SlackBuild b/source/ap/hplip/hplip.SlackBuild index 2d389d5e4..682377996 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:-5} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -117,6 +117,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 diff --git a/source/ap/inxi/fetch-inxi.sh b/source/ap/inxi/fetch-inxi.sh index 2e8025c51..8750c0bd5 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.34-1} # Clear download area: rm -rf ${PKGNAM} 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/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§ion=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§ion=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§ion=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/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..bb563e246 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. # @@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mariadb VERSION=${VERSION:-$(echo ${PKGNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # To reduce the package size, the embedded server may be omitted. Currently # only amarok uses this. To build without embedded support, set this to NO. @@ -203,6 +203,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..71d9107b6 100755 --- a/source/ap/mc/mc.SlackBuild +++ b/source/ap/mc/mc.SlackBuild @@ -73,9 +73,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/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..400832a04 100755 --- a/source/ap/rpm/rpm.SlackBuild +++ b/source/ap/rpm/rpm.SlackBuild @@ -26,7 +26,7 @@ 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:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/ap/sc/sc.SlackBuild b/source/ap/sc/sc.SlackBuild index 5cbd9be47..77f5cbf98 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 diff --git a/source/ap/screen/screen.SlackBuild b/source/ap/screen/screen.SlackBuild index 960c38d3e..b781023dc 100755 --- a/source/ap/screen/screen.SlackBuild +++ b/source/ap/screen/screen.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=screen 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/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/xfsdump/xfsdump.SlackBuild b/source/ap/xfsdump/xfsdump.SlackBuild index 18d782cfa..b2e2499ea 100755 --- a/source/ap/xfsdump/xfsdump.SlackBuild +++ b/source/ap/xfsdump/xfsdump.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=xfsdump VERSION=${VERSION:-$(echo xfsdump-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/d/cargo-vendor-filterer/fetch-sources.sh b/source/d/cargo-vendor-filterer/fetch-sources.sh index 3f4f431a6..9e80616ef 100755 --- a/source/d/cargo-vendor-filterer/fetch-sources.sh +++ b/source/d/cargo-vendor-filterer/fetch-sources.sh @@ -1,6 +1,6 @@ #!/bin/bash -VERSION=${VERSION:-0.5.12} +VERSION=${VERSION:-0.5.14} rm -rf cargo-vendor-filterer-*.tar.?z cargo-cargo-vendor-filterer* diff --git a/source/d/clisp/clisp.SlackBuild b/source/d/clisp/clisp.SlackBuild index c09d3ef6a..f567d2f0c 100755 --- a/source/d/clisp/clisp.SlackBuild +++ b/source/d/clisp/clisp.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=clisp VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Bundled libraries: FFCALLVER=2.4 diff --git a/source/d/cmake/cmake.url b/source/d/cmake/cmake.url index ff6187767..27841f4dd 100644 --- a/source/d/cmake/cmake.url +++ b/source/d/cmake/cmake.url @@ -1,2 +1,2 @@ https://github.com/Kitware/CMake/releases -https://github.com/Kitware/CMake/releases/download/v3.29.0/cmake-3.29.0.tar.gz +https://github.com/Kitware/CMake/releases/download/v3.29.3/cmake-3.29.3.tar.gz diff --git a/source/d/cscope/cscope.SlackBuild b/source/d/cscope/cscope.SlackBuild index 02aa1eef6..11b8112db 100755 --- a/source/d/cscope/cscope.SlackBuild +++ b/source/d/cscope/cscope.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=cscope 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 diff --git a/source/d/distcc/distcc.SlackBuild b/source/d/distcc/distcc.SlackBuild index 18a578487..f4893f60a 100755 --- a/source/d/distcc/distcc.SlackBuild +++ b/source/d/distcc/distcc.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=distcc 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/d/gdb/gdb.SlackBuild b/source/d/gdb/gdb.SlackBuild index 5ef2ad333..04d0ec420 100755 --- a/source/d/gdb/gdb.SlackBuild +++ b/source/d/gdb/gdb.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gdb VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/d/git/git.SlackBuild b/source/d/git/git.SlackBuild index c5d011f8d..f5c535005 100755 --- a/source/d/git/git.SlackBuild +++ b/source/d/git/git.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=git VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/d/guile/guile.SlackBuild b/source/d/guile/guile.SlackBuild index 56767bf69..9c00b21f0 100755 --- a/source/d/guile/guile.SlackBuild +++ b/source/d/guile/guile.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=guile 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/d/gyp/gyp.SlackBuild b/source/d/gyp/gyp.SlackBuild index 50bcca11a..d38402e10 100755 --- a/source/d/gyp/gyp.SlackBuild +++ b/source/d/gyp/gyp.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gyp VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/d/llvm/llvm.url b/source/d/llvm/llvm.url index 493f26074..60a90c06a 100644 --- a/source/d/llvm/llvm.url +++ b/source/d/llvm/llvm.url @@ -1,15 +1,15 @@ -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/llvm-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/clang-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/clang-tools-extra-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/compiler-rt-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/flang-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/lldb-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/openmp-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/polly-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/libcxx-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/libcxxabi-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/lld-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/libunwind-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/cmake-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/third-party-18.1.2.src.tar.xz -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/runtimes-18.1.2.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/llvm-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/clang-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/clang-tools-extra-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/compiler-rt-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/flang-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/lldb-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/openmp-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/polly-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/libcxx-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/libcxxabi-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/lld-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/libunwind-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/cmake-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/third-party-18.1.5.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.5/runtimes-18.1.5.src.tar.xz diff --git a/source/d/lua/lua.SlackBuild b/source/d/lua/lua.SlackBuild index 20aa6a035..6872a6f79 100755 --- a/source/d/lua/lua.SlackBuild +++ b/source/d/lua/lua.SlackBuild @@ -16,7 +16,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=lua VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | 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/d/meson/meson.SlackBuild b/source/d/meson/meson.SlackBuild index 6e0faba19..6fc50899b 100755 --- a/source/d/meson/meson.SlackBuild +++ b/source/d/meson/meson.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=meson 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/d/nasm/slack-desc b/source/d/nasm/slack-desc index 8c7c44d72..e1cda1615 100644 --- a/source/d/nasm/slack-desc +++ b/source/d/nasm/slack-desc @@ -14,6 +14,6 @@ nasm: instruction mnemonics and syntax. nasm: nasm: NASM was written by Simon Tatham and Julian Hall. nasm: -nasm: Homepage: http://www.nasm.us +nasm: Homepage: https://www.nasm.us nasm: nasm: diff --git a/source/d/nv-codec-headers/fetch-sources.sh b/source/d/nv-codec-headers/fetch-sources.sh index 5443e429f..f49a6e642 100755 --- a/source/d/nv-codec-headers/fetch-sources.sh +++ b/source/d/nv-codec-headers/fetch-sources.sh @@ -1,6 +1,6 @@ #!/bin/bash -VERSION=${VERSION:-12.1.14.0} +VERSION=${VERSION:-12.2.72.0} rm -rf nv-codec-headers-*.tar.?z* diff --git a/source/d/perl/perl.SlackBuild b/source/d/perl/perl.SlackBuild index 6d61b4d4a..abe4b9355 100755 --- a/source/d/perl/perl.SlackBuild +++ b/source/d/perl/perl.SlackBuild @@ -95,7 +95,7 @@ MOO=2.005005 MODULERUNTIME=0.016 # https://metacpan.org/pod/Sub::Quote (freecell-solver) SUBQUOTE=2.006008 -# https://metacpan.org/pod/JSON (samba with Heimdal) +# https://metacpan.org/pod/JSON (samba with Heimdal) (NOTE: no longer needed for Samba/Heimdal) JSON=4.10 # https://metacpan.org/pod/IO::Tty (mosh) IOTTY=1.20 diff --git a/source/d/poke/poke-elf.url b/source/d/poke/poke-elf.url new file mode 100644 index 000000000..72a8488b8 --- /dev/null +++ b/source/d/poke/poke-elf.url @@ -0,0 +1 @@ +https://jemarch.net/poke-elf diff --git a/source/d/poke/poke.SlackBuild b/source/d/poke/poke.SlackBuild index f6be2bd07..75a172768 100755 --- a/source/d/poke/poke.SlackBuild +++ b/source/d/poke/poke.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2021 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2021, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,8 +23,11 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=poke -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | cut -f 1 -d " " | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-2} + +# Bundle poke-elf? +WITHPOKEELF=${WITHPOKEELF:-TRUE} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -108,6 +111,65 @@ CXXFLAGS="$SLKCFLAGS" \ make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG || exit 1 +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS* ChangeLog COPYING* DEPENDENCIES* LICENSE* NEWS* README* THANKS* TODO* \ + $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 + +if [ "$WITHPOKEELF" = "TRUE" ]; then + cd $CWD + # Add in poke-elf: + POKEELFVER=${POKEELFVER:-$(echo poke-elf-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} + cd $TMP + rm -rf poke-elf-$POKEELFVER + tar xvf $CWD/poke-elf-$POKEELFVER.tar.?z || exit 1 + cd poke-elf-$POKEELFVER || 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 {} \+ + 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/poke-elf-$POKEELFVER \ + --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 + # Add a documentation directory: + mkdir -p $PKG/usr/doc/poke-elf-$POKEELFVER + cp -a \ + AUTHORS* COPYING* README* \ + $PKG/usr/doc/poke-elf-$POKEELFVER +fi + # Don't ship .la files: rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la @@ -129,22 +191,5 @@ if [ -d $PKG/usr/info ]; then ) fi -# Add a documentation directory: -mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION -cp -a \ - AUTHORS* ChangeLog COPYING* DEPENDENCIES* LICENSE* NEWS* README* THANKS* TODO* \ - $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/d/poke/poke.url b/source/d/poke/poke.url new file mode 100644 index 000000000..f9eeffaf3 --- /dev/null +++ b/source/d/poke/poke.url @@ -0,0 +1 @@ +ftp://ftp.gnu.org/pub/gnu/poke diff --git a/source/d/python-pip/python-pip.SlackBuild b/source/d/python-pip/python-pip.SlackBuild index 596f13f21..deaefdbbe 100755 --- a/source/d/python-pip/python-pip.SlackBuild +++ b/source/d/python-pip/python-pip.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-pip VERSION=${VERSION:-$(echo pip-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-3} SRCNAM=pip @@ -69,6 +69,10 @@ python3 setup.py build install --root=$PKG || exit 1 #unshare -n python3 -m build --wheel --no-isolation || exit 1 #python3 -m installer --destdir "$PKG" dist/*.whl || exit 1 +# Remove Windows garbage: +find $PKG . -name "*.exe" -exec rm -f "{}" \; +find $PKG . -name "*.dll" -exec rm -f "{}" \; + mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cp -a *.txt PKG-INFO README.rst \ $PKG/usr/doc/$PKGNAM-$VERSION diff --git a/source/d/python-setuptools/python-setuptools.SlackBuild b/source/d/python-setuptools/python-setuptools.SlackBuild index 2e926666e..2c5b99d13 100755 --- a/source/d/python-setuptools/python-setuptools.SlackBuild +++ b/source/d/python-setuptools/python-setuptools.SlackBuild @@ -23,16 +23,6 @@ cd $(dirname $0) ; CWD=$(pwd) -# First, convert the .zip file if needed: -if ls *.zip 1> /dev/null 2> /dev/null ; then - unzip *.zip - tar cf $(basename *.zip .zip).tar $(basename *.zip .zip) - touch -r *.zip *.tar - plzip -9 *.tar - rm -r $(basename *.zip .zip) - rm *.zip -fi - PKGNAM=python-setuptools VERSION=${VERSION:-$(echo setuptools-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} @@ -88,20 +78,6 @@ find -L . \ rm -f setuptools/*.exe -# After Python 3.9, we will not mess with the upstream module layout again. -if python3 --version | grep -q "Python 3.9." ; then - # Recent Python versions support both a libdir (for pure Python modules) and a - # platlib (for $ARCH specific modules). We've always patched Python to use - # the platform directory (such as /usr/lib64/python3.9/site-packages on x86_64) - # for all modules. Perhaps we will rethink this, but since an installed - # setuptools now takes priority for reporting the libdir (and this no longer - # matches the platlib on architectures such as x86_64), let's patch setuptools - # to agree with Python: - if [ "$LIBDIRSUFFIX" = "64" ]; then - zcat $CWD/setuptools.x86_64.diff.gz | patch -p1 --verbose || exit 1 - fi -fi - # Sticking with setup.py while it exists to make it easier to bootstrap a # new Python version: python3 setup.py build install --root=$PKG || exit 1 diff --git a/source/d/python-setuptools/setuptools.x86_64.diff b/source/d/python-setuptools/setuptools.x86_64.diff deleted file mode 100644 index a9731d738..000000000 --- a/source/d/python-setuptools/setuptools.x86_64.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- ./setuptools/_distutils/sysconfig.py.orig 2022-08-21 02:05:13.000000000 -0500 -+++ ./setuptools/_distutils/sysconfig.py 2022-08-21 13:33:52.738969315 -0500 -@@ -234,7 +234,7 @@ - libdir = getattr(sys, "platlibdir", "lib") - else: - # Pure Python -- libdir = "lib" -+ libdir = "lib64" - implementation = 'pypy' if IS_PYPY else 'python' - libpython = os.path.join(prefix, libdir, implementation + get_python_version()) - return _posix_lib(standard_lib, libpython, early_prefix, prefix) ---- ./setuptools/_distutils/command/install.py.orig 2022-08-21 13:33:52.738969315 -0500 -+++ ./setuptools/_distutils/command/install.py 2022-08-21 13:35:11.919964935 -0500 -@@ -34,7 +34,7 @@ - - INSTALL_SCHEMES = { - 'posix_prefix': { -- 'purelib': '{base}/lib/{implementation_lower}{py_version_short}/site-packages', -+ 'purelib': '{base}/lib64/{implementation_lower}{py_version_short}/site-packages', - 'platlib': '{platbase}/{platlibdir}/{implementation_lower}' - '{py_version_short}/site-packages', - 'headers': '{base}/include/{implementation_lower}' -@@ -43,7 +43,7 @@ - 'data': '{base}', - }, - 'posix_home': { -- 'purelib': '{base}/lib/{implementation_lower}', -+ 'purelib': '{base}/lib64/{implementation_lower}', - 'platlib': '{base}/{platlibdir}/{implementation_lower}', - 'headers': '{base}/include/{implementation_lower}/{dist_name}', - 'scripts': '{base}/bin', diff --git a/source/d/python2/python2.SlackBuild b/source/d/python2/python2.SlackBuild index 5ffaedb88..4ec28177d 100755 --- a/source/d/python2/python2.SlackBuild +++ b/source/d/python2/python2.SlackBuild @@ -26,7 +26,7 @@ PKGNAM=python2 SRCNAM=Python VERSION=$(echo $SRCNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev) BRANCH_VERSION=$(echo $VERSION | cut -f 1,2 -d . ) -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -228,6 +228,10 @@ if [ -r CHANGES.rst ]; then fi cd .. +# Remove Windows garbage: +find $PKG . -name "*.exe" -exec rm -f "{}" \; +find $PKG . -name "*.dll" -exec rm -f "{}" \; + ( cd $PKG find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null diff --git a/source/d/python3/README b/source/d/python3/README deleted file mode 100644 index 8197d5920..000000000 --- a/source/d/python3/README +++ /dev/null @@ -1,18 +0,0 @@ -Python is an interpreted, interactive, object-oriented programming -language that combines remarkable power with very clear syntax. -Python's basic power can be extended with your own modules written in C -or C++. Python is also adaptable as an extension language for existing -applications. - -Python 3 (a.k.a. "Python 3000" or "Py3k") is a new version of the -language that is incompatible with the 2.x line of releases. The -language is mostly the same, but many details, especially how built-in -objects like dictionaries and strings work, have changed considerably, -and a lot of deprecated features have finally been removed. Also, the -standard library has been reorganized in a few prominent places. - -It is safe to install alongside Slackware's Python 2.x. - -If you'd like to have HTML docs installed, get them from -<https://docs.python.org/3/download.html> (HTML format, .tar.bz2 -archive). diff --git a/source/d/python3/python.sysconfig.py.x86_64.diff b/source/d/python3/python.sysconfig.py.x86_64.diff deleted file mode 100644 index 3f607cb48..000000000 --- a/source/d/python3/python.sysconfig.py.x86_64.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- ./Lib/sysconfig.py.orig 2020-10-05 10:07:58.000000000 -0500 -+++ ./Lib/sysconfig.py 2020-10-24 17:23:51.323197869 -0500 -@@ -22,7 +22,7 @@ - 'posix_prefix': { - 'stdlib': '{installed_base}/{platlibdir}/python{py_version_short}', - 'platstdlib': '{platbase}/{platlibdir}/python{py_version_short}', -- 'purelib': '{base}/lib/python{py_version_short}/site-packages', -+ 'purelib': '{base}/lib64/python{py_version_short}/site-packages', - 'platlib': '{platbase}/{platlibdir}/python{py_version_short}/site-packages', - 'include': - '{installed_base}/include/python{py_version_short}{abiflags}', -@@ -33,9 +33,9 @@ - }, - 'posix_home': { - 'stdlib': '{installed_base}/lib/python', -- 'platstdlib': '{base}/lib/python', -- 'purelib': '{base}/lib/python', -- 'platlib': '{base}/lib/python', -+ 'platstdlib': '{base}/lib64/python', -+ 'purelib': '{base}/lib64/python', -+ 'platlib': '{base}/lib64/python', - 'include': '{installed_base}/include/python', - 'platinclude': '{installed_base}/include/python', - 'scripts': '{base}/bin', diff --git a/source/d/python3/python3.SlackBuild b/source/d/python3/python3.SlackBuild index d7a577a3b..89647f3fa 100755 --- a/source/d/python3/python3.SlackBuild +++ b/source/d/python3/python3.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2012-2017 Audrius Kažukauskas <audrius@neutrino.lt> -# Copyright 2017, 2018, 2019, 2024 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2017, 2018, 2019, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -58,6 +58,8 @@ mkdir -p $TMP $PKG # Python gets the compile options right without any help. if [ "$ARCH" = "i586" ]; then LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + LIBDIRSUFFIX="" elif [ "$ARCH" = "s390" ]; then LIBDIRSUFFIX="" elif [ "$ARCH" = "x86_64" ]; then @@ -66,6 +68,10 @@ elif [ "$ARCH" = "arm" ]; then LIBDIRSUFFIX="" elif [ "$ARCH" = "armel" ]; then LIBDIRSUFFIX="" +elif [ "$ARCH" = "aarch64" ]; then + LIBDIRSUFFIX="64" +else + LIBDIRSUFFIX="" fi # Location for Python site-packages: @@ -78,24 +84,12 @@ rm -rf $SRCNAM-$VERSION tar xf $CWD/$SRCNAM-$VERSION.tar.xz || exit 1 cd $SRCNAM-$VERSION || exit 1 -zcat $CWD/python3.readline.set_pre_input_hook.diff.gz | patch -p1 --verbose || exit 1 - -# We don't want a large libpython*.a. -zcat $CWD/python3.no-static-library.diff.gz | patch -p1 --verbose || exit 1 - -if [ "$ARCH" = "x86_64" ]; then - # Install to lib64 instead of lib. - zcat $CWD/python.sysconfig.py.x86_64.diff.gz | patch -p1 --verbose || exit 1 - zcat $CWD/python3.distutils.x86_64.diff.gz | patch -p1 --verbose || exit 1 - zcat $CWD/python3.setup.py.x86_64.diff.gz | patch -p1 --verbose || exit 1 -fi - # Fix python3 path in cgi.py. sed -i '1s|^#.*/usr/local/bin/python|#!/usr/bin/python3|' Lib/cgi.py -# If system we're building on already has Python3 with pip in site-packages, -# ignore it and install pip anyway. -sed -i 's|\("install",\)|\1 "--ignore-installed",|' Lib/ensurepip/__init__.py +## If system we're building on already has Python3 with pip in site-packages, +## ignore it and install pip anyway. +#sed -i 's|\("install",\)|\1 "--ignore-installed",|' Lib/ensurepip/__init__.py chown -R root:root . find -L . \ @@ -112,10 +106,14 @@ find -L . \ --docdir=/usr/doc/$PKGNAM-$VERSION \ --enable-ipv6 \ --enable-shared \ + --with-computed-gotos \ + --enable-optimizations \ + --with-dbmliborder=gdbm:ndbm \ --with-system-expat \ --with-system-ffi \ --enable-loadable-sqlite-extensions \ --without-ensurepip \ + --with-tzpath=/usr/share/zoneinfo \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 @@ -127,12 +125,11 @@ make install DESTDIR=$PKG || exit 1 ln -sf python${BRANCH_VERSION} python ) -## NOPE, let's try using -I instead. -## Add a symlink to cpython include directory to fix various builds that -## do not expect the new location: -#( cd $PKG/usr/include -# ln -sf python?.?/cpython . -#) +# We don't want a large libpython*.a. +find $PKG -name "libpython*.a" -exec rm --verbose "{}" \; + +# Make sure we have a non-platform-specific site-packages directory: +mkdir -p $PKG/usr/lib/python${BRANCH_VERSION}/site-packages # We'll install the python-tools under site-packages. mkdir -p $SITEPK diff --git a/source/d/python3/python3.distutils.x86_64.diff b/source/d/python3/python3.distutils.x86_64.diff deleted file mode 100644 index 09c6e9669..000000000 --- a/source/d/python3/python3.distutils.x86_64.diff +++ /dev/null @@ -1,30 +0,0 @@ ---- ./Lib/distutils/sysconfig.py.orig 2020-10-05 10:07:58.000000000 -0500 -+++ ./Lib/distutils/sysconfig.py 2020-10-24 17:31:20.860207925 -0500 -@@ -151,7 +151,7 @@ - libdir = sys.platlibdir - else: - # Pure Python -- libdir = "lib" -+ libdir = "lib64" - libpython = os.path.join(prefix, libdir, - "python" + get_python_version()) - if standard_lib: ---- ./Lib/distutils/command/install.py.orig 2020-10-05 10:07:58.000000000 -0500 -+++ ./Lib/distutils/command/install.py 2020-10-24 17:29:58.230206077 -0500 -@@ -29,14 +29,14 @@ - - INSTALL_SCHEMES = { - 'unix_prefix': { -- 'purelib': '$base/lib/python$py_version_short/site-packages', -+ 'purelib': '$base/lib64/python$py_version_short/site-packages', - 'platlib': '$platbase/$platlibdir/python$py_version_short/site-packages', - 'headers': '$base/include/python$py_version_short$abiflags/$dist_name', - 'scripts': '$base/bin', - 'data' : '$base', - }, - 'unix_home': { -- 'purelib': '$base/lib/python', -+ 'purelib': '$base/lib64/python', - 'platlib': '$base/$platlibdir/python', - 'headers': '$base/include/python/$dist_name', - 'scripts': '$base/bin', diff --git a/source/d/python3/python3.no-static-library.diff b/source/d/python3/python3.no-static-library.diff deleted file mode 100644 index 3b3afb07c..000000000 --- a/source/d/python3/python3.no-static-library.diff +++ /dev/null @@ -1,75 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: David Malcolm <dmalcolm@redhat.com> -Date: Mon, 18 Jan 2010 17:59:07 +0000 -Subject: [PATCH] 00111: Don't try to build a libpythonMAJOR.MINOR.a -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Downstream only: not appropriate for upstream. - -See https://bugzilla.redhat.com/show_bug.cgi?id=556092 - -Co-authored-by: David Malcolm <dmalcolm@redhat.com> -Co-authored-by: Bohuslav Kabrda <bkabrda@redhat.com> -Co-authored-by: Matej Stuchlik <mstuchli@redhat.com> -Co-authored-by: Robert Kuska <rkuska@redhat.com> -Co-authored-by: Charalampos Stratakis <cstratak@redhat.com> -Co-authored-by: Miro Hrončok <miro@hroncok.cz> ---- - Makefile.pre.in | 21 ++------------------- - 1 file changed, 2 insertions(+), 19 deletions(-) - -diff --git a/Makefile.pre.in b/Makefile.pre.in -index 77f91e72b1..bb4069b18a 100644 ---- a/Makefile.pre.in -+++ b/Makefile.pre.in -@@ -586,7 +586,7 @@ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c - $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir) - - # Build the interpreter --$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) $(EXPORTSYMS) -+$(BUILDPYTHON): Programs/python.o $(LDLIBRARY) $(PY3LIBRARY) $(EXPORTSYMS) - $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) - - platform: $(BUILDPYTHON) pybuilddir.txt -@@ -634,12 +634,6 @@ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o - _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \ - $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build - -- --# Build static library --$(LIBRARY): $(LIBRARY_OBJS) -- -rm -f $@ -- $(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS) -- - libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS) - if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \ -@@ -721,7 +715,7 @@ Makefile Modules/config.c: Makefile.pre \ - @echo "The Makefile was updated, you may need to re-run make." - - --Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY) $(EXPORTSYMS) -+Programs/_testembed: Programs/_testembed.o $(LDLIBRARY) $(PY3LIBRARY) $(EXPORTSYMS) - $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) - - ############################################################################ -@@ -1630,17 +1624,6 @@ libainstall: @DEF_MAKE_RULE@ python-config - else true; \ - fi; \ - done -- @if test -d $(LIBRARY); then :; else \ -- if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \ -- if test "$(SHLIB_SUFFIX)" = .dll; then \ -- $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \ -- else \ -- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \ -- fi; \ -- else \ -- echo Skip install of $(LIBRARY) - use make frameworkinstall; \ -- fi; \ -- fi - $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c - $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o - $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in diff --git a/source/d/python3/python3.readline.set_pre_input_hook.diff b/source/d/python3/python3.readline.set_pre_input_hook.diff deleted file mode 100644 index b55820c48..000000000 --- a/source/d/python3/python3.readline.set_pre_input_hook.diff +++ /dev/null @@ -1,12 +0,0 @@ ---- ./Modules/readline.c.orig 2009-10-26 21:32:51.000000000 +0200 -+++ ./Modules/readline.c 2010-05-30 14:07:10.000000000 +0300 -@@ -12,6 +12,9 @@ - #include <errno.h> - #include <sys/time.h> - -+/* This seems to be needed for set_pre_input_hook to work */ -+#define HAVE_RL_PRE_INPUT_HOOK 1 -+ - #if defined(HAVE_SETLOCALE) - /* GNU readline() mistakenly sets the LC_CTYPE locale. - * This is evil. Only the user or the app's main() should do this! diff --git a/source/d/python3/python3.setup.py.x86_64.diff b/source/d/python3/python3.setup.py.x86_64.diff deleted file mode 100644 index a7dd2a3b4..000000000 --- a/source/d/python3/python3.setup.py.x86_64.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- ./setup.py.orig 2020-10-05 10:07:58.000000000 -0500 -+++ ./setup.py 2020-10-24 17:35:07.299212991 -0500 -@@ -744,7 +744,7 @@ - # directories (i.e. '.' and 'Include') must be first. See issue - # 10520. - if not CROSS_COMPILING: -- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') -+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') - # only change this for cross builds for 3.3, issues on Mageia - if CROSS_COMPILING: diff --git a/source/d/rust/0004-compiler-Use-wasm-ld-for-wasm-targets.patch b/source/d/rust/0004-compiler-Use-wasm-ld-for-wasm-targets.patch new file mode 100644 index 000000000..352889919 --- /dev/null +++ b/source/d/rust/0004-compiler-Use-wasm-ld-for-wasm-targets.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> +Date: Sat, 6 Nov 2021 22:42:06 +0100 +Subject: [PATCH] compiler: Use wasm-ld for wasm targets + +We don't ship rust-lld. +--- + compiler/rustc_target/src/spec/base/wasm.rs | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs +index 4b4d2aca26e4..b4918c8fdda2 100644 +--- a/compiler/rustc_target/src/spec/base/wasm.rs ++++ b/compiler/rustc_target/src/spec/base/wasm.rs +@@ -88,8 +88,7 @@ macro_rules! args { + // arguments just yet + limit_rdylib_exports: false, + +- // we use the LLD shipped with the Rust toolchain by default +- linker: Some("rust-lld".into()), ++ linker: Some("wasm-ld".into()), + linker_flavor: LinkerFlavor::WasmLld(Cc::No), + + pre_link_args, diff --git a/source/d/rust/rust.SlackBuild b/source/d/rust/rust.SlackBuild index 97de6e165..0a43df8f0 100755 --- a/source/d/rust/rust.SlackBuild +++ b/source/d/rust/rust.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=rust SRCNAM="${PKGNAM}c" -VERSION=${VERSION:-1.77.0} +VERSION=${VERSION:-1.78.0} BUILD=${BUILD:-1} # Set this to YES to build with the system LLVM, or NO to use the bundled LLVM. @@ -34,9 +34,9 @@ BUILD=${BUILD:-1} SYSTEM_LLVM=${SYSTEM_LLVM:-NO} # Bootstrap variables (might not be kept updated for latest Rust): -RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.76.0} -RSTAGE0_DIR=${RSTAGE0_DIR:-2024-02-08} -CSTAGE0_VERSION=${CSTAGE0_VERSION:-1.76.0} +RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.77.0} +RSTAGE0_DIR=${RSTAGE0_DIR:-2024-03-21} +CSTAGE0_VERSION=${CSTAGE0_VERSION:-1.77.0} CSTAGE0_DIR=${CSTAGE0_DIR:-$RSTAGE0_DIR} # Automatically determine the architecture we're building on: @@ -143,6 +143,8 @@ if [ "${SYSTEM_LLVM}" = "YES" ]; then zcat $CWD/link_libffi.diff.gz | patch -p1 --verbose || exit 1 fi +cat $CWD/0004-compiler-Use-wasm-ld-for-wasm-targets.patch | patch -p1 --verbose || exit 1 + if [ "$LOCAL_BOOTSTRAP" != "yes" ] ; then # rust requires bootstrapping with the previous rust version. # versions are defined in src/stage0.txt. diff --git a/source/d/rust/rust.url b/source/d/rust/rust.url index 0540b244e..5642b674e 100644 --- a/source/d/rust/rust.url +++ b/source/d/rust/rust.url @@ -1,5 +1,5 @@ # Source code (repacked to .tar.lz): -VERSION=1.77.0 +VERSION=1.78.0 rm -f rustc-${VERSION}-src.tar.* lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz.asc @@ -20,8 +20,8 @@ fi # update the settings below, look at src/stage0.json in the Rust sources. exit 0 -BOOTSTRAP_DATE=2024-02-08 -BOOTSTRAP_VERSION=1.76.0 +BOOTSTRAP_DATE=2024-03-21 +BOOTSTRAP_VERSION=1.77.0 BOOTSTRAP_CARGO=$BOOTSTRAP_VERSION # i686 bootstrap: diff --git a/source/d/scons/scons.SlackBuild b/source/d/scons/scons.SlackBuild index b9af3260f..a9f8b440f 100755 --- a/source/d/scons/scons.SlackBuild +++ b/source/d/scons/scons.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=scons VERSION=${VERSION:-$(echo SCons-*.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/d/valgrind/README b/source/d/valgrind/README new file mode 100644 index 000000000..7e4eec341 --- /dev/null +++ b/source/d/valgrind/README @@ -0,0 +1,19 @@ +Valgrind is a framework for building dynamic analysis tools. There are +Valgrind tools that can automatically detect many memory management +and threading bugs, and profile your programs in detail. You can also +use Valgrind to build new tools. + +The Valgrind distribution currently includes six production-quality +tools: a memory error detector, two thread error detectors, a cache +and branch-prediction profiler, a call-graph generating cache and +branch-prediction profiler, and a heap profiler. It also includes +three experimental tools: a heap/stack/global array overrun detector, +a different kind of heap profiler, and a SimPoint basic block vector +generator. It runs on the following platforms: x86/Linux, AMD64/Linux, +PPC32/Linux, PPC64/Linux, ARM/Linux, x86/MacOSX and AMD64/MacOSX. + +Optional dependency: either mpich or openmpi. If one of these is +found, valgrind will include the MPI wrapper, which allows using +valgrind with software that uses the MPI message passing standard. +Note that only one of mpich or openmpi should be installed, as they +conflict with each other. diff --git a/source/d/valgrind/slack-desc b/source/d/valgrind/slack-desc new file mode 100644 index 000000000..d6c88257b --- /dev/null +++ b/source/d/valgrind/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------------------------------------------------------| +valgrind: valgrind (Valgrind memory debugger) +valgrind: +valgrind: Valgrind is an award-winning suite of tools for debugging and +valgrind: profiling Linux programs. With the tools that come with Valgrind, +valgrind: you can automatically detect many memory management and threading +valgrind: bugs, avoiding hours of frustrating bug-hunting, making your +valgrind: programs more stable. You can also perform detailed profiling, +valgrind: to speed up and reduce memory use of your programs. +valgrind: +valgrind: Homepage: https://www.valgrind.org +valgrind: diff --git a/source/d/valgrind/valgrind.SlackBuild b/source/d/valgrind/valgrind.SlackBuild new file mode 100755 index 000000000..7c850fa27 --- /dev/null +++ b/source/d/valgrind/valgrind.SlackBuild @@ -0,0 +1,144 @@ +#!/bin/bash + +# Written by Kyle Guinn <elyk03@gmail.com> +# Updated by Peter Wang <novalazy@gmail.com> +# Updated by Willy Sudiarto Raharjo <willysr@slackbuilds.org> +# 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=valgrind +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 + # The valgrind build system already passes -fpic + # and forcing -fPIC results in a build failure. + SLKCFLAGS="-O2" + 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 {} \+ + +# 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 \ + --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 executables, but do NOT strip the shared objects, as recommended by the developers: +find $PKG | xargs file | grep -e "executable" | 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* COPYING* FAQ* NEWS* README* \ + $PKG/usr/doc/${PKGNAM}-$VERSION +mv $PKG/usr/share/doc/valgrind/html $PKG/usr/doc/${PKGNAM}-$VERSION + +# The doc directory is the only thing in $PKG/usr/share, and the only things +# left in it now are pdf and a ps doc files. They are large, so we won't keep +# them around. If you still want them, uncomment the line below. +# mv $PKG/usr/share/doc/valgrind/*.{ps,pdf} $PKG/usr/doc/$PKGNAM-$VERSION +rm -rf $PKG/usr/share + +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/d/valgrind/valgrind.url b/source/d/valgrind/valgrind.url new file mode 100644 index 000000000..51de39c62 --- /dev/null +++ b/source/d/valgrind/valgrind.url @@ -0,0 +1 @@ +http://sourceware.org/pub/valgrind diff --git a/source/e/emacs/emacs.SlackBuild b/source/e/emacs/emacs.SlackBuild index 49b06f608..3933a61c9 100755 --- a/source/e/emacs/emacs.SlackBuild +++ b/source/e/emacs/emacs.SlackBuild @@ -42,9 +42,7 @@ VERSION=$SRCDIRVER # installed package is larger. Pass NATIVECOMP=NO to do a normal build. NATIVECOMP=${NATIVECOMP:-YES} -# When building with native compilation, link to the X11 libraries. This option -# is only for native compilation builds -- regular builds will include both -# an X11 and non-X11 version of Emacs. +# Do we want X support? (causes Emacs to be linked with many X11 libraries): WITHX=${WITHX:-YES} # Pass this variable set to "--with-pgtk" to use GTK+3 without linking to X11 @@ -66,7 +64,7 @@ fi if [ "$NATIVECOMP" = "YES" ]; then PDUMPER=${PDUMPER:-"--with-dumping=pdumper --with-native-compilation"} else - PDUMPER=${PDUMPER:-"--with-pdumper=no --with-dumping=unexec --without-native-compilation"} + PDUMPER=${PDUMPER:-"--with-pdumper=auto --without-native-compilation"} fi # Automatically determine the architecture we're building on: @@ -153,72 +151,6 @@ else fi make install DESTDIR=$PKG || exit 1 -# When using native compilation, pdumper is required. And, with pdumper it is -# not possible to share Emacs' support files between two Emacs binaries. -# Slackware has traditionally installed a version of Emacs that supports X11 -# and a graphical toolkit, and another one that is not linked to X for console -# use. So, if we are building Emacs with native compilation, we should not -# build an additional non-X binary. Also, if the previously built Emacs didn't -# support X, then there's no need to build another one like that. -if [ ! "$NATIVECOMP" = "YES" -a ! "$WITHX" = "NO" ]; then - - # We're going to build an extra non-X Emacs, so rename the previously built one: - ( cd $PKG/usr/bin - rm emacs - mv emacs-${SRCDIRVER} emacs-${TARBALLVER}-with-x11 - ) - - # Build a version of the Emacs binary that is not linked to X11: - cd $TMP - rm -rf $SRCNAM-$TARBALLVER - tar xvf $CWD/$SRCNAM-$TARBALLVER.tar.xz || exit 1 - cd $SRCNAM-$SRCDIRVER || 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 {} \+ - - # The defaults are a little too worried about adding a few more K of pure - # memory given the amount available on modern systems: - sed -i "s/#define SYSTEM_PURESIZE_EXTRA 0/#define SYSTEM_PURESIZE_EXTRA 100000/g" src/puresize.h - - CFLAGS="$SLKCFLAGS" \ - CXXFLAGS="$SLKCFLAGS" \ - ./configure \ - --prefix=/usr \ - --sysconfdir=/etc \ - --localstatedir=/var \ - --program-prefix="" \ - --program-suffix="" \ - --mandir=/usr/man \ - --infodir=/usr/info \ - --without-gconf \ - --without-gsettings \ - --with-modules \ - --with-x=no \ - $PDUMPER \ - --build=${ARCH}-slackware-linux || exit 1 - - make $NUMJOBS || make || exit 1 - - # Install the non-X version: - cat src/emacs > $PKG/usr/bin/emacs-${TARBALLVER}-no-x11 - chown root:root $PKG/usr/bin/emacs-${TARBALLVER}-no-x11 - chmod 1755 $PKG/usr/bin/emacs-${TARBALLVER}-no-x11 - - # Create unversioned symlinks for both versions of emacs: - ( cd $PKG/usr/bin - ln -sf emacs-${TARBALLVER}-with-x11 emacs-with-x11 - ln -sf emacs-${TARBALLVER}-no-x11 emacs-no-x11 - # Create a plain "emacs" symlink pointing to emacs-with-x11: - ln -sf emacs-with-x11 emacs - ) - -fi # build/install non-X emacs - # Seems like this nonsense is finally obsolete: if [ -d $PKG/var/games/emacs ]; then # I don't care for broken permissions. diff --git a/source/e/emacs/emacs.SlackBuild.regular-build b/source/e/emacs/emacs.SlackBuild.regular-build index 12af1ab0b..95756410b 100755 --- a/source/e/emacs/emacs.SlackBuild.regular-build +++ b/source/e/emacs/emacs.SlackBuild.regular-build @@ -21,8 +21,8 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # Build a --without-native-compilation Emacs package with an X11 version -# using GTK+3, and a non-X11 linked version for use on the console or on -# machines lacking the X11 libraries. This is how the Slackware Emacs package -# has been traditionally built from 1993-2024. +# using GTK+3. This will still run on the console (or in an xterm if you use +# "emacs -nw"). If you want a version that is not linked to any X11 libraries, +# pass "WITHX=NO" to this script. NATIVECOMP=NO TAG=_regular ./emacs.SlackBuild diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt index 6b40c72d4..beef8ea07 100644 --- a/source/installer/ChangeLog.txt +++ b/source/installer/ChangeLog.txt @@ -1,3 +1,10 @@ +Wed May 8 09:26:31 UTC 2024 + build_installer.sh: Switch to the 'pciutils' implementation of 'lspci' since + Busybox's implementation lacks the capability to map hardware IDs to model + names; a feature we rely on for the conditional loading of Kernel modules on + AArch64. + gzip the content of /usr/share/hwdata to conserve space. ++--------------------------+ Mon Mar 18 08:08:08 UTC 2024 Added console font 'ter-v18n' to accommodate the Raspberry Pi 400's screen. Thanks to BrianL. diff --git a/source/installer/build_installer.sh b/source/installer/build_installer.sh index 6cf9cf664..a70c9c1d6 100755 --- a/source/installer/build_installer.sh +++ b/source/installer/build_installer.sh @@ -1429,6 +1429,7 @@ cd $TMP/extract-packages/usr/share/hwdata mkdir -p -m755 $PKG/$ARCH-installer-filesystem/usr/share/hwdata cp -fa${VERBOSE1} pci.ids usb.ids \ $PKG/$ARCH-installer-filesystem/usr/share/hwdata +gzip -9${VERBOSE1} $PKG/$ARCH-installer-filesystem/usr/share/hwdata/* # Copy the rc script for rpcbind: cd $TMP/extract-packages/etc/rc.d @@ -1456,14 +1457,19 @@ for prunedir in $PKG/$ARCH-installer-filesystem/usr/bin $PKG/$ARCH-installer-fil rm -f $PKG/$ARCH-installer-filesystem/sbin/$(basename $removefile) done done -if [ -r $PKG/$ARCH-installer-filesystem/sbin/lspci -a ! -L $PKG/$ARCH-installer-filesystem/sbin/lspci -a -L $PKG/$ARCH-installer-filesystem/bin/lspci ]; then - rm -f $PKG/$ARCH-installer-filesystem/bin/lspci -fi + # busybox's implementation of 'xzcat' provides different output when piped into 'dd'. # Symlink 'xzcat' to the real 'xz' as we do within the OS: cd $PKG/$ARCH-installer-filesystem/bin ln -fs xz xzcat +# Busybox's implementation of 'lspci' doesn't consult the hardware data within +# /usr/share/hwdata. Replace it with pciutils' version: +cp --remove-destination \ + -fa${VERBOSE1} \ + $TMP/extract-packages/usr/bin/lspci \ + $PKG/$ARCH-installer-filesystem/bin/ + # Update to latest versions of files within /etc/ # /etc/ file Package Reason # ------------------------------------------------------------------------------------ diff --git a/source/k/kernel-configs/config-generic-6.6.23 b/source/k/kernel-configs/config-generic-6.6.30 index dab3641ec..bc8a1b0c0 100644 --- a/source/k/kernel-configs/config-generic-6.6.23 +++ b/source/k/kernel-configs/config-generic-6.6.30 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.6.23 Kernel Configuration +# Linux/x86 6.6.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -195,7 +195,7 @@ CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -524,12 +524,13 @@ CONFIG_CC_HAS_RETURN_THUNK=y CONFIG_CC_HAS_ENTRY_PADDING=y CONFIG_FUNCTION_PADDING_CFI=0 CONFIG_FUNCTION_PADDING_BYTES=4 -CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_CPU_MITIGATIONS=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_RETPOLINE=y CONFIG_RETHUNK=y # CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_MITIGATION_RFDS=y +CONFIG_MITIGATION_SPECTRE_BHI=y # # Power management and ACPI options @@ -744,6 +745,7 @@ CONFIG_AS_SHA1_NI=y CONFIG_AS_SHA256_NI=y CONFIG_AS_TPAUSE=y CONFIG_AS_GFNI=y +CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y # # General architecture-dependent options diff --git a/source/k/kernel-configs/config-generic-6.6.23.x64 b/source/k/kernel-configs/config-generic-6.6.30.x64 index f7e488e75..4eb027e47 100644 --- a/source/k/kernel-configs/config-generic-6.6.23.x64 +++ b/source/k/kernel-configs/config-generic-6.6.30.x64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.6.23 Kernel Configuration +# Linux/x86 6.6.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -200,10 +200,11 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y -# CONFIG_NUMA_BALANCING is not set +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y # CONFIG_CGROUP_FAVOR_DYNMODS is not set @@ -451,7 +452,6 @@ CONFIG_X86_DIRECT_GBPAGES=y CONFIG_X86_CPA_STATISTICS=y CONFIG_X86_MEM_ENCRYPT=y CONFIG_AMD_MEM_ENCRYPT=y -# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y @@ -533,7 +533,7 @@ CONFIG_CALL_PADDING=y CONFIG_HAVE_CALL_THUNKS=y CONFIG_CALL_THUNKS=y CONFIG_PREFIX_SYMBOLS=y -CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_CPU_MITIGATIONS=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_RETPOLINE=y CONFIG_RETHUNK=y @@ -546,6 +546,7 @@ CONFIG_CPU_SRSO=y CONFIG_SLS=y # CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_MITIGATION_RFDS=y +CONFIG_MITIGATION_SPECTRE_BHI=y CONFIG_ARCH_HAS_ADD_PAGES=y # @@ -757,6 +758,7 @@ CONFIG_AS_SHA256_NI=y CONFIG_AS_TPAUSE=y CONFIG_AS_GFNI=y CONFIG_AS_WRUSS=y +CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y # # General architecture-dependent options diff --git a/source/k/kernel-configs/config-huge-6.6.23 b/source/k/kernel-configs/config-huge-6.6.30 index 87184ceeb..105f8320d 100644 --- a/source/k/kernel-configs/config-huge-6.6.23 +++ b/source/k/kernel-configs/config-huge-6.6.30 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.6.23 Kernel Configuration +# Linux/x86 6.6.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -195,7 +195,7 @@ CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y @@ -524,12 +524,13 @@ CONFIG_CC_HAS_RETURN_THUNK=y CONFIG_CC_HAS_ENTRY_PADDING=y CONFIG_FUNCTION_PADDING_CFI=0 CONFIG_FUNCTION_PADDING_BYTES=4 -CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_CPU_MITIGATIONS=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_RETPOLINE=y CONFIG_RETHUNK=y # CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_MITIGATION_RFDS=y +CONFIG_MITIGATION_SPECTRE_BHI=y # # Power management and ACPI options @@ -744,6 +745,7 @@ CONFIG_AS_SHA1_NI=y CONFIG_AS_SHA256_NI=y CONFIG_AS_TPAUSE=y CONFIG_AS_GFNI=y +CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y # # General architecture-dependent options diff --git a/source/k/kernel-configs/config-huge-6.6.23.x64 b/source/k/kernel-configs/config-huge-6.6.30.x64 index e5c0b8bae..790c716d0 100644 --- a/source/k/kernel-configs/config-huge-6.6.23.x64 +++ b/source/k/kernel-configs/config-huge-6.6.30.x64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.6.23 Kernel Configuration +# Linux/x86 6.6.30 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.0" CONFIG_CC_IS_GCC=y @@ -200,10 +200,11 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC11_NO_ARRAY_BOUNDS=y +CONFIG_GCC10_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y -# CONFIG_NUMA_BALANCING is not set +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y # CONFIG_CGROUP_FAVOR_DYNMODS is not set @@ -451,7 +452,6 @@ CONFIG_X86_DIRECT_GBPAGES=y CONFIG_X86_CPA_STATISTICS=y CONFIG_X86_MEM_ENCRYPT=y CONFIG_AMD_MEM_ENCRYPT=y -# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set CONFIG_NUMA=y CONFIG_AMD_NUMA=y CONFIG_X86_64_ACPI_NUMA=y @@ -533,7 +533,7 @@ CONFIG_CALL_PADDING=y CONFIG_HAVE_CALL_THUNKS=y CONFIG_CALL_THUNKS=y CONFIG_PREFIX_SYMBOLS=y -CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_CPU_MITIGATIONS=y CONFIG_PAGE_TABLE_ISOLATION=y CONFIG_RETPOLINE=y CONFIG_RETHUNK=y @@ -546,6 +546,7 @@ CONFIG_CPU_SRSO=y CONFIG_SLS=y # CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_MITIGATION_RFDS=y +CONFIG_MITIGATION_SPECTRE_BHI=y CONFIG_ARCH_HAS_ADD_PAGES=y # @@ -757,6 +758,7 @@ CONFIG_AS_SHA256_NI=y CONFIG_AS_TPAUSE=y CONFIG_AS_GFNI=y CONFIG_AS_WRUSS=y +CONFIG_ARCH_CONFIGURES_CPU_MITIGATIONS=y # # General architecture-dependent options diff --git a/source/kde/fcitx5-configtool/fcitx5-configtool-5.1.5.tar.zst b/source/kde/fcitx5-configtool/fcitx5-configtool-5.1.5.tar.zst Binary files differnew file mode 100644 index 000000000..24264e24e --- /dev/null +++ b/source/kde/fcitx5-configtool/fcitx5-configtool-5.1.5.tar.zst diff --git a/source/kde/fcitx5-configtool/fcitx5-configtool.SlackBuild b/source/kde/fcitx5-configtool/fcitx5-configtool.SlackBuild index 26d404e76..a2e67f5c3 100755 --- a/source/kde/fcitx5-configtool/fcitx5-configtool.SlackBuild +++ b/source/kde/fcitx5-configtool/fcitx5-configtool.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2017 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2017, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2017, 2020, 2024 Patrick J. Volkerding, Sebeka, MN, USA # # All rights reserved. # @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=fcitx5-configtool -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | cut -f 2- -d _ | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d - | cut -f 2- -d _ | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -74,7 +74,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-configtool-$VERSION -tar xvf $CWD/fcitx5-configtool-${VERSION}.tar.?z || exit 1 +tar xvf $CWD/fcitx5-configtool-${VERSION}.tar.zst || exit 1 cd fcitx5-configtool-$VERSION || exit 1 chown -R root:root . diff --git a/source/kde/kde/build/calligra b/source/kde/kde/build/calligra index 81b5c5d06..e522732c7 100644 --- a/source/kde/kde/build/calligra +++ b/source/kde/kde/build/calligra @@ -1 +1 @@ -37 +38 diff --git a/source/kde/kde/build/cantor b/source/kde/kde/build/cantor index 00750edc0..7ed6ff82d 100644 --- a/source/kde/kde/build/cantor +++ b/source/kde/kde/build/cantor @@ -1 +1 @@ -3 +5 diff --git a/source/kde/kde/build/kalgebra b/source/kde/kde/build/kalgebra index d00491fd7..0cfbf0888 100644 --- a/source/kde/kde/build/kalgebra +++ b/source/kde/kde/build/kalgebra @@ -1 +1 @@ -1 +2 diff --git a/source/kde/kde/build/kapidox b/source/kde/kde/build/kapidox index d00491fd7..0cfbf0888 100644 --- a/source/kde/kde/build/kapidox +++ b/source/kde/kde/build/kapidox @@ -1 +1 @@ -1 +2 diff --git a/source/kde/kde/build/kdev-python b/source/kde/kde/build/kdev-python index d00491fd7..0cfbf0888 100644 --- a/source/kde/kde/build/kdev-python +++ b/source/kde/kde/build/kdev-python @@ -1 +1 @@ -1 +2 diff --git a/source/kde/kde/build/kfilemetadata b/source/kde/kde/build/kfilemetadata index 0cfbf0888..00750edc0 100644 --- a/source/kde/kde/build/kfilemetadata +++ b/source/kde/kde/build/kfilemetadata @@ -1 +1 @@ -2 +3 diff --git a/source/kde/kde/build/kig b/source/kde/kde/build/kig index d00491fd7..b8626c4cf 100644 --- a/source/kde/kde/build/kig +++ b/source/kde/kde/build/kig @@ -1 +1 @@ -1 +4 diff --git a/source/kde/kde/build/kile b/source/kde/kde/build/kile index e85087aff..f5c89552b 100644 --- a/source/kde/kde/build/kile +++ b/source/kde/kde/build/kile @@ -1 +1 @@ -31 +32 diff --git a/source/kde/kde/build/kitinerary b/source/kde/kde/build/kitinerary index 0cfbf0888..00750edc0 100644 --- a/source/kde/kde/build/kitinerary +++ b/source/kde/kde/build/kitinerary @@ -1 +1 @@ -2 +3 diff --git a/source/kde/kde/build/kmymoney b/source/kde/kde/build/kmymoney index 00750edc0..b8626c4cf 100644 --- a/source/kde/kde/build/kmymoney +++ b/source/kde/kde/build/kmymoney @@ -1 +1 @@ -3 +4 diff --git a/source/kde/kde/build/kopeninghours b/source/kde/kde/build/kopeninghours index d00491fd7..b8626c4cf 100644 --- a/source/kde/kde/build/kopeninghours +++ b/source/kde/kde/build/kopeninghours @@ -1 +1 @@ -1 +4 diff --git a/source/kde/kde/build/krita b/source/kde/kde/build/krita index 7ed6ff82d..45a4fb75d 100644 --- a/source/kde/kde/build/krita +++ b/source/kde/kde/build/krita @@ -1 +1 @@ -5 +8 diff --git a/source/kde/kde/build/krusader b/source/kde/kde/build/krusader index 0cfbf0888..d00491fd7 100644 --- a/source/kde/kde/build/krusader +++ b/source/kde/kde/build/krusader @@ -1 +1 @@ -2 +1 diff --git a/source/kde/kde/build/okular b/source/kde/kde/build/okular index 0cfbf0888..00750edc0 100644 --- a/source/kde/kde/build/okular +++ b/source/kde/kde/build/okular @@ -1 +1 @@ -2 +3 diff --git a/source/kde/kde/patch/krusader.patch b/source/kde/kde/patch/krusader.patch deleted file mode 100644 index fbe2a558e..000000000 --- a/source/kde/kde/patch/krusader.patch +++ /dev/null @@ -1 +0,0 @@ -cat $CWD/patch/krusader/e5a71586952049ac92fab6f05ed1ab05c1e733c4.patch | patch -p1 --verbose || { touch ${SLACK_KDE_BUILD_DIR}/${PKGNAME}.failed ; continue ; } diff --git a/source/kde/kde/patch/krusader/e5a71586952049ac92fab6f05ed1ab05c1e733c4.patch b/source/kde/kde/patch/krusader/e5a71586952049ac92fab6f05ed1ab05c1e733c4.patch deleted file mode 100644 index b56bc567a..000000000 --- a/source/kde/kde/patch/krusader/e5a71586952049ac92fab6f05ed1ab05c1e733c4.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 2bd5cd0db362db944bdea639bf0be33f6f439268 Mon Sep 17 00:00:00 2001 -From: Evgeny Brazgin <xapienz@phystech.edu> -Date: Sun, 5 Mar 2023 22:48:27 -0800 -Subject: [PATCH 1/2] Add workaround for icon size in HiDPI environment - ---- - app/Panel/PanelView/listmodel.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/app/Panel/PanelView/listmodel.cpp b/app/Panel/PanelView/listmodel.cpp -index d6ad6c5f8..7731e8951 100644 ---- a/app/Panel/PanelView/listmodel.cpp -+++ b/app/Panel/PanelView/listmodel.cpp -@@ -177,7 +177,7 @@ QVariant ListModel::data(const QModelIndex& index, int role) const - if (properties()->displayIcons) { - if (_justForSizeHint) - return QPixmap(_view->fileIconSize(), _view->fileIconSize()); -- return _view->getIcon(fileitem); -+ return QIcon(_view->getIcon(fileitem)); - } - break; - } --- -GitLab - - -From f447f96f14fdb4f86ccc1286692accbec535ecb0 Mon Sep 17 00:00:00 2001 -From: Evgeny Brazgin <xapienz@phystech.edu> -Date: Sun, 12 Mar 2023 21:35:27 -0700 -Subject: [PATCH 2/2] Don't set QStyle::State_None for brief view - ---- - app/Panel/PanelView/krinterbriefview.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/app/Panel/PanelView/krinterbriefview.cpp b/app/Panel/PanelView/krinterbriefview.cpp -index 69496f890..4042c163c 100644 ---- a/app/Panel/PanelView/krinterbriefview.cpp -+++ b/app/Panel/PanelView/krinterbriefview.cpp -@@ -401,7 +401,6 @@ void KrInterBriefView::paintEvent(QPaintEvent *e) - intersectionSet(area, intersectVector); - - foreach(const QModelIndex &mndx, intersectVector) { -- option.state = QStyle::State_None; - option.rect = visualRect(mndx); - painter.save(); - --- -GitLab - diff --git a/source/l/M2Crypto/M2Crypto.SlackBuild b/source/l/M2Crypto/M2Crypto.SlackBuild index dc4f2ee51..6119b1250 100755 --- a/source/l/M2Crypto/M2Crypto.SlackBuild +++ b/source/l/M2Crypto/M2Crypto.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=M2Crypto 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/l/PyQt-builder/PyQt-builder.SlackBuild b/source/l/PyQt-builder/PyQt-builder.SlackBuild index 740f0f883..ff82a960f 100755 --- a/source/l/PyQt-builder/PyQt-builder.SlackBuild +++ b/source/l/PyQt-builder/PyQt-builder.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2023 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=PyQt-builder -SRCNAM=PyQt-builder +SRCNAM=pyqt_builder VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} @@ -84,6 +84,10 @@ python3 -m installer --destdir "$PKG" dist/*.whl || exit 1 find $PKG | xargs file | grep -e "executable" -e "shared object" \ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +# Remove Windows garbage: +find $PKG . -name "*.exe" -exec rm -f "{}" \; +find $PKG . -name "*.dll" -exec rm -f "{}" \; + mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cp -a \ LICENSE* COPYING* ChangeLog NEWS README TODO doc/* \ diff --git a/source/l/PyQt5/PyQt5.SlackBuild b/source/l/PyQt5/PyQt5.SlackBuild index f9f608fa2..8e0094677 100755 --- a/source/l/PyQt5/PyQt5.SlackBuild +++ b/source/l/PyQt5/PyQt5.SlackBuild @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=PyQt5 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/l/PyQt5_sip/PyQt5_sip.SlackBuild b/source/l/PyQt5_sip/PyQt5_sip.SlackBuild index f1872be12..f10ff7f7e 100755 --- a/source/l/PyQt5_sip/PyQt5_sip.SlackBuild +++ b/source/l/PyQt5_sip/PyQt5_sip.SlackBuild @@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=PyQt5_sip SRCNAM=PyQt5_sip VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/QScintilla/QScintilla.SlackBuild b/source/l/QScintilla/QScintilla.SlackBuild index 98b08390b..f3a8c20c8 100755 --- a/source/l/QScintilla/QScintilla.SlackBuild +++ b/source/l/QScintilla/QScintilla.SlackBuild @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=QScintilla SRCNAM=QScintilla_src VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/SDL2/SDL2.url b/source/l/SDL2/SDL2.url index 6f063ccde..7b211cb48 100644 --- a/source/l/SDL2/SDL2.url +++ b/source/l/SDL2/SDL2.url @@ -1,2 +1,2 @@ https://github.com/libsdl-org/SDL -https://github.com/libsdl-org/SDL/releases/download/release-2.30.1/SDL2-2.30.1.tar.gz +https://github.com/libsdl-org/SDL/releases/download/release-2.30.3/SDL2-2.30.3.tar.gz diff --git a/source/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild b/source/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild index 27350f954..6264cd83e 100755 --- a/source/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild +++ b/source/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=adwaita-icon-theme VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -92,6 +92,34 @@ meson setup \ DESTDIR=$PKG $NINJA install || exit 1 cd .. +# Add some extra icons that have gone missing since adwaita-icon-theme-41.0 +# to ensure complete coverage of the FDo icon theme specification. +# Copy from the main tree and back to make sure that we +# don't overwrite these if they eventally appear. +( cd $PKG + mkdir tmpicons + cd tmpicons + tar xvf $CWD/41/adwaita-icon-theme-41.0.tar.xz || exit 1 + cd adwaita-icon-theme-41.0 + # Configure, build, and install: + export CFLAGS="$SLKCFLAGS" + export CXXFLAGS="$SLKCFLAGS" + ./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --build=$ARCH-slackware-linux || exit 1 + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG/tmpicons || exit 1 + rsync -lprvt --progress ../usr/ usr/ + # Then sync back: + rsync -lprvt --progress usr/ ../usr/ + # And remove the leftovers: + cd .. + rm -r tmpicons +) + # Add some extra icons that are missing for Xfce. # Copy from the main tree and back to make sure that we # don't overwrite these if they eventally appear. diff --git a/source/l/aom/aom.SlackBuild b/source/l/aom/aom.SlackBuild new file mode 100755 index 000000000..075486ed9 --- /dev/null +++ b/source/l/aom/aom.SlackBuild @@ -0,0 +1,132 @@ +#!/bin/bash + +# Copyright 2018-2023 Andrew Strong, Blue Mountains, Australia +# 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=aom +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 {} \+ + +# Configure, build, and install: +mkdir cmake-build +cd cmake-build + cmake \ + -DCMAKE_C_FLAGS="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DLIB_SUFFIX="$LIBDIRSUFFIX" \ + -DDOC_INSTALL_DIR="doc" \ + -DENABLE_NASM=1 \ + -DENABLE_DOCS=0 \ + -DBUILD_SHARED_LIBS=1 \ + -DENABLE_TESTS=0 \ + .. || exit 1 + make $NUMJOBS || make || exit 1 + make install DESTDIR=$PKG || exit 1 +cd .. + +# No static libraries: +rm -f $PKG/usr/lib${LIBDIRSUFFIX}/lib*.a + +# 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 + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + AUTHORS* CHANGELOG* LICENSE* PATENTS* README* \ + doc/AlgorithmDescription* \ + $PKG/usr/doc/${PKGNAM}-$VERSION + +# If there's a CHANGELOG file, 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/l/aom/fetch-aom.sh b/source/l/aom/fetch-aom.sh new file mode 100755 index 000000000..580c7e55f --- /dev/null +++ b/source/l/aom/fetch-aom.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +# 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. + + +PKGNAM=aom + +# Pull a stable branch + patches +BRANCH=${1:-3.9.0} + +# Clear download area: +rm -rf ${PKGNAM} + +# Clone repository: +git clone https://aomedia.googlesource.com/aom + +# checkout $BRANCH: +( cd ${PKGNAM} + git checkout v${BRANCH} || exit 1 +) + +HEADISAT="$( cd ${PKGNAM} && git log -1 --format=%h )" +DATE="$( cd ${PKGNAM} && git log -1 --format=%cd --date=format:%Y%m%d )" +LONGDATE="$( cd ${PKGNAM} && git log -1 --format=%cd --date=format:%c )" +# Cleanup. We're not packing up the whole git repo. +( cd ${PKGNAM} && find . -type d -name ".git*" -exec rm -rf {} \; 2> /dev/null ) +mv ${PKGNAM} ${PKGNAM}-${BRANCH} +tar cf ${PKGNAM}-${BRANCH}.tar ${PKGNAM}-${BRANCH} +plzip -9 -f ${PKGNAM}-${BRANCH}.tar +rm -rf ${PKGNAM}-${BRANCH} +touch -d "$LONGDATE" ${PKGNAM}-${BRANCH}.tar.lz +echo +echo "${PKGNAM} branch $BRANCH with HEAD at $HEADISAT packaged as ${PKGNAM}-${BRANCH}.tar.lz" +echo diff --git a/source/l/aom/slack-desc b/source/l/aom/slack-desc new file mode 100644 index 000000000..b87dcaf2a --- /dev/null +++ b/source/l/aom/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------------------------------------------------------| +aom: aom (AV1 video codec library) +aom: +aom: AOMedia Video 1 (AV1) is an open and royalty free video encoding +aom: format optimized for the Internet and the successor of VP9. aom is the +aom: reference encoder and decoder implementation published by the Alliance +aom: for Open Media. +aom: +aom: Homepage: https://aomedia.org/av1/ +aom: +aom: +aom: diff --git a/source/l/avahi/avahi.SlackBuild b/source/l/avahi/avahi.SlackBuild index c27585761..d0405efc1 100755 --- a/source/l/avahi/avahi.SlackBuild +++ b/source/l/avahi/avahi.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=avahi 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/l/boost/boost.SlackBuild b/source/l/boost/boost.SlackBuild index 66604a9e4..a438ab808 100755 --- a/source/l/boost/boost.SlackBuild +++ b/source/l/boost/boost.SlackBuild @@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=boost VERSION=${VERSION:-$(echo $PKGNAM_*.tar.?z | rev | cut -f 3- -d . | rev | cut -f 2- -d _)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} PKG_VERSION=$(echo $VERSION | tr _ .) # Leave this alone NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/brotli/brotli.SlackBuild b/source/l/brotli/brotli.SlackBuild index 39aec12eb..e9543ac71 100755 --- a/source/l/brotli/brotli.SlackBuild +++ b/source/l/brotli/brotli.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=brotli 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/l/cryfs/cryfs.SlackBuild b/source/l/cryfs/cryfs.SlackBuild index 79dbd37cf..45843e613 100755 --- a/source/l/cryfs/cryfs.SlackBuild +++ b/source/l/cryfs/cryfs.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=cryfs 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 diff --git a/source/a/genpower/genpower.SlackBuild b/source/l/dav1d/dav1d.SlackBuild index bfcdf23c1..8877ec7bb 100755 --- a/source/a/genpower/genpower.SlackBuild +++ b/source/l/dav1d/dav1d.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,18 +22,19 @@ cd $(dirname $0) ; CWD=$(pwd) -PKGNAM=genpower -VERSION=${VERSION:-1.0.5} -BUILD=${BUILD:-5} +PKGNAM=dav1d +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,16 +45,38 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then 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-genpower +PKG=$TMP/package-$PKGNAM rm -rf $PKG mkdir -p $TMP $PKG cd $TMP -rm -rf genpower-$VERSION -tar xvf $CWD/genpower-$VERSION.tar.gz || exit 1 -cd genpower-$VERSION || exit 1 +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1 +cd $PKGNAM-$VERSION || exit 1 chown -R root:root . find . \ @@ -62,51 +85,40 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ -find . -type d -name CVS -depth -exec rm -rf {} \+ - -zcat $CWD/genpower.var.diff.gz | patch -p1 -E --verbose || exit 1 -zcat $CWD/genpower.halt.diff.gz | patch -p1 --verbose || exit 1 - -make -j4 || make || exit 1 -mkdir -p $PKG/sbin -cat genpowerd > $PKG/sbin/genpowerd -cat gentest > $PKG/sbin/gentest -cat genpowerfail > $PKG/sbin/genpowerfail -mkdir -p $PKG/etc -cat genpowerd.conf > $PKG/etc/genpowerd.conf.new -chmod 755 $PKG/sbin/* - -find $PKG | xargs file | grep -e "executable" -e "shared object" \ - | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null - -mkdir -p $PKG/usr/man/man8 -cat genpowerd.8 | gzip -9c > $PKG/usr/man/man8/genpowerd.8.gz -cat gentest.8 | gzip -9c > $PKG/usr/man/man8/gentest.8.gz - -mkdir -p $PKG/usr/doc/genpower-$VERSION +# 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 \ + --localstatedir=/var \ + --buildtype=release \ + .. || exit 1 + "${NINJA:=ninja}" $NUMJOBS || exit 1 + DESTDIR=$PKG $NINJA install || exit 1 +cd .. + +# 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 + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION cp -a \ - COPYING Change.Log README TODO genpower.docs cables \ - $PKG/usr/doc/genpower-$VERSION + CONTRIBUTING* COPYING* NEWS* README* THANKS* \ + doc/PATENTS* \ + $PKG/usr/doc/${PKGNAM}-$VERSION mkdir -p $PKG/install -cat << EOF > $PKG/install/doinst.sh -#!/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 [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy - rm \$NEW - fi - # Otherwise, we leave the .new copy for the admin to consider... -} -config etc/genpowerd.conf.new -EOF cat $CWD/slack-desc > $PKG/install/slack-desc -# Build the package: cd $PKG -/sbin/makepkg -l y -c n $TMP/genpower-$VERSION-$ARCH-$BUILD.txz - +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz diff --git a/source/l/dav1d/dav1d.url b/source/l/dav1d/dav1d.url new file mode 100644 index 000000000..b241eeae0 --- /dev/null +++ b/source/l/dav1d/dav1d.url @@ -0,0 +1 @@ +http://downloads.videolan.org/pub/videolan/dav1d diff --git a/source/l/dav1d/slack-desc b/source/l/dav1d/slack-desc new file mode 100644 index 000000000..3afb21a99 --- /dev/null +++ b/source/l/dav1d/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------------------------------------------------------| +dav1d: dav1d (AV1 decoder) +dav1d: +dav1d: dav1d is an AV1 decoder focused on speed and correctness. It supports +dav1d: all features from AV1, including all subsampling and bit-depth +dav1d: parameters. +dav1d: +dav1d: Homepage: https://code.videolan.org/videolan/dav1d +dav1d: +dav1d: +dav1d: +dav1d: diff --git a/source/l/dbus-python/dbus-python.SlackBuild b/source/l/dbus-python/dbus-python.SlackBuild index 558120920..9954235b2 100755 --- a/source/l/dbus-python/dbus-python.SlackBuild +++ b/source/l/dbus-python/dbus-python.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=dbus-python VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/dconf/slack-desc b/source/l/dconf/slack-desc index 244468909..426839ec7 100644 --- a/source/l/dconf/slack-desc +++ b/source/l/dconf/slack-desc @@ -11,7 +11,7 @@ dconf: dconf: dconf is a low-level configuration system. Its main purpose is to dconf: provide a backend to the GSettings API in GLib. dconf: -dconf: Homepage: http://live.gnome.org/dconf +dconf: Homepage: https://wiki.gnome.org/Projects/dconf dconf: dconf: dconf: diff --git a/source/l/dotconf/dotconf.SlackBuild b/source/l/dotconf/dotconf.SlackBuild index 48e33b383..3acc23e0d 100755 --- a/source/l/dotconf/dotconf.SlackBuild +++ b/source/l/dotconf/dotconf.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=dotconf VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/enchant/enchant.url b/source/l/enchant/enchant.url index 9d2ccb228..a89b5411e 100644 --- a/source/l/enchant/enchant.url +++ b/source/l/enchant/enchant.url @@ -1,2 +1,2 @@ https://github.com/AbiWord/enchant -https://github.com/AbiWord/enchant/releases/download/v2.6.8/enchant-2.6.8.tar.gz +https://github.com/AbiWord/enchant/releases/download/v2.7.3/enchant-2.7.3.tar.gz diff --git a/source/l/ffmpeg/0004-support-nv-codec-headers-12.2.patch b/source/l/ffmpeg/0004-support-nv-codec-headers-12.2.patch new file mode 100644 index 000000000..80352e8c5 --- /dev/null +++ b/source/l/ffmpeg/0004-support-nv-codec-headers-12.2.patch @@ -0,0 +1,291 @@ +diff -Nru a/libavcodec/nvenc.c b/libavcodec/nvenc.c +--- a/libavcodec/nvenc.c 2024-04-03 12:14:22.766521297 +0900 ++++ b/libavcodec/nvenc.c 2024-04-03 12:14:01.727470507 +0900 +@@ -242,8 +242,20 @@ + + static void nvenc_print_driver_requirement(AVCodecContext *avctx, int level) + { +-#if NVENCAPI_CHECK_VERSION(12, 1) ++#if NVENCAPI_CHECK_VERSION(12, 3) + const char *minver = "(unknown)"; ++#elif NVENCAPI_CHECK_VERSION(12, 2) ++# if defined(_WIN32) || defined(__CYGWIN__) ++ const char *minver = "551.76"; ++# else ++ const char *minver = "550.54.14"; ++# endif ++#elif NVENCAPI_CHECK_VERSION(12, 1) ++# if defined(_WIN32) || defined(__CYGWIN__) ++ const char *minver = "531.61"; ++# else ++ const char *minver = "530.41.03"; ++# endif + #elif NVENCAPI_CHECK_VERSION(12, 0) + # if defined(_WIN32) || defined(__CYGWIN__) + const char *minver = "522.25"; +@@ -594,6 +606,33 @@ + return AVERROR(ENOSYS); + } + ++#ifdef NVENC_HAVE_TEMPORAL_FILTER ++ ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_TEMPORAL_FILTER); ++ if(ctx->tf_level > 0 && ret <= 0) { ++ av_log(avctx, AV_LOG_WARNING, "Temporal filtering not supported by the device\n"); ++ return AVERROR(ENOSYS); ++ } ++#endif ++ ++#ifdef NVENC_HAVE_LOOKAHEAD_LEVEL ++ ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOOKAHEAD_LEVEL); ++ if(ctx->rc_lookahead > 0 && ctx->lookahead_level > 0 && ++ ctx->lookahead_level != NV_ENC_LOOKAHEAD_LEVEL_AUTOSELECT && ++ ctx->lookahead_level > ret) ++ { ++ av_log(avctx, AV_LOG_WARNING, "Lookahead level not supported. Maximum level: %d\n", ret); ++ return AVERROR(ENOSYS); ++ } ++#endif ++ ++#ifdef NVENC_HAVE_UNIDIR_B ++ ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_UNIDIRECTIONAL_B); ++ if(ctx->unidir_b && ret <= 0) { ++ av_log(avctx, AV_LOG_WARNING, "Unidirectional B-Frames not supported by the device\n"); ++ return AVERROR(ENOSYS); ++ } ++#endif ++ + ctx->support_dyn_bitrate = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_DYN_BITRATE_CHANGE); + + return 0; +@@ -987,7 +1026,7 @@ + return 0; + } + +-static av_cold void nvenc_setup_rate_control(AVCodecContext *avctx) ++static av_cold int nvenc_setup_rate_control(AVCodecContext *avctx) + { + NvencContext *ctx = avctx->priv_data; + +@@ -1116,6 +1155,24 @@ + if (ctx->encode_config.rcParams.lookaheadDepth < ctx->rc_lookahead) + av_log(avctx, AV_LOG_WARNING, "Clipping lookahead depth to %d (from %d) due to lack of surfaces/delay", + ctx->encode_config.rcParams.lookaheadDepth, ctx->rc_lookahead); ++ ++#ifdef NVENC_HAVE_LOOKAHEAD_LEVEL ++ if (ctx->lookahead_level >= 0) { ++ switch (ctx->lookahead_level) { ++ case NV_ENC_LOOKAHEAD_LEVEL_0: ++ case NV_ENC_LOOKAHEAD_LEVEL_1: ++ case NV_ENC_LOOKAHEAD_LEVEL_2: ++ case NV_ENC_LOOKAHEAD_LEVEL_3: ++ case NV_ENC_LOOKAHEAD_LEVEL_AUTOSELECT: ++ break; ++ default: ++ av_log(avctx, AV_LOG_ERROR, "Invalid lookahead level.\n"); ++ return AVERROR(EINVAL); ++ } ++ ++ ctx->encode_config.rcParams.lookaheadLevel = ctx->lookahead_level; ++ } ++#endif + } + } + +@@ -1143,6 +1200,8 @@ + ctx->encode_config.rcParams.vbvBufferSize = avctx->rc_buffer_size = 0; + ctx->encode_config.rcParams.maxBitRate = avctx->rc_max_rate; + } ++ ++ return 0; + } + + static av_cold int nvenc_setup_h264_config(AVCodecContext *avctx) +@@ -1255,6 +1314,11 @@ + + h264->level = ctx->level; + ++#ifdef NVENC_HAVE_NEW_BIT_DEPTH_API ++ h264->inputBitDepth = h264->outputBitDepth = ++ IS_10BIT(ctx->data_pix_fmt) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8; ++#endif ++ + if (ctx->coder >= 0) + h264->entropyCodingMode = ctx->coder; + +@@ -1370,7 +1434,12 @@ + + hevc->chromaFormatIDC = IS_YUV444(ctx->data_pix_fmt) ? 3 : 1; + ++#ifdef NVENC_HAVE_NEW_BIT_DEPTH_API ++ hevc->inputBitDepth = hevc->outputBitDepth = ++ IS_10BIT(ctx->data_pix_fmt) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8; ++#else + hevc->pixelBitDepthMinus8 = IS_10BIT(ctx->data_pix_fmt) ? 2 : 0; ++#endif + + hevc->level = ctx->level; + +@@ -1386,6 +1455,25 @@ + hevc->numRefL1 = avctx->refs; + #endif + ++#ifdef NVENC_HAVE_TEMPORAL_FILTER ++ if (ctx->tf_level >= 0) { ++ hevc->tfLevel = ctx->tf_level; ++ ++ switch (ctx->tf_level) ++ { ++ case NV_ENC_TEMPORAL_FILTER_LEVEL_0: ++ case NV_ENC_TEMPORAL_FILTER_LEVEL_4: ++ break; ++ default: ++ av_log(avctx, AV_LOG_ERROR, "Invalid temporal filtering level.\n"); ++ return AVERROR(EINVAL); ++ } ++ ++ if (ctx->encode_config.frameIntervalP < 5) ++ av_log(avctx, AV_LOG_WARNING, "Temporal filtering needs at least 4 B-Frames (-bf 4).\n"); ++ } ++#endif ++ + return 0; + } + +@@ -1455,8 +1543,13 @@ + + av1->chromaFormatIDC = IS_YUV444(ctx->data_pix_fmt) ? 3 : 1; + ++#ifdef NVENC_HAVE_NEW_BIT_DEPTH_API ++ av1->inputBitDepth = IS_10BIT(ctx->data_pix_fmt) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8; ++ av1->outputBitDepth = (IS_10BIT(ctx->data_pix_fmt) || ctx->highbitdepth) ? NV_ENC_BIT_DEPTH_10 : NV_ENC_BIT_DEPTH_8; ++#else + av1->inputPixelBitDepthMinus8 = IS_10BIT(ctx->data_pix_fmt) ? 2 : 0; + av1->pixelBitDepthMinus8 = (IS_10BIT(ctx->data_pix_fmt) || ctx->highbitdepth) ? 2 : 0; ++#endif + + if (ctx->b_ref_mode >= 0) + av1->useBFramesAsRef = ctx->b_ref_mode; +@@ -1585,6 +1678,10 @@ + FF_ENABLE_DEPRECATION_WARNINGS + } + ++#ifdef NVENC_HAVE_UNIDIR_B ++ ctx->init_encode_params.enableUniDirectionalB = ctx->unidir_b; ++#endif ++ + ctx->init_encode_params.enableEncodeAsync = 0; + ctx->init_encode_params.enablePTD = 1; + +@@ -1633,7 +1730,9 @@ + + nvenc_recalc_surfaces(avctx); + +- nvenc_setup_rate_control(avctx); ++ res = nvenc_setup_rate_control(avctx); ++ if (res < 0) ++ return res; + + if (avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { + ctx->encode_config.frameFieldMode = NV_ENC_PARAMS_FRAME_FIELD_MODE_FIELD; +@@ -1689,15 +1788,15 @@ + { + switch (pix_fmt) { + case AV_PIX_FMT_YUV420P: +- return NV_ENC_BUFFER_FORMAT_YV12_PL; ++ return NV_ENC_BUFFER_FORMAT_YV12; + case AV_PIX_FMT_NV12: +- return NV_ENC_BUFFER_FORMAT_NV12_PL; ++ return NV_ENC_BUFFER_FORMAT_NV12; + case AV_PIX_FMT_P010: + case AV_PIX_FMT_P016: + return NV_ENC_BUFFER_FORMAT_YUV420_10BIT; + case AV_PIX_FMT_GBRP: + case AV_PIX_FMT_YUV444P: +- return NV_ENC_BUFFER_FORMAT_YUV444_PL; ++ return NV_ENC_BUFFER_FORMAT_YUV444; + case AV_PIX_FMT_GBRP16: + case AV_PIX_FMT_YUV444P16: + return NV_ENC_BUFFER_FORMAT_YUV444_10BIT; +@@ -2282,12 +2381,6 @@ + frame_data->duration = frame->duration; + frame_data->frame_opaque = frame->opaque; + +-#if FF_API_REORDERED_OPAQUE +-FF_DISABLE_DEPRECATION_WARNINGS +- frame_data->reordered_opaque = frame->reordered_opaque; +-FF_ENABLE_DEPRECATION_WARNINGS +-#endif +- + ctx->frame_data_array_pos = (ctx->frame_data_array_pos + 1) % ctx->frame_data_array_nb; + pic_params->inputDuration = idx; + +@@ -2304,12 +2397,6 @@ + + pkt->duration = frame_data->duration; + +-#if FF_API_REORDERED_OPAQUE +-FF_DISABLE_DEPRECATION_WARNINGS +- avctx->reordered_opaque = frame_data->reordered_opaque; +-FF_ENABLE_DEPRECATION_WARNINGS +-#endif +- + if (avctx->flags & AV_CODEC_FLAG_COPY_OPAQUE) { + pkt->opaque = frame_data->frame_opaque; + pkt->opaque_ref = frame_data->frame_opaque_ref; +@@ -2697,6 +2784,7 @@ + pic_params.encodePicFlags = 0; + } + ++ pic_params.frameIdx = ctx->frame_idx_counter++; + pic_params.inputTimeStamp = frame->pts; + + if (ctx->extra_sei) { +diff -Nru a/libavcodec/nvenc.h b/libavcodec/nvenc.h +--- a/libavcodec/nvenc.h 2024-04-03 12:14:27.574532897 +0900 ++++ b/libavcodec/nvenc.h 2024-04-03 12:14:07.102483487 +0900 +@@ -83,6 +83,15 @@ + #define NVENC_NO_DEPRECATED_RC + #endif + ++// SDK 12.2 compile time feature checks ++#if NVENCAPI_CHECK_VERSION(12, 2) ++#define NVENC_HAVE_NEW_BIT_DEPTH_API ++#define NVENC_HAVE_TEMPORAL_FILTER ++#define NVENC_HAVE_LOOKAHEAD_LEVEL ++#define NVENC_HAVE_UHQ_TUNING ++#define NVENC_HAVE_UNIDIR_B ++#endif ++ + typedef struct NvencSurface + { + NV_ENC_INPUT_PTR input_surface; +@@ -100,10 +109,6 @@ + { + int64_t duration; + +-#if FF_API_REORDERED_OPAQUE +- int64_t reordered_opaque; +-#endif +- + void *frame_opaque; + AVBufferRef *frame_opaque_ref; + } NvencFrameData; +@@ -221,6 +226,8 @@ + + void *nvencoder; + ++ uint32_t frame_idx_counter; ++ + int preset; + int profile; + int level; +@@ -270,6 +277,9 @@ + int highbitdepth; + int max_slice_size; + int rgb_mode; ++ int tf_level; ++ int lookahead_level; ++ int unidir_b; + } NvencContext; + + int ff_nvenc_encode_init(AVCodecContext *avctx); diff --git a/source/l/ffmpeg/ffmpeg.SlackBuild b/source/l/ffmpeg/ffmpeg.SlackBuild index 1553821b0..ca1e1356c 100755 --- a/source/l/ffmpeg/ffmpeg.SlackBuild +++ b/source/l/ffmpeg/ffmpeg.SlackBuild @@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ffmpeg VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -123,9 +123,7 @@ libbs2b="" ; [ "${BS2B:-no}" != "no" ] && libbs2b="--enable-libbs2b" rubberband="" ; [ "${RUBBERBAND:-no}" != "no" ] && rubberband="--enable-librubberband" tesseract="" ; [ "${TESSERACT:-no}" != "no" ] && tesseract="--enable-libtesseract" libjack="" ; [ "${JACK:-no}" != "no" ] && libjack="--enable-libjack" -libaom="" ; [ "${AOM:-no}" != "no" ] && libaom="--enable-libaom" lv2="" ; [ "${LV2:-no}" != "no" ] && lv2="--enable-lv2" -libdav1d="" ; [ "${DAV1D:-no}" != "no" ] && libdav1d="--enable-libdav1d" rabbitmq="" ; [ "${RABBITMQ:-no}" != "no" ] && rabbitmq="--enable-librabbitmq" libcodec2="" ; [ "${CODEC2:-no}" != "no" ] && libcodec2="--enable-libcodec2" libsoxr="" ; [ "${SOXR:-no}" != "no" ] && libsoxr="--enable-libsoxr" @@ -159,9 +157,11 @@ liblensfun="" ; [ "${LENSFUN:-no}" != "no" ] && liblensfun="--enable-liblens fontconfig="" ; [ "${FONTCONFIG:-yes}" != "no" ] && fontconfig="--enable-libfontconfig" freetype="" ; [ "${FREETYPE:-yes}" != "no" ] && freetype="--enable-libfreetype" fribidi="" ; [ "${FRIBIDI:-yes}" != "no" ] && fribidi="--enable-libfribidi" +libaom="" ; [ "${AOM:-yes}" != "no" ] && libaom="--enable-libaom" libbluray="" ; [ "${BLURAY:-yes}" != "no" ] && libbluray="--enable-libbluray" libcaca="" ; [ "${CACA:-yes}" != "no" ] && libcaca="--enable-libcaca" libcdio="" ; [ "${LIBCDIO:-yes}" != "no" ] && libcdio="--enable-libcdio" +libdav1d="" ; [ "${DAV1D:-yes}" != "no" ] && libdav1d="--enable-libdav1d" libssh="" ; [ "${LIBSSH:-yes}" != "no" ] && libssh="--enable-libssh" libtheora="" ; [ "${THEORA:-yes}" != "no" ] && libtheora="--enable-libtheora" libv4l2="" ; [ "${V4L2:-yes}" != "no" ] && libv4l2="--enable-libv4l2" @@ -213,6 +213,9 @@ zcat $CWD/ffmpeg.vulkan.diff.gz | patch -p1 --verbose || exit 1 # Fix ctx memory leak: zcat $CWD/250471ea1745fc703eb346a2a662304536a311b1.patch | patch -p1 --verbose || exit 1 +# Patch for recent nv-codec-headers: +zcat $CWD/0004-support-nv-codec-headers-12.2.patch.gz | patch -p1 --verbose || exit 1 + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/source/l/fribidi/fribidi.url b/source/l/fribidi/fribidi.url new file mode 100644 index 000000000..deab3e5a8 --- /dev/null +++ b/source/l/fribidi/fribidi.url @@ -0,0 +1 @@ +https://github.com/fribidi/fribidi/releases/download/v1.0.14/fribidi-1.0.14.tar.xz diff --git a/source/l/gdbm/gdbm.SlackBuild b/source/l/gdbm/gdbm.SlackBuild index 1a446bda5..c0cbc3477 100755 --- a/source/l/gdbm/gdbm.SlackBuild +++ b/source/l/gdbm/gdbm.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gdbm VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild b/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild index 1a8c6a2a6..59032f628 100755 --- a/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild +++ b/source/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild @@ -95,7 +95,9 @@ meson setup \ --localstatedir=/var \ --buildtype=release \ -Dgtk_doc=false \ + -Dtests=false \ -Dinstalled_tests=false \ + -Dothers=enabled \ .. || exit 1 "${NINJA:=ninja}" $NUMJOBS || exit 1 DESTDIR=$PKG $NINJA install || exit 1 diff --git a/source/l/gexiv2/gexiv2.SlackBuild b/source/l/gexiv2/gexiv2.SlackBuild index 098e893e6..4a5c4a76f 100755 --- a/source/l/gexiv2/gexiv2.SlackBuild +++ b/source/l/gexiv2/gexiv2.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gexiv2 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/gi-docgen/gi-docgen.SlackBuild b/source/l/gi-docgen/gi-docgen.SlackBuild index 48cbea6af..4e1156e30 100755 --- a/source/l/gi-docgen/gi-docgen.SlackBuild +++ b/source/l/gi-docgen/gi-docgen.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gi-docgen VERSION=${VERSION:-$(echo gi-docgen-*.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/l/glade/glade.SlackBuild b/source/l/glade/glade.SlackBuild index 750ee1b97..cda119f2a 100755 --- a/source/l/glade/glade.SlackBuild +++ b/source/l/glade/glade.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=glade 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/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild index e16558257..d226405b7 100755 --- a/source/l/glibc/glibc.SlackBuild +++ b/source/l/glibc/glibc.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=glibc VERSION=${VERSION:-$(echo glibc-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} CHECKOUT=${CHECKOUT:-""} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # I was considering disabling NSCD, but MoZes talked me out of it. :) #DISABLE_NSCD=" --disable-nscd " diff --git a/source/l/glibc/patches/CVE-2024-2961_glibc2.39.patch b/source/l/glibc/patches/CVE-2024-2961_glibc2.39.patch new file mode 100644 index 000000000..5a8c179a6 --- /dev/null +++ b/source/l/glibc/patches/CVE-2024-2961_glibc2.39.patch @@ -0,0 +1,217 @@ +From 31da30f23cddd36db29d5b6a1c7619361b271fb4 Mon Sep 17 00:00:00 2001 +From: Charles Fol <folcharles@gmail.com> +Date: Thu, 28 Mar 2024 12:25:38 -0300 +Subject: [PATCH] iconv: ISO-2022-CN-EXT: fix out-of-bound writes when writing + escape sequence (CVE-2024-2961) + +ISO-2022-CN-EXT uses escape sequences to indicate character set changes +(as specified by RFC 1922). While the SOdesignation has the expected +bounds checks, neither SS2designation nor SS3designation have its; +allowing a write overflow of 1, 2, or 3 bytes with fixed values: +'$+I', '$+J', '$+K', '$+L', '$+M', or '$*H'. + +Checked on aarch64-linux-gnu. + +Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> +Reviewed-by: Carlos O'Donell <carlos@redhat.com> +Tested-by: Carlos O'Donell <carlos@redhat.com> + +(cherry picked from commit f9dc609e06b1136bb0408be9605ce7973a767ada) +--- + iconvdata/Makefile | 5 +- + iconvdata/iso-2022-cn-ext.c | 12 +++ + iconvdata/tst-iconv-iso-2022-cn-ext.c | 128 ++++++++++++++++++++++++++ + 3 files changed, 144 insertions(+), 1 deletion(-) + create mode 100644 iconvdata/tst-iconv-iso-2022-cn-ext.c + +diff --git a/iconvdata/Makefile b/iconvdata/Makefile +index ea019ce5c0..7196a8744b 100644 +--- a/iconvdata/Makefile ++++ b/iconvdata/Makefile +@@ -75,7 +75,8 @@ ifeq (yes,$(build-shared)) + tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ + tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \ + bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \ +- bug-iconv13 bug-iconv14 bug-iconv15 ++ bug-iconv13 bug-iconv14 bug-iconv15 \ ++ tst-iconv-iso-2022-cn-ext + ifeq ($(have-thread-library),yes) + tests += bug-iconv3 + endif +@@ -330,6 +331,8 @@ $(objpfx)bug-iconv14.out: $(addprefix $(objpfx), $(gconv-modules)) \ + $(addprefix $(objpfx),$(modules.so)) + $(objpfx)bug-iconv15.out: $(addprefix $(objpfx), $(gconv-modules)) \ + $(addprefix $(objpfx),$(modules.so)) ++$(objpfx)tst-iconv-iso-2022-cn-ext.out: $(addprefix $(objpfx), $(gconv-modules)) \ ++ $(addprefix $(objpfx),$(modules.so)) + + $(objpfx)iconv-test.out: run-iconv-test.sh \ + $(addprefix $(objpfx), $(gconv-modules)) \ +diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c +index b34c8a36f4..cce29b1969 100644 +--- a/iconvdata/iso-2022-cn-ext.c ++++ b/iconvdata/iso-2022-cn-ext.c +@@ -574,6 +574,12 @@ DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); + { \ + const char *escseq; \ + \ ++ if (outptr + 4 > outend) \ ++ { \ ++ result = __GCONV_FULL_OUTPUT; \ ++ break; \ ++ } \ ++ \ + assert (used == CNS11643_2_set); /* XXX */ \ + escseq = "*H"; \ + *outptr++ = ESC; \ +@@ -587,6 +593,12 @@ DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized"); + { \ + const char *escseq; \ + \ ++ if (outptr + 4 > outend) \ ++ { \ ++ result = __GCONV_FULL_OUTPUT; \ ++ break; \ ++ } \ ++ \ + assert ((used >> 5) >= 3 && (used >> 5) <= 7); \ + escseq = "+I+J+K+L+M" + ((used >> 5) - 3) * 2; \ + *outptr++ = ESC; \ +diff --git a/iconvdata/tst-iconv-iso-2022-cn-ext.c b/iconvdata/tst-iconv-iso-2022-cn-ext.c +new file mode 100644 +index 0000000000..96a8765fd5 +--- /dev/null ++++ b/iconvdata/tst-iconv-iso-2022-cn-ext.c +@@ -0,0 +1,128 @@ ++/* Verify ISO-2022-CN-EXT does not write out of the bounds. ++ Copyright (C) 2024 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <https://www.gnu.org/licenses/>. */ ++ ++#include <stdio.h> ++#include <string.h> ++ ++#include <errno.h> ++#include <iconv.h> ++#include <sys/mman.h> ++ ++#include <support/xunistd.h> ++#include <support/check.h> ++#include <support/support.h> ++ ++/* The test sets up a two memory page buffer with the second page marked ++ PROT_NONE to trigger a fault if the conversion writes beyond the exact ++ expected amount. Then we carry out various conversions and precisely ++ place the start of the output buffer in order to trigger a SIGSEGV if the ++ process writes anywhere between 1 and page sized bytes more (only one ++ PROT_NONE page is setup as a canary) than expected. These tests exercise ++ all three of the cases in ISO-2022-CN-EXT where the converter must switch ++ character sets and may run out of buffer space while doing the ++ operation. */ ++ ++static int ++do_test (void) ++{ ++ iconv_t cd = iconv_open ("ISO-2022-CN-EXT", "UTF-8"); ++ TEST_VERIFY_EXIT (cd != (iconv_t) -1); ++ ++ char *ntf; ++ size_t ntfsize; ++ char *outbufbase; ++ { ++ int pgz = getpagesize (); ++ TEST_VERIFY_EXIT (pgz > 0); ++ ntfsize = 2 * pgz; ++ ++ ntf = xmmap (NULL, ntfsize, PROT_READ | PROT_WRITE, MAP_PRIVATE ++ | MAP_ANONYMOUS, -1); ++ xmprotect (ntf + pgz, pgz, PROT_NONE); ++ ++ outbufbase = ntf + pgz; ++ } ++ ++ /* Check if SOdesignation escape sequence does not trigger an OOB write. */ ++ { ++ char inbuf[] = "\xe4\xba\xa4\xe6\x8d\xa2"; ++ ++ for (int i = 0; i < 9; i++) ++ { ++ char *inp = inbuf; ++ size_t inleft = sizeof (inbuf) - 1; ++ ++ char *outp = outbufbase - i; ++ size_t outleft = i; ++ ++ TEST_VERIFY_EXIT (iconv (cd, &inp, &inleft, &outp, &outleft) ++ == (size_t) -1); ++ TEST_COMPARE (errno, E2BIG); ++ ++ TEST_VERIFY_EXIT (iconv (cd, NULL, NULL, NULL, NULL) == 0); ++ } ++ } ++ ++ /* Same as before for SS2designation. */ ++ { ++ char inbuf[] = "ã´½ \xe3\xb4\xbd"; ++ ++ for (int i = 0; i < 14; i++) ++ { ++ char *inp = inbuf; ++ size_t inleft = sizeof (inbuf) - 1; ++ ++ char *outp = outbufbase - i; ++ size_t outleft = i; ++ ++ TEST_VERIFY_EXIT (iconv (cd, &inp, &inleft, &outp, &outleft) ++ == (size_t) -1); ++ TEST_COMPARE (errno, E2BIG); ++ ++ TEST_VERIFY_EXIT (iconv (cd, NULL, NULL, NULL, NULL) == 0); ++ } ++ } ++ ++ /* Same as before for SS3designation. */ ++ { ++ char inbuf[] = "å \xe5\x8a\x84"; ++ ++ for (int i = 0; i < 14; i++) ++ { ++ char *inp = inbuf; ++ size_t inleft = sizeof (inbuf) - 1; ++ ++ char *outp = outbufbase - i; ++ size_t outleft = i; ++ ++ TEST_VERIFY_EXIT (iconv (cd, &inp, &inleft, &outp, &outleft) ++ == (size_t) -1); ++ TEST_COMPARE (errno, E2BIG); ++ ++ TEST_VERIFY_EXIT (iconv (cd, NULL, NULL, NULL, NULL) == 0); ++ } ++ } ++ ++ TEST_VERIFY_EXIT (iconv_close (cd) != -1); ++ ++ xmunmap (ntf, ntfsize); ++ ++ return 0; ++} ++ ++#include <support/test-driver.c> +-- +2.39.3 + + diff --git a/source/l/gobject-introspection/slack-desc b/source/l/gobject-introspection/slack-desc index 0826a8cd8..7fb398dce 100644 --- a/source/l/gobject-introspection/slack-desc +++ b/source/l/gobject-introspection/slack-desc @@ -13,7 +13,7 @@ gobject-introspection: introspection data of the API of C libraries. This intros gobject-introspection: can be used for automatic code generation for bindings, API gobject-introspection: verification, and documentation generation. gobject-introspection: -gobject-introspection: For more information, check out: -gobject-introspection: http://live.gnome.org/GObjectIntrospection +gobject-introspection: Homepage: https://gi.readthedocs.io/en/latest/ +gobject-introspection: gobject-introspection: gobject-introspection: diff --git a/source/l/gst-plugins-bad-free/fetch-sources.sh b/source/l/gst-plugins-bad-free/fetch-sources.sh index f3abff571..f17066d3c 100755 --- a/source/l/gst-plugins-bad-free/fetch-sources.sh +++ b/source/l/gst-plugins-bad-free/fetch-sources.sh @@ -26,7 +26,7 @@ # # Example: VERSION=1.18.5 ./fetch-sources.sh -VERSION=${VERSION:-1.24.1} +VERSION=${VERSION:-1.24.3} rm -rf rm -rf gst-plugins-bad-free-$VERSION gst-plugins-bad-$VERSION diff --git a/source/l/imagemagick/imagemagick.SlackBuild b/source/l/imagemagick/imagemagick.SlackBuild index c1fb53430..5390ca1e4 100755 --- a/source/l/imagemagick/imagemagick.SlackBuild +++ b/source/l/imagemagick/imagemagick.SlackBuild @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=imagemagick -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # NOTE: This is to cope with ImageMagick version numbers such as 5.4.7-4, # which occur fairly often (but not always). If these numbers are all the same, @@ -121,7 +121,7 @@ CXXFLAGS="$SLKCFLAGS" \ --with-fftw \ --with-gcc-arch=$ARCH \ --with-perl \ - --with-perl-options="INSTALLDIRS=vendor" \ + --with-perl-options="INSTALLDIRS=vendor INSTALL_BASE=" \ --with-rsvg \ --with-security-policy=$POLICY \ --build=$ARCH-slackware-linux || exit 1 diff --git a/source/l/jasper/jasper.url b/source/l/jasper/jasper.url index b648f6121..1b6ad64ad 100644 --- a/source/l/jasper/jasper.url +++ b/source/l/jasper/jasper.url @@ -1,2 +1,2 @@ https://github.com/jasper-software/jasper/releases -https://github.com/jasper-software/jasper/releases/download/version-4.2.2/jasper-4.2.2.tar.gz +https://github.com/jasper-software/jasper/releases/download/version-4.2.4/jasper-4.2.4.tar.gz diff --git a/source/l/lame/lame.SlackBuild b/source/l/lame/lame.SlackBuild index c41b6d436..8cef5ed1c 100755 --- a/source/l/lame/lame.SlackBuild +++ b/source/l/lame/lame.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=lame 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/l/lensfun/lensfun.SlackBuild b/source/l/lensfun/lensfun.SlackBuild index ebd1d28b6..00377fee5 100755 --- a/source/l/lensfun/lensfun.SlackBuild +++ b/source/l/lensfun/lensfun.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=lensfun 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/l/libarchive/libarchive.url b/source/l/libarchive/libarchive.url index 8d0614b9e..e4a02c4af 100644 --- a/source/l/libarchive/libarchive.url +++ b/source/l/libarchive/libarchive.url @@ -1 +1,2 @@ https://github.com/libarchive/libarchive +https://github.com/libarchive/libarchive/releases/download/v3.7.4/libarchive-3.7.4.tar.xz diff --git a/source/l/libcaca/libcaca.SlackBuild b/source/l/libcaca/libcaca.SlackBuild index 6c039313c..6fbc91be7 100755 --- a/source/l/libcaca/libcaca.SlackBuild +++ b/source/l/libcaca/libcaca.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libcaca 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/l/libcap-ng/30453b6553948cd05c438f9f509013e3bb84f25b.patch b/source/l/libcap-ng/30453b6553948cd05c438f9f509013e3bb84f25b.patch deleted file mode 100644 index 4cd8e9fc1..000000000 --- a/source/l/libcap-ng/30453b6553948cd05c438f9f509013e3bb84f25b.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit 30453b6553948cd05c438f9f509013e3bb84f25b -Author: Steve Grubb <ausearch.1@gmail.com> -Date: Thu Jan 4 15:06:29 2024 -0500 - - Remove python global exception handler since its deprecated - -diff --git a/bindings/src/capng_swig.i b/bindings/src/capng_swig.i -index fcdaf18..fa85e13 100644 ---- a/bindings/src/capng_swig.i -+++ b/bindings/src/capng_swig.i -@@ -30,13 +30,6 @@ - - %varargs(16, signed capability = 0) capng_updatev; - --%except(python) { -- $action -- if (result < 0) { -- PyErr_SetFromErrno(PyExc_OSError); -- return NULL; -- } --} - #endif - - %define __signed__ - diff --git a/source/l/libcap-ng/libcap-ng.SlackBuild b/source/l/libcap-ng/libcap-ng.SlackBuild index 11c0ce096..5528f4896 100755 --- a/source/l/libcap-ng/libcap-ng.SlackBuild +++ b/source/l/libcap-ng/libcap-ng.SlackBuild @@ -85,11 +85,6 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ -# Patch for swig-4.2.0: -cat $CWD/30453b6553948cd05c438f9f509013e3bb84f25b.patch | patch -p1 --verbose || exit 1 - -autoreconf -vif - # Configure: CFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/source/l/libcdio/libcdio.SlackBuild b/source/l/libcdio/libcdio.SlackBuild index 71a3117b5..3127dd18c 100755 --- a/source/l/libcdio/libcdio.SlackBuild +++ b/source/l/libcdio/libcdio.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libcdio VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-4} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/libclc/libclc.url b/source/l/libclc/libclc.url index ae4394d3c..a4d0a11e5 100644 --- a/source/l/libclc/libclc.url +++ b/source/l/libclc/libclc.url @@ -1 +1 @@ -https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.2/libclc-18.1.2.src.tar.xz +https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.3/libclc-18.1.3.src.tar.xz diff --git a/source/l/libcupsfilters/libcupsfilters.SlackBuild b/source/l/libcupsfilters/libcupsfilters.SlackBuild new file mode 100755 index 000000000..f9be659c5 --- /dev/null +++ b/source/l/libcupsfilters/libcupsfilters.SlackBuild @@ -0,0 +1,146 @@ +#!/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=libcupsfilters +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 {} \+ + +# 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 \ + --disable-mutool \ + --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 + +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION +cp -a \ + ABOUT-NLS* 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 +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/l/libcupsfilters/libcupsfilters.url b/source/l/libcupsfilters/libcupsfilters.url new file mode 100644 index 000000000..d66e242be --- /dev/null +++ b/source/l/libcupsfilters/libcupsfilters.url @@ -0,0 +1 @@ +https://github.com/OpenPrinting/libcupsfilters diff --git a/source/l/libcupsfilters/slack-desc b/source/l/libcupsfilters/slack-desc new file mode 100644 index 000000000..1accff3be --- /dev/null +++ b/source/l/libcupsfilters/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------------------------------------------------------| +libcupsfilters: libcupsfilters (printer filter library) +libcupsfilters: +libcupsfilters: This package provides the libcupsfilters library which contains all +libcupsfilters: the code of the filters of the former cups-filters package as library +libcupsfilters: functions, the so-called filter functions. +libcupsfilters: +libcupsfilters: Homepage: http://www.openprinting.org +libcupsfilters: +libcupsfilters: +libcupsfilters: +libcupsfilters: diff --git a/source/l/libedit/libedit.SlackBuild b/source/l/libedit/libedit.SlackBuild index 42c57c319..cfcc7cadf 100755 --- a/source/l/libedit/libedit.SlackBuild +++ b/source/l/libedit/libedit.SlackBuild @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libedit VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1-2 -d - | rev)} PKGVER=$(echo $VERSION | tr - _) -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/libgnt/libgnt.SlackBuild b/source/l/libgnt/libgnt.SlackBuild index 913d0d90c..f348eaf60 100755 --- a/source/l/libgnt/libgnt.SlackBuild +++ b/source/l/libgnt/libgnt.SlackBuild @@ -23,8 +23,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libgnt -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | cut -f 2- -d - | rev | cut -f 3- -d . | rev)} +BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -42,7 +42,7 @@ fi # 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" + echo "$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz" exit 0 fi @@ -134,5 +134,4 @@ 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 - +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz diff --git a/source/l/libgtop/libgtop.SlackBuild b/source/l/libgtop/libgtop.SlackBuild index 5ea610bdb..41289a994 100755 --- a/source/l/libgtop/libgtop.SlackBuild +++ b/source/l/libgtop/libgtop.SlackBuild @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2020, 2021 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2020, 2021, 2024 Patrick J. Volkerding, Sebeka, Minnesota, 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=libgtop 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 @@ -90,6 +90,7 @@ CXXFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/lib${LIBDIRSUFFIX}/libgtop \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ diff --git a/source/l/libical/libical.SlackBuild b/source/l/libical/libical.SlackBuild index f8e67a2d1..3dff49df5 100755 --- a/source/l/libical/libical.SlackBuild +++ b/source/l/libical/libical.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libical VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/l/libieee1284/libieee1284.SlackBuild b/source/l/libieee1284/libieee1284.SlackBuild index 65397a04b..357ebe7ce 100755 --- a/source/l/libieee1284/libieee1284.SlackBuild +++ b/source/l/libieee1284/libieee1284.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libieee1284 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/libimobiledevice/libimobiledevice.SlackBuild b/source/l/libimobiledevice/libimobiledevice.SlackBuild index d02786674..2c7e6d21b 100755 --- a/source/l/libimobiledevice/libimobiledevice.SlackBuild +++ b/source/l/libimobiledevice/libimobiledevice.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libimobiledevice 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/l/libnjb/libnjb.SlackBuild b/source/l/libnjb/libnjb.SlackBuild index 98784d44f..3b6a3ee0a 100755 --- a/source/l/libnjb/libnjb.SlackBuild +++ b/source/l/libnjb/libnjb.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libnjb VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | 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/l/libplist/libplist.SlackBuild b/source/l/libplist/libplist.SlackBuild index 630cfb9f5..8e1400c35 100755 --- a/source/l/libplist/libplist.SlackBuild +++ b/source/l/libplist/libplist.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libplist 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/a/udisks/udisks.SlackBuild b/source/l/libppd/libppd.SlackBuild index f84094210..2c8c7e75f 100755 --- a/source/a/udisks/udisks.SlackBuild +++ b/source/l/libppd/libppd.SlackBuild @@ -1,8 +1,6 @@ #!/bin/bash -# Slackware build script for udisks - -# Copyright 2010, 2011, 2014, 2015, 2020 Robby Workman, Tuscaloosa, Alabama, USA +# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -11,7 +9,7 @@ # 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 +# 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, @@ -22,26 +20,21 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# Modified 2012 by Eric Hameleers <alien at slackware.com> for ARM port. - cd $(dirname $0) ; CWD=$(pwd) -PKGNAM=udisks -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-11} - -NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} +PKGNAM=libppd +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: -MARCH=$( uname -m ) if [ -z "$ARCH" ]; then - case "$MARCH" in - i?86) export ARCH=i586 ;; - armv7hl) export ARCH=$MARCH ;; - 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=$MARCH ;; + *) ARCH=$(uname -m) ;; esac + export ARCH fi # If the variable PRINT_PACKAGE_NAME is set, then this script will report what @@ -52,47 +45,54 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then 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 -mtune=i686" + 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="-O2 -march=armv7-a -mfpu=vfpv3-d16" + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" LIBDIRSUFFIX="" else SLKCFLAGS="-O2" LIBDIRSUFFIX="" fi -case "$ARCH" in - arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; - *) TARGET=$ARCH-slackware-linux ;; -esac - 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.xz +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 {} \+ - -zcat $CWD/udisks.no.pci-db.diff.gz | patch -p1 --verbose || exit 1 -zcat $CWD/udisks.glibc228.diff.gz | patch -p1 --verbose || exit 1 - + \( -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 \ @@ -100,35 +100,45 @@ CXXFLAGS="$SLKCFLAGS" \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --localstatedir=/var \ - --mandir=/usr/man \ --docdir=/usr/doc/$PKGNAM-$VERSION \ - --build=$TARGET - + --mandir=/usr/man \ + --disable-static \ + --disable-mutool \ + --with-cups-rundir=/run/cups \ + --enable-ppdc-utils \ + --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG || exit 1 -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true - -# Move the bash completion file to the system directory -# Put bash-completion file in system directory: -mkdir -p $PKG/usr/share/bash-completion/completions/ -mv $PKG/etc/profile.d/udisks-bash-completion.sh \ - $PKG/usr/share/bash-completion/completions/udisks -rmdir --parents $PKG/etc/profile.d +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la -# Move the dbus config file to the system directory -mkdir -p $PKG/usr/share/dbus-1/system.d/ -mv $PKG/etc/dbus-1/system.d/* $PKG/usr/share/dbus-1/system.d/ -rmdir --parents $PKG/etc/dbus-1/system.d/ +# 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 +for i in $( find $PKG/usr/man -type l ) ; do + ln -s $( readlink $i ).gz $i.gz + rm $i +done -mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +# Add a documentation directory: +mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION cp -a \ - AUTHORS COPYING ChangeLog HACKING INSTALL NEWS README \ - $PKG/usr/doc/$PKGNAM-$VERSION + AUTHORS* CHANGES.md COPYING* 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 cat $CWD/slack-desc > $PKG/install/slack-desc diff --git a/source/l/libppd/libppd.url b/source/l/libppd/libppd.url new file mode 100644 index 000000000..9aec2b08d --- /dev/null +++ b/source/l/libppd/libppd.url @@ -0,0 +1 @@ +https://github.com/OpenPrinting/libppd diff --git a/source/l/libppd/slack-desc b/source/l/libppd/slack-desc new file mode 100644 index 000000000..c1661aaec --- /dev/null +++ b/source/l/libppd/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------------------------------------------------------| +libppd: libppd (legacy printer driver library) +libppd: +libppd: libppd is the legacy support library for PPD files, taking over these +libppd: functions from libcups and CUPS' PPD compiler. +libppd: +libppd: Homepage: http://www.openprinting.org +libppd: +libppd: +libppd: +libppd: +libppd: diff --git a/source/l/libproxy/libproxy.SlackBuild b/source/l/libproxy/libproxy.SlackBuild index 8c8013234..410befdd1 100755 --- a/source/l/libproxy/libproxy.SlackBuild +++ b/source/l/libproxy/libproxy.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2009, 2010, 2011 Robby Workman Northport, AL, USA -# Copyright 2013, 2018, 2023 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2013, 2018, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libproxy 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 @@ -62,9 +62,6 @@ else LIBDIRSUFFIX="" fi -PYTHONLIB=$( python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' ) -PYTHON3LIB=$( python3 -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' ) - rm -rf $PKG mkdir -p $TMP $PKG cd $TMP @@ -102,12 +99,6 @@ meson setup \ DESTDIR=$PKG $NINJA install || exit 1 cd .. -## Generate .pyc files -#python -m compileall "${PKG}$PYTHONLIB" -#python -O -m compileall "${PKG}$PYTHONLIB" -#python3 -m compileall "${PKG}$PYTHON3LIB" -#python3 -O -m compileall "${PKG}$PYTHON3LIB" - find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true diff --git a/source/l/libqalculate/libqalculate.SlackBuild b/source/l/libqalculate/libqalculate.SlackBuild index 4984f81f0..b49cbf620 100755 --- a/source/l/libqalculate/libqalculate.SlackBuild +++ b/source/l/libqalculate/libqalculate.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libqalculate VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/l/libseccomp/libseccomp.SlackBuild b/source/l/libseccomp/libseccomp.SlackBuild index 5ab046097..b2b2abd82 100755 --- a/source/l/libseccomp/libseccomp.SlackBuild +++ b/source/l/libseccomp/libseccomp.SlackBuild @@ -103,7 +103,7 @@ CXXFLAGS="$SLKCFLAGS" \ --localstatedir=/var \ --mandir=/usr/man \ --enable-static=no \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 make install DESTDIR=$PKG || exit 1 diff --git a/source/l/libwebp/libwebp.SlackBuild b/source/l/libwebp/libwebp.SlackBuild index 043553ac5..0cde53d37 100755 --- a/source/l/libwebp/libwebp.SlackBuild +++ b/source/l/libwebp/libwebp.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libwebp VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/l/libxml2/libxml2.SlackBuild b/source/l/libxml2/libxml2.SlackBuild index fae202b3a..e0ccc7a32 100755 --- a/source/l/libxml2/libxml2.SlackBuild +++ b/source/l/libxml2/libxml2.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libxml2 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/libxslt/libxslt.SlackBuild b/source/l/libxslt/libxslt.SlackBuild index 2e735ac94..d6886119c 100755 --- a/source/l/libxslt/libxslt.SlackBuild +++ b/source/l/libxslt/libxslt.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libxslt 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/l/mlt/mlt.SlackBuild b/source/l/mlt/mlt.SlackBuild index 8a688f399..66c34e9bd 100755 --- a/source/l/mlt/mlt.SlackBuild +++ b/source/l/mlt/mlt.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mlt VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/l/mozilla-nss/mozilla-nss.SlackBuild b/source/l/mozilla-nss/mozilla-nss.SlackBuild index 49e0c23e5..2b540481c 100755 --- a/source/l/mozilla-nss/mozilla-nss.SlackBuild +++ b/source/l/mozilla-nss/mozilla-nss.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mozilla-nss SRCNAM=nss -VERSION=${VERSION:-3.99} +VERSION=${VERSION:-3.100} NSPR=${NSPR:-4.35} BUILD=${BUILD:-1} diff --git a/source/l/ncurses/aaa_terminfo.SlackBuild b/source/l/ncurses/aaa_terminfo.SlackBuild index 44ac1fc13..e3588eb8f 100755 --- a/source/l/ncurses/aaa_terminfo.SlackBuild +++ b/source/l/ncurses/aaa_terminfo.SlackBuild @@ -102,4 +102,3 @@ cat $CWD/slack-desc.aaa_terminfo > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz - diff --git a/source/l/ncurses/ncurses.SlackBuild b/source/l/ncurses/ncurses.SlackBuild index 8f561baaa..ae7e0e2e4 100755 --- a/source/l/ncurses/ncurses.SlackBuild +++ b/source/l/ncurses/ncurses.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2000-2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2000-2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -64,22 +64,32 @@ else LIBDIRSUFFIX="" fi -ncurses_configure() { +rm -rf $PKG +mkdir -p $TMP $PKG + +cd $TMP +rm -rf ncurses-$VERSION +tar xvf $CWD/ncurses-$VERSION.tar.?z || exit 1 +cd ncurses-$VERSION || exit 1 +chown -R root:root . + CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ + --with-manpage-format=normal \ + --enable-widec \ --enable-colorfgbg \ --enable-hard-tabs \ --enable-overwrite \ --enable-xmc-glitch \ + --with-cxx-binding \ --with-cxx-shared \ - --with-ospeed=unsigned \ + --with-shared \ + --with-versioned-syms \ --with-termlib=tinfo \ --with-ticlib=tic \ - --with-gpm \ - --with-shared \ --without-debug \ --without-normal \ --without-profile \ @@ -87,46 +97,10 @@ CFLAGS="$SLKCFLAGS" \ --enable-pc-files \ --with-pkg-config-libdir=/usr/lib${LIBDIRSUFFIX}/pkgconfig \ --without-ada \ - $X86_64OPTS \ --program-suffix="" \ --program-prefix="" \ - $WIDEC \ - --build=$ARCH-slackware-linux -} + --build=$ARCH-slackware-linux || exit 1 -rm -rf $PKG -mkdir -p $TMP $PKG - -cd $TMP -rm -rf ncurses-$VERSION -tar xvf $CWD/ncurses-$VERSION.tar.?z || exit 1 -cd ncurses-$VERSION || exit 1 -chown -R root:root . - -## NOTE: nevermind trying this... patches have multiple failures. Use the -## dated archive from upstream instead. -# -### No rollup (*.patch.sh) patch available yet for ncurses-6.1, so we'll -### comment this out for now. -## Apply upstream patch collection: -#xzcat $CWD/ncurses-6.0-20160910-patch.sh.xz > ncurses-6.0-20160910-patch.sh -#sh ncurses-6.0-20160910-patch.sh -## Apply weekly ncurses patch updates: -#for file in $CWD/patches/*.patch.gz ; do -# zcat $file | patch -p1 --verbose || exit 1 -#done - -zcat $CWD/ncurses.mkhashsize.diff.gz | patch -p1 --verbose || exit 1 - -# Configure/build/install to package the standard ncurses libraries: -ncurses_configure || exit 1 -make $NUMJOBS || exit 1 -make install DESTDIR=$PKG || exit 1 - -# Configure/build/install again with wide character support: -make clean -WIDEC=--enable-widec -ncurses_configure || exit 1 make $NUMJOBS || exit 1 make install DESTDIR=$PKG || exit 1 @@ -152,32 +126,38 @@ cp -a misc/termcap $PKG/etc/termcap find $PKG | xargs file | grep -e "executable" -e "shared object" \ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null -# Move the include files from /usr/include into /usr/include/ncurses, -# then make symlinks back into /usr/include. -( cd $PKG/usr/include - rm -rf ncurses - mkdir ncurses - mv *.h ncurses - for file in ncurses/* ; do - ln -sf $file . +# Move the ncurses libraries into /lib (for no reason basically, because we DO +# NOT officially support a separate /usr partition): +mkdir -p $PKG/lib${LIBDIRSUFFIX} +( cd $PKG/usr/lib${LIBDIRSUFFIX} + mv lib*.so.?.? lib*.so.? $PKG/lib${LIBDIRSUFFIX} + for file in *.so ; do + if [ -L $file ]; then + rm $file + ln -sf ../../lib${LIBDIRSUFFIX}/${file}.? $file + fi done ) -# Make an ncursesw symlink to /usr/include/ncurses: -if [ ! -d $PKG/usr/include/ncursesw -a ! -L $PKG/usr/include/ncursesw ]; then - ( cd $PKG/usr/include ; ln -sf ncurses ncursesw ) -fi +# Make sure anything requesting the non-wide libraries will be directed to +# the wide ones: +for library in form menu ncurses ncurses++ panel ; do + # Add a loader script: + echo "INPUT(-l${library}w)" > $PKG/usr/lib${LIBDIRSUFFIX}/lib${library}.so + # Make a pkg-config file symlink: + ln -sf ${library}w.pc $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig/${library}.pc +done -# Move the ncurses libraries into /lib, since they're important: -mkdir -p $PKG/lib${LIBDIRSUFFIX} -( cd $PKG/usr/lib${LIBDIRSUFFIX} - chmod 755 *.so - chmod 644 *.a - mv libncurses.so.6* $PKG/lib${LIBDIRSUFFIX} - mv libncursesw.so.6* $PKG/lib${LIBDIRSUFFIX} - mv libtinfo.so.6* $PKG/lib${LIBDIRSUFFIX} - rm -f libtinfo.so.6 - ln -sf ../../lib${LIBDIRSUFFIX}/libtinfo.so.6 . +# Support the obsolete: +echo "INPUT(-ltinfo)" > $PKG/usr/lib${LIBDIRSUFFIX}/libtermcap.so + +# In case anything is linked to the non-wide ncurses libraries, make some +# compatibility symlinks: +( cd $PKG/lib${LIBDIRSUFFIX} + SONAME=$(echo libncursesw.so.? | rev | cut -f 1 -d .) + for library in form menu ncurses ncurses++ panel ; do + ln -sf lib${library}w.so.$SONAME lib${library}.so.$SONAME + done ) # Use linker loader scripts to make sure -tinfo dependency works: @@ -190,6 +170,9 @@ mkdir -p $PKG/lib${LIBDIRSUFFIX} echo "INPUT(-ltinfo)" > libtermcap.so ) +# NOTE 2024-04-29: I'm not sure these changes are still needed. +# Maybe GazL knows. +# # Use various upstream/fixed/better terminfo files to update the terminfo # database. Only *.terminfo files in $CWD/terminfo will be used. export TERMINFO=$PKG/usr/share/terminfo @@ -200,6 +183,13 @@ for tfile in $CWD/terminfo/*.terminfo ; do done unset TERMINFO +# 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 /usr/doc/ncurses-xxxxx with appropriate files: mkdir -p $PKG/usr/doc/ncurses-$VERSION cp -a \ @@ -209,6 +199,10 @@ mkdir -p $PKG/usr/doc/ncurses-$VERSION/c++ cp -a \ c++/NEWS c++/PROBLEMS c++/README-first \ $PKG/usr/doc/ncurses-$VERSION/c++ +mkdir -p $PKG/usr/doc/ncurses-$VERSION/html +cp -a \ + doc/html/*.html \ + $PKG/usr/doc/ncurses-$VERSION/html # We don't need the log of every change here, but we'll take some. # If you need the whole thing probably you already extracted the @@ -230,4 +224,3 @@ cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $TMP/ncurses-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz - diff --git a/source/l/ncurses/ncurses.mkhashsize.diff b/source/l/ncurses/ncurses.mkhashsize.diff deleted file mode 100644 index 035956da6..000000000 --- a/source/l/ncurses/ncurses.mkhashsize.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- ./include/MKhashsize.sh.orig 2019-04-22 14:07:41.451003244 -0500 -+++ ./include/MKhashsize.sh 2019-04-22 14:10:09.163003249 -0500 -@@ -35,7 +35,7 @@ - echo " */" - - test $# = 0 && set Caps --TABSIZE=`cat "$@" | grep -v '^[ #]' | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | grep -v "^userdef" | grep -v "^used_by" | wc -l` -+TABSIZE=$(cat "$@" | grep -v '^[ #]' | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | grep -v "^userdef" | grep -v "^used_by" | wc -l) - - echo "" - echo "#define CAPTABSIZE ${TABSIZE}" diff --git a/source/l/newt/newt.SlackBuild b/source/l/newt/newt.SlackBuild index bd9052c80..a2215a8c0 100755 --- a/source/l/newt/newt.SlackBuild +++ b/source/l/newt/newt.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=newt VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/l/pipewire/pipewire.url b/source/l/pipewire/pipewire.url index c9f6477ee..8bcd14c19 100644 --- a/source/l/pipewire/pipewire.url +++ b/source/l/pipewire/pipewire.url @@ -1 +1,2 @@ https://gitlab.freedesktop.org/pipewire/pipewire +https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/1.0.6/pipewire-1.0.6.tar.gz diff --git a/source/l/polkit/polkit-124-systemd-fixup.patch b/source/l/polkit/polkit-124-systemd-fixup.patch new file mode 100644 index 000000000..a4dd7eafc --- /dev/null +++ b/source/l/polkit/polkit-124-systemd-fixup.patch @@ -0,0 +1,28 @@ +https://bugs.gentoo.org/922458 +https://github.com/polkit-org/polkit/pull/417/files#r1458416421 +--- a/meson.build ++++ b/meson.build +@@ -212,14 +212,17 @@ if enable_logind + config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep)) + + # systemd unit / service files +- systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') + systemd_systemdsystemunitdir = get_option('systemdsystemunitdir') +- if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login' +- # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used +- systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') +- endif ++ if session_tracking == 'libsystemd-login' ++ systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') + +- systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d') ++ if systemd_systemdsystemunitdir == '' ++ # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used ++ systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') ++ endif ++ ++ systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d') ++ endif + endif + config_h.set('HAVE_LIBSYSTEMD', enable_logind) + diff --git a/source/l/polkit/polkit-124-systemd.patch b/source/l/polkit/polkit-124-systemd.patch new file mode 100644 index 000000000..e9b10e99e --- /dev/null +++ b/source/l/polkit/polkit-124-systemd.patch @@ -0,0 +1,50 @@ +https://github.com/polkit-org/polkit/pull/417 + +From 69d6b94d590b4dd1fbbac22b4f4d449f46ef61aa Mon Sep 17 00:00:00 2001 +From: Luca Boccassi <bluca@debian.org> +Date: Thu, 18 Jan 2024 15:07:32 +0000 +Subject: [PATCH] meson: fix build failure when -Dsystemdsystemunitdir is + specified + +When 'systemdsystemunitdir' is specified as an option the systemd_dep +variable is not defined, but the sysusers.d directory lookup uses it, +causing a build failure: + +dh_auto_configure -- \ + -Dexamples=false \ + -Dintrospection=true \ + -Dman=true \ + -Dsystemdsystemunitdir=/usr/lib/systemd/system \ + -Dtests=true \ + -Dgtk_doc=true -Dsession_tracking=libsystemd-login + cd obj-x86_64-linux-gnu && DEB_PYTHON_INSTALL_LAYOUT=deb LC_ALL=C.UTF-8 meson setup .. --wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=lib/x86_64-linux-gnu -Dpython.bytecompile=-1 -Dexamples=false -Dintrospection=true -Dman=true -Dsystemdsystemunitdir=/usr/lib/systemd/system -Dtests=true -Dgtk_doc=true -Dsession_tracking=libsystemd-login +The Meson build system +Version: 1.3.1 +Source dir: /builds/bluca/polkit/debian/output/source_dir +Build dir: /builds/bluca/polkit/debian/output/source_dir/obj-x86_64-linux-gnu +Build type: native build +Project name: polkit +Project version: 124 + +<...> + +Run-time dependency libsystemd found: YES 255 +Checking for function "sd_uid_get_display" with dependency libsystemd: YES +Checking for function "sd_pidfd_get_session" with dependency libsystemd: YES +../meson.build:222:37: ERROR: Unknown variable "systemd_dep". + +Follow-up for 24f1e0af3f7bd17e220cb96201f3c654e737ad34 +--- a/meson.build ++++ b/meson.build +@@ -212,9 +212,9 @@ if enable_logind + config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep)) + + # systemd unit / service files ++ systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') + systemd_systemdsystemunitdir = get_option('systemdsystemunitdir') + if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login' +- systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it') + # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used + systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') + endif + diff --git a/source/l/polkit/polkit.SlackBuild b/source/l/polkit/polkit.SlackBuild index 293a05dcd..f83b85613 100755 --- a/source/l/polkit/polkit.SlackBuild +++ b/source/l/polkit/polkit.SlackBuild @@ -82,12 +82,8 @@ find . \ zcat $CWD/dont-set-wheel-group-as-admin.diff.gz | patch -p1 --verbose || exit 1 -# If we get here and don't have a polkitd user/group, add one. -# Otherwise a few directories in the package will have wrong permissions. -if ! grep -q "^polkitd:" /etc/passwd ; then - groupadd -fg 87 polkitd - useradd -c "PolicyKit daemon owner" -d /var/lib/polkit -u 87 -g polkitd -s /bin/false polkitd -fi +cat $CWD/polkit-124-systemd.patch | patch -p1 --verbose || exit 1 +cat $CWD/polkit-124-systemd-fixup.patch | patch -p1 --verbose || exit 1 # Configure, build, and install: export CFLAGS="$SLKCFLAGS" @@ -111,6 +107,7 @@ meson setup \ -Dsystemdsystemunitdir=/usr/lib/systemd/user \ -Dauthfw=pam \ -Dpam_module_dir=/lib${LIBDIRSUFFIX}/security \ + -Dpam_prefix=/etc/pam.d \ -Dman=true \ -Djs_engine=duktape \ .. || exit 1 diff --git a/source/l/protobuf/protobuf.SlackBuild b/source/l/protobuf/protobuf.SlackBuild index fb799d078..5ee4abc37 100755 --- a/source/l/protobuf/protobuf.SlackBuild +++ b/source/l/protobuf/protobuf.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=protobuf 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/l/pycairo/pycairo.SlackBuild b/source/l/pycairo/pycairo.SlackBuild index bcd47b7fd..830fe5490 100755 --- a/source/l/pycairo/pycairo.SlackBuild +++ b/source/l/pycairo/pycairo.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pycairo VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/pycups/pycups.SlackBuild b/source/l/pycups/pycups.SlackBuild index 96ee044f7..2baa7c19c 100755 --- a/source/l/pycups/pycups.SlackBuild +++ b/source/l/pycups/pycups.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2008 Heinz Wiesinger, Oggau, AT -# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2018, 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=pycups VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-6} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -65,8 +65,8 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ -python3 setup.py install --root=$PKG || exit 1 -make install-rpmhook DESTDIR=$PKG || exit 1 +make || exit 1 +make install DESTDIR=$PKG || exit 1 find $PKG | xargs file | grep -e "shared object" -e "executable" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null @@ -87,4 +87,3 @@ 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/l/pycurl/pycurl.SlackBuild b/source/l/pycurl/pycurl.SlackBuild index 997533003..80bc818a8 100755 --- a/source/l/pycurl/pycurl.SlackBuild +++ b/source/l/pycurl/pycurl.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pycurl 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/l/pygobject/pygobject.SlackBuild b/source/l/pygobject/pygobject.SlackBuild index 0d2b697cf..5a35d48ab 100755 --- a/source/l/pygobject/pygobject.SlackBuild +++ b/source/l/pygobject/pygobject.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pygobject VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-9} +BUILD=${BUILD:-10} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -97,6 +97,7 @@ find . \ #make clean CFLAGS="$SLKCFLAGS" \ +PYTHON=python2 \ ./configure \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ diff --git a/source/l/pygobject/slack-desc b/source/l/pygobject/slack-desc index b11f12ed0..475952bfd 100644 --- a/source/l/pygobject/slack-desc +++ b/source/l/pygobject/slack-desc @@ -12,7 +12,7 @@ pygobject: This archive contains bindings for the GObject, to be used in Python. pygobject: It is a fairly complete set of bindings, it's already rather useful, pygobject: and is usable to write moderately complex programs. pygobject: -pygobject: pygobject's home page: http://www.pygtk.org/ +pygobject: Homepage: https://pygobject.readthedocs.io pygobject: pygobject: pygobject: diff --git a/source/l/pygobject3/slack-desc b/source/l/pygobject3/slack-desc index e573345cc..6d9a5bd45 100644 --- a/source/l/pygobject3/slack-desc +++ b/source/l/pygobject3/slack-desc @@ -12,7 +12,7 @@ pygobject3: This archive contains bindings for the GObject, to be used in Python pygobject3: It is a fairly complete set of bindings, it's already rather useful, pygobject3: and is usable to write moderately complex programs. pygobject3: -pygobject3: Homepage: https://live.gnome.org/PyGObject +pygobject3: Homepage: https://pygobject.readthedocs.io pygobject3: pygobject3: pygobject3: diff --git a/source/l/pygtk/pygtk.SlackBuild b/source/l/pygtk/pygtk.SlackBuild index c25f4c588..de4cfcefc 100755 --- a/source/l/pygtk/pygtk.SlackBuild +++ b/source/l/pygtk/pygtk.SlackBuild @@ -86,6 +86,7 @@ zcat $CWD/pygtk-fix-pango-object-leaks.patch.gz | patch -p1 --verbose || exit 1 # Fix build against recent pango: zcat $CWD/pygtk-Drop-the-PangoFont-find_shaper-virtual-method.patch.gz | patch -p1 --verbose || exit 1 +PYTHON=python2 \ CFLAGS="$SLKCFLAGS" \ ./configure \ --prefix=/usr \ diff --git a/source/l/pyparsing/pyparsing.SlackBuild b/source/l/pyparsing/pyparsing.SlackBuild index 3f237e787..f10e71dcb 100755 --- a/source/l/pyparsing/pyparsing.SlackBuild +++ b/source/l/pyparsing/pyparsing.SlackBuild @@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pyparsing VERSION=${VERSION:-$(echo pyparsing-*.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/l/python-Jinja2/Jinja2.url b/source/l/python-Jinja2/jinja2.url index f978be6b1..f978be6b1 100644 --- a/source/l/python-Jinja2/Jinja2.url +++ b/source/l/python-Jinja2/jinja2.url diff --git a/source/l/python-Jinja2/python-Jinja2.SlackBuild b/source/l/python-Jinja2/python-Jinja2.SlackBuild index e3e7cf1ab..1dcf52dfe 100755 --- a/source/l/python-Jinja2/python-Jinja2.SlackBuild +++ b/source/l/python-Jinja2/python-Jinja2.SlackBuild @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-Jinja2 -SRCNAM=Jinja2 +SRCNAM=jinja2 VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} diff --git a/source/l/python-MarkupSafe/python-MarkupSafe.SlackBuild b/source/l/python-MarkupSafe/python-MarkupSafe.SlackBuild index e532679ff..2751b3dc1 100755 --- a/source/l/python-MarkupSafe/python-MarkupSafe.SlackBuild +++ b/source/l/python-MarkupSafe/python-MarkupSafe.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-MarkupSafe SRCNAM=MarkupSafe VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-PyYAML/python-PyYAML.SlackBuild b/source/l/python-PyYAML/python-PyYAML.SlackBuild index 5ffae5ad2..7cc9e0f48 100755 --- a/source/l/python-PyYAML/python-PyYAML.SlackBuild +++ b/source/l/python-PyYAML/python-PyYAML.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-PyYAML SRCNAM=PyYAML VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/l/python-alabaster/python-alabaster.SlackBuild b/source/l/python-alabaster/python-alabaster.SlackBuild index 97ec4dfe2..154a80fc4 100755 --- a/source/l/python-alabaster/python-alabaster.SlackBuild +++ b/source/l/python-alabaster/python-alabaster.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-alabaster SRCNAM=alabaster VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-appdirs/python-appdirs.SlackBuild b/source/l/python-appdirs/python-appdirs.SlackBuild index 56075476a..5b193f716 100755 --- a/source/l/python-appdirs/python-appdirs.SlackBuild +++ b/source/l/python-appdirs/python-appdirs.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-appdirs VERSION=${VERSION:-$(echo appdirs-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-6} +BUILD=${BUILD:-7} SRCNAM=appdirs diff --git a/source/l/python-babel/Babel.url b/source/l/python-babel/babel.url index a0bee683f..a0bee683f 100644 --- a/source/l/python-babel/Babel.url +++ b/source/l/python-babel/babel.url diff --git a/source/l/python-babel/python-babel.SlackBuild b/source/l/python-babel/python-babel.SlackBuild index 70067f3e2..00e4648bc 100755 --- a/source/l/python-babel/python-babel.SlackBuild +++ b/source/l/python-babel/python-babel.SlackBuild @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-babel -SRCNAM=Babel +SRCNAM=babel VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} diff --git a/source/l/python-build/python-build.SlackBuild b/source/l/python-build/python-build.SlackBuild index 73cd16648..5f5f9b2e4 100755 --- a/source/l/python-build/python-build.SlackBuild +++ b/source/l/python-build/python-build.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-build VERSION=${VERSION:-$(echo build-*.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/l/python-calver/python-calver.SlackBuild b/source/l/python-calver/python-calver.SlackBuild index 0d9023538..d71e153bc 100755 --- a/source/l/python-calver/python-calver.SlackBuild +++ b/source/l/python-calver/python-calver.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-calver SRCNAM=calver VERSION=${VERSION:-$(echo $SRCNAM-*.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/l/python-certifi/python-certifi.SlackBuild b/source/l/python-certifi/python-certifi.SlackBuild index a104dbc93..d9de3040c 100755 --- a/source/l/python-certifi/python-certifi.SlackBuild +++ b/source/l/python-certifi/python-certifi.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-certifi VERSION=${VERSION:-$(echo certifi-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} SRCNAM=certifi diff --git a/source/l/python-cffi/python-cffi.SlackBuild b/source/l/python-cffi/python-cffi.SlackBuild index 42891abf8..0666654e6 100755 --- a/source/l/python-cffi/python-cffi.SlackBuild +++ b/source/l/python-cffi/python-cffi.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-cffi SRCNAM=cffi VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-chardet/python-chardet.SlackBuild b/source/l/python-chardet/python-chardet.SlackBuild index 4e81f5418..50380c201 100755 --- a/source/l/python-chardet/python-chardet.SlackBuild +++ b/source/l/python-chardet/python-chardet.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-chardet VERSION=${VERSION:-$(echo chardet-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} SRCNAM=chardet diff --git a/source/l/python-charset-normalizer/python-charset-normalizer.SlackBuild b/source/l/python-charset-normalizer/python-charset-normalizer.SlackBuild index 2c5bdd99a..9a177fabc 100755 --- a/source/l/python-charset-normalizer/python-charset-normalizer.SlackBuild +++ b/source/l/python-charset-normalizer/python-charset-normalizer.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-charset-normalizer SRCNAM=charset-normalizer VERSION=${VERSION:-$(echo $SRCNAM-*.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/l/python-distro/python-distro.SlackBuild b/source/l/python-distro/python-distro.SlackBuild index f23996493..45f7780dc 100755 --- a/source/l/python-distro/python-distro.SlackBuild +++ b/source/l/python-distro/python-distro.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-distro SRCNAM=distro VERSION=${VERSION:-$(echo $SRCNAM-*.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/l/python-dnspython/python-dnspython.SlackBuild b/source/l/python-dnspython/python-dnspython.SlackBuild index f8b1ee165..9621d9988 100755 --- a/source/l/python-dnspython/python-dnspython.SlackBuild +++ b/source/l/python-dnspython/python-dnspython.SlackBuild @@ -35,7 +35,7 @@ fi PKGNAM=python-dnspython SRCNAM=dnspython VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-docutils/python-docutils.SlackBuild b/source/l/python-docutils/python-docutils.SlackBuild index 3dd51412b..62361b74d 100755 --- a/source/l/python-docutils/python-docutils.SlackBuild +++ b/source/l/python-docutils/python-docutils.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2017, 2018, 2019, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2017, 2018, 2019, 2020, 2024 Patrick J. Volkerding, Sebeka, MN, USA # Copyright 2017 Heinz Wiesinger, Amsterdam, NL # All rights reserved. # @@ -61,11 +61,16 @@ 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 build --build-lib=build/python3 install --root=$PKG || exit 1 +unshare -n python3 -m build --wheel --no-isolation || exit 1 +python3 -m installer --destdir "$PKG" dist/*.whl || exit 1 + +# Gotta be careful with that * cd $PKG/usr/bin for i in *.py; do - ln -s "$i" "$PKG/usr/bin/$(basename $i .py)" + if [ -r "$i" ]; then + ln -s "$i" "$PKG/usr/bin/$(basename $i .py)" + fi done cd - diff --git a/source/l/python-doxypypy/python-doxypypy.SlackBuild b/source/l/python-doxypypy/python-doxypypy.SlackBuild index c447fa8d7..0b8c22fa4 100755 --- a/source/l/python-doxypypy/python-doxypypy.SlackBuild +++ b/source/l/python-doxypypy/python-doxypypy.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-doxypypy SRCNAM=doxypypy VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-doxyqml/python-doxyqml.SlackBuild b/source/l/python-doxyqml/python-doxyqml.SlackBuild index 5e71d5bf3..7a82458ef 100755 --- a/source/l/python-doxyqml/python-doxyqml.SlackBuild +++ b/source/l/python-doxyqml/python-doxyqml.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-doxyqml SRCNAM=doxyqml VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-editables/python-editables.SlackBuild b/source/l/python-editables/python-editables.SlackBuild index 4c411fddc..11c1517d4 100755 --- a/source/l/python-editables/python-editables.SlackBuild +++ b/source/l/python-editables/python-editables.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-editables VERSION=${VERSION:-$(echo editables-*.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/l/python-flit-core/python-flit-core.SlackBuild b/source/l/python-flit-core/python-flit-core.SlackBuild index 075bfca06..cafd7fac6 100755 --- a/source/l/python-flit-core/python-flit-core.SlackBuild +++ b/source/l/python-flit-core/python-flit-core.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-flit-core VERSION=${VERSION:-$(echo flit_core-*.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/l/python-future/python-future.SlackBuild b/source/l/python-future/python-future.SlackBuild index 00e1f5959..c3bd2537b 100755 --- a/source/l/python-future/python-future.SlackBuild +++ b/source/l/python-future/python-future.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-future SRCNAM=future VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-glad2/python-glad2.SlackBuild b/source/l/python-glad2/python-glad2.SlackBuild index 5a5916f82..e42e959ed 100755 --- a/source/l/python-glad2/python-glad2.SlackBuild +++ b/source/l/python-glad2/python-glad2.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-glad2 VERSION=${VERSION:-$(echo glad2-*.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/l/python-html5lib/python-html5lib.SlackBuild b/source/l/python-html5lib/python-html5lib.SlackBuild index 426771de6..8cc1be1ed 100755 --- a/source/l/python-html5lib/python-html5lib.SlackBuild +++ b/source/l/python-html5lib/python-html5lib.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-html5lib SRCNAM=html5lib-python VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-imagesize/python-imagesize.SlackBuild b/source/l/python-imagesize/python-imagesize.SlackBuild index e341f0ac2..73b33260d 100755 --- a/source/l/python-imagesize/python-imagesize.SlackBuild +++ b/source/l/python-imagesize/python-imagesize.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-imagesize SRCNAM=imagesize VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-importlib_metadata/python-importlib_metadata.SlackBuild b/source/l/python-importlib_metadata/python-importlib_metadata.SlackBuild index 3e9159842..f55c5a8af 100755 --- a/source/l/python-importlib_metadata/python-importlib_metadata.SlackBuild +++ b/source/l/python-importlib_metadata/python-importlib_metadata.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-importlib_metadata SRCNAM=importlib_metadata VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-installer/python-installer.SlackBuild b/source/l/python-installer/python-installer.SlackBuild index 71265004b..d9e9bce66 100755 --- a/source/l/python-installer/python-installer.SlackBuild +++ b/source/l/python-installer/python-installer.SlackBuild @@ -1,6 +1,7 @@ #!/bin/bash # Copyright 2022-2023 Heinz Wiesinger, Amsterdam, The Netherlands +# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-installer VERSION=${VERSION:-$(echo installer-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -83,6 +84,10 @@ PYTHONPATH=src python3 -m installer --destdir "$PKG" dist/*.whl || exit 1 find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +# Remove Windows garbage: +find $PKG . -name "*.exe" -exec rm -f "{}" \; +find $PKG . -name "*.dll" -exec rm -f "{}" \; + mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION cp -a \ *.md *.rst LICENSE PKG-INFO \ diff --git a/source/l/python-markdown/python-markdown.SlackBuild b/source/l/python-markdown/python-markdown.SlackBuild index 2ecb472e7..377e4e4cb 100755 --- a/source/l/python-markdown/python-markdown.SlackBuild +++ b/source/l/python-markdown/python-markdown.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-markdown SRCNAM=Markdown VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-notify2/python-notify2.SlackBuild b/source/l/python-notify2/python-notify2.SlackBuild index 93563fb88..f594fe44e 100755 --- a/source/l/python-notify2/python-notify2.SlackBuild +++ b/source/l/python-notify2/python-notify2.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-notify2 VERSION=${VERSION:-$(echo notify2-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-10} +BUILD=${BUILD:-11} SRCNAM=notify2 diff --git a/source/l/python-packaging/python-packaging.SlackBuild b/source/l/python-packaging/python-packaging.SlackBuild index 82a5cdd12..e66d2fe91 100755 --- a/source/l/python-packaging/python-packaging.SlackBuild +++ b/source/l/python-packaging/python-packaging.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-packaging VERSION=${VERSION:-$(echo packaging-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} SRCNAM=packaging diff --git a/source/l/python-pathspec/python-pathspec.SlackBuild b/source/l/python-pathspec/python-pathspec.SlackBuild index 8a71ee65f..deb1ffb4e 100755 --- a/source/l/python-pathspec/python-pathspec.SlackBuild +++ b/source/l/python-pathspec/python-pathspec.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-pathspec VERSION=${VERSION:-$(echo pathspec-*.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/l/python-pbr/python-pbr.SlackBuild b/source/l/python-pbr/python-pbr.SlackBuild index d35b261f8..542c0efd7 100755 --- a/source/l/python-pbr/python-pbr.SlackBuild +++ b/source/l/python-pbr/python-pbr.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-pbr SRCNAM=pbr VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-ply/python-ply.SlackBuild b/source/l/python-ply/python-ply.SlackBuild index 9e8a5c325..0105a6cfd 100755 --- a/source/l/python-ply/python-ply.SlackBuild +++ b/source/l/python-ply/python-ply.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-ply SRCNAM=ply VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-8} +BUILD=${BUILD:-9} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/l/python-psutil/python-psutil.SlackBuild b/source/l/python-psutil/python-psutil.SlackBuild index 870f86765..baeeb2111 100755 --- a/source/l/python-psutil/python-psutil.SlackBuild +++ b/source/l/python-psutil/python-psutil.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-psutil SRCNAM=psutil VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-pysol_cards/python-pysol_cards.SlackBuild b/source/l/python-pysol_cards/python-pysol_cards.SlackBuild index d4d426530..05eb2e21f 100755 --- a/source/l/python-pysol_cards/python-pysol_cards.SlackBuild +++ b/source/l/python-pysol_cards/python-pysol_cards.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-pysol_cards SRCNAM=pysol_cards VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -z "$ARCH" ]; then diff --git a/source/l/python-pytz/python-pytz.SlackBuild b/source/l/python-pytz/python-pytz.SlackBuild deleted file mode 100755 index 9e9c0a496..000000000 --- a/source/l/python-pytz/python-pytz.SlackBuild +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -# Copyright 2022, 2024 Patrick J. Volkerding, Sebeka, MN, 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=python-pytz -SRCNAM=pytz -VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i586 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -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 - -TMP=${TMP:-/tmp} -PKG=$TMP/package-$PKGNAM - -rm -rf $PKG -mkdir -p $TMP $PKG -cd $TMP -rm -rf $SRCNAM-$VERSION -tar xvf $CWD/$SRCNAM-$VERSION.tar.?z || exit 1 -cd $SRCNAM-$VERSION || exit 1 - -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \+ -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ - -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 LICENSE* NOTICE PKG-INFO \ - $PKG/usr/doc/$PKGNAM-$VERSION -find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 0644 {} \+ - -# If there's a HISTORY.rst, installing at least part of the recent history -# is useful, but don't let it get totally out of control: -if [ -r HISTORY.rst ]; then - DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) - cat HISTORY.rst | head -n 1000 > $DOCSDIR/HISTORY.rst - touch -r HISTORY.rst $DOCSDIR/HISTORY.rst -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/l/python-pytz/pytz.url b/source/l/python-pytz/pytz.url deleted file mode 100644 index efd8c533c..000000000 --- a/source/l/python-pytz/pytz.url +++ /dev/null @@ -1 +0,0 @@ -https://pypi.org/project/pytz diff --git a/source/l/python-pytz/slack-desc b/source/l/python-pytz/slack-desc deleted file mode 100644 index 919badd83..000000000 --- a/source/l/python-pytz/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# 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------------------------------------------------------| -python-pytz: python-pytz (Timezone Definitions for Python) -python-pytz: -python-pytz: pytz brings the Olson tz database into Python. This library allows -python-pytz: accurate and cross platform timezone calculations. It also solves the -python-pytz: issue of ambiguous times at the end of daylight saving time. -python-pytz: -python-pytz: Homepage: http://pythonhosted.org/pytz -python-pytz: -python-pytz: -python-pytz: -python-pytz: diff --git a/source/l/python-random2/python-random2.SlackBuild b/source/l/python-random2/python-random2.SlackBuild index 5ad421eea..a291d834e 100755 --- a/source/l/python-random2/python-random2.SlackBuild +++ b/source/l/python-random2/python-random2.SlackBuild @@ -36,7 +36,7 @@ fi PKGNAM=python-random2 SRCNAM=random2 VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-requests/python-requests.SlackBuild b/source/l/python-requests/python-requests.SlackBuild index cd667504c..bd9f89ba3 100755 --- a/source/l/python-requests/python-requests.SlackBuild +++ b/source/l/python-requests/python-requests.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-requests VERSION=${VERSION:-$(echo requests-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} SRCNAM=requests diff --git a/source/l/python-sane/python-sane.SlackBuild b/source/l/python-sane/python-sane.SlackBuild index 851c90cb2..f81da345e 100755 --- a/source/l/python-sane/python-sane.SlackBuild +++ b/source/l/python-sane/python-sane.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-sane VERSION=${VERSION:-$(echo Sane-*.tar.?z* | 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/l/python-setuptools_scm/python-setuptools_scm.SlackBuild b/source/l/python-setuptools_scm/python-setuptools_scm.SlackBuild index 88ab41d12..5e694846b 100755 --- a/source/l/python-setuptools_scm/python-setuptools_scm.SlackBuild +++ b/source/l/python-setuptools_scm/python-setuptools_scm.SlackBuild @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-setuptools_scm -SRCNAM=setuptools-scm +SRCNAM=setuptools_scm VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} BUILD=${BUILD:-1} diff --git a/source/l/python-setuptools_scm/setuptools-scm.url b/source/l/python-setuptools_scm/setuptools_scm.url index 71af39a71..71af39a71 100644 --- a/source/l/python-setuptools_scm/setuptools-scm.url +++ b/source/l/python-setuptools_scm/setuptools_scm.url diff --git a/source/l/python-six/python-six.SlackBuild b/source/l/python-six/python-six.SlackBuild index f1a8bd263..0403e81e2 100755 --- a/source/l/python-six/python-six.SlackBuild +++ b/source/l/python-six/python-six.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-six VERSION=${VERSION:-$(echo six-*.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 diff --git a/source/l/python-smartypants/python-smartypants.SlackBuild b/source/l/python-smartypants/python-smartypants.SlackBuild index ddda2e3bb..78dfc16bf 100755 --- a/source/l/python-smartypants/python-smartypants.SlackBuild +++ b/source/l/python-smartypants/python-smartypants.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-smartypants VERSION=${VERSION:-$(echo smartypants.py-*.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/l/python-snowballstemmer/python-snowballstemmer.SlackBuild b/source/l/python-snowballstemmer/python-snowballstemmer.SlackBuild index 76c38de01..68b396dcd 100755 --- a/source/l/python-snowballstemmer/python-snowballstemmer.SlackBuild +++ b/source/l/python-snowballstemmer/python-snowballstemmer.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-snowballstemmer SRCNAM=snowballstemmer VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-sphinx_rtd_theme/python-sphinx_rtd_theme.SlackBuild b/source/l/python-sphinx_rtd_theme/python-sphinx_rtd_theme.SlackBuild index a1d673180..221cfe2d7 100755 --- a/source/l/python-sphinx_rtd_theme/python-sphinx_rtd_theme.SlackBuild +++ b/source/l/python-sphinx_rtd_theme/python-sphinx_rtd_theme.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-sphinx_rtd_theme SRCNAM=sphinx_rtd_theme VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-tomli-w/python-tomli-w.SlackBuild b/source/l/python-tomli-w/python-tomli-w.SlackBuild index 43613e345..212f842e6 100755 --- a/source/l/python-tomli-w/python-tomli-w.SlackBuild +++ b/source/l/python-tomli-w/python-tomli-w.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-tomli-w VERSION=${VERSION:-$(echo tomli_w-*.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/l/python-tomli/python-tomli.SlackBuild b/source/l/python-tomli/python-tomli.SlackBuild deleted file mode 100755 index a77948ede..000000000 --- a/source/l/python-tomli/python-tomli.SlackBuild +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash - -# Copyright 2021 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2021 Patrick J. Volkerding, Sebeka, MN, 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=python-tomli -SRCNAM=tomli -VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i586 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -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 - -TMP=${TMP:-/tmp} -PKG=$TMP/package-$PKGNAM - -rm -rf $PKG -mkdir -p $TMP $PKG -cd $TMP -rm -rf $SRCNAM-$VERSION -tar xvf $CWD/$SRCNAM-$VERSION.tar.?z || exit 1 -cd $SRCNAM-$VERSION || exit 1 - -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \+ -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ - -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 LICENSE* NOTICE PKG-INFO README* \ - $PKG/usr/doc/$PKGNAM-$VERSION -find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 0644 {} \+ - -# If there's a HISTORY.rst, installing at least part of the recent history -# is useful, but don't let it get totally out of control: -if [ -r HISTORY.rst ]; then - DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) - cat HISTORY.rst | head -n 1000 > $DOCSDIR/HISTORY.rst - touch -r HISTORY.rst $DOCSDIR/HISTORY.rst -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/l/python-tomli/tomli.url b/source/l/python-tomli/tomli.url deleted file mode 100644 index 22bfedf76..000000000 --- a/source/l/python-tomli/tomli.url +++ /dev/null @@ -1 +0,0 @@ -https://pypi.org/project/tomli diff --git a/source/l/python-typing_extensions/python-typing_extensions.SlackBuild b/source/l/python-typing_extensions/python-typing_extensions.SlackBuild deleted file mode 100755 index a782e9c7d..000000000 --- a/source/l/python-typing_extensions/python-typing_extensions.SlackBuild +++ /dev/null @@ -1,84 +0,0 @@ -#!/bin/bash - -# Copyright 2024 Patrick J. Volkerding, Sebeka, MN, 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=python-typing_extensions -SRCNAM=typing_extensions -VERSION=${VERSION:-$(echo ${SRCNAM}-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} - -if [ -z "$ARCH" ]; then - case "$( uname -m )" in - i?86) ARCH=i586 ;; - arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; - esac -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 - -TMP=${TMP:-/tmp} -PKG=$TMP/package-$PKGNAM - -rm -rf $PKG -mkdir -p $TMP $PKG -cd $TMP -rm -rf $SRCNAM-$VERSION -tar xvf $CWD/$SRCNAM-$VERSION.tar.?z || exit 1 -cd $SRCNAM-$VERSION || exit 1 - -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \+ -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+ - -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 LICENSE* NOTICE PKG-INFO README* \ - $PKG/usr/doc/$PKGNAM-$VERSION -find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 0644 {} \+ - -# If there's a HISTORY.rst, installing at least part of the recent history -# is useful, but don't let it get totally out of control: -if [ -r HISTORY.rst ]; then - DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION) - cat HISTORY.rst | head -n 1000 > $DOCSDIR/HISTORY.rst - touch -r HISTORY.rst $DOCSDIR/HISTORY.rst -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/l/python-typing_extensions/slack-desc b/source/l/python-typing_extensions/slack-desc deleted file mode 100644 index 755ad4bfd..000000000 --- a/source/l/python-typing_extensions/slack-desc +++ /dev/null @@ -1,19 +0,0 @@ -# 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------------------------------------------------------| -python-typing_extensions: python-typing_extensions (experimental type hints) -python-typing_extensions: -python-typing_extensions: Enable use of new type system features on older Python versions. For -python-typing_extensions: example, typing.TypeGuard is new in Python 3.10, but typing_extensions -python-typing_extensions: allows users on previous Python versions to use it too. -python-typing_extensions: -python-typing_extensions: Homepage: https://pypi.org/project/typing-extensions -python-typing_extensions: -python-typing_extensions: -python-typing_extensions: -python-typing_extensions: diff --git a/source/l/python-typing_extensions/typing_extensions.url b/source/l/python-typing_extensions/typing_extensions.url deleted file mode 100644 index 28ef321a0..000000000 --- a/source/l/python-typing_extensions/typing_extensions.url +++ /dev/null @@ -1 +0,0 @@ -https://pypi.org/project/typing-extensions diff --git a/source/l/python-typogrify/python-typogrify.SlackBuild b/source/l/python-typogrify/python-typogrify.SlackBuild index 2a3b60afe..283403cfc 100755 --- a/source/l/python-typogrify/python-typogrify.SlackBuild +++ b/source/l/python-typogrify/python-typogrify.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-typogrify VERSION=${VERSION:-$(echo typogrify-*.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/l/python-urllib3/python-urllib3.SlackBuild b/source/l/python-urllib3/python-urllib3.SlackBuild index f1848a343..87c731f09 100755 --- a/source/l/python-urllib3/python-urllib3.SlackBuild +++ b/source/l/python-urllib3/python-urllib3.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-urllib3 VERSION=${VERSION:-$(echo urllib3-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} SRCNAM=urllib3 diff --git a/source/l/python-webencodings/python-webencodings.SlackBuild b/source/l/python-webencodings/python-webencodings.SlackBuild index 6a6295050..8ce655e6e 100755 --- a/source/l/python-webencodings/python-webencodings.SlackBuild +++ b/source/l/python-webencodings/python-webencodings.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-webencodings SRCNAM=webencodings VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/python-wheel/python-wheel.SlackBuild b/source/l/python-wheel/python-wheel.SlackBuild index 1ed68963f..c5a754a3c 100755 --- a/source/l/python-wheel/python-wheel.SlackBuild +++ b/source/l/python-wheel/python-wheel.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-wheel VERSION=${VERSION:-$(echo wheel-*.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/l/python-zipp/python-zipp.SlackBuild b/source/l/python-zipp/python-zipp.SlackBuild index dd5dbbe56..85fa96583 100755 --- a/source/l/python-zipp/python-zipp.SlackBuild +++ b/source/l/python-zipp/python-zipp.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=python-zipp SRCNAM=zipp VERSION=${VERSION:-$(echo ${SRCNAM}-*.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/l/readline/readline.SlackBuild b/source/l/readline/readline.SlackBuild index 9f1e1f124..bce26c339 100755 --- a/source/l/readline/readline.SlackBuild +++ b/source/l/readline/readline.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=readline 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/l/sip/sip.SlackBuild b/source/l/sip/sip.SlackBuild index 922c884dc..0e48ea774 100755 --- a/source/l/sip/sip.SlackBuild +++ b/source/l/sip/sip.SlackBuild @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=sip VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/sof-firmware/sof-firmware.url b/source/l/sof-firmware/sof-firmware.url index f7ff05b76..fd1bba8b5 100644 --- a/source/l/sof-firmware/sof-firmware.url +++ b/source/l/sof-firmware/sof-firmware.url @@ -1,2 +1,2 @@ -https://github.com/thesofproject/sof-bin/releases -https://github.com/thesofproject/sof-bin/releases/download/v2023.12.1/sof-bin-2023.12.1.tar.gz +https://github.com/thesofproject/sof-bin +https://github.com/thesofproject/sof-bin/releases/download/v2024.03/sof-bin-2024.03.tar.gz diff --git a/source/l/speech-dispatcher/speech-dispatcher.SlackBuild b/source/l/speech-dispatcher/speech-dispatcher.SlackBuild index f3321531b..0c36258fb 100755 --- a/source/l/speech-dispatcher/speech-dispatcher.SlackBuild +++ b/source/l/speech-dispatcher/speech-dispatcher.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=speech-dispatcher SRCNAM=speech-dispatcher VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TMP=${TMP:-/tmp} PKG=$TMP/package-$PKGNAM diff --git a/source/l/system-config-printer/system-config-printer.SlackBuild b/source/l/system-config-printer/system-config-printer.SlackBuild index c8782bafa..948b5f5f3 100755 --- a/source/l/system-config-printer/system-config-printer.SlackBuild +++ b/source/l/system-config-printer/system-config-printer.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=system-config-printer VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/talloc/talloc.SlackBuild b/source/l/talloc/talloc.SlackBuild index 39da12b4c..b03599a4f 100755 --- a/source/l/talloc/talloc.SlackBuild +++ b/source/l/talloc/talloc.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=talloc 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/l/tdb/tdb.SlackBuild b/source/l/tdb/tdb.SlackBuild index ba013f8bd..2c2e97ff6 100755 --- a/source/l/tdb/tdb.SlackBuild +++ b/source/l/tdb/tdb.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=tdb 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/l/tevent/tevent.SlackBuild b/source/l/tevent/tevent.SlackBuild index 514d01398..877156b16 100755 --- a/source/l/tevent/tevent.SlackBuild +++ b/source/l/tevent/tevent.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=tevent 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/n/NetworkManager/NetworkManager.SlackBuild b/source/n/NetworkManager/NetworkManager.SlackBuild index 25f681522..7fa8d4a56 100755 --- a/source/n/NetworkManager/NetworkManager.SlackBuild +++ b/source/n/NetworkManager/NetworkManager.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2010, 2011, 2014, 2016 Robby Workman, Northport, Alabama, USA -# Copyright 2013, 2014, 2015, 2016, 2018, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2013, 2014, 2015, 2016, 2018, 2020, 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=NetworkManager 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: MARCH=$( uname -m ) @@ -98,50 +98,44 @@ for dfile in $CWD/patches/* ; do zcat $dfile | patch -p1 --verbose || exit 1 done -# For git-patched builds -autoreconf -vif -automake -./autogen.sh - -# Configuring --enable-json-validation --enable-ovs requires the Jansson -# json-c library. If there's any interest or usefulness with that, let me -# know. The library is fairly small, but in order to actually use team -# interfaces will probably require more stuff (not sure how much). -# -# Update September 2018: Added those options since we needed Jansson -# already for HTTP/2 support. - -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -./configure \ +# Configure, build, and install: +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir meson-build +cd meson-build +meson setup \ --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ + --libdir=lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ - --docdir=/usr/doc/$PKGNAM-$VERSION \ - --with-udev-dir=/lib/udev \ - --with-pppd-plugin-dir=/usr/lib${LIBDIRSUFFIX}/pppd/$PPPD \ - --with-crypto=nss \ - --enable-more-warnings=no \ - --without-resolvconf \ - --with-dhcpcd=/sbin/dhcpcd \ - --with-dhclient=yes \ - --with-modem-manager-1=yes \ - --with-nmtui=yes \ - --enable-json-validation \ - --enable-ovs \ - --with-consolekit=no \ - --with-session-tracking=elogind \ - --with-suspend-resume=elogind \ - --with-hostname-persist=slackware \ - --build=$TARGET || exit 1 - -make $NUMJOBS || exit 1 -make install DESTDIR=$PKG || exit 1 - -# Don't ship .la files: -rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + --buildtype=release \ + -Dudev_dir=/lib/udev \ + -Ddbus_conf_dir=/usr/share/dbus-1/system.d \ + -Dpppd_plugin_dir=/usr/lib${LIBDIRSUFFIX}/pppd/$PPPD \ + -Dcrypto=nss \ + -Dresolvconf=false \ + -Ddhcpcd=/sbin/dhcpcd \ + -Dconfig_dhcp_default=dhcpcd \ + -Ddhclient=/sbin/dhclient \ + -Dmodem_manager=true \ + -Dnmtui=true \ + -Dovs=true \ + -Dsession_tracking_consolekit=false \ + -Dsession_tracking=elogind \ + -Dsuspend_resume=elogind \ + -Dhostname_persist=slackware \ + -Dsystemd_journal=false \ + -Dsystemdsystemunitdir=no \ + -Dmore_logging=false \ + -Dselinux=false \ + -Dlibaudit=no \ + -Dqt=false \ + -Ddocs=true \ + .. || exit 1 + "${NINJA:=ninja}" $NUMJOBS || exit 1 + DESTDIR=$PKG $NINJA install || exit 1 +cd .. find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true @@ -158,6 +152,11 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ 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 +# Relocate: +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +mv $PKG/usr/share/doc/NetworkManager/examples $PKG/usr/doc/$PKGNAM-$VERSION +rm -r $PKG/usr/share/doc + # In case NetworkManager tries to install something here: rm -f $PKG/etc/rc.d/rc.networkmanager diff --git a/source/n/bind/caching-example/named.root b/source/n/bind/caching-example/named.root index 6db8239a2..280ab0668 100644 --- a/source/n/bind/caching-example/named.root +++ b/source/n/bind/caching-example/named.root @@ -9,8 +9,8 @@ ; on server FTP.INTERNIC.NET ; -OR- RS.INTERNIC.NET ; -; last update: October 24, 2023 -; related version of root zone: 2023102402 +; last update: March 25, 2024 +; related version of root zone: 2024032501 ; ; FORMERLY NS.INTERNIC.NET ; @@ -21,8 +21,8 @@ A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30 ; FORMERLY NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. -B.ROOT-SERVERS.NET. 3600000 A 199.9.14.201 -B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:200::b +B.ROOT-SERVERS.NET. 3600000 A 170.247.170.2 +B.ROOT-SERVERS.NET. 3600000 AAAA 2801:1b8:10::b ; ; FORMERLY C.PSI.NET ; diff --git a/source/n/bluez/b94f1be656f34ea1363f5566ef63b847234c6dea.patch b/source/n/bluez/b94f1be656f34ea1363f5566ef63b847234c6dea.patch new file mode 100644 index 000000000..129c7b045 --- /dev/null +++ b/source/n/bluez/b94f1be656f34ea1363f5566ef63b847234c6dea.patch @@ -0,0 +1,45 @@ +From b94f1be656f34ea1363f5566ef63b847234c6dea Mon Sep 17 00:00:00 2001 +From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> +Date: Mon, 15 Apr 2024 10:48:58 -0400 +Subject: [PATCH] shared/uhid: Fix crash if bt_uhid_destroy free replay + structure + +Id replay structured has been allocated it shall be set back to NULL +after calling uhid_replay_free otherwise it may cause the following +crash: + +Invalid read of size 1 + at 0x1D8FC4: bt_uhid_record (uhid.c:116) + by 0x1D912C: uhid_read_handler (uhid.c:158) + by 0x201A64: watch_callback (io-glib.c:157) + by 0x48D4198: g_main_dispatch.lto_priv.0 (gmain.c:3344) + by 0x49333BE: UnknownInlinedFun (gmain.c:4152) + by 0x49333BE: g_main_context_iterate_unlocked.isra.0 (gmain.c:4217) + by 0x48D4DC6: g_main_loop_run (gmain.c:4419) + by 0x2020F4: mainloop_run (mainloop-glib.c:66) + by 0x20254B: mainloop_run_with_signal (mainloop-notify.c:188) + by 0x12D6D4: main (main.c:1456) + Address 0x53ae9c0 is 0 bytes inside a block of size 40 free'd + at 0x48468CF: free (vg_replace_malloc.c:985) + by 0x1D8E19: uhid_replay_free (uhid.c:68) + by 0x1D8E19: uhid_replay_free (uhid.c:59) + by 0x1D8E19: bt_uhid_destroy (uhid.c:509) + by 0x1591F5: uhid_disconnect (device.c:183) + +Fixes: https://github.com/bluez/bluez/issues/815 +--- + src/shared/uhid.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/shared/uhid.c b/src/shared/uhid.c +index c1092b707..1f071b958 100644 +--- a/src/shared/uhid.c ++++ b/src/shared/uhid.c +@@ -507,6 +507,7 @@ int bt_uhid_destroy(struct bt_uhid *uhid) + + uhid->created = false; + uhid_replay_free(uhid->replay); ++ uhid->replay = NULL; + + return err; + } diff --git a/source/n/bluez/bluez.SlackBuild b/source/n/bluez/bluez.SlackBuild index 069f952d6..3597c4fd4 100755 --- a/source/n/bluez/bluez.SlackBuild +++ b/source/n/bluez/bluez.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=bluez 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) "} @@ -78,6 +78,8 @@ find . \ sed -i -e 's|-lreadline|\0 -lncursesw|g' Makefile.{in,tools} +cat $CWD/b94f1be656f34ea1363f5566ef63b847234c6dea.patch | patch -p1 --verbose || exit 1 + autoreconf -vif # We're adding --enable-deprecated due to this commit: @@ -138,12 +140,8 @@ cp -a $CWD/config/org.bluez.obex.service $PKG/usr/share/dbus-1/services chown root:root $PKG/usr/share/dbus-1/services/org.bluez.obex.service chmod 644 $PKG/usr/share/dbus-1/services/org.bluez.obex.service -# Install the configuration files -mkdir -p $PKG/etc/bluetooth $PKG/etc/default -cat src/main.conf > $PKG/etc/bluetooth/main.conf.new -cat profiles/input/input.conf > $PKG/etc/bluetooth/input.conf.new -cat profiles/network/network.conf > $PKG/etc/bluetooth/network.conf.new -cat $CWD/config/uart.conf > $PKG/etc/bluetooth/uart.conf.new +# Install default options config file: +mkdir -p $PKG/etc/default cat $CWD/config/defaultconfig > $PKG/etc/default/bluetooth.new # Add an init script @@ -154,6 +152,11 @@ cat $CWD/config/rc.bluetooth > $PKG/etc/rc.d/rc.bluetooth.new # script is not executable: chmod 755 $PKG/etc/rc.d/rc.bluetooth.new +# Make the other config files .new: +for config in input.conf main.conf network.conf ; do + mv $PKG/etc/bluetooth/${config} $PKG/etc/bluetooth/${config}.new +done + # If the deprecated utility gatttool was built, go ahead and install it: if [ -x attrib/gatttool ]; then cp attrib/gatttool $PKG/usr/bin diff --git a/source/n/bluez/config/uart.conf b/source/n/bluez/config/uart.conf deleted file mode 100644 index b2e276f4e..000000000 --- a/source/n/bluez/config/uart.conf +++ /dev/null @@ -1,6 +0,0 @@ -# /etc/bluetooth/uart.conf - -# Attach serial devices via UART HCI to BlueZ stack -# Use one line per device -# See the hciattach man page for options - diff --git a/source/n/bluez/doinst.sh b/source/n/bluez/doinst.sh index 796630fd2..bd2e052b0 100644 --- a/source/n/bluez/doinst.sh +++ b/source/n/bluez/doinst.sh @@ -21,6 +21,5 @@ config etc/rc.d/rc.bluetooth.new config etc/bluetooth/input.conf.new config etc/bluetooth/main.conf.new config etc/bluetooth/network.conf.new -config etc/bluetooth/uart.conf.new config etc/default/bluetooth.new diff --git a/source/n/elm/elm.SlackBuild b/source/n/elm/elm.SlackBuild index 56dc99d47..defbe62db 100755 --- a/source/n/elm/elm.SlackBuild +++ b/source/n/elm/elm.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=elm VERSION=2.5.8 -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/epic5/epic5.SlackBuild b/source/n/epic5/epic5.SlackBuild index 6adae8c36..a7888aa28 100755 --- a/source/n/epic5/epic5.SlackBuild +++ b/source/n/epic5/epic5.SlackBuild @@ -26,7 +26,7 @@ PKGNAM=epic5 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} EPICVER=5 HELPFILE=current -BUILD=${BUILD:-6} +BUILD=${BUILD:-8} ## Default to no Ruby support, since it seems that ruby-2.7.0 is not compatible. ## Patches to fix this are welcome, otherwise we'll keep an eye on upstream. diff --git a/source/n/fetchmail/fetchmail.SlackBuild b/source/n/fetchmail/fetchmail.SlackBuild index 2e74e15db..13530b769 100755 --- a/source/n/fetchmail/fetchmail.SlackBuild +++ b/source/n/fetchmail/fetchmail.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=fetchmail 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/n/getmail/getmail.SlackBuild b/source/n/getmail/getmail.SlackBuild index 1830c241d..47daff253 100755 --- a/source/n/getmail/getmail.SlackBuild +++ b/source/n/getmail/getmail.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=getmail VERSION=${VERSION:-$(echo getmail6-*.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/n/gnutls/1830.patch b/source/n/gnutls/1830.patch new file mode 100644 index 000000000..d3271fb1d --- /dev/null +++ b/source/n/gnutls/1830.patch @@ -0,0 +1,96 @@ +From 6eec2a3854f90bfb30492d59db59c675bfb0f6f9 Mon Sep 17 00:00:00 2001 +From: Zoltan Fridrich <zfridric@redhat.com> +Date: Wed, 10 Apr 2024 12:51:33 +0200 +Subject: [PATCH] Fix RSAES-PKCS1-v1_5 system-wide configuration + +Signed-off-by: Zoltan Fridrich <zfridric@redhat.com> +--- + lib/priority.c | 12 ++++++---- + ...system-override-allow-rsa-pkcs1-encrypt.sh | 22 +++++++++++++++++-- + 2 files changed, 28 insertions(+), 6 deletions(-) + +diff --git a/lib/priority.c b/lib/priority.c +index 8abe00d1ff..342f71471d 100644 +--- a/lib/priority.c ++++ b/lib/priority.c +@@ -1423,9 +1423,6 @@ static inline int cfg_apply(struct cfg *cfg, struct ini_ctx *ctx) + _gnutls_default_priority_string = cfg->default_priority_string; + } + +- /* enable RSA-PKCS1-V1_5 by default */ +- cfg->allow_rsa_pkcs1_encrypt = true; +- + if (cfg->allowlisting) { + /* also updates `flags` of global `hash_algorithms[]` */ + ret = cfg_hashes_set_array(cfg, ctx->hashes, ctx->hashes_size); +@@ -2231,6 +2228,9 @@ static int _gnutls_update_system_priorities(bool defer_system_wide) + } + + if (stat(system_priority_file, &sb) < 0) { ++ /* if there is no config enable RSA-PKCS1-V1_5 by default */ ++ system_wide_config.allow_rsa_pkcs1_encrypt = true; ++ + _gnutls_debug_log("cfg: unable to access: %s: %d\n", + system_priority_file, errno); + goto out; +@@ -2272,12 +2272,16 @@ static int _gnutls_update_system_priorities(bool defer_system_wide) + system_priority_file, errno); + goto out; + } ++ ++ memset(&ctx, 0, sizeof(ctx)); ++ /* enable RSA-PKCS1-V1_5 by default */ ++ ctx.cfg.allow_rsa_pkcs1_encrypt = true; ++ + /* Parsing the configuration file needs to be done in 2 phases: + * first parsing the [global] section + * and then the other sections, + * because the [global] section modifies the parsing behavior. + */ +- memset(&ctx, 0, sizeof(ctx)); + err = ini_parse_file(fp, global_ini_handler, &ctx); + if (!err) { + if (fseek(fp, 0L, SEEK_SET) < 0) { +diff --git a/tests/system-override-allow-rsa-pkcs1-encrypt.sh b/tests/system-override-allow-rsa-pkcs1-encrypt.sh +index b7d477c96e..014088bd2f 100755 +--- a/tests/system-override-allow-rsa-pkcs1-encrypt.sh ++++ b/tests/system-override-allow-rsa-pkcs1-encrypt.sh +@@ -38,15 +38,33 @@ cat <<_EOF_ > ${CONF} + allow-rsa-pkcs1-encrypt = true + _EOF_ + +-${TEST} && fail "RSAES-PKCS1-v1_5 expected to succeed" ++${TEST} ++if [ $? != 0 ]; then ++ echo "${TEST} expected to succeed" ++ exit 1 ++fi ++echo "RSAES-PKCS1-v1_5 successfully enabled" + + cat <<_EOF_ > ${CONF} + [overrides] + allow-rsa-pkcs1-encrypt = false + _EOF_ + +-${TEST} || fail "RSAES-PKCS1-v1_5 expected to fail" ++${TEST} ++if [ $? = 0 ]; then ++ echo "${TEST} expected to fail" ++ exit 1 ++fi ++echo "RSAES-PKCS1-v1_5 successfully disabled" + + unset GNUTLS_SYSTEM_PRIORITY_FILE + unset GNUTLS_SYSTEM_PRIORITY_FAIL_ON_INVALID ++ ++${TEST} ++if [ $? != 0 ]; then ++ echo "${TEST} expected to succeed by default" ++ exit 1 ++fi ++echo "RSAES-PKCS1-v1_5 successfully enabled by default" ++ + exit 0 +-- +GitLab + diff --git a/source/n/gnutls/gnutls.SlackBuild b/source/n/gnutls/gnutls.SlackBuild index 157f01aae..154b283fa 100755 --- a/source/n/gnutls/gnutls.SlackBuild +++ b/source/n/gnutls/gnutls.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2007, 2008, 2009, 2010, 2016, 2017, 2018, 2020 Patrick Volkerding, Sebeka, MN, USA +# Copyright 2007, 2008, 2009, 2010, 2016, 2017, 2018, 2020, 2024 Patrick 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=gnutls VERSION=${VERSION:-$(echo gnutls-*.tar.xz | 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 @@ -81,6 +81,9 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ +# [PATCH] Fix RSAES-PKCS1-v1_5 system-wide configuration: +cat $CWD/1830.patch | patch -p1 --verbose || exit 1 + # Need to reconf to find guile-3.0.x: autoreconf -vif diff --git a/source/n/gpgme/gpgme.SlackBuild b/source/n/gpgme/gpgme.SlackBuild index ec40fcfad..6244330c9 100755 --- a/source/n/gpgme/gpgme.SlackBuild +++ b/source/n/gpgme/gpgme.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gpgme VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/httpd/httpd-2.4.58-r1914013.patch b/source/n/httpd/httpd-2.4.58-r1914013.patch deleted file mode 100644 index f9e078632..000000000 --- a/source/n/httpd/httpd-2.4.58-r1914013.patch +++ /dev/null @@ -1,14 +0,0 @@ -# ./pullrev.sh 1914013 -http://svn.apache.org/viewvc?view=revision&revision=1914013 - ---- httpd-2.4.58/modules/filters/mod_xml2enc.c -+++ httpd-2.4.58/modules/filters/mod_xml2enc.c -@@ -209,7 +209,7 @@ - - /* to sniff, first we look for BOM */ - if (ctx->xml2enc == XML_CHAR_ENCODING_NONE) { -- ctx->xml2enc = xmlDetectCharEncoding((const xmlChar*)ctx->buf, -+ ctx->xml2enc = xmlDetectCharEncoding((const unsigned char*)ctx->buf, - ctx->bytes); - if (HAVE_ENCODING(ctx->xml2enc)) { - ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(01432) diff --git a/source/n/httpd/httpd.SlackBuild b/source/n/httpd/httpd.SlackBuild index 904450cfb..ccd121e91 100755 --- a/source/n/httpd/httpd.SlackBuild +++ b/source/n/httpd/httpd.SlackBuild @@ -114,9 +114,6 @@ sed -i -e "s#lib/httpd#lib${LIBDIRSUFFIX}/httpd#" config.layout # Just use /var/run rather than /var/run/httpd. sed -i -e "s#/run/httpd#/run#" config.layout -# Fix FTBFS with recent libxml2: -cat $CWD/httpd-2.4.58-r1914013.patch | patch -p1 --verbose || exit 1 - # Configure: CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ diff --git a/source/n/httpd/httpd.url b/source/n/httpd/httpd.url index fdbabad99..c60672025 100644 --- a/source/n/httpd/httpd.url +++ b/source/n/httpd/httpd.url @@ -1,2 +1,2 @@ -http://www.apache.org/dist/httpd/httpd-2.4.58.tar.bz2 -http://www.apache.org/dist/httpd/httpd-2.4.58.tar.bz2.asc +http://www.apache.org/dist/httpd/httpd-2.4.59.tar.bz2 +http://www.apache.org/dist/httpd/httpd-2.4.59.tar.bz2.asc diff --git a/source/n/iftop/iftop.SlackBuild b/source/n/iftop/iftop.SlackBuild index 177cabf0b..be17ada3c 100755 --- a/source/n/iftop/iftop.SlackBuild +++ b/source/n/iftop/iftop.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=iftop 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/n/lynx/lynx.SlackBuild b/source/n/lynx/lynx.SlackBuild index d9815fd8c..26bbf5e82 100755 --- a/source/n/lynx/lynx.SlackBuild +++ b/source/n/lynx/lynx.SlackBuild @@ -23,8 +23,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=lynx -PKGVER=2.9.0dev.12 -DIRVER=2.9.0dev.12 +PKGVER=2.9.1 +DIRVER=2.9.1 BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/n/metamail/metamail.SlackBuild b/source/n/metamail/metamail.SlackBuild index 2697163a0..b2126c81a 100755 --- a/source/n/metamail/metamail.SlackBuild +++ b/source/n/metamail/metamail.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=metamail VERSION=2.7 -BUILD=${BUILD:-10} +BUILD=${BUILD:-11} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/mobile-broadband-provider-info/mobile-broadband-provider-info.SlackBuild b/source/n/mobile-broadband-provider-info/mobile-broadband-provider-info.SlackBuild index ef8d9d12e..539369b5d 100755 --- a/source/n/mobile-broadband-provider-info/mobile-broadband-provider-info.SlackBuild +++ b/source/n/mobile-broadband-provider-info/mobile-broadband-provider-info.SlackBuild @@ -1,9 +1,7 @@ #!/bin/bash -# Slackware build script for mobile-broadband-provider-info - # Copyright 2010, 2011, 2015 Robby Workman, Tuscaloosa, Alabama, USA -# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2019, 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -49,7 +47,7 @@ fi # 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-$DATE-$ARCH-$BUILD.txz" + echo "$PKGNAM-$DATE-noarch-$BUILD.txz" exit 0 fi @@ -93,37 +91,38 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ -[ ! -x configure ] && ./autogen.sh - -sed -i -e \ - 's#pkgconfigdir = $(datadir)/pkgconfig#pkgconfigdir = $(libdir)/pkgconfig#' \ - Makefile.in - -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -./configure \ +# Configure, build, and install: +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir meson-build +cd meson-build +meson setup \ --prefix=/usr \ - --libdir=/usr/lib${LIBDIRSUFFIX} \ + --libdir=lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/libexec \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --mandir=/usr/man \ --sysconfdir=/etc \ --localstatedir=/var \ - --mandir=/usr/man \ - --docdir=/usr/doc/$PKGNAM-$DATE \ - --build=$TARGET || exit 1 - -make || exit 1 -make install DESTDIR=$PKG || exit 1 + --buildtype=release \ + .. || exit 1 + "${NINJA:=ninja}" $NUMJOBS || exit 1 + DESTDIR=$PKG $NINJA install || exit 1 +cd .. find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true mkdir -p $PKG/usr/doc/$PKGNAM-$DATE cp -a \ - COPYING* ChangeLog NEWS README* \ + CONTRIBUTING* COPYING* ChangeLog* MAINTAINERS* NEWS* README* \ $PKG/usr/doc/$PKGNAM-$DATE mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$DATE-$ARCH-$BUILD.txz - +/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$DATE-noarch-$BUILD.txz diff --git a/source/n/mtr/mtr.SlackBuild b/source/n/mtr/mtr.SlackBuild index 3c9c6da6f..948f3a599 100755 --- a/source/n/mtr/mtr.SlackBuild +++ b/source/n/mtr/mtr.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mtr 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/n/net-snmp/785.patch b/source/n/net-snmp/785.patch new file mode 100644 index 000000000..b6dcd77ae --- /dev/null +++ b/source/n/net-snmp/785.patch @@ -0,0 +1,119 @@ +From f5ae6baf0018abda9dedc368fe6d52c0d7a8ab8f Mon Sep 17 00:00:00 2001 +From: Philippe Troin <phil+github-commits@fifi.org> +Date: Sat, 3 Feb 2024 10:30:30 -0800 +Subject: [PATCH] Add Linux 6.7 compatibility parsing /proc/net/snmp + +Linux 6.7 adds a new OutTransmits field to Ip in /proc/net/snmp. +This breaks the hard-coded assumptions about the Ip line length. +Add compatibility to parse Linux 6.7 Ip header while keep support +for previous versions. +--- + .../ip-mib/data_access/systemstats_linux.c | 46 +++++++++++++++---- + 1 file changed, 37 insertions(+), 9 deletions(-) + +diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c +index 49e0a34d5c..f04e828a94 100644 +--- a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c ++++ b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c +@@ -36,7 +36,7 @@ netsnmp_access_systemstats_arch_init(void) + } + + /* +- /proc/net/snmp ++ /proc/net/snmp - Linux 6.6 and lower + + Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates + Ip: 2 64 7083534 0 0 0 0 0 6860233 6548963 0 0 1 286623 63322 1 259920 0 0 +@@ -49,6 +49,26 @@ netsnmp_access_systemstats_arch_init(void) + + Udp: InDatagrams NoPorts InErrors OutDatagrams + Udp: 1491094 122 0 1466178 ++* ++ /proc/net/snmp - Linux 6.7 and higher ++ ++ Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates OutTransmits ++ Ip: 1 64 50859058 496 0 37470604 0 0 20472980 7515791 1756 0 0 7264 3632 0 3548 0 7096 44961424 ++ ++ Icmp: InMsgs InErrors InCsumErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutRateLimitGlobal OutRateLimitHost OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps ++ Icmp: 114447 2655 0 17589 0 0 0 0 66905 29953 0 0 0 0 143956 0 0 572 16610 484 0 0 0 59957 66905 0 0 0 0 ++ ++ IcmpMsg: InType0 InType3 InType8 OutType0 OutType3 OutType8 OutType11 ++ IcmpMsg: 29953 17589 66905 66905 16610 59957 484 ++ ++ Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts InCsumErrors ++ Tcp: 1 200 120000 -1 17744 13525 307 3783 6 18093137 9277788 3499 8 7442 0 ++ ++ Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors ++ Udp: 2257832 1422 0 2252835 0 0 0 84 0 ++ ++ UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors ++ UdpLite: 0 0 0 0 0 0 0 0 0 + */ + + +@@ -101,10 +121,10 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags) + FILE *devin; + char line[1024]; + netsnmp_systemstats_entry *entry = NULL; +- int scan_count; ++ int scan_count, expected_scan_count; + char *stats, *start = line; + int len; +- unsigned long long scan_vals[19]; ++ unsigned long long scan_vals[20]; + + DEBUGMSGTL(("access:systemstats:container:arch", "load v4 (flags %x)\n", + load_flags)); +@@ -126,10 +146,17 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags) + */ + NETSNMP_IGNORE_RESULT(fgets(line, sizeof(line), devin)); + len = strlen(line); +- if (224 != len) { ++ switch (len) { ++ case 224: ++ expected_scan_count = 19; ++ break; ++ case 237: ++ expected_scan_count = 20; ++ break; ++ default: + fclose(devin); + snmp_log(LOG_ERR, "systemstats_linux: unexpected header length in /proc/net/snmp." +- " %d != 224\n", len); ++ " %d not in { 224, 237 } \n", len); + return -4; + } + +@@ -178,20 +205,20 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags) + memset(scan_vals, 0x0, sizeof(scan_vals)); + scan_count = sscanf(stats, + "%llu %llu %llu %llu %llu %llu %llu %llu %llu %llu" +- "%llu %llu %llu %llu %llu %llu %llu %llu %llu", ++ "%llu %llu %llu %llu %llu %llu %llu %llu %llu %llu", + &scan_vals[0],&scan_vals[1],&scan_vals[2], + &scan_vals[3],&scan_vals[4],&scan_vals[5], + &scan_vals[6],&scan_vals[7],&scan_vals[8], + &scan_vals[9],&scan_vals[10],&scan_vals[11], + &scan_vals[12],&scan_vals[13],&scan_vals[14], + &scan_vals[15],&scan_vals[16],&scan_vals[17], +- &scan_vals[18]); ++ &scan_vals[18],&scan_vals[19]); + DEBUGMSGTL(("access:systemstats", " read %d values\n", scan_count)); + +- if(scan_count != 19) { ++ if(scan_count != expected_scan_count) { + snmp_log(LOG_ERR, + "error scanning systemstats data (expected %d, got %d)\n", +- 19, scan_count); ++ expected_scan_count, scan_count); + netsnmp_access_systemstats_entry_free(entry); + return -4; + } +@@ -223,6 +250,7 @@ _systemstats_v4(netsnmp_container* container, u_int load_flags) + entry->stats.HCOutFragFails.high = scan_vals[17] >> 32; + entry->stats.HCOutFragCreates.low = scan_vals[18] & 0xffffffff; + entry->stats.HCOutFragCreates.high = scan_vals[18] >> 32; ++ /* entry->stats. = scan_vals[19]; / * OutTransmits */ + + entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES] = 1; + entry->stats.columnAvail[IPSYSTEMSTATSTABLE_INHDRERRORS] = 1; diff --git a/source/n/net-snmp/net-snmp.SlackBuild b/source/n/net-snmp/net-snmp.SlackBuild index 2de3dcef2..7b2a899cd 100755 --- a/source/n/net-snmp/net-snmp.SlackBuild +++ b/source/n/net-snmp/net-snmp.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014, 2018, 2020, 2021 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014, 2018, 2020, 2021, 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=net-snmp VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-4} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -88,6 +88,9 @@ zcat $CWD/net-snmp-5.8-modern-rpm-api.patch.gz | patch -p1 --verbose || exit 1 #sed -i "s|\$(PYMAKE) install|\$(PYMAKE) install --root=$PKG|" \ # Makefile.in +# Patch for Linux 6.7+ kernel (also works with older kernels): +cat $CWD/785.patch | patch -p1 --verbose || exit 1 + # Configure: CFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/source/n/netkit-ftp/netkit-ftp.SlackBuild b/source/n/netkit-ftp/netkit-ftp.SlackBuild index f500f2784..21d8391ce 100755 --- a/source/n/netkit-ftp/netkit-ftp.SlackBuild +++ b/source/n/netkit-ftp/netkit-ftp.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=netkit-ftp VERSION=0.17 -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/netkit-ntalk/netkit-ntalk.SlackBuild b/source/n/netkit-ntalk/netkit-ntalk.SlackBuild index 08b71f996..e1e595272 100755 --- a/source/n/netkit-ntalk/netkit-ntalk.SlackBuild +++ b/source/n/netkit-ntalk/netkit-ntalk.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=netkit-ntalk VERSION=0.17 -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/netwatch/netwatch.SlackBuild b/source/n/netwatch/netwatch.SlackBuild index 563433ab8..620fab9fe 100755 --- a/source/n/netwatch/netwatch.SlackBuild +++ b/source/n/netwatch/netwatch.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=netwatch VERSION=1.3.1 EXTRAVERSION=${EXTRAVERSION:-2} -BUILD=${BUILD:-5} +BUILD=${BUILD:-6} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/nftables/nftables.SlackBuild b/source/n/nftables/nftables.SlackBuild index c5d15fe72..2810ce877 100755 --- a/source/n/nftables/nftables.SlackBuild +++ b/source/n/nftables/nftables.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=nftables VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/n/nghttp2/nghttp2.url b/source/n/nghttp2/nghttp2.url index 289c251ca..9175dce90 100644 --- a/source/n/nghttp2/nghttp2.url +++ b/source/n/nghttp2/nghttp2.url @@ -1,2 +1,2 @@ https://github.com/nghttp2/nghttp2 -https://github.com/nghttp2/nghttp2/releases/download/v1.60.0/nghttp2-1.60.0.tar.xz +https://github.com/nghttp2/nghttp2/releases/download/v1.61.0/nghttp2-1.61.0.tar.xz diff --git a/source/n/nn/nn.SlackBuild b/source/n/nn/nn.SlackBuild index 48552b196..88fd1c6bd 100755 --- a/source/n/nn/nn.SlackBuild +++ b/source/n/nn/nn.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=nn VERSION=6.7.3 -BUILD=${BUILD:-8} +BUILD=${BUILD:-9} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/nss-pam-ldapd/nss-pam-ldapd.SlackBuild b/source/n/nss-pam-ldapd/nss-pam-ldapd.SlackBuild index cee7f9596..5d4bbd6e2 100755 --- a/source/n/nss-pam-ldapd/nss-pam-ldapd.SlackBuild +++ b/source/n/nss-pam-ldapd/nss-pam-ldapd.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=nss-pam-ldapd 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 diff --git a/source/n/obexftp/obexftp.SlackBuild b/source/n/obexftp/obexftp.SlackBuild index 16437b094..d63c6dd6f 100755 --- a/source/n/obexftp/obexftp.SlackBuild +++ b/source/n/obexftp/obexftp.SlackBuild @@ -23,7 +23,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=obexftp VERSION=${VERSION:-$(echo $PKGNAM-*-Source.tar.?z* | rev | cut -f 3- -d . | cut -f 2 -d - | rev)} -BUILD=${BUILD:-11} +BUILD=${BUILD:-12} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/n/php/fetch-php.sh b/source/n/php/fetch-php.sh index a3dda52cf..5c366cced 100755 --- a/source/n/php/fetch-php.sh +++ b/source/n/php/fetch-php.sh @@ -1,2 +1,2 @@ -lftpget http://us.php.net/distributions/php-8.3.4.tar.xz.asc -lftpget http://us.php.net/distributions/php-8.3.4.tar.xz +lftpget http://us.php.net/distributions/php-8.3.7.tar.xz.asc +lftpget http://us.php.net/distributions/php-8.3.7.tar.xz diff --git a/source/n/pssh/pssh.SlackBuild b/source/n/pssh/pssh.SlackBuild index 9aa9764dd..42cb8371c 100755 --- a/source/n/pssh/pssh.SlackBuild +++ b/source/n/pssh/pssh.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pssh VERSION=${VERSION:-$(echo pssh*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/rsync/rsync.SlackBuild b/source/n/rsync/rsync.SlackBuild index 1d86935ef..07896eea9 100755 --- a/source/n/rsync/rsync.SlackBuild +++ b/source/n/rsync/rsync.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=rsync VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/n/samba/samba.SlackBuild b/source/n/samba/samba.SlackBuild index 099c1079f..7eed0b774 100755 --- a/source/n/samba/samba.SlackBuild +++ b/source/n/samba/samba.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=samba VERSION=${VERSION:-$(echo samba-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} # This option may be set to "heimdal" or "mit". # Upstream considers the use of MIT Kerberos for provisioning an AD DC diff --git a/source/n/samba/samba.url b/source/n/samba/samba.url index 1ba921f23..24e351aa8 100644 --- a/source/n/samba/samba.url +++ b/source/n/samba/samba.url @@ -1,2 +1,2 @@ -https://download.samba.org/pub/samba/stable/samba-4.19.5.tar.gz -https://download.samba.org/pub/samba/stable/samba-4.19.5.tar.asc +https://download.samba.org/pub/samba/stable/samba-4.20.1.tar.gz +https://download.samba.org/pub/samba/stable/samba-4.20.1.tar.asc diff --git a/source/n/samba/smb.conf.default b/source/n/samba/smb.conf.default index 45d6f10f5..b23b90b6f 100644 --- a/source/n/samba/smb.conf.default +++ b/source/n/samba/smb.conf.default @@ -3,26 +3,26 @@ # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # -# For a step to step guide on installing, configuring and using samba, +# For a step to step guide on installing, configuring and using samba, # read the Samba-HOWTO-Collection. This may be obtained from: # http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf # -# Many working examples of smb.conf files can be found in the -# Samba-Guide which is generated daily and can be downloaded from: +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: # http://www.samba.org/samba/docs/Samba-Guide.pdf # -# Any line which starts with a ; (semi-colon) or a # (hash) +# Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # # NOTE: Whenever you modify this file you should run the command "testparm" -# to check that you have not made any basic syntactic errors. +# to check that you have not made any basic syntactic errors. # #======================= Global Settings ===================================== [global] -# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2 +# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH workgroup = MYGROUP # server string is the equivalent of the NT Description field @@ -60,8 +60,8 @@ # Specifies the Kerberos or Active Directory realm the host is part of ; realm = MY_REALM -# Backend to store user information in. New installations should -# use either tdbsam or ldapsam. smbpasswd is available for backwards +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards # compatibility. tdbsam requires no further configuration. ; passdb backend = tdbsam @@ -75,7 +75,7 @@ # Configure Samba to use multiple interfaces # If you have multiple network interfaces then you must list them # here. See the man page for details. -; interfaces = 192.168.12.2/24 192.168.13.2/24 +; interfaces = 192.168.12.2/24 192.168.13.2/24 # Where to store roving profiles (only for Win95 and WinNT) # %L substitutes for this servers netbios name, %U is username @@ -97,9 +97,9 @@ # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The default is NO. - dns proxy = no + dns proxy = no -# These scripts are used on a domain controller or stand-alone +# These scripts are used on a domain controller or stand-alone # machine to add or delete corresponding unix accounts ; add user script = /usr/sbin/useradd %u ; add group script = /usr/sbin/groupadd %g @@ -112,7 +112,7 @@ #============================ Share Definitions ============================== [homes] comment = Home Directories - browseable = no + browsable = no writable = yes # Un-comment the following and create the netlogon directory for Domain Logons @@ -128,17 +128,17 @@ # the default is to use the user's home directory ;[Profiles] ; path = /usr/local/samba/profiles -; browseable = no +; browsable = no ; guest ok = yes -# NOTE: If you have a BSD-style print system there is no need to +# NOTE: If you have a BSD-style print system there is no need to # specifically define each individual printer [printers] comment = All Printers path = /var/spool/samba - browseable = no -# Set public = yes to allow user 'guest account' to print + browsable = no +# Change 'guest ok' from 'no' to 'yes' to allow the 'guest account' user to print guest ok = no writable = no printable = yes @@ -160,7 +160,7 @@ ; printable = no ; write list = @staff -# Other examples. +# Other examples. # # A private printer, usable only by fred. Spool data will be placed in fred's # home directory. Note that fred must have write access to the spool directory, diff --git a/source/n/samba/smb.conf.default.orig b/source/n/samba/smb.conf.default.orig index 2f2072090..6210d6914 100644 --- a/source/n/samba/smb.conf.default.orig +++ b/source/n/samba/smb.conf.default.orig @@ -3,21 +3,21 @@ # here. Samba has a huge number of configurable options (perhaps too # many!) most of which are not shown in this example # -# For a step to step guide on installing, configuring and using samba, +# For a step to step guide on installing, configuring and using samba, # read the Samba-HOWTO-Collection. This may be obtained from: # http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf # -# Many working examples of smb.conf files can be found in the -# Samba-Guide which is generated daily and can be downloaded from: +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: # http://www.samba.org/samba/docs/Samba-Guide.pdf # -# Any line which starts with a ; (semi-colon) or a # (hash) +# Any line which starts with a ; (semi-colon) or a # (hash) # is a comment and is ignored. In this example we will use a # # for commentry and a ; for parts of the config file that you # may wish to enable # # NOTE: Whenever you modify this file you should run the command "testparm" -# to check that you have not made any basic syntactic errors. +# to check that you have not made any basic syntactic errors. # #======================= Global Settings ===================================== [global] @@ -60,8 +60,8 @@ # Specifies the Kerberos or Active Directory realm the host is part of ; realm = MY_REALM -# Backend to store user information in. New installations should -# use either tdbsam or ldapsam. smbpasswd is available for backwards +# Backend to store user information in. New installations should +# use either tdbsam or ldapsam. smbpasswd is available for backwards # compatibility. tdbsam requires no further configuration. ; passdb backend = tdbsam @@ -75,7 +75,7 @@ # Configure Samba to use multiple interfaces # If you have multiple network interfaces then you must list them # here. See the man page for details. -; interfaces = 192.168.12.2/24 192.168.13.2/24 +; interfaces = 192.168.12.2/24 192.168.13.2/24 # Where to store roving profiles (only for Win95 and WinNT) # %L substitutes for this servers netbios name, %U is username @@ -97,9 +97,9 @@ # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names # via DNS nslookups. The default is NO. - dns proxy = no + dns proxy = no -# These scripts are used on a domain controller or stand-alone +# These scripts are used on a domain controller or stand-alone # machine to add or delete corresponding unix accounts ; add user script = /usr/sbin/useradd %u ; add group script = /usr/sbin/groupadd %g @@ -112,7 +112,7 @@ #============================ Share Definitions ============================== [homes] comment = Home Directories - browseable = no + browsable = no writable = yes # Un-comment the following and create the netlogon directory for Domain Logons @@ -128,17 +128,17 @@ # the default is to use the user's home directory ;[Profiles] ; path = /usr/local/samba/profiles -; browseable = no +; browsable = no ; guest ok = yes -# NOTE: If you have a BSD-style print system there is no need to +# NOTE: If you have a BSD-style print system there is no need to # specifically define each individual printer [printers] comment = All Printers path = /usr/spool/samba - browseable = no -# Set public = yes to allow user 'guest account' to print + browsable = no +# Change 'guest ok' from 'no' to 'yes' to allow the 'guest account' user to print guest ok = no writable = no printable = yes @@ -160,7 +160,7 @@ ; printable = no ; write list = @staff -# Other examples. +# Other examples. # # A private printer, usable only by fred. Spool data will be placed in fred's # home directory. Note that fred must have write access to the spool directory, diff --git a/source/n/telnet/telnet.SlackBuild b/source/n/telnet/telnet.SlackBuild index 0b721cce3..2857a17c8 100755 --- a/source/n/telnet/telnet.SlackBuild +++ b/source/n/telnet/telnet.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=telnet VERSION=0.17 -BUILD=${BUILD:-6} +BUILD=${BUILD:-7} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/wpa_supplicant/wpa_supplicant.SlackBuild b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild index f99324697..6e8071a17 100755 --- a/source/n/wpa_supplicant/wpa_supplicant.SlackBuild +++ b/source/n/wpa_supplicant/wpa_supplicant.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=wpa_supplicant VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-4} SRCVERSION=$(printf $VERSION | tr _ -) diff --git a/source/n/ytalk/ytalk.SlackBuild b/source/n/ytalk/ytalk.SlackBuild index f7382565f..f6a2a453e 100755 --- a/source/n/ytalk/ytalk.SlackBuild +++ b/source/n/ytalk/ytalk.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ytalk VERSION=${VERSION:-3.3.0} -BUILD=${BUILD:-6} +BUILD=${BUILD:-7} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/t/texlive/doinst.sh b/source/t/texlive/doinst.sh index cd1c7fe63..1ab11e8fc 100644 --- a/source/t/texlive/doinst.sh +++ b/source/t/texlive/doinst.sh @@ -2,3 +2,11 @@ chroot . /usr/bin/mktexlsr 1>/dev/null 2>/dev/null printf "y\n" | chroot . /usr/bin/updmap-sys --syncwithtrees 1>/dev/null 2>/dev/null chroot . /usr/bin/updmap-sys 1>/dev/null 2>/dev/null chroot . /usr/bin/fmtutil-sys --all 1>/dev/null 2>/dev/null + +if [ -x /usr/bin/install-info -a -d usr/info ]; then + ( cd usr/info + rm -f dir + for i in *.info*; do /usr/bin/install-info $i dir 2>/dev/null; done + ) +fi + diff --git a/source/t/texlive/douninst.sh b/source/t/texlive/douninst.sh index 27d51c4ae..79bcced8a 100644 --- a/source/t/texlive/douninst.sh +++ b/source/t/texlive/douninst.sh @@ -1,4 +1,11 @@ -# Remove directories/data generated by doinst.sh +# Remove data generated by doinst.sh rm -rf usr/share/texmf-config rm -rf usr/share/texmf-local rm -rf usr/share/texmf-var + +if [ -x /usr/bin/install-info -a -d usr/info ]; then + ( cd usr/info + rm -f dir + for i in *.info*; do /usr/bin/install-info $i dir 2>/dev/null; done + ) +fi diff --git a/source/t/texlive/dump.unused.internal.libraries.from.sources.sh b/source/t/texlive/dump.unused.internal.libraries.from.sources.sh index 3e2c531ff..93f56184d 100755 --- a/source/t/texlive/dump.unused.internal.libraries.from.sources.sh +++ b/source/t/texlive/dump.unused.internal.libraries.from.sources.sh @@ -5,7 +5,7 @@ VERSION=${VERSION:-$(echo texlive-*source.tar.?z* | rev | cut -f 2 -d - | cut -f tar xf texlive-${VERSION}-source.tar.xz || exit 1 mv texlive-${VERSION}-source.tar.xz texlive-${VERSION}-source.tar.xz.orig -( cd texlive-${VERSION}-source/libs && rm -rf cairo freetype2 gd gmp graphite2 harfbuzz mpfr icu libpng pixman ) +( cd texlive-${VERSION}-source/libs && rm -rf cairo freetype2 gd gmp graphite2 harfbuzz mpfr icu libpng pixman zlib libpaper ) ( cd texlive-${VERSION}-source/utils && rm -rf asymptote ) ( cd texlive-${VERSION}-source/utils && rm -rf texdoctk ) ( cd texlive-${VERSION}-source/utils && rm -rf m-tx ) diff --git a/source/t/texlive/patches/aftergroup.patch b/source/t/texlive/patches/aftergroup.patch new file mode 100644 index 000000000..7a7d20f93 --- /dev/null +++ b/source/t/texlive/patches/aftergroup.patch @@ -0,0 +1,105 @@ +--- texlive-20240311-source/texk/web2c/ChangeLog 2024-03-10 22:37:05.000000000 +0100 ++++ texlive2024branch/texk/web2c/ChangeLog 2024-03-24 23:30:33.808928698 +0100 +@@ -1,3 +1,10 @@ ++2024-03-24 Karl Berry <karl@freefriends.org> ++ ++ * unbalanced-braces.ch: fix from DRF in order to make ++ \aftergroup work again with the output routine. Report ++ from David Carlisle and Frank Mittelbach, thread starts at: ++ https://tug.org/pipermail/tex-live/2024-March/050290.html ++ + 2024-03-10 Karl Berry <karl@tug.org> + + * TL'24 release. +--- texlive-20240311-source/texk/web2c/eptexdir/unbalanced-braces-eptex.ch 2024-02-28 05:19:31.000000000 +0100 ++++ texlive2024branch/texk/web2c/eptexdir/unbalanced-braces-eptex.ch 2024-03-25 04:14:33.400447000 +0100 +@@ -47,7 +47,7 @@ + begin decr(param_ptr); + flush_list(param_stack[param_ptr]); + end +- else if (token_type=output_text)and(output_active) then ++ else if (token_type=output_text)and(not output_can_end) then + fatal_error("Unbalanced output routine"); + @.Unbalanced output routine@> + @z +@@ -103,6 +103,19 @@ + % that we were just finished with it, so it's where the brace + % came from. + ++@x [45.989] l.19364 p.B417 ++@!output_active:boolean; {are we in the midst of an output routine?} ++@y ++@!output_active:boolean; {are we in the midst of an output routine?} ++@!output_can_end:boolean; {is this an auspicious time for it to end?} ++@z ++ ++@x [45.989] l.19367 p.B417 ++output_active:=false; insert_penalties:=0; ++@y ++output_active:=false; output_can_end:=false; insert_penalties:=0; ++@z ++ + % In <Resume the page builder after an output routine has come to an end>: + @x [45.1026] l.19938 p.B432 + begin if (loc<>null) or +@@ -121,8 +134,10 @@ + end_token_list; {conserve stack space in case more outputs are triggered} + end_graf; unsave; output_active:=false; insert_penalties:=0;@/ + @y +-end_graf; unsave; output_active:=false; insert_penalties:=0;@/ ++output_can_end:=true; + end_token_list; {conserve stack space in case more outputs are triggered} ++output_can_end:=false; ++end_graf; unsave; output_active:=false; insert_penalties:=0;@/ + @z + + % <Expand macros in the token list and...> had set mode:=0 while +--- texlive-20240311-source/texk/web2c/unbalanced-braces.ch 2024-02-26 16:53:56.000000000 +0100 ++++ texlive2024branch/texk/web2c/unbalanced-braces.ch 2024-03-24 23:32:27.599525156 +0100 +@@ -1,4 +1,4 @@ +-% $Id: unbalanced-braces.ch 70173 2024-02-26 15:53:56Z karl $ ++% $Id: unbalanced-braces.ch 70751 2024-03-24 22:32:26Z karl $ + % Fix overrun/underrun of \write and \output. David Fuchs, 2024. + % Public domain. + % +@@ -47,7 +47,7 @@ + begin decr(param_ptr); + flush_list(param_stack[param_ptr]); + end +- else if (token_type=output_text)and(output_active) then ++ else if (token_type=output_text)and(not output_can_end) then + fatal_error("Unbalanced output routine"); + @.Unbalanced output routine@> + @z +@@ -103,6 +103,19 @@ + % that we were just finished with it, so it's where the brace + % came from. + ++@x [45.989] l.19364 p.B417 ++@!output_active:boolean; {are we in the midst of an output routine?} ++@y ++@!output_active:boolean; {are we in the midst of an output routine?} ++@!output_can_end:boolean; {is this an auspicious time for it to end?} ++@z ++ ++@x [45.989] l.19367 p.B417 ++output_active:=false; insert_penalties:=0; ++@y ++output_active:=false; output_can_end:=false; insert_penalties:=0; ++@z ++ + % In <Resume the page builder after an output routine has come to an end>: + @x [45.1026] l.19938 p.B432 + begin if (loc<>null) or +@@ -121,8 +134,10 @@ + end_token_list; {conserve stack space in case more outputs are triggered} + end_graf; unsave; output_active:=false; insert_penalties:=0;@/ + @y +-end_graf; unsave; output_active:=false; insert_penalties:=0;@/ ++output_can_end:=true; + end_token_list; {conserve stack space in case more outputs are triggered} ++output_can_end:=false; ++end_graf; unsave; output_active:=false; insert_penalties:=0;@/ + @z + + % <Expand macros in the token list and...> had set mode:=0 while diff --git a/source/t/texlive/patches/quit-breaking-on-minor-zlib-bump.patch b/source/t/texlive/patches/quit-breaking-on-minor-zlib-bump.patch new file mode 100644 index 000000000..21730e550 --- /dev/null +++ b/source/t/texlive/patches/quit-breaking-on-minor-zlib-bump.patch @@ -0,0 +1,21 @@ +--- ./texk/web2c/luatexdir/luazlib/lzlib.c.orig 2024-04-09 12:32:20.232075369 -0500 ++++ ./texk/web2c/luatexdir/luazlib/lzlib.c 2024-04-09 12:33:53.746077461 -0500 +@@ -544,13 +544,16 @@ + + /* ====================================================================== */ + ++ /* There's no justification for breaking this every time zlib does a minor ++ upgrade without changing the ABI. Commenting out the below block: */ ++ + /* make sure header and library version are consistent */ +- const char* version = zlibVersion(); ++ /* const char* version = zlibVersion(); + if (strncmp(version, ZLIB_VERSION, 2)) + { + lua_pushfstring(L, "zlib library version does not match - header: %s, library: %s", ZLIB_VERSION, version); + lua_error(L); +- } ++ } */ + + /* create new metatable for zlib compression structures */ + luaL_newmetatable(L, ZSTREAMMETA); diff --git a/source/t/texlive/prep/packages.texmf b/source/t/texlive/prep/packages.texmf index adadc069b..093f49497 100644 --- a/source/t/texlive/prep/packages.texmf +++ b/source/t/texlive/prep/packages.texmf @@ -3,14 +3,6 @@ special_packages=" koma-script " -# keep precompiled binaries not shipped as source by TL upstream, -# corresponding package should be in -extra, keep an eye on that ;-) -# list binary, not package name -keep_precompiled=" - biber - luametatex - " - # Packages for -base, remaining packages are going to -extra PACKAGES=" collection-basic @@ -72,7 +64,6 @@ ibygrk levy lgreek mkgrkindex -teubner xgreek yannisgr @@ -157,6 +148,7 @@ mdframed moderncv moreverb multirow +nag nfssext-cfr nomencl opencolor @@ -173,6 +165,10 @@ ucs wrapfig2 xpatch xstring +zref +zref-check +zref-clever +zref-vario a0poster a4wide @@ -285,6 +281,7 @@ centerlastline changelayout changelog chappg +changepage chapterfolder cheatsheet checkend @@ -432,6 +429,7 @@ esindex etaremune eukdate eulerpx +europasscv everyhook everypage excludeonly @@ -539,7 +537,6 @@ highlightlatex histogr hobsub href-ul -hrefhide hvindex hvlogos hvpygmentex @@ -715,7 +712,7 @@ notoccite nowidow numberedblock numname -ocgx +ocgx2 ocr-latex oldstyle onlyamsmath @@ -763,6 +760,7 @@ phffullpagefigure phfparen phfquotetext phfsvnwatermark +phonenumbers photo picture piff @@ -894,10 +892,8 @@ subdepth subdocs subeqn subeqnarray -subfigmat subfiles subfloat -substitutefont suppose svgcolor svn @@ -1000,7 +996,6 @@ volumes vtable vwcol wallpaper -warning warpcol was widetable @@ -1043,7 +1038,6 @@ dhua etdipa fifinddo-info german -germbib germkorr l2picfaq l2tabu @@ -1052,7 +1046,6 @@ r_und_s schulmathematik termcal-de uhrzeit -umlaute voss-mathcol $(collection_by_size langpolish 8999 || exit 1) @@ -1071,14 +1064,13 @@ $(collection_by_size langcjk 2999 || exit 1) $(collection_by_size langother 29999 || exit 1) $(collection_by_size pictures 22999 || exit 1) -circuitikz xypic $(collection_by_size pstricks 99999 || exit 1) pst-pdf $(collection_by_size mathscience 19999 || exit 1) -siunits +siunitx $(collection_by_size games 39999 || exit 1) @@ -1123,7 +1115,6 @@ psizzl startex texsis xmltex -xmltexconfig # collection-binextra a2ping @@ -1216,6 +1207,7 @@ xpdfopen # collection-publishers chifoot ebook +har2nat inkpaper revtex scrjrnl @@ -1264,11 +1256,14 @@ dk-bib doipubmed econ-bst economic +esint +esint-type1 fbs figbib footbib francais-bst gbt7714 +harvard harvmac icite ietfbibs @@ -1303,7 +1298,6 @@ turabian-formatting urlbst usebib vak -xcite zootaxa-bst #collection-music diff --git a/source/t/texlive/prep/texmf_get.sh b/source/t/texlive/prep/texmf_get.sh index 6876a4cb0..4c0401800 100644..100755 --- a/source/t/texlive/prep/texmf_get.sh +++ b/source/t/texlive/prep/texmf_get.sh @@ -2,7 +2,7 @@ # texmf_get.sh # -# Copyright 2016 - 2023 Johannes Schoepfer, Germany, slackbuilds@schoepfer.info +# Copyright 2016-2024 Johannes Schoepfer, Germany, slackbuilds@schoepfer.info # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,7 +22,7 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -# version 15.1.1 +# version 15.1.2 # # Prepare xz-compressed tarballs of texlive-texmf-trees based on texlive.tlpdb # This script takes care of dependencies(as far as these are present in texlive.tlpdb) @@ -200,7 +200,7 @@ untar () { fi fi - # Delete binaries, these are provided by the buildscript + # Delete binaries, these are build by texlive.Slackbuild # Keep symlinks and scripts for arch in $platforms @@ -231,24 +231,12 @@ untar () { grep -e "shared object" -e ELF -e "gzip compressed data" | cut -f 1 -d : ) do binfile="$(echo $bin | rev | cut -d'/' -f1 | rev)" - remove_binary=yes - # for multiple binaries this extra loop is neccesary - for binary in $keep_precompiled - do - if [ "$(echo $bin | rev | cut -d'/' -f1 | rev)" = "$binary" ] - then - remove_binary=no - fi - done - if [ $remove_binary = yes ] - then - # might be already removed by a previous run - if [ -s "$bin" ] - then - #echo "Deleting binary \"$arch/$binfile\"" - rm $bin && echo "$package: $binfile" >> $binary_removed.$edition - fi - fi + # might be already removed by a previous run + if [ -s "$bin" ] + then + #echo "Deleting binary \"$arch/$binfile\"" + rm $bin && echo "$package: $binfile" >> $binary_removed.$edition + fi done # move scripts to linked-scripts for script in \ @@ -344,18 +332,18 @@ remove_cruft () { find $texmf/texmf-dist/ -type d -empty -delete echo "Replace duplicate files by symlinks, this may take a while ..." - LASTSIZE=x find $texmf/texmf-dist/ -type f -printf '%s %p\n' | sort -n | while read -r SIZE FILE do - # symlinks alse need some bytes, start linking above 10 bytes - if [ "$SIZE" -gt 10 -a "$SIZE" == "$LASTSIZE" ] + # symlinks also need some bytes, start linking above the typical + # symlink-size(depends on the filesystem though) + if [ "$SIZE" -gt 128 -a "$SIZE" == "$LASTSIZE" ] then if [ "$(sha512sum $FILE | cut -d' ' -f1)" \ - == "$(sha512sum $LASTFILE | cut -d' ' -f1)" ] + == "$(sha512sum $LASTFILE | cut -d' ' -f1)" ] then - echo "$FILE $LASTFILE $SIZE" >> $duplicatelog + echo "$FILE $LASTFILE $SIZE" >> $TMP/duplicates.$edition ln -srf $FILE $LASTFILE fi fi @@ -441,8 +429,8 @@ texmfget () { if [ -s "$dependencies" ] then - # check for .ARCH packages which may be binaries, scripts or links - # Binaries should all come from the sourcebuild(exception $keep_precompiled) + # check for .ARCH packages which may be binaries, scripts or links. + # Binaries are provided by texlive.SlackBuild for dependency in $(cat $dependencies) do echo $dependency | grep '\.ARCH'$ &>/dev/null @@ -592,7 +580,6 @@ LANG=C output=$TMP/packages output_doc=$TMP/packages.doc.tmp errorlog=$TMP/error.log -duplicatelog=$TMP/duplicate.log texmf=$TMP/texmf db=$TMP/texlive.tlpdb tmpfile=$TMP/tmpfile @@ -679,7 +666,6 @@ logfile=$TMP/$VERSION.log >$logfile >$tarball >$collections_done ->$duplicatelog >$files_split >$manpages >$packages_manpages @@ -688,6 +674,7 @@ logfile=$TMP/$VERSION.log >$packages_extra >$packages_base.doc >$packages_extra.doc +>$TMP/duplicates.$edition >$TMP/packages.$edition.meta >$TMP/packages.$edition.meta.uncompressed >$TMP/provides.run.$edition @@ -852,7 +839,7 @@ sed -i \ case $edition in base) - # Content info + # Provide index of Tex packages cat << EOF | gzip -9 >> $texmf/texmf-dist/packages.$edition.gz Content of -$edition: $(sed "/-linux$/d" $packages_base | sort) diff --git a/source/t/texlive/texlive-20230313-source-security_fix-1.patch b/source/t/texlive/texlive-20230313-source-security_fix-1.patch deleted file mode 100644 index cdce6e558..000000000 --- a/source/t/texlive/texlive-20230313-source-security_fix-1.patch +++ /dev/null @@ -1,2034 +0,0 @@ -Submitted By: Ken Moffat <ken at linuxfromscratch dot org> -Date: 2023-05-04 -Initial Package Version: 20230313 -Upstream Status: Applied -Origin: Upstream -Description: LuaTeX fixes for obscure ways to work around some security features. - -On this occasion I've taken the three commits in the mirror which were -relevant to this, and omitted the many other fixes, some of which are -only parts of an svn commit with other changes for texmf-dist (not in the -git mirror) and other fixes for minor issues in japanese variants, some -of which are very large commits. I have therefore also ignored the -change to fix the uuptex test. - -From ad8702a45e317fa9d396ef4d50467c37964a9543 Mon Sep 17 00:00:00 2001 -From: Luigi Scarso <luigi.scarso@gmail.com> -Date: Fri, 31 Mar 2023 20:15:48 +0000 -Subject: [PATCH 15/39] Bump to version 1.16.1; bugfix for setpdforigin() (A. - Matthias) - -git-svn-id: svn://tug.org/texlive/trunk/Build/source@66717 c570f23f-e606-0410-a88d-b1316a301751 ---- - texk/web2c/luatexdir/ChangeLog | 5 ++++- - texk/web2c/luatexdir/lua/lpdflib.c | 2 +- - texk/web2c/luatexdir/luatex.c | 4 ++-- - texk/web2c/luatexdir/luatex_svnversion.h | 2 +- - 4 files changed, 8 insertions(+), 5 deletions(-) - -diff --git a/texk/web2c/luatexdir/ChangeLog b/texk/web2c/luatexdir/ChangeLog -index 868f64cc3..27fbebcbb 100644 ---- a/texk/web2c/luatexdir/ChangeLog -+++ b/texk/web2c/luatexdir/ChangeLog -@@ -1,5 +1,8 @@ -+2023-03-30 Luigi Scarso <luigi.scarso@gmail.com> -+ * bugfix for setpdforigin() (A. Matthias) -+ - 2023-02-22 Luigi Scarso <luigi.scarso@gmail.com> -- * fix latelua data reference (side effect of deferred late additions) (H.Hagen) -+ * fix latelua data reference (side effect of deferred late additions) (H.Hagen) - - 2023-02-18 Luigi Scarso <luigi.scarso@gmail.com> - * Fixed the "Invalid unicode ranges in CMap beginbfrange operator bug" as in pdfTeX (Hàn Thế Thành) -diff --git a/texk/web2c/luatexdir/lua/lpdflib.c b/texk/web2c/luatexdir/lua/lpdflib.c -index 70fbde76b..263fd5644 100644 ---- a/texk/web2c/luatexdir/lua/lpdflib.c -+++ b/texk/web2c/luatexdir/lua/lpdflib.c -@@ -1048,7 +1048,7 @@ static int setpdforigin(lua_State * L) - if (lua_type(L, 1) == LUA_TNUMBER) { - h = (int) lua_roundnumber(L, 1); - if (lua_type(L, 2) == LUA_TNUMBER) { -- v = (int) lua_roundnumber(L, 1); -+ v = (int) lua_roundnumber(L, 2); - } else { - v = h; - } -diff --git a/texk/web2c/luatexdir/luatex.c b/texk/web2c/luatexdir/luatex.c -index c11b0ca62..40eaa2a11 100644 ---- a/texk/web2c/luatexdir/luatex.c -+++ b/texk/web2c/luatexdir/luatex.c -@@ -33,8 +33,8 @@ - */ - - int luatex_version = 116; --int luatex_revision = '0'; --const char *luatex_version_string = "1.16.0"; -+int luatex_revision = '1'; -+const char *luatex_version_string = "1.16.1"; - const char *engine_name = my_name; - - #include <kpathsea/c-ctype.h> -diff --git a/texk/web2c/luatexdir/luatex_svnversion.h b/texk/web2c/luatexdir/luatex_svnversion.h -index 257aec718..76d929807 100644 ---- a/texk/web2c/luatexdir/luatex_svnversion.h -+++ b/texk/web2c/luatexdir/luatex_svnversion.h -@@ -1,4 +1,4 @@ - #ifndef luatex_svn_revision_h - #define luatex_svn_revision_h --#define luatex_svn_revision 7567 -+#define luatex_svn_revision 7569 - #endif --- -2.39.2 - -From 6ace460233115bd42b36e63c7ddce11cc92a1ebd Mon Sep 17 00:00:00 2001 -From: Luigi Scarso <luigi.scarso@gmail.com> -Date: Sat, 29 Apr 2023 14:41:51 +0000 -Subject: [PATCH 36/39] LuaTeX 1.17.0 . - -git-svn-id: svn://tug.org/texlive/trunk/Build/source@66967 c570f23f-e606-0410-a88d-b1316a301751 ---- - texk/web2c/luatexdir/ChangeLog | 31 + - texk/web2c/luatexdir/NEWS | 24 + - texk/web2c/luatexdir/font/writettf.c | 3 +- - texk/web2c/luatexdir/lua/llualib.c | 10 +- - texk/web2c/luatexdir/lua/loslibext.c | 171 +++ - texk/web2c/luatexdir/lua/luainit.c | 39 +- - texk/web2c/luatexdir/lua/luastuff.c | 20 +- - texk/web2c/luatexdir/lua/luatex-api.h | 1 + - texk/web2c/luatexdir/lua/luatex-core.c | 1225 +++++++++-------- - texk/web2c/luatexdir/lua/luatex-core.lua | 24 +- - .../luatexdir/luafontloader/src/luafflib.c | 1 - - .../luatexdir/luasocket/src/lua_preload.c | 9 + - texk/web2c/luatexdir/luatex.c | 6 +- - texk/web2c/luatexdir/luatex_svnversion.h | 2 +- - texk/web2c/luatexdir/tex/texnodes.c | 2 +- - 15 files changed, 932 insertions(+), 636 deletions(-) - -diff --git a/texk/web2c/luatexdir/ChangeLog b/texk/web2c/luatexdir/ChangeLog -index 27fbebcbb..f182f16e4 100644 ---- a/texk/web2c/luatexdir/ChangeLog -+++ b/texk/web2c/luatexdir/ChangeLog -@@ -1,3 +1,34 @@ -+2023-04-29 Luigi Scarso <luigi.scarso@gmail.com> -+ * LuaTeX 1.17.0 -+ -+2023-04-28 Luigi Scarso <luigi.scarso@gmail.com> -+ * new option --no-socket, same as --nosocket -+ -+2023-04-27 Luigi Scarso <luigi.scarso@gmail.com> -+ * new option --socket to split socket and shell escape; -+ * the mime library is always available (Max Chernoff); -+ * Fixed ChangeLog -+ -+2023-04-25 Luigi Scarso <luigi.scarso@gmail.com> -+ * socket library by default not enabled; -+ it is enabled with --shell-escape but not with --shell-restricted. -+ The option ---nosocket remains unchanged. -+ The two new functions os.socketgettime and os.socketsleep are -+ like socket.gettime and socket.sleep, but they are always available. -+ * Luatex 1.17.0 -+ -+2023-04-24 Luigi Scarso <luigi.scarso@gmail.com> -+ * static kpse.check_permissions in os.kpsepopen -+ * Fixed date in ChangeLog -+ -+2023-04-23 Luigi Scarso <luigi.scarso@gmail.com> -+ * new os.kpsepopen -- replace io.popen if kpse is active. -+ * Luatex 1.16.2 -+ -+2023-04-18 Luigi Scarso <luigi.scarso@gmail.com> -+ * lua.setluaname(n, s) and lua.getluaname(n): -+ fixed mismatch between documentation and implementation (J. Friedrich). -+ - 2023-03-30 Luigi Scarso <luigi.scarso@gmail.com> - * bugfix for setpdforigin() (A. Matthias) - -diff --git a/texk/web2c/luatexdir/NEWS b/texk/web2c/luatexdir/NEWS -index 8557c139d..41d6d4d14 100644 ---- a/texk/web2c/luatexdir/NEWS -+++ b/texk/web2c/luatexdir/NEWS -@@ -1,3 +1,27 @@ -+============================================================== -+LuaTeX 1.17.0 2023-04-29 -+============================================================== -+ -+- A breaking backward compatibility change: by default the socket -+ library is not enabled . -+ The new option --socket enable the socket library as -+ before, as also --shell-escape (without --shell-restricted); -+ --nosocket, --no-socket , --safer disabled the library, and -+ they have the priority in case of conflicting options. -+ The mime library is always available; socket.sleep -+ and socket.gettime are duplicated as os.socketsleep -+ and os.socketgettime, both always available. -+ The new os.kpsepopen replace io.popopen in kpse mode -+ (i.e. when kpse_init is not zero) as it was before -+ but the permission now cannot be changed anymore with -+ kpse.check_permission . -+ The function os.kpsepopen follows the same restrictions -+ as io.popen . -+ Thanks to Max Chernoff for debugging. -+ -+ -+ -+ - ============================================================== - LuaTeX 1.16.0 2023-02-19 - ============================================================== -diff --git a/texk/web2c/luatexdir/font/writettf.c b/texk/web2c/luatexdir/font/writettf.c -index cf034e98d..6270cbf04 100644 ---- a/texk/web2c/luatexdir/font/writettf.c -+++ b/texk/web2c/luatexdir/font/writettf.c -@@ -1518,7 +1518,7 @@ static void do_writeotf(PDF pdf, fd_entry * fd) - if (tracefilenames) - tex_printf("<<%s", cur_file_name); - ttf_read_tabdir(); -- /*tex Read teh font parameters. */ -+ /*tex Read the font parameters. */ - if (ttf_name_lookup("head", false) != NULL) - ttf_read_head(); - if (ttf_name_lookup("hhea", false) != NULL) -@@ -1570,4 +1570,3 @@ void writeotf(PDF pdf, fd_entry * fd) - xfree(ttf_buffer); - cur_file_name = NULL; - } -- -diff --git a/texk/web2c/luatexdir/lua/llualib.c b/texk/web2c/luatexdir/lua/llualib.c -index 0586aba02..d91a9a729 100644 ---- a/texk/web2c/luatexdir/lua/llualib.c -+++ b/texk/web2c/luatexdir/lua/llualib.c -@@ -319,8 +319,8 @@ static int set_luaname(lua_State * L) - { - int k; - const char *s; -- if (lua_gettop(L) == 3) { -- k = (int) luaL_checkinteger(L, 2); -+ if (lua_gettop(L) == 2) { -+ k = (int) luaL_checkinteger(L, 1); - if (k > 65535 || k < 0) { - /* error */ - } else { -@@ -328,8 +328,8 @@ static int set_luaname(lua_State * L) - free(luanames[k]); - luanames[k] = NULL; - } -- if (lua_type(L,3) == LUA_TSTRING) { -- s = lua_tostring(L, 3); -+ if (lua_type(L, 2) == LUA_TSTRING) { -+ s = lua_tostring(L, 2); - if (s != NULL) - luanames[k] = xstrdup(s); - } -@@ -340,7 +340,7 @@ static int set_luaname(lua_State * L) - - static int get_luaname(lua_State * L) - { -- int k = (int) luaL_checkinteger(L, 2); -+ int k = (int) luaL_checkinteger(L, 1); - if (k > 65535 || k < 0) { - /* error */ - lua_pushnil(L); -diff --git a/texk/web2c/luatexdir/lua/loslibext.c b/texk/web2c/luatexdir/lua/loslibext.c -index 2e6befc2d..79368ef92 100644 ---- a/texk/web2c/luatexdir/lua/loslibext.c -+++ b/texk/web2c/luatexdir/lua/loslibext.c -@@ -1047,6 +1047,167 @@ static int os_execute(lua_State * L) - } - - -+/* -+** ====================================================== -+** l_kpse_popen spawns a new process connected to the current -+** one through the file streams with some checks by kpse. -+** Almost verbatim from Lua liolib.c . -+** ======================================================= -+*/ -+#if !defined(l_kpse_popen) /* { */ -+ -+#if defined(LUA_USE_POSIX) /* { */ -+ -+#define l_kpse_popen(L,c,m) (fflush(NULL), popen(c,m)) -+#define l_kpse_pclose(L,file) (pclose(file)) -+ -+#elif defined(LUA_USE_WINDOWS) /* }{ */ -+ -+#define l_kpse_popen(L,c,m) (_popen(c,m)) -+#define l_kpse_pclose(L,file) (_pclose(file)) -+ -+#else /* }{ */ -+ -+/* ISO C definitions */ -+#define l_kpse_popen(L,c,m) \ -+ ((void)((void)c, m), \ -+ luaL_error(L, "'popen' not supported"), \ -+ (FILE*)0) -+#define l_kpse_pclose(L,file) ((void)L, (void)file, -1) -+ -+#endif /* } */ -+ -+#endif /* } */ -+typedef luaL_Stream LStream; -+#define tolstream(L) ((LStream *)luaL_checkudata(L, 1, LUA_FILEHANDLE)) -+static LStream *newprefile (lua_State *L) { -+ LStream *p = (LStream *)lua_newuserdata(L, sizeof(LStream)); -+ p->closef = NULL; /* mark file handle as 'closed' */ -+ luaL_setmetatable(L, LUA_FILEHANDLE); -+ return p; -+} -+static int io_kpse_pclose (lua_State *L) { -+ LStream *p = tolstream(L); -+ return luaL_execresult(L, l_kpse_pclose(L, p->f)); -+} -+static int io_kpse_check_permissions(lua_State *L) { -+ const char *filename = luaL_checkstring(L, 1); -+ if (filename == NULL) { -+ lua_pushboolean(L,0); -+ lua_pushliteral(L,"no command name given"); -+ } else if (shellenabledp <= 0) { -+ lua_pushboolean(L,0); -+ lua_pushliteral(L,"all command execution is disabled"); -+ } else if (restrictedshell == 0) { -+ lua_pushboolean(L,1); -+ lua_pushstring(L,filename); -+ } else { -+ char *safecmd = NULL; -+ char *cmdname = NULL; -+ switch (shell_cmd_is_allowed(filename, &safecmd, &cmdname)) { -+ case 0: -+ lua_pushboolean(L,0); -+ lua_pushliteral(L, "specific command execution disabled"); -+ break; -+ case 1: -+ /* doesn't happen */ -+ lua_pushboolean(L,1); -+ lua_pushstring(L,filename); -+ break; -+ case 2: -+ lua_pushboolean(L,1); -+ lua_pushstring(L,safecmd); -+ break; -+ default: -+ /* -1 */ -+ lua_pushboolean(L,0); -+ lua_pushliteral(L, "bad command line quoting"); -+ break; -+ } -+ } -+ return 2; -+} -+static int io_kpse_popen (lua_State *L) { -+ const char *filename = NULL; -+ const char *mode = NULL; -+ LStream *p = NULL; -+ int okay; -+ filename = luaL_checkstring(L, 1); -+ mode = luaL_optstring(L, 2, "r"); -+ lua_pushstring(L,filename); -+ io_kpse_check_permissions(L); -+ filename = luaL_checkstring(L, -1); -+ okay = lua_toboolean(L,-2); -+ if (okay && filename) { -+ p = newprefile(L); -+ luaL_argcheck(L, ((mode[0] == 'r' || mode[0] == 'w') && mode[1] == '\0'), -+ 2, "invalid mode"); -+ p->f = l_kpse_popen(L, filename, mode); -+ p->closef = &io_kpse_pclose; -+ return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; -+ } else { -+ lua_pushnil(L); -+ lua_pushvalue(L,-2); -+ return 2; -+ } -+} -+ -+ -+ -+/* socket.sleep and socket.gettime */ -+/* are duplicated here, and they are */ -+/* always available (the socket library */ -+/* can be nil in some setups) */ -+#ifdef _WIN32 -+static int socket_timeout_lua_sleep(lua_State *L) -+{ -+ double n = luaL_checknumber(L, 1); -+ if (n < 0.0) n = 0.0; -+ if (n < DBL_MAX/1000.0) n *= 1000.0; -+ if (n > INT_MAX) n = INT_MAX; -+ Sleep((int)n); -+ return 0; -+} -+static double socket_timeout_gettime(void) { -+ FILETIME ft; -+ double t; -+ GetSystemTimeAsFileTime(&ft); -+ /* Windows file time (time since January 1, 1601 (UTC)) */ -+ t = ft.dwLowDateTime/1.0e7 + ft.dwHighDateTime*(4294967296.0/1.0e7); -+ /* convert to Unix Epoch time (time since January 1, 1970 (UTC)) */ -+ return (t - 11644473600.0); -+} -+#else -+static int socket_timeout_lua_sleep(lua_State *L) -+{ -+ double n = luaL_checknumber(L, 1); -+ struct timespec t, r; -+ if (n < 0.0) n = 0.0; -+ if (n > INT_MAX) n = INT_MAX; -+ t.tv_sec = (int) n; -+ n -= t.tv_sec; -+ t.tv_nsec = (int) (n * 1000000000); -+ if (t.tv_nsec >= 1000000000) t.tv_nsec = 999999999; -+ while (nanosleep(&t, &r) != 0) { -+ t.tv_sec = r.tv_sec; -+ t.tv_nsec = r.tv_nsec; -+ } -+ return 0; -+} -+static double socket_timeout_gettime(void) { -+ struct timeval v; -+ gettimeofday(&v, (struct timezone *) NULL); -+ /* Unix Epoch time (time since January 1, 1970 (UTC)) */ -+ return v.tv_sec + v.tv_usec/1.0e6; -+} -+#endif -+static int socket_timeout_lua_gettime(lua_State *L) -+{ -+ lua_pushnumber(L, socket_timeout_gettime()); -+ return 1; -+} -+ -+ - void open_oslibext(lua_State * L) - { - -@@ -1081,5 +1242,15 @@ void open_oslibext(lua_State * L) - lua_pushcfunction(L, os_tmpdir); - lua_setfield(L, -2, "tmpdir"); - -+ lua_pushcfunction(L, io_kpse_popen); -+ lua_setfield(L, -2, "kpsepopen"); -+ -+ lua_pushcfunction(L, socket_timeout_lua_sleep); -+ lua_setfield(L, -2, "socketsleep"); -+ -+ lua_pushcfunction(L, socket_timeout_lua_gettime); -+ lua_setfield(L, -2, "socketgettime"); -+ -+ - lua_pop(L, 1); /* pop the table */ - } -diff --git a/texk/web2c/luatexdir/lua/luainit.c b/texk/web2c/luatexdir/lua/luainit.c -index 9eecb714c..bac5444c2 100644 ---- a/texk/web2c/luatexdir/lua/luainit.c -+++ b/texk/web2c/luatexdir/lua/luainit.c -@@ -85,6 +85,8 @@ const_string LUATEX_IHELP[] = { - " --lua=FILE load and execute a lua initialization script", - " --[no-]mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", - " --nosocket disable the lua socket library", -+ " --no-socket disable the lua socket library", -+ " --socket enable the lua socket library", - " --output-comment=STRING use STRING for DVI file comment instead of date (no effect for PDF)", - " --output-directory=DIR use existing DIR as the directory to write files in", - " --output-format=FORMAT use FORMAT for job output; FORMAT is 'dvi' or 'pdf'", -@@ -108,6 +110,7 @@ const_string LUATEX_IHELP[] = { - #endif - "", - "See the reference manual for more information about the startup process.", -+ "LuaTeX package page: https://ctan.org/pkg/luatex", - NULL - }; - -@@ -212,9 +215,30 @@ char *jithash_hashname = NULL; - #endif - - int safer_option = 0; --int nosocket_option = 0; -+int nosocket_option = 1; -+int nosocket_cli_option = 0; -+int yessocket_cli_option = 0; -+int socket_bitmask = 0; - int utc_option = 0; - -+/*tex We use a bitmask for the socket library: |0000| and |1xxx| implies |--nosocket|, -+ otherwise the socket library is enabled. Default value is |0000|, i.e. |--nosocket|. -+*/ -+#define UPDATE_SOCKET_STATUS() do { \ -+ socket_bitmask = 0; \ -+ socket_bitmask = safer_option==1? (8+socket_bitmask):socket_bitmask;\ -+ socket_bitmask = nosocket_cli_option==1? (4+socket_bitmask):socket_bitmask;\ -+ socket_bitmask = (shellenabledp == 1 && restrictedshell == 0)?(2+socket_bitmask):socket_bitmask;\ -+ socket_bitmask = yessocket_cli_option==1? (1+socket_bitmask):socket_bitmask;\ -+ if( socket_bitmask==0) { \ -+ nosocket_option = 1; \ -+ } else if ( socket_bitmask<4) { \ -+ nosocket_option = 0; \ -+ } else { \ -+ nosocket_option = 1; \ -+ } \ -+} while (0) -+ - /*tex - - Test whether getopt found an option ``A''. Assumes the option index is in the -@@ -242,7 +266,9 @@ static struct option long_options[] = { - #endif - {"safer", 0, &safer_option, 1}, - {"utc", 0, &utc_option, 1}, -- {"nosocket", 0, &nosocket_option, 1}, -+ {"nosocket", 0, &nosocket_cli_option, 1}, -+ {"no-socket", 0, &nosocket_cli_option, 1}, -+ {"socket", 0, &yessocket_cli_option, 1}, - {"help", 0, 0, 0}, - {"ini", 0, &ini_version, 1}, - {"interaction", 1, 0, 0}, -@@ -524,14 +550,11 @@ static void parse_options(int ac, char **av) - input_name = xstrdup(sargv[sargc-1]); - sargv[sargc-1] = normalize_quotes(input_name, "argument"); - } -- if (safer_option) /* --safer implies --nosocket */ -- nosocket_option = 1; -+ UPDATE_SOCKET_STATUS(); - return; - #endif - } -- /*tex |--safer| implies |--nosocket| */ -- if (safer_option) -- nosocket_option = 1; -+ UPDATE_SOCKET_STATUS(); - /*tex Finalize the input filename. */ - if (input_name != NULL) { - argv[optind] = normalize_quotes(input_name, "argument"); -@@ -981,6 +1004,7 @@ void lua_initialize(int ac, char **av) - shellenabledp = true; - restrictedshell = false; - safer_option = 0; -+ nosocket_option = 0; - } - /*tex - Get the current locale (it should be |C|) and save |LC_CTYPE|, |LC_COLLATE| -@@ -1149,6 +1173,7 @@ void lua_initialize(int ac, char **av) - } - free(v1); - } -+ UPDATE_SOCKET_STATUS(); - /*tex If shell escapes are restricted, get allowed cmds from cnf. */ - if (shellenabledp && restrictedshell == 1) { - v1 = NULL; -diff --git a/texk/web2c/luatexdir/lua/luastuff.c b/texk/web2c/luatexdir/lua/luastuff.c -index 4176431ed..62d21c321 100644 ---- a/texk/web2c/luatexdir/lua/luastuff.c -+++ b/texk/web2c/luatexdir/lua/luastuff.c -@@ -323,7 +323,8 @@ void luainterpreter(void) - /*tex - The socket and mime libraries are a bit tricky to open because they use a - load-time dependency that has to be worked around for luatex, where the C -- module is loaded way before the lua module. -+ module is loaded way before the lua module. -+ The mime library is always available, even if the socket library is not enabled. - */ - if (!nosocket_option) { - /* todo: move this to common */ -@@ -348,6 +349,23 @@ void luainterpreter(void) - lua_pop(L, 2); - /*tex preload the pure \LUA\ modules */ - luatex_socketlua_open(L); -+ } else { -+ lua_getglobal(L, "package"); -+ lua_getfield(L, -1, "loaded"); -+ if (!lua_istable(L, -1)) { -+ lua_newtable(L); -+ lua_setfield(L, -2, "loaded"); -+ lua_getfield(L, -1, "loaded"); -+ } -+ /*tex |package.loaded.mime = nil| */ -+ luaopen_mime_core(L); -+ lua_setfield(L, -2, "mime.core"); -+ lua_pushnil(L); -+ lua_setfield(L, -2, "mime"); -+ /*tex pop the table */ -+ lua_pop(L, 1); -+ /*tex preload the pure \LUA\ mime module */ -+ luatex_socketlua_safe_open(L); - } - luaopen_zlib(L); - luaopen_gzip(L); -diff --git a/texk/web2c/luatexdir/lua/luatex-api.h b/texk/web2c/luatexdir/lua/luatex-api.h -index 553be2c18..3ade2bc4d 100644 ---- a/texk/web2c/luatexdir/lua/luatex-api.h -+++ b/texk/web2c/luatexdir/lua/luatex-api.h -@@ -123,6 +123,7 @@ extern int luaopen_profiler(lua_State * L); - extern int luaopen_socket_core(lua_State * L); - extern int luaopen_mime_core(lua_State * L); - extern void luatex_socketlua_open(lua_State * L); -+extern void luatex_socketlua_safe_open(lua_State * L); - - extern int luaopen_img(lua_State * L); - extern int l_new_image(lua_State * L); -diff --git a/texk/web2c/luatexdir/lua/luatex-core.c b/texk/web2c/luatexdir/lua/luatex-core.c -index c9c4d941b..d912bf4a5 100644 ---- a/texk/web2c/luatexdir/lua/luatex-core.c -+++ b/texk/web2c/luatexdir/lua/luatex-core.c -@@ -27,7 +27,7 @@ int load_luatex_core_lua (lua_State * L) - 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x54, 0x65, 0x61, - 0x6d, 0x27, 0x2c, 0x0a, 0x2d, 0x2d, 0x20, 0x7d, 0x0a, 0x0a, 0x4c, 0x55, 0x41, 0x54, 0x45, 0x58, - 0x43, 0x4f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x20, 0x3d, 0x20, 0x31, 0x2e, -- 0x31, 0x35, 0x31, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, -+ 0x31, 0x36, 0x31, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, - 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x20, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x68, 0x65, 0x72, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x20, 0x68, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, -@@ -53,632 +53,645 @@ int load_luatex_core_lua (lua_State * L) - 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6f, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x0a, 0x2d, 0x2d, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, -- 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -- 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x73, 0x74, -- 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, 0x61, 0x66, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, -- 0x61, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, 0x68, 0x65, -- 0x6c, 0x6c, 0x5f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x30, 0x20, 0x28, -- 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x29, 0x20, 0x31, 0x20, 0x28, 0x61, 0x6e, 0x79, -- 0x74, 0x68, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x32, 0x20, 0x28, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, -- 0x63, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, 0x73, 0x65, -- 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, -- 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, -- 0x20, 0x30, 0x20, 0x31, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x75, 0x73, 0x65, -- 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x79, -- 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, -- 0x62, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x20, 0x3d, -- 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x74, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, -- 0x67, 0x65, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x69, 0x6f, 0x2e, -- 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -- 0x6c, 0x20, 0x6d, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x2e, 0x6c, 0x69, 0x6e, -- 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, -- 0x73, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, -- 0x6f, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x63, 0x68, 0x65, 0x63, 0x6b, -- 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, -- 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x6b, 0x70, -- 0x73, 0x65, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, -- 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, -- 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, -- 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x72, 0x65, 0x63, 0x6f, -- 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, -- 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, -- 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x70, -- 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, -- 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, -- 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, -- 0x5f, 0x6e, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, -- 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, -- 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, -- 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x74, 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, -- 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, -- 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, -- 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, -- 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, -- 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, -- 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, -- 0x68, 0x6f, 0x77, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, -- 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x6e, 0x64, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x77, -- 0x27, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, -- 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, -- 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, -- 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, -- 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -- 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, -- 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, -- 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, -+ 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x20, -+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, 0x61, 0x66, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, -+ 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x73, -+ 0x68, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x2d, 0x2d, 0x20, 0x30, -+ 0x20, 0x28, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x29, 0x20, 0x31, 0x20, 0x28, 0x61, -+ 0x6e, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x29, 0x20, 0x32, 0x20, 0x28, 0x72, 0x65, 0x73, 0x74, -+ 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x29, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, -+ 0x73, 0x65, 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, -+ 0x75, 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x20, 0x20, 0x20, 0x20, -+ 0x2d, 0x2d, 0x20, 0x30, 0x20, 0x31, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x75, -+ 0x73, 0x65, 0x64, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, -+ 0x74, 0x79, 0x70, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, -+ 0x73, 0x75, 0x62, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, -+ 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x69, 0x6e, 0x64, -+ 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x69, 0x6e, 0x64, 0x0a, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x74, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x3d, 0x20, 0x67, 0x65, 0x74, 0x6d, 0x65, 0x74, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x28, 0x69, -+ 0x6f, 0x2e, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, -+ 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x2e, 0x6c, -+ 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -+ 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, -+ 0x73, 0x69, 0x6f, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x63, 0x68, 0x65, -+ 0x63, 0x6b, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, -+ 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x20, 0x3d, 0x20, -+ 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, -+ 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -+ 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, -+ 0x75, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x2e, 0x72, 0x65, -+ 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x65, -+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6f, -+ 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x2d, 0x2d, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, -+ 0x6e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, -+ 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, 0x74, -+ 0x20, 0x6e, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, -+ 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, -+ 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x2e, 0x72, 0x65, -+ 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, -+ 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, -+ 0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6c, -+ 0x69, 0x6e, 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, -+ 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x74, 0x2e, 0x73, -+ 0x61, 0x76, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x74, 0x5f, 0x6c, 0x69, 0x6e, -+ 0x65, 0x73, 0x20, 0x2d, 0x2d, 0x20, 0x61, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x20, 0x72, 0x65, 0x61, -+ 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -+ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, -+ 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, - 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, -+ 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, -+ 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, -+ 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x68, 0x6f, 0x77, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x27, -+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x27, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x6e, 0x64, -+ 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6b, -+ 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, -+ 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x77, 0x27, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x70, 0x75, 0x74, -+ 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, -+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, -+ 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x28, -+ 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, -+ 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, -+ 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, -+ 0x27, 0x5b, 0x5e, 0x72, 0x62, 0x5d, 0x27, 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, -+ 0x3d, 0x20, 0x27, 0x27, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, -- 0x67, 0x73, 0x75, 0x62, 0x28, 0x68, 0x6f, 0x77, 0x2c, 0x27, 0x5b, 0x5e, 0x72, 0x62, 0x5d, 0x27, -- 0x2c, 0x27, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x69, 0x66, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x74, 0x68, -- 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x68, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, -- 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, -- 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, -- 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -- 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, -- 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, -- 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x2c, 0x20, 0x66, -- 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x65, 0x63, -- 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x6b, 0x61, -- 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -- 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, -- 0x6e, 0x64, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, -- 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, -- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, -- 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, -- 0x72, 0x20, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -+ 0x27, 0x72, 0x27, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, -+ 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, -+ 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, -+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, -+ 0x6e, 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x6e, 0x6f, 0x74, -+ 0x20, 0x6e, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, -+ 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x2d, 0x2d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, -+ 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x6b, 0x61, 0x79, -+ 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x5f, 0x63, -+ 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x28, 0x6e, -+ 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x69, -+ 0x66, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, -+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x70, 0x6f, -+ 0x70, 0x65, 0x6e, 0x28, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x2d, 0x2d, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, -+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, -+ 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x6e, 0x61, -+ 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, -+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, -+ 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x27, 0x72, 0x27, -+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, -+ 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -+ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -- 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, -- 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -- 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, -- 0x46, 0x6f, 0x72, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, -- 0x74, 0x68, 0x65, 0x20, 0x67, 0x63, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x6b, -- 0x69, 0x63, 0x6b, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x6e, 0x65, 0x65, -- 0x64, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, -- 0x63, 0x69, 0x74, 0x6c, 0x79, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x6f, 0x20, -- 0x74, 0x68, 0x61, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, -- 0x69, 0x73, 0x20, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, -- 0x70, 0x65, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, -- 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, -- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, -- 0x69, 0x6e, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6e, -- 0x61, 0x6d, 0x65, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, -+ 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, -+ 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x65, -+ 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x46, 0x6f, 0x72, 0x20, 0x73, -+ 0x6f, 0x6d, 0x65, 0x20, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, -+ 0x63, 0x20, 0x64, 0x6f, 0x65, 0x73, 0x6e, 0x27, 0x74, 0x20, 0x6b, 0x69, 0x63, 0x6b, 0x20, 0x69, -+ 0x6e, 0x20, 0x73, 0x6f, 0x20, 0x77, 0x65, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, -+ 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x6c, 0x79, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, -+ 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x20, 0x66, 0x6c, -+ 0x75, 0x73, 0x68, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x3d, 0x20, -+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2c, 0x20, 0x74, 0x79, 0x70, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, -+ 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, -+ 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x74, 0x79, 0x70, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x20, -+ 0x3d, 0x3d, 0x20, 0x22, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x20, 0x74, 0x68, 0x65, 0x6e, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, -+ 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x6e, -+ 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x27, 0x72, 0x27, 0x29, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, - 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x69, 0x6f, 0x5f, 0x6f, -- 0x70, 0x65, 0x6e, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x68, 0x6f, 0x77, 0x20, 0x6f, 0x72, 0x20, -- 0x27, 0x72, 0x27, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, -- 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, -+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, -+ 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, -+ 0x20, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, -- 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, -- 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x0a, 0x20, -+ 0x66, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -+ 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6c, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, -+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, -+ 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, -+ 0x20, 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x69, 0x74, 0x20, 0x74, 0x68, 0x69, -+ 0x73, 0x20, 0x77, 0x61, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x70, 0x61, -+ 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x27, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x27, -+ 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x27, 0x22, 0x20, 0x2e, -+ 0x2e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x20, 0x22, 0x27, 0x22, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x69, -+ 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, -+ 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, -+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -+ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, -+ 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, -+ 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, -+ 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x74, 0x2e, -+ 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, -+ 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, -+ 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, -+ 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, -+ 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, -+ 0x74, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x20, 0x75, 0x73, 0x65, 0x20, -+ 0x6f, 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x73, 0x2e, 0x6b, -+ 0x70, 0x73, 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, -+ 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x65, 0x6c, 0x73, 0x65, -+ 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, -+ 0x61, 0x79, 0x62, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, -+ 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, -+ 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x20, 0x3d, -+ 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, -+ 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, -+ 0x61, 0x74, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, -+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, -+ 0x6d, 0x6d, 0x79, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, -+ 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, -+ 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, -+ 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6e, 0x6c, -+ 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x73, 0x61, 0x66, 0x65, 0x72, 0x20, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, -+ 0x69, 0x6f, 0x6e, 0x20, 0x25, 0x71, 0x20, 0x69, 0x73, 0x20, 0x25, 0x73, 0x22, 0x2c, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x22, 0x6c, 0x69, -+ 0x6d, 0x69, 0x74, 0x65, 0x64, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x22, 0x64, 0x69, 0x73, 0x61, 0x62, -+ 0x6c, 0x65, 0x64, 0x22, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, -+ 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, -- 0x6e, 0x20, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x66, 0x6f, 0x72, 0x20, -- 0x74, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x77, 0x68, 0x6f, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x69, -- 0x74, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x77, 0x61, 0x79, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, -- 0x72, 0x28, 0x22, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x20, 0x27, 0x69, 0x6f, 0x2e, 0x6c, -- 0x69, 0x6e, 0x65, 0x73, 0x27, 0x20, 0x63, 0x61, 0x6e, 0x27, 0x74, 0x20, 0x6f, 0x70, 0x65, 0x6e, -- 0x20, 0x27, 0x22, 0x20, 0x2e, 0x2e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x20, 0x22, -- 0x27, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -- 0x75, 0x72, 0x6e, 0x20, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x28, 0x29, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, -- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, -- 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, -- 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x69, 0x6f, 0x5f, 0x72, 0x65, -- 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x28, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, -- 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6d, 0x74, 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x75, 0x61, -- 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x0a, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x3d, 0x20, -- 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x75, -- 0x61, 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x0a, 0x0a, 0x65, -- 0x6c, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x77, 0x65, 0x20, 0x61, -- 0x73, 0x73, 0x75, 0x6d, 0x65, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, -- 0x20, 0x65, 0x6c, 0x73, 0x65, 0x77, 0x68, 0x65, 0x72, 0x65, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, -- 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6f, -- 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6b, 0x70, 0x73, 0x65, -- 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, -- 0x5f, 0x6e, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x69, 0x6f, 0x2e, 0x77, 0x72, 0x69, 0x74, -- 0x65, 0x5f, 0x6e, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, -- 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, -- 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, -- 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, -- 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, -- 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, -- 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x72, -- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x72, 0x69, -- 0x74, 0x65, 0x5f, 0x6e, 0x6c, 0x28, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x73, 0x61, -- 0x66, 0x65, 0x72, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x74, 0x2c, 0x20, -- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x25, 0x71, 0x20, 0x69, 0x73, 0x20, 0x25, -- 0x73, 0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x20, 0x61, 0x6e, -- 0x64, 0x20, 0x22, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x22, -- 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6f, -- 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, -- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x6c, -- 0x69, 0x6d, 0x69, 0x74, 0x28, 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, -- 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, -- 0x74, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, -- 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, -- 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, -- 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, -- 0x2e, 0x65, 0x78, 0x65, 0x63, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, -- 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, -- 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, -+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -+ 0x75, 0x72, 0x6e, 0x20, 0x66, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -+ 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x28, -+ 0x73, 0x74, 0x72, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, -+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, 0x3d, 0x20, -+ 0x66, 0x61, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x20, 0x3d, 0x20, -+ 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, -+ 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, -+ 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, -+ 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, -+ 0x77, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, -+ 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, -+ 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x22, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x20, 0x3d, 0x20, 0x69, -+ 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, -+ 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, -+ 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, -+ 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, -+ 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x6b, 0x70, 0x73, -+ 0x65, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, -+ 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x6b, 0x70, 0x73, 0x65, 0x70, 0x6f, -+ 0x70, 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x70, 0x6f, -+ 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, -+ 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x29, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x20, -+ 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, -+ 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x2c, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x78, 0x5f, -+ 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, -+ 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, - 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, -- 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x22, 0x29, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x20, 0x3d, 0x20, 0x69, -+ 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, -- 0x74, 0x65, 0x6d, 0x70, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, -- 0x6f, 0x2e, 0x70, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, -- 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x70, 0x6f, 0x70, -- 0x65, 0x6e, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, -- 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, -- 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0x2c, 0x6c, 0x75, 0x61, -- 0x74, 0x65, 0x78, 0x5f, 0x69, 0x6f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, -- 0x6f, 0x6e, 0x6c, 0x79, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, -- 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, -- 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x22, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x20, -+ 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, -+ 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, -+ 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, -+ 0x69, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, -+ 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, -+ 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x29, -+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x20, - 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, -- 0x22, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x69, 0x6f, 0x2e, 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x69, -- 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, -- 0x74, 0x6d, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6f, -- 0x2e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, -- 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x69, 0x6f, 0x2e, 0x6f, 0x75, 0x74, 0x70, -- 0x75, 0x74, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, -- 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, -- 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x22, 0x29, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20, -- 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, -- 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, -- 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, -- 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, -- 0x75, 0x63, 0x68, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, -- 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, -- 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x22, 0x29, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, -- 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, -- 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, -- 0x7c, 0x6f, 0x73, 0x2e, 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, -- 0x63, 0x5d, 0x20, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, -- 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x61, 0x77, 0x61, 0x72, 0x65, -- 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x61, 0x79, 0x62, 0x65, -- 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, -- 0x69, 0x6e, 0x20, 0x6b, 0x70, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x0a, 0x0a, 0x69, 0x66, -- 0x20, 0x73, 0x61, 0x66, 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, -- 0x31, 0x20, 0x6f, 0x72, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, -- 0x20, 0x7e, 0x3d, 0x20, 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x6c, 0x69, 0x62, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, -- 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, -- 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x34, 0x5d, 0x20, 0x3d, -- 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, -- 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x33, 0x5d, 0x20, 0x3d, 0x20, -- 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x73, 0x2e, 0x73, -- 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x3d, 0x20, 0x66, -- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x65, 0x6e, 0x64, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, -- 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, -- 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x66, 0x69, 0x20, 0x74, 0x68, -- 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6b, -- 0x2c, 0x20, 0x76, 0x20, 0x69, 0x6e, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x2c, 0x20, 0x66, 0x66, 0x69, -- 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x69, 0x66, 0x20, 0x6b, 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63, 0x27, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x66, 0x66, 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, -- 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, -- 0x61, 0x64, 0x65, 0x64, 0x2e, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x65, 0x6c, 0x6f, -- 0x61, 0x64, 0x2e, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x0a, -- 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35, 0x20, 0x74, 0x68, 0x65, 0x6e, -- 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x75, 0x6d, 0x20, -- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62, 0x20, 0x20, 0x20, 0x3d, 0x20, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x73, -- 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, -- 0x65, 0x78, 0x61, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, -- 0x6d, 0x68, 0x65, 0x78, 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, -- 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, -- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, -- 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, -- 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x63, 0x68, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, -+ 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, -+ 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x74, -+ 0x6f, 0x75, 0x63, 0x68, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, -+ 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x22, -+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x20, -+ 0x20, 0x3d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, -+ 0x22, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x6d, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x20, 0x20, 0x3d, 0x20, 0x69, 0x6e, -+ 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x28, 0x22, 0x6c, 0x66, 0x73, 0x2e, -+ 0x6d, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x65, 0x62, -+ 0x75, 0x67, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, -+ 0x20, 0x6f, 0x73, 0x2e, 0x5b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x7c, 0x6f, 0x73, 0x2e, -+ 0x73, 0x70, 0x61, 0x77, 0x6e, 0x7c, 0x6f, 0x73, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x5d, 0x20, 0x61, -+ 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, -+ 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x61, 0x77, 0x61, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x65, -+ 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x6d, 0x61, 0x79, 0x62, 0x65, 0x20, 0x61, 0x6c, 0x73, -+ 0x6f, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x6b, -+ 0x70, 0x73, 0x65, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x73, 0x61, 0x66, -+ 0x65, 0x72, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x20, 0x6f, 0x72, -+ 0x20, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x20, 0x7e, 0x3d, 0x20, -+ 0x31, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x6c, 0x69, 0x62, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x65, 0x6e, -+ 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, -+ 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x34, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, -+ 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x5b, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6f, 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, -+ 0x76, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6f, -+ 0x73, 0x2e, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x76, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, -+ 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x72, -+ 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x27, 0x66, 0x66, 0x69, 0x27, 0x29, 0x0a, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x66, 0x66, 0x69, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6b, 0x2c, 0x20, 0x76, 0x20, -+ 0x69, 0x6e, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x2c, 0x20, 0x66, 0x66, 0x69, 0x20, 0x64, 0x6f, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6b, -+ 0x20, 0x7e, 0x3d, 0x20, 0x27, 0x67, 0x63, 0x27, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, -+ 0x69, 0x5b, 0x6b, 0x5d, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, -- 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, -- 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, 0x58, 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, -- 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, -- 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, -- 0x58, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -- 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, -- 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, -- 0x69, 0x67, 0x68, 0x74, 0x20, 0x67, 0x6f, 0x20, 0x61, 0x77, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, -- 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x74, 0x61, -- 0x62, 0x6c, 0x65, 0x2e, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, -- 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, -- 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, -- 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, -- 0x65, 0x72, 0x73, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, -- 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x3d, -- 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, -- 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, -- 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, 0x20, 0x73, 0x74, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, -- 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x32, 0x3a, 0x20, 0x77, 0x65, 0x27, -- 0x72, 0x65, 0x20, 0x6f, 0x6b, 0x61, 0x79, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, -- 0x75, 0x74, 0x66, 0x38, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, -- 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x33, 0x3a, 0x20, 0x20, 0x62, 0x69, 0x74, 0x77, -- 0x69, 0x73, 0x65, 0x2e, 0x6c, 0x75, 0x61, 0x2c, 0x20, 0x76, 0x20, 0x31, 0x2e, 0x32, 0x34, 0x20, -- 0x32, 0x30, 0x31, 0x34, 0x2f, 0x31, 0x32, 0x2f, 0x32, 0x36, 0x20, 0x31, 0x37, 0x3a, 0x32, 0x30, -- 0x3a, 0x35, 0x33, 0x20, 0x72, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, -- 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, -- 0x3d, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x73, 0x74, -- 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x3a, 0x20, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x20, -- 0x2e, 0x2e, 0x2e, 0x20, 0x7d, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, -- 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, -- 0x6e, 0x20, 0x7e, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -- 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, -- 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, -- 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, -- 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, -- 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, -- 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, -- 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, -- 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, -- 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, -- 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, -- 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, -- 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, -+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, -+ 0x2e, 0x66, 0x66, 0x69, 0x20, 0x3d, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, -+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x66, -+ 0x66, 0x69, 0x20, 0x3d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, -+ 0x0a, 0x69, 0x66, 0x20, 0x6d, 0x64, 0x35, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x75, 0x6d, 0x20, 0x20, 0x20, 0x20, 0x3d, -+ 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, -+ 0x61, 0x6c, 0x20, 0x67, 0x73, 0x75, 0x62, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x2e, 0x67, 0x73, 0x75, 0x62, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, -+ 0x67, 0x2e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, -+ 0x61, 0x6c, 0x20, 0x62, 0x79, 0x74, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x2e, 0x62, 0x79, 0x74, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, -+ 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, 0x61, 0x20, -+ 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, -+ 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x68, 0x65, 0x78, -+ 0x61, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, 0x28, 0x73, 0x75, -+ 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, -+ 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x6f, -+ 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x78, 0x22, 0x2c, 0x62, 0x79, 0x74, 0x65, -+ 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, -+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, 0x48, 0x45, -+ 0x58, 0x41, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6d, 0x64, 0x35, 0x2e, 0x73, 0x75, 0x6d, -+ 0x48, 0x45, 0x58, 0x41, 0x28, 0x6b, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x67, 0x73, 0x75, 0x62, -+ 0x28, 0x73, 0x75, 0x6d, 0x28, 0x6b, 0x29, 0x2c, 0x20, 0x22, 0x2e, 0x22, 0x2c, 0x20, 0x66, 0x75, -+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x63, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, -+ 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x28, 0x22, 0x25, 0x30, 0x32, 0x58, 0x22, 0x2c, 0x62, -+ 0x79, 0x74, 0x65, 0x28, 0x63, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, -+ 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x69, -+ 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, 0x67, 0x68, 0x74, -+ 0x20, 0x67, 0x6f, 0x20, 0x61, 0x77, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, -+ 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, -+ 0x75, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, -+ 0x6f, 0x74, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, -+ 0x72, 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x3d, 0x20, 0x70, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x73, 0x0a, -+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, -+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, -+ 0x64, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, -+ 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x3a, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x69, -+ 0x67, 0x68, 0x74, 0x20, 0x73, 0x74, 0x61, 0x79, 0x0a, 0x0a, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, -+ 0x33, 0x32, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, -+ 0x6c, 0x75, 0x61, 0x20, 0x35, 0x2e, 0x32, 0x3a, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 0x20, 0x6f, -+ 0x6b, 0x61, 0x79, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x75, 0x74, 0x66, 0x38, -+ 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, -+ 0x61, 0x20, 0x35, 0x2e, 0x33, 0x3a, 0x20, 0x20, 0x62, 0x69, 0x74, 0x77, 0x69, 0x73, 0x65, 0x2e, -+ 0x6c, 0x75, 0x61, 0x2c, 0x20, 0x76, 0x20, 0x31, 0x2e, 0x32, 0x34, 0x20, 0x32, 0x30, 0x31, 0x34, -+ 0x2f, 0x31, 0x32, 0x2f, 0x32, 0x36, 0x20, 0x31, 0x37, 0x3a, 0x32, 0x30, 0x3a, 0x35, 0x33, 0x20, -+ 0x72, 0x6f, 0x62, 0x65, 0x72, 0x74, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, -+ 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, -+ 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, -+ 0x6c, 0x65, 0x63, 0x74, 0x20, 0x2d, 0x2d, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, -+ 0x6f, 0x66, 0x3a, 0x20, 0x61, 0x72, 0x67, 0x20, 0x3d, 0x20, 0x7b, 0x20, 0x2e, 0x2e, 0x2e, 0x20, -+ 0x7d, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x62, -+ 0x6e, 0x6f, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, -+ 0x61, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x7e, 0x61, - 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, -- 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, -- 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, -- 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, -- 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, -- 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7c, 0x20, 0x79, 0x20, -- 0x7c, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, -- 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, -- 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, -- 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, -- 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, -- 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, -- 0x62, 0x78, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, -- 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, -- 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x20, 0x7e, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, -- 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7e, 0x20, -- 0x79, 0x20, 0x7e, 0x20, 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, -- 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, -- 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, -- 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x7e, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, -- 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, -- 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, -- 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, -- 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, -- 0x20, 0x28, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, -- 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, -- 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, -+ 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x75, -+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, -+ 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, -+ 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -+ 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, -+ 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, -+ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, -+ 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, -+ 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, 0x7a, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, -+ 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, 0x65, -+ 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, 0x2e, -+ 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, -+ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -+ 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x20, 0x3d, -+ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, -+ 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, -+ 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, 0x20, 0x30, -+ 0x29, 0x20, 0x7c, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x29, 0x20, 0x26, 0x20, -+ 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -+ 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -+ 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7c, 0x20, 0x79, 0x20, 0x7c, 0x20, 0x7a, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, -+ 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, -+ 0x65, 0x73, 0x20, 0x7c, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, -+ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, -+ 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -+ 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, -+ 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x78, 0x2c, 0x20, -+ 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, -+ 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x78, 0x20, 0x6f, 0x72, -+ 0x20, 0x30, 0x29, 0x20, 0x7e, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x29, 0x29, 0x20, -+ 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -- 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, -+ 0x6c, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x7e, 0x20, 0x79, 0x20, 0x7e, 0x20, - 0x7a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, -- 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, -- 0x20, 0x3d, 0x20, 0x72, 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, -- 0x69, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, -- 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, -- 0x65, 0x73, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, -- 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, -- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, -- 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3c, 0x3c, 0x20, -- 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, -- 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, -- 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3e, -- 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -- 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, -- 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, -- 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, -- 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x69, 0x66, 0x20, 0x62, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x20, 0x6f, 0x72, 0x20, 0x28, 0x61, 0x20, -- 0x26, 0x20, 0x30, 0x78, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x20, 0x3d, 0x3d, -- 0x20, 0x30, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, -- 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, -- 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6c, 0x73, 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, -- 0x20, 0x28, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x7e, 0x28, 0x30, -- 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x29, -- 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, -- 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, -- 0x6e, 0x20, 0x28, 0x61, 0x20, 0x2c, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, -- 0x20, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, -- 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, -- 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, -- 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, -+ 0x64, 0x6f, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, -+ 0x20, 0x72, 0x65, 0x73, 0x20, 0x7e, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, -+ 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x72, 0x65, 0x73, 0x20, -+ 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, -+ 0x65, 0x73, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, -+ 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x2c, 0x20, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x7a, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x28, -+ 0x78, 0x20, 0x6f, 0x72, 0x20, 0x2d, 0x31, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x20, 0x6f, 0x72, -+ 0x20, 0x2d, 0x31, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -+ 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, -+ 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x72, 0x65, -+ 0x73, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x79, 0x20, 0x26, 0x20, 0x7a, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x69, 0x3d, 0x31, 0x2c, 0x73, 0x65, 0x6c, 0x65, -+ 0x63, 0x74, 0x28, 0x22, 0x23, 0x22, 0x2c, 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x64, 0x6f, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x72, -+ 0x65, 0x73, 0x20, 0x26, 0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x28, 0x69, 0x2c, 0x2e, 0x2e, -+ 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x72, 0x65, 0x73, 0x20, 0x26, -+ 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x7e, 0x3d, 0x20, -+ 0x30, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, -+ 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, -+ 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, -+ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x26, - 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, -- 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, -- 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x2d, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, -- 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, -- 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, -- 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -- 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -- 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, -- 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, -- 0x61, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -- 0x75, 0x72, 0x6e, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x66, 0x29, 0x20, 0x26, 0x20, 0x7e, -- 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, -- 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, -- 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, -- 0x20, 0x76, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, -- 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, -- 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x7e, 0x28, -- 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, -- 0x76, 0x20, 0x26, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, -+ 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, -+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, -+ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, - 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, -- 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, 0x20, -- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, -- 0x6a, 0x69, 0x74, 0x20, 0x28, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x0a, 0x0a, 0x20, -- 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, -- 0x28, 0x20, 0x5b, 0x5b, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, -- 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x6c, -- 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x6e, 0x64, -- 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, -- 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x6c, 0x73, 0x68, 0x69, -- 0x66, 0x74, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, -- 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x61, 0x72, -- 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, -- 0x20, 0x3d, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, -- 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x2c, 0x0a, -- 0x20, 0x20, 0x62, 0x78, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, -- 0x62, 0x78, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x20, 0x20, -- 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, -- 0x2e, 0x2e, 0x2e, 0x29, 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, -- 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, -- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x72, 0x73, 0x68, -- 0x69, 0x66, 0x74, 0x28, 0x61, 0x2c, 0x66, 0x29, 0x2c, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, -- 0x20, 0x31, 0x29, 0x2d, 0x31, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, -- 0x6c, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, -- 0x6c, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6c, -- 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, -- 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x76, 0x2c, -- 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, -- 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, -- 0x2d, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, -- 0x6e, 0x64, 0x28, 0x61, 0x2c, 0x62, 0x6e, 0x6f, 0x74, 0x28, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, -- 0x28, 0x6d, 0x61, 0x73, 0x6b, 0x2c, 0x66, 0x29, 0x29, 0x29, 0x2b, 0x6c, 0x73, 0x68, 0x69, 0x66, -- 0x74, 0x28, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x76, 0x2c, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x2c, 0x66, -- 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, -- 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, -- 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, -- 0x2c, 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, -- 0x0a, 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x68, -- 0x6f, 0x70, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, -- 0x20, 0x6f, 0x72, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, -- 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x62, -- 0x69, 0x74, 0x33, 0x32, 0x22, 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, -- 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x66, -- 0x6f, 0x72, 0x20, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, -- 0x72, 0x65, 0x28, 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x29, 0x20, 0x72, 0x69, 0x67, -- 0x68, 0x74, 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -- 0x6c, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, -- 0x67, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, -- 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, -- 0x6b, 0x65, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, -- 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, -- 0x22, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, -- 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x6e, -- 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x3d, -- 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x6d, 0x69, 0x6d, 0x65, 0x2e, 0x63, 0x6f, -- 0x72, 0x65, 0x22, 0x5d, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, -- 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, -- 0x73, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, -- 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, -- 0x0a, 0x0a, 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -- 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, -- 0x65, 0x73, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x79, 0x6d, -- 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x3d, -- 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, -- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, -- 0x68, 0x65, 0x73, 0x65, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x20, -- 0x64, 0x6f, 0x6e, 0x65, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x28, -- 0x77, 0x61, 0x73, 0x20, 0x64, 0x65, 0x61, 0x64, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x65, -- 0x66, 0x6f, 0x72, 0x65, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, -- 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, -- 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, -- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, -- 0x64, 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x69, -- 0x6c, 0x65, 0x22, 0x20, 0x6f, 0x72, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x6e, -- 0x6b, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -+ 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x3d, -+ 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, -+ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x62, -+ 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x20, 0x6f, 0x72, 0x20, 0x28, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, -+ 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x74, -+ 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, -+ 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, -+ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, -+ 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x7e, 0x28, 0x30, 0x78, 0x46, 0x46, 0x46, -+ 0x46, 0x46, 0x46, 0x46, 0x46, 0x20, 0x3e, 0x3e, 0x20, 0x62, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, -+ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -+ 0x64, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x72, 0x6f, 0x74, 0x61, -+ 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, -+ 0x20, 0x2c, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x62, 0x20, 0x26, -+ 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, -+ 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, -+ 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, -+ 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, -+ 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, -+ 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, -+ 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, -+ 0x20, 0x3d, 0x20, 0x2d, 0x62, 0x20, 0x26, 0x20, 0x33, 0x31, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, -+ 0x20, 0x3d, 0x20, 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, -+ 0x46, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x61, 0x20, 0x3c, 0x3c, 0x20, -+ 0x62, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, -+ 0x20, 0x62, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, -+ 0x61, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, -+ 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, -+ 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x66, -+ 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, -+ 0x28, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x66, 0x29, 0x20, 0x26, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, -+ 0x3c, 0x3c, 0x20, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x65, -+ 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x3d, 0x20, -+ 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x61, 0x2c, 0x20, 0x76, 0x2c, 0x20, -+ 0x66, 0x2c, 0x20, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, -+ 0x6d, 0x61, 0x73, 0x6b, 0x20, 0x3d, 0x20, 0x7e, 0x28, 0x2d, 0x31, 0x20, 0x3c, 0x3c, 0x20, 0x28, -+ 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -+ 0x75, 0x72, 0x6e, 0x20, 0x28, 0x28, 0x61, 0x20, 0x26, 0x20, 0x7e, 0x28, 0x6d, 0x61, 0x73, 0x6b, -+ 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x76, 0x20, 0x26, 0x20, -+ 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x66, 0x29, 0x29, 0x20, 0x26, 0x20, 0x30, -+ 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, -+ 0x0a, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, 0x0a, -+ 0x0a, 0x65, 0x6c, 0x73, 0x65, 0x69, 0x66, 0x20, 0x62, 0x69, 0x74, 0x20, 0x74, 0x68, 0x65, 0x6e, -+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6c, 0x75, 0x61, 0x6a, 0x69, 0x74, 0x20, -+ 0x28, 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x77, 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, -+ 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x28, 0x20, 0x5b, 0x5b, -+ 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x62, 0x6e, 0x6f, -+ 0x74, 0x2c, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, -+ 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x61, 0x6e, 0x64, 0x2c, 0x20, 0x62, 0x69, -+ 0x74, 0x2e, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x73, 0x68, 0x69, -+ 0x66, 0x74, 0x2c, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x0a, 0x0a, -+ 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, 0x3d, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x61, 0x72, 0x73, 0x68, -+ 0x69, 0x66, 0x74, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x61, 0x72, 0x73, 0x68, 0x69, 0x66, -+ 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, -+ 0x61, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x20, 0x20, 0x20, 0x20, 0x3d, -+ 0x20, 0x62, 0x6e, 0x6f, 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x78, -+ 0x6f, 0x72, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x62, 0x78, 0x6f, 0x72, -+ 0x2c, 0x0a, 0x20, 0x20, 0x62, 0x74, 0x65, 0x73, 0x74, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x66, 0x75, -+ 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x2e, 0x2e, 0x2e, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x2e, 0x2e, 0x2e, 0x29, -+ 0x20, 0x7e, 0x3d, 0x20, 0x30, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x65, -+ 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, -+ 0x6e, 0x28, 0x61, 0x2c, 0x66, 0x2c, 0x77, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -+ 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, -+ 0x61, 0x2c, 0x66, 0x29, 0x2c, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x2d, -+ 0x31, 0x29, 0x0a, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x6c, 0x72, 0x6f, 0x74, -+ 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x2c, 0x0a, 0x20, -+ 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x73, 0x68, 0x69, 0x66, -+ 0x74, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x66, -+ 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x61, 0x2c, 0x76, 0x2c, 0x66, 0x2c, 0x77, 0x29, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x61, 0x73, 0x6b, 0x20, -+ 0x3d, 0x20, 0x32, 0x5e, 0x28, 0x77, 0x20, 0x6f, 0x72, 0x20, 0x31, 0x29, 0x2d, 0x31, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x62, 0x61, 0x6e, 0x64, 0x28, 0x61, -+ 0x2c, 0x62, 0x6e, 0x6f, 0x74, 0x28, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x6d, 0x61, 0x73, -+ 0x6b, 0x2c, 0x66, 0x29, 0x29, 0x29, 0x2b, 0x6c, 0x73, 0x68, 0x69, 0x66, 0x74, 0x28, 0x62, 0x61, -+ 0x6e, 0x64, 0x28, 0x76, 0x2c, 0x6d, 0x61, 0x73, 0x6b, 0x29, 0x2c, 0x66, 0x29, 0x0a, 0x20, 0x20, -+ 0x65, 0x6e, 0x64, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, -+ 0x20, 0x62, 0x69, 0x74, 0x2e, 0x72, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x72, 0x73, 0x68, 0x69, -+ 0x66, 0x74, 0x20, 0x20, 0x3d, 0x20, 0x72, 0x73, 0x68, 0x69, 0x66, 0x74, 0x2c, 0x0a, 0x7d, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x5d, 0x5d, 0x20, 0x29, 0x0a, 0x0a, 0x65, 0x6c, -+ 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x68, 0x6f, 0x70, 0x65, 0x20, -+ 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x65, 0x73, 0x74, 0x20, 0x6f, 0x72, 0x20, -+ 0x66, 0x61, 0x69, 0x6c, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x69, 0x74, 0x33, 0x32, 0x20, -+ 0x3d, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x62, 0x69, 0x74, 0x33, 0x32, -+ 0x22, 0x29, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x69, 0x73, -+ 0x20, 0x69, 0x73, 0x20, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x67, -+ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, -+ 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x29, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x0a, 0x0a, -+ 0x64, 0x6f, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x6f, -+ 0x61, 0x64, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x2e, 0x6c, -+ 0x6f, 0x61, 0x64, 0x65, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, -+ 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, -+ 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x73, 0x6f, 0x63, 0x6b, -+ 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x5b, 0x22, 0x73, 0x6f, 0x63, -+ 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, -+ 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, -+ 0x64, 0x65, 0x64, 0x2e, 0x6d, 0x69, 0x6d, 0x65, 0x20, 0x20, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x61, -+ 0x64, 0x65, 0x64, 0x5b, 0x22, 0x6d, 0x69, 0x6d, 0x65, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5d, - 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, -- 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x20, 0x74, 0x68, 0x65, -- 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, -- 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x28, 0x6e, 0x61, 0x6d, -- 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, -- 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, -- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, -- 0x65, 0x22, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x72, -- 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, -- 0x20, 0x2d, 0x2d, 0x20, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, -- 0x61, 0x76, 0x65, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x72, 0x74, -- 0x20, 0x6f, 0x66, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, -- 0x20, 0x6b, 0x70, 0x73, 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, -- 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, -- 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, -- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, -- 0x61, 0x6d, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, -- 0x65, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, -- 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, -- 0x77, 0x20, 0x74, 0x68, 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x72, -- 0x67, 0x65, 0x74, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x2e, 0x2e, -- 0x2e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, -- 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, -- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, -- 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x28, 0x6e, 0x61, -- 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -- 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, -- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x74, -- 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, -+ 0x6f, 0x74, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, 0x73, 0x20, 0x74, 0x68, -+ 0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x6c, 0x66, 0x73, 0x20, 0x3d, 0x20, -+ 0x6c, 0x66, 0x73, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x64, 0x6f, -+ 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6c, 0x66, 0x73, 0x61, -+ 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3d, 0x20, -+ 0x6c, 0x66, 0x73, 0x2e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, -+ 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, -+ 0x2e, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, -+ 0x65, 0x73, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, -+ 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x65, -+ 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x6c, 0x66, 0x73, 0x20, 0x28, 0x77, 0x61, 0x73, 0x20, -+ 0x64, 0x65, 0x61, 0x64, 0x20, 0x73, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, -+ 0x29, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, -+ 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, -+ 0x66, 0x73, 0x2e, 0x69, 0x73, 0x66, 0x69, 0x6c, 0x65, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, -+ 0x6c, 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, -+ 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, -+ 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x20, -+ 0x6f, 0x72, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, -- 0x6e, 0x64, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00 -+ 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, -+ 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, -+ 0x66, 0x73, 0x2e, 0x69, 0x73, 0x64, 0x69, 0x72, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, -+ 0x20, 0x6d, 0x20, 0x3d, 0x20, 0x6c, 0x66, 0x73, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, -+ 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -+ 0x72, 0x6e, 0x20, 0x6d, 0x20, 0x3d, 0x3d, 0x20, 0x22, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, -+ 0x72, 0x79, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, -+ 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, -+ 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x73, 0x6f, 0x72, 0x74, 0x20, 0x6f, 0x66, 0x20, -+ 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x6b, 0x70, 0x73, -+ 0x65, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, -+ 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x68, 0x65, 0x6e, -+ 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, -+ 0x6e, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x28, -+ 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x0a, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, -+ 0x64, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x74, 0x68, -+ 0x65, 0x72, 0x65, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, -+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2c, 0x20, 0x73, 0x6f, 0x20, 0x2e, 0x2e, 0x2e, 0x0a, 0x0a, 0x20, -+ 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x6c, 0x66, 0x73, 0x2e, 0x72, 0x65, -+ 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x66, 0x73, -+ 0x2e, 0x72, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x6b, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x29, 0x0a, -+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, -+ 0x72, 0x6e, 0x20, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, -+ 0x75, 0x74, 0x65, 0x73, 0x28, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x22, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x6e, 0x69, 0x6c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, -+ 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x0a, -+ 0x65, 0x6e, 0x64, 0x0a, 0x0a, 0x00 - }; - return luaL_dostring(L, (const char*) luatex_core_lua); - } -\ No newline at end of file -diff --git a/texk/web2c/luatexdir/lua/luatex-core.lua b/texk/web2c/luatexdir/lua/luatex-core.lua -index 12941dbe7..d33c12179 100644 ---- a/texk/web2c/luatexdir/lua/luatex-core.lua -+++ b/texk/web2c/luatexdir/lua/luatex-core.lua -@@ -7,7 +7,7 @@ - -- copyright = 'LuaTeX Development Team', - -- } - --LUATEXCOREVERSION = 1.151 -- we reflect the luatex version where changes happened -+LUATEXCOREVERSION = 1.161 -- we reflect the luatex version where changes happened - - -- This file overloads some Lua functions. The readline variants provide the same - -- functionality as LuaTeX <= 1.04 and doing it this way permits us to keep the -@@ -16,6 +16,8 @@ LUATEXCOREVERSION = 1.151 -- we reflect the luatex version where changes happene - -- We test for functions already being defined so that we don't overload ones that - -- are provided in the startup script. - -+ -+ - local saferoption = status.safer_option - local shellescape = status.shell_escape -- 0 (disabled) 1 (anything) 2 (restricted) - local kpseused = status.kpse_used -- 0 1 -@@ -34,7 +36,7 @@ if kpseused == 1 then - local kpse_recordoutputfile = kpse.record_output_file - - local io_open = io.open -- local io_popen = io.popen -+ -- local io_popen = io.popen -- not need, we use os.kpsepopen - local io_lines = io.lines - - local fio_readline = fio.readline -@@ -75,12 +77,13 @@ if kpseused == 1 then - return f - end - -- local function luatex_io_popen(name,...) -- local okay, found = kpse_checkpermission(name) -- if okay and found then -- return io_popen(found,...) -- end -- end -+ -- not need, we use os.kpsepopen -+ --local function luatex_io_popen(name,...) -+ -- local okay, found = kpse_checkpermission(name) -+ -- if okay and found then -+ -- return io_popen(found,...) -+ -- end -+ --end - - -- local function luatex_io_lines(name,how) - -- if name then -@@ -130,7 +133,8 @@ if kpseused == 1 then - mt.lines = luatex_io_readline - - io.open = luatex_io_open -- io.popen = luatex_io_popen -+ --io.popen = luatex_io_popen -- not need, we use os.kpsepopen -+ io.popen = os.kpsepopen - - else - -@@ -169,6 +173,8 @@ if saferoption == 1 then - os.setenv = installdummy("os.setenv") - os.tempdir = installdummy("os.tempdir") - -+ os.kpsepopen = installdummy("os.kpsepopen") -+ - io.popen = installdummy("io.popen") - io.open = installdummy("io.open",luatex_io_open_readonly) - -diff --git a/texk/web2c/luatexdir/luafontloader/src/luafflib.c b/texk/web2c/luatexdir/luafontloader/src/luafflib.c -index 434413b00..41e5c3a32 100644 ---- a/texk/web2c/luatexdir/luafontloader/src/luafflib.c -+++ b/texk/web2c/luatexdir/luafontloader/src/luafflib.c -@@ -1236,7 +1236,6 @@ static void handle_pfminfo(lua_State * L, struct pfminfo pfm) - dump_intfield(L, "vlinegap", pfm.vlinegap); - dump_intfield(L, "hhead_ascent", pfm.hhead_ascent); - dump_intfield(L, "hhead_descent", pfm.hhead_descent); -- dump_intfield(L, "hhead_descent", pfm.hhead_descent); - dump_intfield(L, "os2_typoascent", pfm.os2_typoascent); - dump_intfield(L, "os2_typodescent", pfm.os2_typodescent); - dump_intfield(L, "os2_typolinegap", pfm.os2_typolinegap); -diff --git a/texk/web2c/luatexdir/luasocket/src/lua_preload.c b/texk/web2c/luatexdir/luasocket/src/lua_preload.c -index 838871c1d..b235f6a51 100644 ---- a/texk/web2c/luatexdir/luasocket/src/lua_preload.c -+++ b/texk/web2c/luatexdir/luasocket/src/lua_preload.c -@@ -16,6 +16,7 @@ int luatex_ftp_lua_open(lua_State*); - - - extern void luatex_socketlua_open (lua_State *) ; -+extern void luatex_socketlua_safe_open (lua_State *) ; - #include "ftp_lua.c" - #include "headers_lua.c" - #include "http_lua.c" -@@ -47,3 +48,11 @@ luatex_socketlua_open (lua_State *L) { - TEST(luatex_http_lua_open(L)); - TEST(luatex_ftp_lua_open(L)); - } -+ -+/* luatex_socketlua_safe_open: load safe modules */ -+/* of luasocket ( mime ). */ -+void -+luatex_socketlua_safe_open (lua_State *L) { -+ TEST(luatex_ltn12_lua_open(L)); -+ TEST(luatex_mime_lua_open(L)); -+} -diff --git a/texk/web2c/luatexdir/luatex.c b/texk/web2c/luatexdir/luatex.c -index 40eaa2a11..949389e62 100644 ---- a/texk/web2c/luatexdir/luatex.c -+++ b/texk/web2c/luatexdir/luatex.c -@@ -32,9 +32,9 @@ - stick to "0" upto "9" so users can expect a number represented as string. - */ - --int luatex_version = 116; --int luatex_revision = '1'; --const char *luatex_version_string = "1.16.1"; -+int luatex_version = 117; -+int luatex_revision = '0'; -+const char *luatex_version_string = "1.17.0"; - const char *engine_name = my_name; - - #include <kpathsea/c-ctype.h> -diff --git a/texk/web2c/luatexdir/luatex_svnversion.h b/texk/web2c/luatexdir/luatex_svnversion.h -index 76d929807..6b6137b1b 100644 ---- a/texk/web2c/luatexdir/luatex_svnversion.h -+++ b/texk/web2c/luatexdir/luatex_svnversion.h -@@ -1,4 +1,4 @@ - #ifndef luatex_svn_revision_h - #define luatex_svn_revision_h --#define luatex_svn_revision 7569 -+#define luatex_svn_revision 7581 - #endif -diff --git a/texk/web2c/luatexdir/tex/texnodes.c b/texk/web2c/luatexdir/tex/texnodes.c -index 6e0ae1ff8..72f6716dd 100644 ---- a/texk/web2c/luatexdir/tex/texnodes.c -+++ b/texk/web2c/luatexdir/tex/texnodes.c -@@ -1203,7 +1203,7 @@ void l_set_whatsit_data(void) { - the original one as a metatable. After some experiments (that also included - timing) with these scenarios I decided that a deep copy made no sense, nor - did nilling. In the end both the shallow copy and the metatable variant were -- both ok, although the second ons is slower. The most important aspect to keep -+ both ok, although the second one is slower. The most important aspect to keep - in mind is that references to other nodes in properties no longer can be - valid for that copy. We could use two tables (one unique and one shared) or - metatables but that only complicates matters. --- -2.39.2 - -From aeeac98c8f462092f49d3d9f5f8c41737154f7e5 Mon Sep 17 00:00:00 2001 -From: Karl Berry <karl@freefriends.org> -Date: Tue, 2 May 2023 15:28:44 +0000 -Subject: [PATCH 39/39] reformat NEWS - -git-svn-id: svn://tug.org/texlive/trunk/Build/source@66985 c570f23f-e606-0410-a88d-b1316a301751 ---- - texk/web2c/luatexdir/NEWS | 23 +++++++++++++---------- - 1 file changed, 13 insertions(+), 10 deletions(-) - -diff --git a/texk/web2c/luatexdir/NEWS b/texk/web2c/luatexdir/NEWS -index 41d6d4d14..3f15df0a7 100644 ---- a/texk/web2c/luatexdir/NEWS -+++ b/texk/web2c/luatexdir/NEWS -@@ -3,23 +3,26 @@ LuaTeX 1.17.0 2023-04-29 - ============================================================== - - - A breaking backward compatibility change: by default the socket -- library is not enabled . -+ library is not enabled. - The new option --socket enable the socket library as - before, as also --shell-escape (without --shell-restricted); - --nosocket, --no-socket , --safer disabled the library, and - they have the priority in case of conflicting options. -- The mime library is always available; socket.sleep -- and socket.gettime are duplicated as os.socketsleep -- and os.socketgettime, both always available. -- The new os.kpsepopen replace io.popopen in kpse mode -- (i.e. when kpse_init is not zero) as it was before -- but the permission now cannot be changed anymore with -- kpse.check_permission . -+ -+ socket.sleep and socket.gettime are duplicated as os.socketsleep and -+ os.socketgettime, both always available. -+ -+ The new function os.kpsepopen replaces io.popen in kpse mode -+ (i.e. when kpse_init is not zero) as it was before, -+ but the permission can no longer be changed with -+ kpse.check_permission. - The function os.kpsepopen follows the same restrictions -- as io.popen . -+ as io.popen. -+ -+ The mime library is always available. -+ - Thanks to Max Chernoff for debugging. - -- - - - ============================================================== --- -2.39.2 - diff --git a/source/t/texlive/texlive.SlackBuild b/source/t/texlive/texlive.SlackBuild index 04763863e..16a2de70e 100755 --- a/source/t/texlive/texlive.SlackBuild +++ b/source/t/texlive/texlive.SlackBuild @@ -2,9 +2,9 @@ # TeXLive build script for Slackware -# Copyright 2009, 2017 - 2023 Patrick J. Volkerding, Sebeka, MN, USA -# Copyright 2009 - 2014 Robby Workman, Northport, AL, USA -# Copyright 2016 - 2017 Johannes Schoepfer, Germany +# Copyright 2009, 2017-2024 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2009-2014 Robby Workman, Northport, AL, USA +# Copyright 2016-2017 Johannes Schoepfer, Germany # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,17 +24,17 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# URL: ftp://tug.org/historic/systems/texlive/ +# URL: https://www.tug.org/historic/ # Testrelease: https://tug.org/texlive/Images/test/ -# Upstream stable fixes: svn://tug.org/texlive/branches/branch2023/Build/source +# Upstream stable fixes: svn://tug.org/texlive/branches/branch2024/Build/source cd $(dirname $0) ; CWD=$(pwd) PKGNAM=texlive -SOURCEVERSION=${SOURCEVERSION:-20230311} -TEXMFVERSION=${TEXMFVERSION:-230322} -VERSION=${VERSION:-2023.$TEXMFVERSION} -BUILD=${BUILD:-7} +SOURCEVERSION=${SOURCEVERSION:-20240312} +TEXMFVERSION=${TEXMFVERSION:-240409} +VERSION=${VERSION:-2024.$TEXMFVERSION} +BUILD=${BUILD:-1} TMP=${TMP:-/tmp} PKG=$TMP/package-texlive @@ -77,14 +77,17 @@ cd texlive-$SOURCEVERSION-source || exit 1 chown -R root:root . chmod -R u+w,go-w,a+rX-st . -# CVE-2023-32700: -zcat $CWD/texlive-20230313-source-security_fix-1.patch.gz | patch -p1 --verbose || exit 1 +# Make aftergroup work again with the output routine +cat $CWD/patches/aftergroup.patch | patch -p1 --verbose || exit 1 + +# Don't break texdoc et al every time zlib is upgraded: +cat $CWD/patches/quit-breaking-on-minor-zlib-bump.patch | patch -p1 --verbose || exit 1 mkdir build cd build CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ - ../configure \ + ../configure -C \ --prefix=/usr \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --mandir=/usr/man \ @@ -104,6 +107,7 @@ cd build --enable-xindy \ --disable-xindy-docs \ --disable-xindy-rules \ + --disable-linked-scripts \ --with-clisp-runtime=system \ --enable-gc=system \ --with-system-libpng \ @@ -119,7 +123,8 @@ cd build --with-system-fontconfig \ --with-system-ncurses \ --with-system-harfbuzz \ - --disable-linked-scripts \ + --with-system-graphite2 \ + --with-system-libpaper \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 diff --git a/source/t/texlive/texlive.url b/source/t/texlive/texlive.url index 03c1a6e30..3d9ad50d1 100644 --- a/source/t/texlive/texlive.url +++ b/source/t/texlive/texlive.url @@ -1,2 +1,2 @@ -https://ctan.net/systems/texlive/Source/texlive-20230311-source.tar.xz -http://slackware.schoepfer.info/slackbuilds/texlive/texlive-base-230322.tar.xz +https://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2024/texlive-20240312-source.tar.xz +http://slackware.schoepfer.info/slackbuilds/texlive/texlive-base-240409.tar.xz diff --git a/source/x/anthy-unicode/anthy-unicode.SlackBuild b/source/x/anthy-unicode/anthy-unicode.SlackBuild index af7fa15fe..fd73ca256 100755 --- a/source/x/anthy-unicode/anthy-unicode.SlackBuild +++ b/source/x/anthy-unicode/anthy-unicode.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, MN USA +# Copyright 2008, 2009, 2010, 2018, 2024 Patrick J. Volkerding, Sebeka, MN USA # Copyright 2008, 2009 Eric Hameleers, Eindhoven, NL # All rights reserved. # @@ -79,6 +79,13 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \+ +if [ ! -r configure ]; then + if [ -x ./autogen.sh ]; then + NOCONFIGURE=1 ./autogen.sh + else + autoreconf -vif + fi +fi CXXFLAGS="$SLKCFLAGS" \ CFLAGS="$SLKCFLAGS" \ ./configure \ diff --git a/source/x/fcitx5-anthy/fcitx5-anthy-5.1.4.tar.zst b/source/x/fcitx5-anthy/fcitx5-anthy-5.1.4.tar.zst Binary files differnew file mode 100644 index 000000000..02230d755 --- /dev/null +++ b/source/x/fcitx5-anthy/fcitx5-anthy-5.1.4.tar.zst diff --git a/source/x/fcitx5-anthy/fcitx5-anthy.SlackBuild b/source/x/fcitx5-anthy/fcitx5-anthy.SlackBuild index 9e8815dc6..906a9ad3f 100755 --- a/source/x/fcitx5-anthy/fcitx5-anthy.SlackBuild +++ b/source/x/fcitx5-anthy/fcitx5-anthy.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-anthy -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-anthy-$VERSION -tar xvf $CWD/fcitx5-anthy-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-anthy-$VERSION.tar.zst || exit 1 cd fcitx5-anthy-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons-5.1.5_dict.tar.zst b/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons-5.1.5_dict.tar.zst Binary files differnew file mode 100644 index 000000000..2bf0bda2d --- /dev/null +++ b/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons-5.1.5_dict.tar.zst diff --git a/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild b/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild index 4ee12db52..efd277d58 100755 --- a/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild +++ b/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=fcitx5-chinese-addons -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | cut -f 2- -d _ | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | cut -f 2- -d _ | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-chinese-addons-$VERSION -tar xvf $CWD/fcitx5-chinese-addons-${VERSION}_dict.tar.?z || exit 1 +tar xvf $CWD/fcitx5-chinese-addons-${VERSION}_dict.tar.zst || exit 1 cd fcitx5-chinese-addons-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-gtk/fcitx5-gtk-5.1.3.tar.zst b/source/x/fcitx5-gtk/fcitx5-gtk-5.1.3.tar.zst Binary files differnew file mode 100644 index 000000000..09108d813 --- /dev/null +++ b/source/x/fcitx5-gtk/fcitx5-gtk-5.1.3.tar.zst diff --git a/source/x/fcitx5-gtk/fcitx5-gtk.SlackBuild b/source/x/fcitx5-gtk/fcitx5-gtk.SlackBuild index a9c83b56e..b08edfe65 100755 --- a/source/x/fcitx5-gtk/fcitx5-gtk.SlackBuild +++ b/source/x/fcitx5-gtk/fcitx5-gtk.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2022 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2022 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2022, 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=fcitx5-gtk -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-gtk-$VERSION -tar xvf $CWD/fcitx5-gtk-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-gtk-$VERSION.tar.zst || exit 1 cd fcitx5-gtk-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-hangul/fcitx5-hangul-5.1.3.tar.zst b/source/x/fcitx5-hangul/fcitx5-hangul-5.1.3.tar.zst Binary files differnew file mode 100644 index 000000000..ebd3371af --- /dev/null +++ b/source/x/fcitx5-hangul/fcitx5-hangul-5.1.3.tar.zst diff --git a/source/x/fcitx5-hangul/fcitx5-hangul.SlackBuild b/source/x/fcitx5-hangul/fcitx5-hangul.SlackBuild index 5e920bd21..4609107ce 100755 --- a/source/x/fcitx5-hangul/fcitx5-hangul.SlackBuild +++ b/source/x/fcitx5-hangul/fcitx5-hangul.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-hangul -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-hangul-$VERSION -tar xvf $CWD/fcitx5-hangul-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-hangul-$VERSION.tar.zst || exit 1 cd fcitx5-hangul-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-kkc/fcitx5-kkc-5.1.3.tar.zst b/source/x/fcitx5-kkc/fcitx5-kkc-5.1.3.tar.zst Binary files differnew file mode 100644 index 000000000..f12b63e70 --- /dev/null +++ b/source/x/fcitx5-kkc/fcitx5-kkc-5.1.3.tar.zst diff --git a/source/x/fcitx5-kkc/fcitx5-kkc.SlackBuild b/source/x/fcitx5-kkc/fcitx5-kkc.SlackBuild index 739494cb0..8929b98ed 100755 --- a/source/x/fcitx5-kkc/fcitx5-kkc.SlackBuild +++ b/source/x/fcitx5-kkc/fcitx5-kkc.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=fcitx5-kkc -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-kkc-$VERSION -tar xvf $CWD/fcitx5-kkc-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-kkc-$VERSION.tar.zst || exit 1 cd fcitx5-kkc-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-m17n/fcitx5-m17n-5.1.1.tar.zst b/source/x/fcitx5-m17n/fcitx5-m17n-5.1.1.tar.zst Binary files differnew file mode 100644 index 000000000..a2215d104 --- /dev/null +++ b/source/x/fcitx5-m17n/fcitx5-m17n-5.1.1.tar.zst diff --git a/source/x/fcitx5-m17n/fcitx5-m17n.SlackBuild b/source/x/fcitx5-m17n/fcitx5-m17n.SlackBuild index 4f27987ba..3d387deb2 100755 --- a/source/x/fcitx5-m17n/fcitx5-m17n.SlackBuild +++ b/source/x/fcitx5-m17n/fcitx5-m17n.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-m17n -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-m17n-$VERSION -tar xvf $CWD/fcitx5-m17n-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-m17n-$VERSION.tar.zst || exit 1 cd fcitx5-m17n-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-qt/fcitx5-qt-5.1.6.tar.zst b/source/x/fcitx5-qt/fcitx5-qt-5.1.6.tar.zst Binary files differnew file mode 100644 index 000000000..4a90e4dcb --- /dev/null +++ b/source/x/fcitx5-qt/fcitx5-qt-5.1.6.tar.zst diff --git a/source/x/fcitx5-qt/fcitx5-qt.SlackBuild b/source/x/fcitx5-qt/fcitx5-qt.SlackBuild index 6770179fe..6130a2679 100755 --- a/source/x/fcitx5-qt/fcitx5-qt.SlackBuild +++ b/source/x/fcitx5-qt/fcitx5-qt.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-qt -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-qt-$VERSION -tar xvf $CWD/fcitx5-qt-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-qt-$VERSION.tar.zst || exit 1 cd fcitx5-qt-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-sayura/fcitx5-sayura-5.1.2.tar.zst b/source/x/fcitx5-sayura/fcitx5-sayura-5.1.2.tar.zst Binary files differnew file mode 100644 index 000000000..c19058275 --- /dev/null +++ b/source/x/fcitx5-sayura/fcitx5-sayura-5.1.2.tar.zst diff --git a/source/x/fcitx5-sayura/fcitx5-sayura.SlackBuild b/source/x/fcitx5-sayura/fcitx5-sayura.SlackBuild index 5bac684f2..dcfe1859d 100755 --- a/source/x/fcitx5-sayura/fcitx5-sayura.SlackBuild +++ b/source/x/fcitx5-sayura/fcitx5-sayura.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-sayura -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-sayura-$VERSION -tar xvf $CWD/fcitx5-sayura-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-sayura-$VERSION.tar.zst || exit 1 cd fcitx5-sayura-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-table-extra/fcitx5-table-extra-5.1.5.tar.zst b/source/x/fcitx5-table-extra/fcitx5-table-extra-5.1.5.tar.zst Binary files differnew file mode 100644 index 000000000..388fbe905 --- /dev/null +++ b/source/x/fcitx5-table-extra/fcitx5-table-extra-5.1.5.tar.zst diff --git a/source/x/fcitx5-table-extra/fcitx5-table-extra.SlackBuild b/source/x/fcitx5-table-extra/fcitx5-table-extra.SlackBuild index 2437fe4cc..51f5c4199 100755 --- a/source/x/fcitx5-table-extra/fcitx5-table-extra.SlackBuild +++ b/source/x/fcitx5-table-extra/fcitx5-table-extra.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-table-extra -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-table-extra-$VERSION -tar xvf $CWD/fcitx5-table-extra-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-table-extra-$VERSION.tar.zst || exit 1 cd fcitx5-table-extra-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-table-other/fcitx5-table-other-5.1.2.tar.zst b/source/x/fcitx5-table-other/fcitx5-table-other-5.1.2.tar.zst Binary files differnew file mode 100644 index 000000000..4268d71d5 --- /dev/null +++ b/source/x/fcitx5-table-other/fcitx5-table-other-5.1.2.tar.zst diff --git a/source/x/fcitx5-table-other/fcitx5-table-other.SlackBuild b/source/x/fcitx5-table-other/fcitx5-table-other.SlackBuild index e383ad485..819dce74e 100755 --- a/source/x/fcitx5-table-other/fcitx5-table-other.SlackBuild +++ b/source/x/fcitx5-table-other/fcitx5-table-other.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-table-other -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-table-other-$VERSION -tar xvf $CWD/fcitx5-table-other-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-table-other-$VERSION.tar.zst || exit 1 cd fcitx5-table-other-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5-unikey/fcitx5-unikey-5.1.4.tar.zst b/source/x/fcitx5-unikey/fcitx5-unikey-5.1.4.tar.zst Binary files differnew file mode 100644 index 000000000..7741f3e0a --- /dev/null +++ b/source/x/fcitx5-unikey/fcitx5-unikey-5.1.4.tar.zst diff --git a/source/x/fcitx5-unikey/fcitx5-unikey.SlackBuild b/source/x/fcitx5-unikey/fcitx5-unikey.SlackBuild index bf2a6d0b6..128a78b9c 100755 --- a/source/x/fcitx5-unikey/fcitx5-unikey.SlackBuild +++ b/source/x/fcitx5-unikey/fcitx5-unikey.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 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=fcitx5-unikey -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -73,7 +73,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-unikey-$VERSION -tar xvf $CWD/fcitx5-unikey-$VERSION.tar.?z || exit 1 +tar xvf $CWD/fcitx5-unikey-$VERSION.tar.zst || exit 1 cd fcitx5-unikey-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/fcitx5/fcitx5-5.1.9_dict.tar.zst b/source/x/fcitx5/fcitx5-5.1.9_dict.tar.zst Binary files differnew file mode 100644 index 000000000..06c48916f --- /dev/null +++ b/source/x/fcitx5/fcitx5-5.1.9_dict.tar.zst diff --git a/source/x/fcitx5/fcitx5.SlackBuild b/source/x/fcitx5/fcitx5.SlackBuild index cda538784..8bdd73def 100755 --- a/source/x/fcitx5/fcitx5.SlackBuild +++ b/source/x/fcitx5/fcitx5.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2012 vvoody <vvoodywang@gmail.com> -# Copyright 2018, 2020, 2023 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2018, 2020, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA # # All rights reserved. # @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=fcitx5 -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | cut -f 2- -d _ | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d - | cut -f 2- -d _ | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -77,7 +77,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf fcitx5-$VERSION -tar xvf $CWD/fcitx5-${VERSION}_dict.tar.?z || exit 1 +tar xvf $CWD/fcitx5-${VERSION}_dict.tar.zst || exit 1 cd fcitx5-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/ibus-anthy/ibus-anthy.SlackBuild b/source/x/ibus-anthy/ibus-anthy.SlackBuild index a414c40eb..58b642e53 100755 --- a/source/x/ibus-anthy/ibus-anthy.SlackBuild +++ b/source/x/ibus-anthy/ibus-anthy.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ibus-anthy VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/x/ibus-hangul/ibus-hangul.SlackBuild b/source/x/ibus-hangul/ibus-hangul.SlackBuild index a2bd60b58..318c1e45e 100755 --- a/source/x/ibus-hangul/ibus-hangul.SlackBuild +++ b/source/x/ibus-hangul/ibus-hangul.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ibus-hangul VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/x/ibus-libpinyin/ibus-libpinyin.SlackBuild b/source/x/ibus-libpinyin/ibus-libpinyin.SlackBuild index 3465e8c90..10a4378d4 100755 --- a/source/x/ibus-libpinyin/ibus-libpinyin.SlackBuild +++ b/source/x/ibus-libpinyin/ibus-libpinyin.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ibus-libpinyin VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/x/ibus-table/ibus-table.SlackBuild b/source/x/ibus-table/ibus-table.SlackBuild index 08ca1dc1d..d2b813197 100755 --- a/source/x/ibus-table/ibus-table.SlackBuild +++ b/source/x/ibus-table/ibus-table.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ibus-table VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/x/ibus/ibus.SlackBuild b/source/x/ibus/ibus.SlackBuild index a2a5c5f57..d24b5500f 100755 --- a/source/x/ibus/ibus.SlackBuild +++ b/source/x/ibus/ibus.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ibus 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) "} diff --git a/source/x/libime/libime-1.1.7_dict.tar.zst b/source/x/libime/libime-1.1.7_dict.tar.zst Binary files differnew file mode 100644 index 000000000..37ff9f6ce --- /dev/null +++ b/source/x/libime/libime-1.1.7_dict.tar.zst diff --git a/source/x/libime/libime.SlackBuild b/source/x/libime/libime.SlackBuild index e5920ce4a..0fd4bf964 100755 --- a/source/x/libime/libime.SlackBuild +++ b/source/x/libime/libime.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2022 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2022 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2022, 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=libime -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | cut -f 2- -d _ | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | cut -f 2- -d _ | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -76,7 +76,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf libime-$VERSION -tar xvf $CWD/libime-${VERSION}_dict.tar.?z || exit 1 +tar xvf $CWD/libime-${VERSION}_dict.tar.zst || exit 1 cd libime-$VERSION || exit 1 chown -R root:root . diff --git a/source/x/marisa/marisa.SlackBuild b/source/x/marisa/marisa.SlackBuild index d220b914e..ef31b394f 100755 --- a/source/x/marisa/marisa.SlackBuild +++ b/source/x/marisa/marisa.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=marisa SRCNAM=marisa-trie VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} -BUILD=${BUILD:-8} +BUILD=${BUILD:-9} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/x/mtdev/mtdev.SlackBuild b/source/x/mtdev/mtdev.SlackBuild index 64b21abc5..3a428b669 100755 --- a/source/x/mtdev/mtdev.SlackBuild +++ b/source/x/mtdev/mtdev.SlackBuild @@ -25,8 +25,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=mtdev -VERSION=${VERSION:-1.1.6} -BUILD=${BUILD:-3} +VERSION=${VERSION:-1.1.7} +BUILD=${BUILD:-1} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/x/pyxdg/pyxdg.SlackBuild b/source/x/pyxdg/pyxdg.SlackBuild index 2ac035e32..7b705aeb1 100755 --- a/source/x/pyxdg/pyxdg.SlackBuild +++ b/source/x/pyxdg/pyxdg.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pyxdg 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/x/wayland-protocols/wayland-protocols.url b/source/x/wayland-protocols/wayland-protocols.url index cc8a6cfb3..e4c608987 100644 --- a/source/x/wayland-protocols/wayland-protocols.url +++ b/source/x/wayland-protocols/wayland-protocols.url @@ -1,2 +1,2 @@ https://wayland.freedesktop.org/releases.html -https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.34/downloads/wayland-protocols-1.34.tar.xz +https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.36/downloads/wayland-protocols-1.36.tar.xz diff --git a/source/x/x11/build/rendercheck b/source/x/x11/build/rendercheck index b8626c4cf..d00491fd7 100644 --- a/source/x/x11/build/rendercheck +++ b/source/x/x11/build/rendercheck @@ -1 +1 @@ -4 +1 diff --git a/source/x/x11/build/xcb-proto b/source/x/x11/build/xcb-proto index 0cfbf0888..d00491fd7 100644 --- a/source/x/x11/build/xcb-proto +++ b/source/x/x11/build/xcb-proto @@ -1 +1 @@ -2 +1 diff --git a/source/x/x11/configure/meson b/source/x/x11/configure/meson new file mode 100644 index 000000000..cd149401c --- /dev/null +++ b/source/x/x11/configure/meson @@ -0,0 +1,17 @@ +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir build +cd 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 \ + --localstatedir /var \ + --buildtype=release \ + .. || exit 1 diff --git a/source/x/x11/configure/rendercheck b/source/x/x11/configure/rendercheck new file mode 100644 index 000000000..cd149401c --- /dev/null +++ b/source/x/x11/configure/rendercheck @@ -0,0 +1,17 @@ +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir build +cd 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 \ + --localstatedir /var \ + --buildtype=release \ + .. || exit 1 diff --git a/source/x/x11/make/ninja b/source/x/x11/make/ninja new file mode 100644 index 000000000..635ee83dc --- /dev/null +++ b/source/x/x11/make/ninja @@ -0,0 +1,5 @@ +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" + ninja || exit 1 + DESTDIR=$PKG ninja install || exit 1 +cd .. diff --git a/source/x/x11/make/rendercheck b/source/x/x11/make/rendercheck new file mode 100644 index 000000000..635ee83dc --- /dev/null +++ b/source/x/x11/make/rendercheck @@ -0,0 +1,5 @@ +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" + ninja || exit 1 + DESTDIR=$PKG ninja install || exit 1 +cd .. diff --git a/source/x/x11/src/xf86-input-wacom.url b/source/x/x11/src/xf86-input-wacom.url index 6dd650d65..53b87de6f 100644 --- a/source/x/x11/src/xf86-input-wacom.url +++ b/source/x/x11/src/xf86-input-wacom.url @@ -1,2 +1,2 @@ https://github.com/linuxwacom/xf86-input-wacom -https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-1.2.1/xf86-input-wacom-1.2.1.tar.bz2 +https://github.com/linuxwacom/xf86-input-wacom/releases/download/xf86-input-wacom-1.2.2/xf86-input-wacom-1.2.2.tar.bz2 diff --git a/source/x/xcb-imdkit/xcb-imdkit-1.0.8.tar.zst b/source/x/xcb-imdkit/xcb-imdkit-1.0.8.tar.zst Binary files differnew file mode 100644 index 000000000..29e70513c --- /dev/null +++ b/source/x/xcb-imdkit/xcb-imdkit-1.0.8.tar.zst diff --git a/source/x/xcb-imdkit/xcb-imdkit.SlackBuild b/source/x/xcb-imdkit/xcb-imdkit.SlackBuild index 67eebec14..a9be5a5da 100755 --- a/source/x/xcb-imdkit/xcb-imdkit.SlackBuild +++ b/source/x/xcb-imdkit/xcb-imdkit.SlackBuild @@ -1,7 +1,7 @@ #!/bin/bash # Copyright 2022 Heinz Wiesinger, Amsterdam, The Netherlands -# Copyright 2022 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2022, 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=xcb-imdkit -VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} +VERSION=${VERSION:-$(echo $PKGNAM-*.tar.zst | rev | cut -f 3- -d . | cut -f 1 -d- | rev)} BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -76,7 +76,7 @@ rm -rf $PKG mkdir -p $TMP $PKG cd $TMP rm -rf xcb-imdkit-$VERSION -tar xvf $CWD/xcb-imdkit-$VERSION.tar.?z || exit 1 +tar xvf $CWD/xcb-imdkit-$VERSION.tar.zst || exit 1 cd xcb-imdkit-$VERSION || exit 1 chown -R root:root . diff --git a/source/xap/MPlayer/MPlayer.SlackBuild b/source/xap/MPlayer/MPlayer.SlackBuild index 0c543eeac..44df8d0ff 100755 --- a/source/xap/MPlayer/MPlayer.SlackBuild +++ b/source/xap/MPlayer/MPlayer.SlackBuild @@ -25,11 +25,11 @@ # Set initial variables: PKGNAM=MPlayer -VERSION=${VERSION:-20240130} +VERSION=${VERSION:-20240403} # Need to build trunk until there's a stable branch compatible with the # latest ffmpeg stable release: #BRANCH=${BRANCH:-1.3} # leave empty if you want to build MPlayer trunk -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -262,6 +262,8 @@ echo Building ... --mandir=/usr/man \ --confdir=/etc/mplayer \ --enable-gui \ + --enable-libaom-lavc \ + --enable-libdav1d-lavc \ --enable-menu \ --enable-vdpau \ --disable-arts \ diff --git a/source/xap/ddd/ddd.SlackBuild b/source/xap/ddd/ddd.SlackBuild index 48df65226..e724eee92 100755 --- a/source/xap/ddd/ddd.SlackBuild +++ b/source/xap/ddd/ddd.SlackBuild @@ -29,7 +29,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=ddd 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/xap/freerdp/freerdp.SlackBuild b/source/xap/freerdp/freerdp.SlackBuild index 6252d5db3..21e78ee05 100755 --- a/source/xap/freerdp/freerdp.SlackBuild +++ b/source/xap/freerdp/freerdp.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=freerdp VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/xap/gimp/gimp.SlackBuild b/source/xap/gimp/gimp.SlackBuild index 85167c90b..3c54f1cd9 100755 --- a/source/xap/gimp/gimp.SlackBuild +++ b/source/xap/gimp/gimp.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2011, 2015, 2018, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2011, 2015, 2018, 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=gimp VERSION=${VERSION:-$(echo $PKGNAM-*.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 diff --git a/source/xap/gnuchess/gnuchess.SlackBuild b/source/xap/gnuchess/gnuchess.SlackBuild index 31da21c5c..a0be62186 100755 --- a/source/xap/gnuchess/gnuchess.SlackBuild +++ b/source/xap/gnuchess/gnuchess.SlackBuild @@ -27,7 +27,7 @@ VERGNUCHESS=6.2.9 VERSJENG=11.2 VEREBOARD=1.1.1 VERXBOARD=4.9.1 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/xap/hexchat/hexchat.SlackBuild b/source/xap/hexchat/hexchat.SlackBuild index ebd2d4539..d1baf6d30 100755 --- a/source/xap/hexchat/hexchat.SlackBuild +++ b/source/xap/hexchat/hexchat.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=hexchat 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/xap/mozilla-firefox/mozilla-firefox.SlackBuild b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild index ab6c28373..92d0f6e84 100755 --- a/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild +++ b/source/xap/mozilla-firefox/mozilla-firefox.SlackBuild @@ -279,7 +279,7 @@ if [ ! -z $MOZLOCALIZE ]; then fi # They say to use the second line, not the first. -# But they're not the boos of me. +# But they're not the boss of me. export MACH_USE_SYSTEM_PYTHON="1" #export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system export MOZILLA_OFFICIAL="1" diff --git a/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff b/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff deleted file mode 100644 index 115ba0e7a..000000000 --- a/source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- ./config/makefiles/rust.mk.orig 2021-03-15 12:42:08.219987929 -0500 -+++ ./config/makefiles/rust.mk 2021-03-15 12:43:15.996984180 -0500 -@@ -332,17 +332,17 @@ - # the chance of proxy bypasses originating from rust code. - # The check only works when rust code is built with -Clto but without MOZ_LTO_RUST_CROSS. - # Sanitizers and sancov also fail because compiler-rt hooks network functions. --ifndef MOZ_PROFILE_GENERATE --ifeq ($(OS_ARCH), Linux) --ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN)) --ifndef MOZ_LTO_RUST_CROSS --ifneq (,$(filter -Clto,$(cargo_rustc_flags))) -- $(call py_action,check_binary,--target --networking $@) --endif --endif --endif --endif --endif -+#ifndef MOZ_PROFILE_GENERATE -+#ifeq ($(OS_ARCH), Linux) -+#ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN)) -+#ifndef MOZ_LTO_RUST_CROSS -+#ifneq (,$(filter -Clto,$(cargo_rustc_flags))) -+# $(call py_action,check_binary,--target --networking $@) -+#endif -+#endif -+#endif -+#endif -+#endif - - force-cargo-library-check: - $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag) diff --git a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild index b4cfb0cde..b02f7aaca 100755 --- a/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild +++ b/source/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2011, 2012, 2014, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2008, 2009, 2010, 2011, 2012, 2014, 2016, 2017, 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 @@ -170,9 +170,6 @@ rm -rf obj-x86_64-pc-linux-gnu # Retain GTK+ v2 scrolling behavior: zcat $CWD/tb.ui.scrollToClick.diff.gz | patch -p1 --verbose || exit 1 -# Bypass a test that fails the build: -zcat $CWD/gkrust.a.no.networking.check.diff.gz | patch -p1 --verbose || exit 1 - # Fix header mismatch on x86 with GCC: if [ "$ARCH" = "i686" -a "$CC" = "gcc" ]; then zcat $CWD/double_t.x86.diff.gz | patch -p1 --verbose || exit 1 @@ -250,7 +247,7 @@ if [ ! -z $MOZLOCALIZE ]; then fi # They say to use the second line, not the first. -# But they're not the boos of me. +# But they're not the boss of me. export MACH_USE_SYSTEM_PYTHON="1" #export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system export BUILD_OFFICIAL=1 diff --git a/source/xap/xine-ui/xine-ui.SlackBuild b/source/xap/xine-ui/xine-ui.SlackBuild index 287bbb2b9..a25a74a14 100755 --- a/source/xap/xine-ui/xine-ui.SlackBuild +++ b/source/xap/xine-ui/xine-ui.SlackBuild @@ -26,7 +26,7 @@ PKGNAM=xine-ui VERSION=${VERSION:-$(echo xine-ui-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} # I would use "-march=i586 -mcpu=i686" here as usual, but with XINE it's all or nothing. # I'd rather have it work well for the i686/Athlon crowd than suck for everyone. -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/xfce/mousepad/mousepad.SlackBuild b/source/xfce/mousepad/mousepad.SlackBuild index fa3e8bc11..ce1a38534 100755 --- a/source/xfce/mousepad/mousepad.SlackBuild +++ b/source/xfce/mousepad/mousepad.SlackBuild @@ -93,7 +93,7 @@ CXXFLAGS="$SLKCFLAGS" \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=/usr/man \ - --docdir=/usr/doc/$PRGNAM-$VERSION \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ --disable-debug \ --build=$ARCH-slackware-linux || exit 1 diff --git a/source/xfce/xfce4-notifyd/xfce4-notifyd.SlackBuild b/source/xfce/xfce4-notifyd/xfce4-notifyd.SlackBuild index df8dda2d8..32312381a 100755 --- a/source/xfce/xfce4-notifyd/xfce4-notifyd.SlackBuild +++ b/source/xfce/xfce4-notifyd/xfce4-notifyd.SlackBuild @@ -3,7 +3,7 @@ # Slackware build script for Xfce4-notifyd # Copyright 2008 Frank Caraballo <fecaraballo{at}gmail{dot}com> -# Copyright 2010, 2018, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2010, 2018, 2020, 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=xfce4-notifyd 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 @@ -87,6 +87,7 @@ CFLAGS="$SLKCFLAGS" \ --localstatedir=/var \ --mandir=/usr/man \ --enable-debug=no \ + --disable-dbus-start-daemon \ --build=$ARCH-slackware-linux || exit 1 make $NUMJOBS || make || exit 1 diff --git a/source/xfce/xfce4-notifyd/xfce4-notifyd.url b/source/xfce/xfce4-notifyd/xfce4-notifyd.url index 9151af925..7e66686fa 100644 --- a/source/xfce/xfce4-notifyd/xfce4-notifyd.url +++ b/source/xfce/xfce4-notifyd/xfce4-notifyd.url @@ -1 +1 @@ -http://archive.xfce.org/src/apps/xfce4-notifyd/0.8/ +http://archive.xfce.org/src/apps/xfce4-notifyd/0.9/ diff --git a/source/y/bsd-games/bsd-games.SlackBuild b/source/y/bsd-games/bsd-games.SlackBuild index 282c92927..f91e7c30d 100755 --- a/source/y/bsd-games/bsd-games.SlackBuild +++ b/source/y/bsd-games/bsd-games.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=bsd-games VERSION=${VERSION:-2.17} -BUILD=${BUILD:-4} +BUILD=${BUILD:-5} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/y/nethack/nethack.SlackBuild b/source/y/nethack/nethack.SlackBuild index d4ec99843..784327a6e 100755 --- a/source/y/nethack/nethack.SlackBuild +++ b/source/y/nethack/nethack.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=nethack VERSION=3.6.7 SRCVER=367 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then |