summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rwxr-xr-xsource/a/aaa_libraries/aaa_libraries.SlackBuild12
-rw-r--r--source/a/aaa_libraries/symlinks-to-tracked-libs12
-rw-r--r--source/a/aaa_libraries/tracked-files-tmp.d/aaa_libraries-boost40
-rw-r--r--source/a/aaa_libraries/tracked-files-tmp.d/boost41
-rwxr-xr-xsource/a/coreutils/coreutils.SlackBuild1
-rw-r--r--source/a/elogind/11-prefer-deep-suspend.patch8
-rw-r--r--source/a/elogind/12-default-deep-suspend.patch11
-rw-r--r--source/a/elogind/doinst.sh1
-rwxr-xr-xsource/a/elogind/elogind.SlackBuild57
-rwxr-xr-xsource/a/elvis/elvis.SlackBuild2
-rw-r--r--source/a/etc/doinst.sh9
-rwxr-xr-xsource/a/etc/etc.SlackBuild3
-rw-r--r--source/a/etc/group.new1
-rw-r--r--source/a/etc/passwd.new1
-rw-r--r--source/a/etc/shadow.new1
-rw-r--r--source/a/genpower/genpower.halt.diff32
-rw-r--r--source/a/genpower/genpower.var.diff34
-rw-r--r--source/a/genpower/slack-desc19
-rwxr-xr-xsource/a/gettext/gettext-tools.SlackBuild2
-rwxr-xr-xsource/a/gettext/gettext.SlackBuild2
-rw-r--r--source/a/gpm/gpm-1.20.1-weak-wgetch.patch14
-rwxr-xr-xsource/a/gpm/gpm.SlackBuild30
-rw-r--r--source/a/gpm/gpm.configure.diff23
-rwxr-xr-xsource/a/gptfdisk/gptfdisk.SlackBuild2
-rw-r--r--source/a/less/007521ac3c95bc76.patch73
-rwxr-xr-xsource/a/less/less.SlackBuild11
-rw-r--r--source/a/less/lesspipe.sh2
-rw-r--r--source/a/libblockdev/doinst.sh4
-rwxr-xr-xsource/a/libblockdev/libblockdev.SlackBuild16
-rwxr-xr-xsource/a/libpwquality/libpwquality.SlackBuild2
-rw-r--r--source/a/nut/doinst.sh30
-rwxr-xr-xsource/a/nut/nut.SlackBuild196
-rw-r--r--source/a/nut/rc.nut-drvctl32
-rw-r--r--source/a/nut/rc.nut-upsd41
-rw-r--r--source/a/nut/rc.nut-upsmon46
-rw-r--r--source/a/nut/slack-desc19
-rwxr-xr-xsource/a/nvi/nvi.SlackBuild2
-rw-r--r--source/a/pam/fedora-patches/pam-1.6.0-noflex.patch24
-rwxr-xr-xsource/a/pam/pam.SlackBuild1
-rw-r--r--source/a/pam/pam.url3
-rwxr-xr-xsource/a/procps-ng/procps-ng.SlackBuild5
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.638
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.M32
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild2
-rw-r--r--source/a/udisks/slack-desc19
-rw-r--r--source/a/udisks/udisks.glibc228.diff52
-rw-r--r--source/a/udisks/udisks.no.pci-db.diff32
-rw-r--r--source/a/udisks/udisks.url1
-rwxr-xr-xsource/a/upower/upower.SlackBuild2
-rwxr-xr-xsource/a/util-linux/util-linux.SlackBuild4
-rwxr-xr-xsource/a/volume_key/volume_key.SlackBuild2
-rw-r--r--source/a/xz/f9cf4c05edd14dedfe63833f8ccbe41b55823b00.patch25
-rwxr-xr-xsource/a/xz/xz.SlackBuild19
-rw-r--r--source/a/xz/xz.url1
-rwxr-xr-xsource/ap/bc/bc.SlackBuild2
-rwxr-xr-xsource/ap/bpe/bpe.SlackBuild2
-rwxr-xr-xsource/ap/cups-browsed/cups-browsed.SlackBuild153
-rw-r--r--source/ap/cups-browsed/cups-browsed.url1
-rw-r--r--source/ap/cups-browsed/doinst.sh (renamed from source/ap/cups-filters/doinst.sh)0
-rw-r--r--source/ap/cups-browsed/slack-desc (renamed from source/l/python-tomli/slack-desc)22
-rw-r--r--source/ap/cups-filters/CVE-2023-24805.patch167
-rwxr-xr-xsource/ap/cups-filters/cups-filters.SlackBuild32
-rw-r--r--source/ap/cups-filters/cups-filters.url2
-rw-r--r--source/ap/cups-filters/slack-desc2
-rwxr-xr-xsource/ap/cups/cups.SlackBuild8
-rw-r--r--source/ap/groff/0006-Revert-upstream-change-of-mapping-special-characters.patch76
-rwxr-xr-xsource/ap/groff/groff.SlackBuild8
-rwxr-xr-xsource/ap/gutenprint/gutenprint.SlackBuild2
-rw-r--r--source/ap/hplip/0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch622
-rw-r--r--source/ap/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch150
-rw-r--r--source/ap/hplip/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch29
-rw-r--r--source/ap/hplip/0026-remove-unicode-space-from-models.dat11
-rwxr-xr-xsource/ap/hplip/hplip.SlackBuild14
-rwxr-xr-xsource/ap/inxi/fetch-inxi.sh2
-rwxr-xr-xsource/ap/ispell/ispell.SlackBuild2
-rwxr-xr-xsource/ap/joe/joe.SlackBuild2
-rwxr-xr-xsource/ap/jove/jove.SlackBuild103
-rw-r--r--source/ap/jove/jove.glibc-2.30.diff17
-rw-r--r--source/ap/jove/jove.makefile.diff132
-rw-r--r--source/ap/jove/jove.url4
-rw-r--r--source/ap/linuxdoc-tools/ChangeLog.txt19
-rwxr-xr-xsource/ap/linuxdoc-tools/arm/build9
-rw-r--r--source/ap/linuxdoc-tools/doinst.sh13
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build82
-rwxr-xr-xsource/ap/linuxdoc-tools/postbuildfixes.sh28
-rw-r--r--source/ap/linuxdoc-tools/sources/linuxdoc-tools-0.9.20-lib64.patch10
-rw-r--r--source/ap/linuxdoc-tools/sources/linuxdoc-tools-0002-downstream-Added-fix-to-have-lib64-in-perl-path-on-6.patch25
-rwxr-xr-xsource/ap/linuxdoc-tools/sources/source.download111
-rwxr-xr-xsource/ap/linuxdoc-tools/trackbuild.linuxdoc-tools6
-rw-r--r--source/ap/mariadb/doinst.sh1
-rwxr-xr-xsource/ap/mariadb/mariadb.SlackBuild5
-rw-r--r--source/ap/mc/bogus.cflags.diff10
-rwxr-xr-xsource/ap/mc/mc.SlackBuild5
-rwxr-xr-xsource/ap/pamixer/pamixer.SlackBuild2
-rwxr-xr-xsource/ap/powertop/powertop.SlackBuild2
-rwxr-xr-xsource/ap/rpm/rpm.SlackBuild2
-rwxr-xr-xsource/ap/sc/sc.SlackBuild2
-rwxr-xr-xsource/ap/screen/screen.SlackBuild2
-rwxr-xr-xsource/ap/undervolt/undervolt.SlackBuild8
-rwxr-xr-xsource/ap/xfsdump/xfsdump.SlackBuild2
-rwxr-xr-xsource/d/cargo-vendor-filterer/fetch-sources.sh2
-rwxr-xr-xsource/d/clisp/clisp.SlackBuild2
-rw-r--r--source/d/cmake/cmake.url2
-rwxr-xr-xsource/d/cscope/cscope.SlackBuild2
-rwxr-xr-xsource/d/distcc/distcc.SlackBuild2
-rwxr-xr-xsource/d/gdb/gdb.SlackBuild2
-rwxr-xr-xsource/d/git/git.SlackBuild2
-rwxr-xr-xsource/d/guile/guile.SlackBuild2
-rwxr-xr-xsource/d/gyp/gyp.SlackBuild2
-rw-r--r--source/d/llvm/llvm.url30
-rwxr-xr-xsource/d/lua/lua.SlackBuild2
-rwxr-xr-xsource/d/meson/meson.SlackBuild2
-rw-r--r--source/d/nasm/slack-desc2
-rwxr-xr-xsource/d/nv-codec-headers/fetch-sources.sh2
-rwxr-xr-xsource/d/perl/perl.SlackBuild2
-rw-r--r--source/d/poke/poke-elf.url1
-rwxr-xr-xsource/d/poke/poke.SlackBuild85
-rw-r--r--source/d/poke/poke.url1
-rwxr-xr-xsource/d/python-pip/python-pip.SlackBuild6
-rwxr-xr-xsource/d/python-setuptools/python-setuptools.SlackBuild24
-rw-r--r--source/d/python-setuptools/setuptools.x86_64.diff31
-rwxr-xr-xsource/d/python2/python2.SlackBuild6
-rw-r--r--source/d/python3/README18
-rw-r--r--source/d/python3/python.sysconfig.py.x86_64.diff24
-rwxr-xr-xsource/d/python3/python3.SlackBuild41
-rw-r--r--source/d/python3/python3.distutils.x86_64.diff30
-rw-r--r--source/d/python3/python3.no-static-library.diff75
-rw-r--r--source/d/python3/python3.readline.set_pre_input_hook.diff12
-rw-r--r--source/d/python3/python3.setup.py.x86_64.diff11
-rw-r--r--source/d/rust/0004-compiler-Use-wasm-ld-for-wasm-targets.patch24
-rwxr-xr-xsource/d/rust/rust.SlackBuild10
-rw-r--r--source/d/rust/rust.url6
-rwxr-xr-xsource/d/scons/scons.SlackBuild2
-rw-r--r--source/d/valgrind/README19
-rw-r--r--source/d/valgrind/slack-desc19
-rwxr-xr-xsource/d/valgrind/valgrind.SlackBuild144
-rw-r--r--source/d/valgrind/valgrind.url1
-rwxr-xr-xsource/e/emacs/emacs.SlackBuild72
-rwxr-xr-xsource/e/emacs/emacs.SlackBuild.regular-build6
-rw-r--r--source/installer/ChangeLog.txt7
-rwxr-xr-xsource/installer/build_installer.sh12
-rw-r--r--source/k/kernel-configs/config-generic-6.6.30 (renamed from source/k/kernel-configs/config-generic-6.6.23)8
-rw-r--r--source/k/kernel-configs/config-generic-6.6.30.x64 (renamed from source/k/kernel-configs/config-generic-6.6.23.x64)12
-rw-r--r--source/k/kernel-configs/config-huge-6.6.30 (renamed from source/k/kernel-configs/config-huge-6.6.23)8
-rw-r--r--source/k/kernel-configs/config-huge-6.6.30.x64 (renamed from source/k/kernel-configs/config-huge-6.6.23.x64)12
-rw-r--r--source/kde/fcitx5-configtool/fcitx5-configtool-5.1.5.tar.zstbin0 -> 148724 bytes
-rwxr-xr-xsource/kde/fcitx5-configtool/fcitx5-configtool.SlackBuild6
-rw-r--r--source/kde/kde/build/calligra2
-rw-r--r--source/kde/kde/build/cantor2
-rw-r--r--source/kde/kde/build/kalgebra2
-rw-r--r--source/kde/kde/build/kapidox2
-rw-r--r--source/kde/kde/build/kdev-python2
-rw-r--r--source/kde/kde/build/kfilemetadata2
-rw-r--r--source/kde/kde/build/kig2
-rw-r--r--source/kde/kde/build/kile2
-rw-r--r--source/kde/kde/build/kitinerary2
-rw-r--r--source/kde/kde/build/kmymoney2
-rw-r--r--source/kde/kde/build/kopeninghours2
-rw-r--r--source/kde/kde/build/krita2
-rw-r--r--source/kde/kde/build/krusader2
-rw-r--r--source/kde/kde/build/okular2
-rw-r--r--source/kde/kde/patch/krusader.patch1
-rw-r--r--source/kde/kde/patch/krusader/e5a71586952049ac92fab6f05ed1ab05c1e733c4.patch50
-rwxr-xr-xsource/l/M2Crypto/M2Crypto.SlackBuild2
-rwxr-xr-xsource/l/PyQt-builder/PyQt-builder.SlackBuild8
-rwxr-xr-xsource/l/PyQt5/PyQt5.SlackBuild2
-rwxr-xr-xsource/l/PyQt5_sip/PyQt5_sip.SlackBuild2
-rwxr-xr-xsource/l/QScintilla/QScintilla.SlackBuild2
-rw-r--r--source/l/SDL2/SDL2.url2
-rwxr-xr-xsource/l/adwaita-icon-theme/adwaita-icon-theme.SlackBuild30
-rwxr-xr-xsource/l/aom/aom.SlackBuild132
-rwxr-xr-xsource/l/aom/fetch-aom.sh52
-rw-r--r--source/l/aom/slack-desc19
-rwxr-xr-xsource/l/avahi/avahi.SlackBuild2
-rwxr-xr-xsource/l/boost/boost.SlackBuild2
-rwxr-xr-xsource/l/brotli/brotli.SlackBuild2
-rwxr-xr-xsource/l/cryfs/cryfs.SlackBuild2
-rwxr-xr-xsource/l/dav1d/dav1d.SlackBuild (renamed from source/a/genpower/genpower.SlackBuild)120
-rw-r--r--source/l/dav1d/dav1d.url1
-rw-r--r--source/l/dav1d/slack-desc19
-rwxr-xr-xsource/l/dbus-python/dbus-python.SlackBuild2
-rw-r--r--source/l/dconf/slack-desc2
-rwxr-xr-xsource/l/dotconf/dotconf.SlackBuild2
-rw-r--r--source/l/enchant/enchant.url2
-rw-r--r--source/l/ffmpeg/0004-support-nv-codec-headers-12.2.patch291
-rwxr-xr-xsource/l/ffmpeg/ffmpeg.SlackBuild9
-rw-r--r--source/l/fribidi/fribidi.url1
-rwxr-xr-xsource/l/gdbm/gdbm.SlackBuild2
-rwxr-xr-xsource/l/gdk-pixbuf2/gdk-pixbuf2.SlackBuild2
-rwxr-xr-xsource/l/gexiv2/gexiv2.SlackBuild2
-rwxr-xr-xsource/l/gi-docgen/gi-docgen.SlackBuild2
-rwxr-xr-xsource/l/glade/glade.SlackBuild2
-rwxr-xr-xsource/l/glibc/glibc.SlackBuild2
-rw-r--r--source/l/glibc/patches/CVE-2024-2961_glibc2.39.patch217
-rw-r--r--source/l/gobject-introspection/slack-desc4
-rwxr-xr-xsource/l/gst-plugins-bad-free/fetch-sources.sh2
-rwxr-xr-xsource/l/imagemagick/imagemagick.SlackBuild4
-rw-r--r--source/l/jasper/jasper.url2
-rwxr-xr-xsource/l/lame/lame.SlackBuild2
-rwxr-xr-xsource/l/lensfun/lensfun.SlackBuild2
-rw-r--r--source/l/libarchive/libarchive.url1
-rwxr-xr-xsource/l/libcaca/libcaca.SlackBuild2
-rw-r--r--source/l/libcap-ng/30453b6553948cd05c438f9f509013e3bb84f25b.patch25
-rwxr-xr-xsource/l/libcap-ng/libcap-ng.SlackBuild5
-rwxr-xr-xsource/l/libcdio/libcdio.SlackBuild2
-rw-r--r--source/l/libclc/libclc.url2
-rwxr-xr-xsource/l/libcupsfilters/libcupsfilters.SlackBuild146
-rw-r--r--source/l/libcupsfilters/libcupsfilters.url1
-rw-r--r--source/l/libcupsfilters/slack-desc19
-rwxr-xr-xsource/l/libedit/libedit.SlackBuild2
-rwxr-xr-xsource/l/libgnt/libgnt.SlackBuild9
-rwxr-xr-xsource/l/libgtop/libgtop.SlackBuild5
-rwxr-xr-xsource/l/libical/libical.SlackBuild2
-rwxr-xr-xsource/l/libieee1284/libieee1284.SlackBuild2
-rwxr-xr-xsource/l/libimobiledevice/libimobiledevice.SlackBuild2
-rwxr-xr-xsource/l/libnjb/libnjb.SlackBuild2
-rwxr-xr-xsource/l/libplist/libplist.SlackBuild2
-rwxr-xr-xsource/l/libppd/libppd.SlackBuild (renamed from source/a/udisks/udisks.SlackBuild)116
-rw-r--r--source/l/libppd/libppd.url1
-rw-r--r--source/l/libppd/slack-desc19
-rwxr-xr-xsource/l/libproxy/libproxy.SlackBuild13
-rwxr-xr-xsource/l/libqalculate/libqalculate.SlackBuild2
-rwxr-xr-xsource/l/libseccomp/libseccomp.SlackBuild2
-rwxr-xr-xsource/l/libwebp/libwebp.SlackBuild2
-rwxr-xr-xsource/l/libxml2/libxml2.SlackBuild2
-rwxr-xr-xsource/l/libxslt/libxslt.SlackBuild2
-rwxr-xr-xsource/l/mlt/mlt.SlackBuild2
-rwxr-xr-xsource/l/mozilla-nss/mozilla-nss.SlackBuild2
-rwxr-xr-xsource/l/ncurses/aaa_terminfo.SlackBuild1
-rwxr-xr-xsource/l/ncurses/ncurses.SlackBuild123
-rw-r--r--source/l/ncurses/ncurses.mkhashsize.diff11
-rwxr-xr-xsource/l/newt/newt.SlackBuild2
-rw-r--r--source/l/pipewire/pipewire.url1
-rw-r--r--source/l/polkit/polkit-124-systemd-fixup.patch28
-rw-r--r--source/l/polkit/polkit-124-systemd.patch50
-rwxr-xr-xsource/l/polkit/polkit.SlackBuild9
-rwxr-xr-xsource/l/protobuf/protobuf.SlackBuild2
-rwxr-xr-xsource/l/pycairo/pycairo.SlackBuild2
-rwxr-xr-xsource/l/pycups/pycups.SlackBuild9
-rwxr-xr-xsource/l/pycurl/pycurl.SlackBuild2
-rwxr-xr-xsource/l/pygobject/pygobject.SlackBuild3
-rw-r--r--source/l/pygobject/slack-desc2
-rw-r--r--source/l/pygobject3/slack-desc2
-rwxr-xr-xsource/l/pygtk/pygtk.SlackBuild1
-rwxr-xr-xsource/l/pyparsing/pyparsing.SlackBuild2
-rw-r--r--source/l/python-Jinja2/jinja2.url (renamed from source/l/python-Jinja2/Jinja2.url)0
-rwxr-xr-xsource/l/python-Jinja2/python-Jinja2.SlackBuild2
-rwxr-xr-xsource/l/python-MarkupSafe/python-MarkupSafe.SlackBuild2
-rwxr-xr-xsource/l/python-PyYAML/python-PyYAML.SlackBuild2
-rwxr-xr-xsource/l/python-alabaster/python-alabaster.SlackBuild2
-rwxr-xr-xsource/l/python-appdirs/python-appdirs.SlackBuild2
-rw-r--r--source/l/python-babel/babel.url (renamed from source/l/python-babel/Babel.url)0
-rwxr-xr-xsource/l/python-babel/python-babel.SlackBuild2
-rwxr-xr-xsource/l/python-build/python-build.SlackBuild2
-rwxr-xr-xsource/l/python-calver/python-calver.SlackBuild2
-rwxr-xr-xsource/l/python-certifi/python-certifi.SlackBuild2
-rwxr-xr-xsource/l/python-cffi/python-cffi.SlackBuild2
-rwxr-xr-xsource/l/python-chardet/python-chardet.SlackBuild2
-rwxr-xr-xsource/l/python-charset-normalizer/python-charset-normalizer.SlackBuild2
-rwxr-xr-xsource/l/python-distro/python-distro.SlackBuild2
-rwxr-xr-xsource/l/python-dnspython/python-dnspython.SlackBuild2
-rwxr-xr-xsource/l/python-docutils/python-docutils.SlackBuild11
-rwxr-xr-xsource/l/python-doxypypy/python-doxypypy.SlackBuild2
-rwxr-xr-xsource/l/python-doxyqml/python-doxyqml.SlackBuild2
-rwxr-xr-xsource/l/python-editables/python-editables.SlackBuild2
-rwxr-xr-xsource/l/python-flit-core/python-flit-core.SlackBuild2
-rwxr-xr-xsource/l/python-future/python-future.SlackBuild2
-rwxr-xr-xsource/l/python-glad2/python-glad2.SlackBuild2
-rwxr-xr-xsource/l/python-html5lib/python-html5lib.SlackBuild2
-rwxr-xr-xsource/l/python-imagesize/python-imagesize.SlackBuild2
-rwxr-xr-xsource/l/python-importlib_metadata/python-importlib_metadata.SlackBuild2
-rwxr-xr-xsource/l/python-installer/python-installer.SlackBuild7
-rwxr-xr-xsource/l/python-markdown/python-markdown.SlackBuild2
-rwxr-xr-xsource/l/python-notify2/python-notify2.SlackBuild2
-rwxr-xr-xsource/l/python-packaging/python-packaging.SlackBuild2
-rwxr-xr-xsource/l/python-pathspec/python-pathspec.SlackBuild2
-rwxr-xr-xsource/l/python-pbr/python-pbr.SlackBuild2
-rwxr-xr-xsource/l/python-ply/python-ply.SlackBuild2
-rwxr-xr-xsource/l/python-psutil/python-psutil.SlackBuild2
-rwxr-xr-xsource/l/python-pysol_cards/python-pysol_cards.SlackBuild2
-rwxr-xr-xsource/l/python-pytz/python-pytz.SlackBuild84
-rw-r--r--source/l/python-pytz/pytz.url1
-rw-r--r--source/l/python-pytz/slack-desc19
-rwxr-xr-xsource/l/python-random2/python-random2.SlackBuild2
-rwxr-xr-xsource/l/python-requests/python-requests.SlackBuild2
-rwxr-xr-xsource/l/python-sane/python-sane.SlackBuild2
-rwxr-xr-xsource/l/python-setuptools_scm/python-setuptools_scm.SlackBuild2
-rw-r--r--source/l/python-setuptools_scm/setuptools_scm.url (renamed from source/l/python-setuptools_scm/setuptools-scm.url)0
-rwxr-xr-xsource/l/python-six/python-six.SlackBuild2
-rwxr-xr-xsource/l/python-smartypants/python-smartypants.SlackBuild2
-rwxr-xr-xsource/l/python-snowballstemmer/python-snowballstemmer.SlackBuild2
-rwxr-xr-xsource/l/python-sphinx_rtd_theme/python-sphinx_rtd_theme.SlackBuild2
-rwxr-xr-xsource/l/python-tomli-w/python-tomli-w.SlackBuild2
-rwxr-xr-xsource/l/python-tomli/python-tomli.SlackBuild85
-rw-r--r--source/l/python-tomli/tomli.url1
-rwxr-xr-xsource/l/python-typing_extensions/python-typing_extensions.SlackBuild84
-rw-r--r--source/l/python-typing_extensions/slack-desc19
-rw-r--r--source/l/python-typing_extensions/typing_extensions.url1
-rwxr-xr-xsource/l/python-typogrify/python-typogrify.SlackBuild2
-rwxr-xr-xsource/l/python-urllib3/python-urllib3.SlackBuild2
-rwxr-xr-xsource/l/python-webencodings/python-webencodings.SlackBuild2
-rwxr-xr-xsource/l/python-wheel/python-wheel.SlackBuild2
-rwxr-xr-xsource/l/python-zipp/python-zipp.SlackBuild2
-rwxr-xr-xsource/l/readline/readline.SlackBuild2
-rwxr-xr-xsource/l/sip/sip.SlackBuild2
-rw-r--r--source/l/sof-firmware/sof-firmware.url4
-rwxr-xr-xsource/l/speech-dispatcher/speech-dispatcher.SlackBuild2
-rwxr-xr-xsource/l/system-config-printer/system-config-printer.SlackBuild2
-rwxr-xr-xsource/l/talloc/talloc.SlackBuild2
-rwxr-xr-xsource/l/tdb/tdb.SlackBuild2
-rwxr-xr-xsource/l/tevent/tevent.SlackBuild2
-rwxr-xr-xsource/n/NetworkManager/NetworkManager.SlackBuild83
-rw-r--r--source/n/bind/caching-example/named.root8
-rw-r--r--source/n/bluez/b94f1be656f34ea1363f5566ef63b847234c6dea.patch45
-rwxr-xr-xsource/n/bluez/bluez.SlackBuild17
-rw-r--r--source/n/bluez/config/uart.conf6
-rw-r--r--source/n/bluez/doinst.sh1
-rwxr-xr-xsource/n/elm/elm.SlackBuild2
-rwxr-xr-xsource/n/epic5/epic5.SlackBuild2
-rwxr-xr-xsource/n/fetchmail/fetchmail.SlackBuild2
-rwxr-xr-xsource/n/getmail/getmail.SlackBuild2
-rw-r--r--source/n/gnutls/1830.patch96
-rwxr-xr-xsource/n/gnutls/gnutls.SlackBuild7
-rwxr-xr-xsource/n/gpgme/gpgme.SlackBuild2
-rw-r--r--source/n/httpd/httpd-2.4.58-r1914013.patch14
-rwxr-xr-xsource/n/httpd/httpd.SlackBuild3
-rw-r--r--source/n/httpd/httpd.url4
-rwxr-xr-xsource/n/iftop/iftop.SlackBuild2
-rwxr-xr-xsource/n/lynx/lynx.SlackBuild4
-rwxr-xr-xsource/n/metamail/metamail.SlackBuild2
-rwxr-xr-xsource/n/mobile-broadband-provider-info/mobile-broadband-provider-info.SlackBuild45
-rwxr-xr-xsource/n/mtr/mtr.SlackBuild2
-rw-r--r--source/n/net-snmp/785.patch119
-rwxr-xr-xsource/n/net-snmp/net-snmp.SlackBuild7
-rwxr-xr-xsource/n/netkit-ftp/netkit-ftp.SlackBuild2
-rwxr-xr-xsource/n/netkit-ntalk/netkit-ntalk.SlackBuild2
-rwxr-xr-xsource/n/netwatch/netwatch.SlackBuild2
-rwxr-xr-xsource/n/nftables/nftables.SlackBuild2
-rw-r--r--source/n/nghttp2/nghttp2.url2
-rwxr-xr-xsource/n/nn/nn.SlackBuild2
-rwxr-xr-xsource/n/nss-pam-ldapd/nss-pam-ldapd.SlackBuild2
-rwxr-xr-xsource/n/obexftp/obexftp.SlackBuild2
-rwxr-xr-xsource/n/php/fetch-php.sh4
-rwxr-xr-xsource/n/pssh/pssh.SlackBuild2
-rwxr-xr-xsource/n/rsync/rsync.SlackBuild2
-rwxr-xr-xsource/n/samba/samba.SlackBuild2
-rw-r--r--source/n/samba/samba.url4
-rw-r--r--source/n/samba/smb.conf.default34
-rw-r--r--source/n/samba/smb.conf.default.orig32
-rwxr-xr-xsource/n/telnet/telnet.SlackBuild2
-rwxr-xr-xsource/n/wpa_supplicant/wpa_supplicant.SlackBuild2
-rwxr-xr-xsource/n/ytalk/ytalk.SlackBuild2
-rw-r--r--source/t/texlive/doinst.sh8
-rw-r--r--source/t/texlive/douninst.sh9
-rwxr-xr-xsource/t/texlive/dump.unused.internal.libraries.from.sources.sh2
-rw-r--r--source/t/texlive/patches/aftergroup.patch105
-rw-r--r--source/t/texlive/patches/quit-breaking-on-minor-zlib-bump.patch21
-rw-r--r--source/t/texlive/prep/packages.texmf34
-rwxr-xr-x[-rw-r--r--]source/t/texlive/prep/texmf_get.sh49
-rw-r--r--source/t/texlive/texlive-20230313-source-security_fix-1.patch2034
-rwxr-xr-xsource/t/texlive/texlive.SlackBuild31
-rw-r--r--source/t/texlive/texlive.url4
-rwxr-xr-xsource/x/anthy-unicode/anthy-unicode.SlackBuild9
-rw-r--r--source/x/fcitx5-anthy/fcitx5-anthy-5.1.4.tar.zstbin0 -> 111798 bytes
-rwxr-xr-xsource/x/fcitx5-anthy/fcitx5-anthy.SlackBuild6
-rw-r--r--source/x/fcitx5-chinese-addons/fcitx5-chinese-addons-5.1.5_dict.tar.zstbin0 -> 907852 bytes
-rwxr-xr-xsource/x/fcitx5-chinese-addons/fcitx5-chinese-addons.SlackBuild4
-rw-r--r--source/x/fcitx5-gtk/fcitx5-gtk-5.1.3.tar.zstbin0 -> 67927 bytes
-rwxr-xr-xsource/x/fcitx5-gtk/fcitx5-gtk.SlackBuild6
-rw-r--r--source/x/fcitx5-hangul/fcitx5-hangul-5.1.3.tar.zstbin0 -> 47343 bytes
-rwxr-xr-xsource/x/fcitx5-hangul/fcitx5-hangul.SlackBuild6
-rw-r--r--source/x/fcitx5-kkc/fcitx5-kkc-5.1.3.tar.zstbin0 -> 55610 bytes
-rwxr-xr-xsource/x/fcitx5-kkc/fcitx5-kkc.SlackBuild4
-rw-r--r--source/x/fcitx5-m17n/fcitx5-m17n-5.1.1.tar.zstbin0 -> 28422 bytes
-rwxr-xr-xsource/x/fcitx5-m17n/fcitx5-m17n.SlackBuild6
-rw-r--r--source/x/fcitx5-qt/fcitx5-qt-5.1.6.tar.zstbin0 -> 127978 bytes
-rwxr-xr-xsource/x/fcitx5-qt/fcitx5-qt.SlackBuild6
-rw-r--r--source/x/fcitx5-sayura/fcitx5-sayura-5.1.2.tar.zstbin0 -> 25363 bytes
-rwxr-xr-xsource/x/fcitx5-sayura/fcitx5-sayura.SlackBuild6
-rw-r--r--source/x/fcitx5-table-extra/fcitx5-table-extra-5.1.5.tar.zstbin0 -> 13837962 bytes
-rwxr-xr-xsource/x/fcitx5-table-extra/fcitx5-table-extra.SlackBuild6
-rw-r--r--source/x/fcitx5-table-other/fcitx5-table-other-5.1.2.tar.zstbin0 -> 532035 bytes
-rwxr-xr-xsource/x/fcitx5-table-other/fcitx5-table-other.SlackBuild6
-rw-r--r--source/x/fcitx5-unikey/fcitx5-unikey-5.1.4.tar.zstbin0 -> 114482 bytes
-rwxr-xr-xsource/x/fcitx5-unikey/fcitx5-unikey.SlackBuild6
-rw-r--r--source/x/fcitx5/fcitx5-5.1.9_dict.tar.zstbin0 -> 7531232 bytes
-rwxr-xr-xsource/x/fcitx5/fcitx5.SlackBuild6
-rwxr-xr-xsource/x/ibus-anthy/ibus-anthy.SlackBuild2
-rwxr-xr-xsource/x/ibus-hangul/ibus-hangul.SlackBuild2
-rwxr-xr-xsource/x/ibus-libpinyin/ibus-libpinyin.SlackBuild2
-rwxr-xr-xsource/x/ibus-table/ibus-table.SlackBuild2
-rwxr-xr-xsource/x/ibus/ibus.SlackBuild2
-rw-r--r--source/x/libime/libime-1.1.7_dict.tar.zstbin0 -> 36925132 bytes
-rwxr-xr-xsource/x/libime/libime.SlackBuild6
-rwxr-xr-xsource/x/marisa/marisa.SlackBuild2
-rwxr-xr-xsource/x/mtdev/mtdev.SlackBuild4
-rwxr-xr-xsource/x/pyxdg/pyxdg.SlackBuild2
-rw-r--r--source/x/wayland-protocols/wayland-protocols.url2
-rw-r--r--source/x/x11/build/rendercheck2
-rw-r--r--source/x/x11/build/xcb-proto2
-rw-r--r--source/x/x11/configure/meson17
-rw-r--r--source/x/x11/configure/rendercheck17
-rw-r--r--source/x/x11/make/ninja5
-rw-r--r--source/x/x11/make/rendercheck5
-rw-r--r--source/x/x11/src/xf86-input-wacom.url2
-rw-r--r--source/x/xcb-imdkit/xcb-imdkit-1.0.8.tar.zstbin0 -> 580618 bytes
-rwxr-xr-xsource/x/xcb-imdkit/xcb-imdkit.SlackBuild6
-rwxr-xr-xsource/xap/MPlayer/MPlayer.SlackBuild6
-rwxr-xr-xsource/xap/ddd/ddd.SlackBuild2
-rwxr-xr-xsource/xap/freerdp/freerdp.SlackBuild2
-rwxr-xr-xsource/xap/gimp/gimp.SlackBuild4
-rwxr-xr-xsource/xap/gnuchess/gnuchess.SlackBuild2
-rwxr-xr-xsource/xap/hexchat/hexchat.SlackBuild2
-rwxr-xr-xsource/xap/mozilla-firefox/mozilla-firefox.SlackBuild2
-rw-r--r--source/xap/mozilla-thunderbird/gkrust.a.no.networking.check.diff31
-rwxr-xr-xsource/xap/mozilla-thunderbird/mozilla-thunderbird.SlackBuild7
-rwxr-xr-xsource/xap/xine-ui/xine-ui.SlackBuild2
-rwxr-xr-xsource/xfce/mousepad/mousepad.SlackBuild2
-rwxr-xr-xsource/xfce/xfce4-notifyd/xfce4-notifyd.SlackBuild5
-rw-r--r--source/xfce/xfce4-notifyd/xfce4-notifyd.url2
-rwxr-xr-xsource/y/bsd-games/bsd-games.SlackBuild2
-rwxr-xr-xsource/y/nethack/nethack.SlackBuild2
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&section=all
# There's nothing in the FTP download site at this time, so I'll take it from Debian.
-wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
-wget -c http://http.debian.net/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-36.debian.tar.xz
-
+wget http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
+wget http://http.debian.net/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-36.debian.tar.xz
#
#http://packages.debian.org/sid/docbook2x
# Fedora keep it here, but Debian have a couple of (what look to be useful) patches.
-#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook2X-0.8.8-14.fc19.src.rpm
+#wget ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook2X-0.8.8-14.fc19.src.rpm
#
# https://packages.debian.org/search?keywords=docbook2x&searchon=names&suite=all&section=all
-wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8.orig.tar.gz
+wget http://ftp.de.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8.orig.tar.gz
wget http://deb.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8-17.debian.tar.xz
# DocBook docs:
# http://www.oasis-open.org/docbook/sgml/
#
-#wget -c http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip
-#wget -c http://www.docbook.org/sgml/4.5/docbook-4.5.zip
+#wget http://www.oasis-open.org/docbook/sgml/3.1/docbk31.zip
+#wget http://www.docbook.org/sgml/4.5/docbook-4.5.zip
# We use Debian's source because it's more convenient since they package all versions in one archive:
# https://packages.debian.org/search?keywords=docbook&searchon=names&suite=all&section=all
-wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz
+wget http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz
#
diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
index b2e9c26f1..cd280da63 100755
--- a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
+++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
@@ -21,8 +21,8 @@
# Package info:
PKGNAM=linuxdoc-tools
-export PKGVERSION=0.9.82 # use the version of linuxdoc-tools as the package version.
-BUILD=${BUILD:-4}
+export PKGVERSION=0.9.83 # use the version of linuxdoc-tools as the package version.
+BUILD=${BUILD:-1}
PKGEXT=${PKGEXT:-txz}
# Automatically determine the architecture we're building on:
@@ -67,8 +67,8 @@ rm -rf ~/.texlive* # incase you were using Texlive rather than Textex-3
# but is slower. However, if you really want extra speed, copy
# this entire package source directory to a temporary location
# and run it from there.
+# This is the recommended option to use during development cycles:
# TFS="--touch-filesystem-faster"
-
TFS="--touch-filesystem-first"
# Launch the build script:
diff --git a/source/ap/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
new file mode 100644
index 000000000..24264e24e
--- /dev/null
+++ b/source/kde/fcitx5-configtool/fcitx5-configtool-5.1.5.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..02230d755
--- /dev/null
+++ b/source/x/fcitx5-anthy/fcitx5-anthy-5.1.4.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..2bf0bda2d
--- /dev/null
+++ b/source/x/fcitx5-chinese-addons/fcitx5-chinese-addons-5.1.5_dict.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..09108d813
--- /dev/null
+++ b/source/x/fcitx5-gtk/fcitx5-gtk-5.1.3.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..ebd3371af
--- /dev/null
+++ b/source/x/fcitx5-hangul/fcitx5-hangul-5.1.3.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..f12b63e70
--- /dev/null
+++ b/source/x/fcitx5-kkc/fcitx5-kkc-5.1.3.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..a2215d104
--- /dev/null
+++ b/source/x/fcitx5-m17n/fcitx5-m17n-5.1.1.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..4a90e4dcb
--- /dev/null
+++ b/source/x/fcitx5-qt/fcitx5-qt-5.1.6.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..c19058275
--- /dev/null
+++ b/source/x/fcitx5-sayura/fcitx5-sayura-5.1.2.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..388fbe905
--- /dev/null
+++ b/source/x/fcitx5-table-extra/fcitx5-table-extra-5.1.5.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..4268d71d5
--- /dev/null
+++ b/source/x/fcitx5-table-other/fcitx5-table-other-5.1.2.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..7741f3e0a
--- /dev/null
+++ b/source/x/fcitx5-unikey/fcitx5-unikey-5.1.4.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..06c48916f
--- /dev/null
+++ b/source/x/fcitx5/fcitx5-5.1.9_dict.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..37ff9f6ce
--- /dev/null
+++ b/source/x/libime/libime-1.1.7_dict.tar.zst
Binary files differ
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
new file mode 100644
index 000000000..29e70513c
--- /dev/null
+++ b/source/x/xcb-imdkit/xcb-imdkit-1.0.8.tar.zst
Binary files differ
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