summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.65
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild2
-rw-r--r--source/ap/ghostscript/ghostscript.13418541a5ae19b15f51cbb87faf344902f5af98.patch55
-rwxr-xr-xsource/ap/ghostscript/ghostscript.SlackBuild9
-rw-r--r--source/ap/ghostscript/ghostscript.c8c01f8c4164bc10281d9e8f87cf96314d93104b.patch43
-rw-r--r--source/ap/ghostscript/ghostscript.fix.filter.failed.bc3df077.patch80
-rw-r--r--source/ap/ghostscript/ghostscript.url2
-rw-r--r--source/ap/squashfs-tools/0001-kfreebsd.patch123
-rw-r--r--source/ap/squashfs-tools/0002-fix_phys_mem_calculation.patch159
-rw-r--r--source/ap/squashfs-tools/0003-CVE-2015-4645_and_CVE-2015-4646.patch76
-rw-r--r--source/ap/squashfs-tools/0004-unsquashfs-add-support-for-LZMA-magics.patch102
-rw-r--r--source/ap/squashfs-tools/0006-uptream-fix-race.patch54
-rw-r--r--source/ap/squashfs-tools/0007-fix-2GB-limit-in-mksquashfs.patch27
-rwxr-xr-xsource/ap/squashfs-tools/get-squashfs-tools.sh50
-rw-r--r--source/ap/squashfs-tools/slack-desc10
-rwxr-xr-xsource/ap/squashfs-tools/squashfs-tools.SlackBuild31
-rwxr-xr-xsource/d/binutils/binutils.SlackBuild11
-rw-r--r--source/installer/ChangeLog.txt3
-rwxr-xr-xsource/installer/sources/initrd/etc/rc.d/rc.font4
-rwxr-xr-xsource/l/freetype/freetype.SlackBuild6
-rw-r--r--source/l/freetype/freetype.this.is.not.a.windows.system.diff39
-rw-r--r--source/l/zstd/slack-desc19
-rwxr-xr-xsource/l/zstd/zstd.SlackBuild152
-rw-r--r--source/l/zstd/zstd.dont.link.pzstd.to.static.libzstd.a.diff13
-rw-r--r--source/l/zstd/zstd.url1
-rw-r--r--source/xfce/tumbler/tumbler.url2
26 files changed, 316 insertions, 762 deletions
diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6
index d71e3547..913af845 100644
--- a/source/a/sysvinit-scripts/scripts/rc.6
+++ b/source/a/sysvinit-scripts/scripts/rc.6
@@ -237,6 +237,11 @@ fi
echo "Unmounting local file systems:"
/bin/umount -v -a -t no,proc,sysfs | tr -d ' ' | grep successfully | sed "s/:successfullyunmounted/ has been successfully unmounted./g" 2> /dev/null
+# JFS needs a sync here or the / partition cannot be remounted read-only.
+# In spite of this, it seems that a JFS root partition will always be checked
+# (and found to be clean) at boot:
+/bin/sync
+
echo "Remounting root filesystem read-only:"
/bin/mount -v -n -o remount,ro /
diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
index 1fa513f9..3df2410e 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:-2.1}
ARCH=noarch
-BUILD=${BUILD:-19}
+BUILD=${BUILD:-20}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
diff --git a/source/ap/ghostscript/ghostscript.13418541a5ae19b15f51cbb87faf344902f5af98.patch b/source/ap/ghostscript/ghostscript.13418541a5ae19b15f51cbb87faf344902f5af98.patch
deleted file mode 100644
index 13fd2503..00000000
--- a/source/ap/ghostscript/ghostscript.13418541a5ae19b15f51cbb87faf344902f5af98.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 13418541a5ae19b15f51cbb87faf344902f5af98 Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Thu, 6 Sep 2018 18:40:05 +0100
-Subject: [PATCH] Bug 699722 (2): add wildcards to the permissions paths.
-
-The temp and ICC profile paths need to finish with wildcards to work correctly.
----
- Resource/Init/gs_init.ps | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
-index 83918a9..5ff9f63 100644
---- a/Resource/Init/gs_init.ps
-+++ b/Resource/Init/gs_init.ps
-@@ -2034,7 +2034,7 @@ readonly def
- <<
- /PermitFileReading [
- currentuserparams /PermitFileReading get aload pop
-- //tempfilepaths aload pop
-+ [//tempfilepaths aload pop] (*) .generate_dir_list_templates
- /FONTPATH .systemvar (*) .generate_dir_list_templates
- % Library files :
- /LIBPATH .systemvar (*) .generate_dir_list_templates
-@@ -2049,15 +2049,15 @@ readonly def
- [ currentsystemparams /GenericResourceDir get] (*) .file_name_separator (*)
- concatstrings concatstrings .generate_dir_list_templates
- } if
-- currentuserparams /ICCProfilesDir known {currentuserparams /ICCProfilesDir get} if
-+ currentuserparams /ICCProfilesDir known {[currentuserparams /ICCProfilesDir get] (*) .generate_dir_list_templates} if
- ]
- /PermitFileWriting [
- currentuserparams /PermitFileWriting get aload pop
-- //tempfilepaths aload pop
-+ [//tempfilepaths aload pop] (*) .generate_dir_list_templates
- ]
- /PermitFileControl [
- currentuserparams /PermitFileControl get aload pop
-- //tempfilepaths aload pop
-+ [//tempfilepaths aload pop] (*) .generate_dir_list_templates
- ]
- /LockFilePermissions //true
- >> setuserparams
-@@ -2140,7 +2140,7 @@ SAFER { .setsafeglobal } if
- /.setshapealpha % transparency-example.ps
- /.endtransparencygroup % transparency-example.ps
- /.setdotlength % Bug687720.ps
-- /.sort /.setdebug /.mementolistnewblocks /getenv
-+ /.sort /.mementolistnewblocks /getenv
-
- /.makeoperator /.setCPSImode % gs_cet.ps, this won't work on cluster with -dSAFER
-
---
-2.9.1
-
-
diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild
index fa96e4bf..0e113a3a 100755
--- a/source/ap/ghostscript/ghostscript.SlackBuild
+++ b/source/ap/ghostscript/ghostscript.SlackBuild
@@ -27,7 +27,7 @@ if [ -r gnu-ghostscript-*.tar.?z ]; then
SRCPREFIX="gnu-"
fi
VERSION=${VERSION:-$(echo $SRCPREFIX$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
@@ -76,13 +76,6 @@ cd ${SRCPREFIX}${PKGNAM}-$VERSION || exit 1
# Remove unmaintained garbage:
rm -rf freetype jpeg lcms2 libpng libtiff png tiff zlib
-# Upstream patch to fix "Filter failed." issue:
-zcat $CWD/ghostscript.fix.filter.failed.bc3df077.patch.gz | patch -p1 --verbose || exit 1
-
-# Upstream patches to fix printing PDF files:
-zcat $CWD/ghostscript.c8c01f8c4164bc10281d9e8f87cf96314d93104b.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/ghostscript.13418541a5ae19b15f51cbb87faf344902f5af98.patch.gz | patch -p1 --verbose || exit 1
-
# Regenerate ./configure. Needed if patched, or to prevent libtool mismatch.
autoreconf --force --install
( cd jbig2dec ; autoreconf --force --install )
diff --git a/source/ap/ghostscript/ghostscript.c8c01f8c4164bc10281d9e8f87cf96314d93104b.patch b/source/ap/ghostscript/ghostscript.c8c01f8c4164bc10281d9e8f87cf96314d93104b.patch
deleted file mode 100644
index b1f4799f..00000000
--- a/source/ap/ghostscript/ghostscript.c8c01f8c4164bc10281d9e8f87cf96314d93104b.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c8c01f8c4164bc10281d9e8f87cf96314d93104b Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Thu, 6 Sep 2018 14:08:41 +0100
-Subject: [PATCH] Bug 699722: Add the ICCProfilesDir to the PermitReading list
-
-There was also an issue that the string being returned from the graphics
-library was null terminated, and Postscript strings are not (and Ghostscript
-strings are not necessarily). We leave the null termination in place, but
-reduce the length returned by 1.
----
- Resource/Init/gs_init.ps | 1 +
- base/gsicc_manage.c | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
-index bc8b795..83918a9 100644
---- a/Resource/Init/gs_init.ps
-+++ b/Resource/Init/gs_init.ps
-@@ -2049,6 +2049,7 @@ readonly def
- [ currentsystemparams /GenericResourceDir get] (*) .file_name_separator (*)
- concatstrings concatstrings .generate_dir_list_templates
- } if
-+ currentuserparams /ICCProfilesDir known {currentuserparams /ICCProfilesDir get} if
- ]
- /PermitFileWriting [
- currentuserparams /PermitFileWriting get aload pop
-diff --git a/base/gsicc_manage.c b/base/gsicc_manage.c
-index 69f05c4..ff685e7 100644
---- a/base/gsicc_manage.c
-+++ b/base/gsicc_manage.c
-@@ -2972,7 +2972,7 @@ gs_currenticcdirectory(const gs_gstate * pgs, gs_param_string * pval)
- pval->persistent = true;
- } else {
- pval->data = (const byte *)(lib_ctx->profiledir);
-- pval->size = lib_ctx->profiledir_len;
-+ pval->size = lib_ctx->profiledir_len - 1;
- pval->persistent = false;
- }
- }
---
-2.9.1
-
-
diff --git a/source/ap/ghostscript/ghostscript.fix.filter.failed.bc3df077.patch b/source/ap/ghostscript/ghostscript.fix.filter.failed.bc3df077.patch
deleted file mode 100644
index 7193b8f5..00000000
--- a/source/ap/ghostscript/ghostscript.fix.filter.failed.bc3df077.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From bc3df0773fccf4b4906a3e59652ad646ea0fee91 Mon Sep 17 00:00:00 2001
-From: Chris Liddell <chris.liddell@artifex.com>
-Date: Tue, 4 Sep 2018 17:01:08 +0100
-Subject: [PATCH] For ICC profile validation, have cups id iteself as DeviceN
-
-Give the range of color spaces and models that cups supports, we can't
-reasonably provide (or expect others to provide) output ICC profiles for all
-cases.
-
-For the purpose of profile validation, have it claim to be DeviceN and benefit
-from the extra tolerance in profiles allowed for that class of device.
----
- cups/gdevcups.c | 15 ++++++++++++++-
- devices/devs.mak | 2 +-
- 2 files changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/cups/gdevcups.c b/cups/gdevcups.c
-index c1574f8..decd8eb 100644
---- a/cups/gdevcups.c
-+++ b/cups/gdevcups.c
-@@ -70,6 +70,7 @@
- #include "std.h" /* to stop stdlib.h redefining types */
- #include "gdevprn.h"
- #include "gsparam.h"
-+#include "gxdevsop.h"
- #include "arch.h"
- #include "gsicc_manage.h"
-
-@@ -252,6 +253,7 @@ private int cups_put_params(gx_device *, gs_param_list *);
- private int cups_set_color_info(gx_device *);
- private dev_proc_sync_output(cups_sync_output);
- private prn_dev_proc_get_space_params(cups_get_space_params);
-+private int cups_spec_op(gx_device *dev_, int op, void *data, int datasize);
-
- #ifdef dev_t_proc_encode_color
- private cm_map_proc_gray(cups_map_gray);
-@@ -392,7 +394,7 @@ private gx_device_procs cups_procs =
- NULL, /* push_transparency_state */
- NULL, /* pop_transparency_state */
- NULL, /* put_image */
--
-+ cups_spec_op
- };
-
- #define prn_device_body_copies(dtype, procs, dname, w10, h10, xdpi, ydpi, lo, to, lm, bm, rm, tm, ncomp, depth, mg, mc, dg, dc, print_pages)\
-@@ -5927,6 +5929,17 @@ cups_print_planar(gx_device_printer *pdev,
- return (0);
- }
-
-+private int
-+cups_spec_op(gx_device *dev_, int op, void *data, int datasize)
-+{
-+ /* Although not strictly DeviceN, the range of color models
-+ this device supports presets similar issues.
-+ */
-+ if (op == gxdso_supports_devn) {
-+ return true;
-+ }
-+ return gx_default_dev_spec_op(dev_, op, data, datasize);
-+}
-
- /*
- */
-diff --git a/devices/devs.mak b/devices/devs.mak
-index c85604c..e8654e5 100644
---- a/devices/devs.mak
-+++ b/devices/devs.mak
-@@ -1860,7 +1860,7 @@ $(DD)pwgraster.dev : $(lcups_dev) $(lcupsi_dev) $(cups_) $(GDEV) \
- $(ADDMOD) $(DD)pwgraster -include $(lcups_dev)
- $(ADDMOD) $(DD)pwgraster -include $(lcupsi_dev)
-
--$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(DEVS_MAK) $(MAKEDIRS)
-+$(DEVOBJ)gdevcups.$(OBJ) : $(LCUPSSRCDIR)$(D)gdevcups.c $(std_h) $(gxdevsop_h) $(DEVS_MAK) $(MAKEDIRS)
- $(CUPS_CC) $(DEVO_)gdevcups.$(OBJ) $(C_) $(CFLAGS) $(CUPSCFLAGS) \
- $(I_)$(GLSRC) \
- $(I_)$(DEVSRC) \
---
-2.9.1
-
-
diff --git a/source/ap/ghostscript/ghostscript.url b/source/ap/ghostscript/ghostscript.url
index 97f57f6c..1483f125 100644
--- a/source/ap/ghostscript/ghostscript.url
+++ b/source/ap/ghostscript/ghostscript.url
@@ -1 +1 @@
-https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs924/ghostscript-9.24.tar.xz
+https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs925/ghostscript-9.25.tar.xz
diff --git a/source/ap/squashfs-tools/0001-kfreebsd.patch b/source/ap/squashfs-tools/0001-kfreebsd.patch
deleted file mode 100644
index 7ce6cd5b..00000000
--- a/source/ap/squashfs-tools/0001-kfreebsd.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-Author: Cyril Brulebois <kibi@debian.org>
-Description: Fixes FTBFS on kfreebsd (Closes: #557174).
-Last-Update: 2015-09-06
-
---- squashfs-tools-4.3.orig/squashfs-tools/mksquashfs.c
-+++ squashfs-tools-4.3/squashfs-tools/mksquashfs.c
-@@ -51,7 +51,7 @@
- #include <limits.h>
- #include <ctype.h>
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
-@@ -4105,7 +4105,7 @@ void initialise_threads(int readq, int f
- BAD_ERROR("Failed to set signal mask in intialise_threads\n");
-
- if(processors == -1) {
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- int mib[2];
- size_t len = sizeof(processors);
-
---- squashfs-tools-4.3.orig/squashfs-tools/read_fs.c
-+++ squashfs-tools-4.3/squashfs-tools/read_fs.c
-@@ -35,7 +35,7 @@
- #include <limits.h>
- #include <dirent.h>
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/read_xattrs.c
-+++ squashfs-tools-4.3/squashfs-tools/read_xattrs.c
-@@ -31,7 +31,7 @@
- #include <stdio.h>
- #include <string.h>
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/swap.c
-+++ squashfs-tools-4.3/squashfs-tools/swap.c
-@@ -19,7 +19,7 @@
- * swap.c
- */
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/unsquashfs.c
-+++ squashfs-tools-4.3/squashfs-tools/unsquashfs.c
-@@ -2190,7 +2190,7 @@ void initialise_threads(int fragment_buf
- "\n");
-
- if(processors == -1) {
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- int mib[2];
- size_t len = sizeof(processors);
-
---- squashfs-tools-4.3.orig/squashfs-tools/unsquashfs.h
-+++ squashfs-tools-4.3/squashfs-tools/unsquashfs.h
-@@ -47,7 +47,7 @@
- #include <sys/ioctl.h>
- #include <sys/time.h>
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/xz_wrapper.h
-+++ squashfs-tools-4.3/squashfs-tools/xz_wrapper.h
-@@ -24,7 +24,7 @@
- *
- */
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/gzip_wrapper.h
-+++ squashfs-tools-4.3/squashfs-tools/gzip_wrapper.h
-@@ -24,7 +24,7 @@
- *
- */
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/lz4_wrapper.h
-+++ squashfs-tools-4.3/squashfs-tools/lz4_wrapper.h
-@@ -24,7 +24,7 @@
- *
- */
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
---- squashfs-tools-4.3.orig/squashfs-tools/lzo_wrapper.h
-+++ squashfs-tools-4.3/squashfs-tools/lzo_wrapper.h
-@@ -24,7 +24,7 @@
- *
- */
-
--#ifndef linux
-+#if !defined(linux) && !defined(__GLIBC__)
- #define __BYTE_ORDER BYTE_ORDER
- #define __BIG_ENDIAN BIG_ENDIAN
- #define __LITTLE_ENDIAN LITTLE_ENDIAN
diff --git a/source/ap/squashfs-tools/0002-fix_phys_mem_calculation.patch b/source/ap/squashfs-tools/0002-fix_phys_mem_calculation.patch
deleted file mode 100644
index 20f9005b..00000000
--- a/source/ap/squashfs-tools/0002-fix_phys_mem_calculation.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From 55f7ba830d40d438f0b0663a505e0c227fc68b6b Mon Sep 17 00:00:00 2001
-From: Phillip Lougher <phillip@squashfs.org.uk>
-Date: Tue, 10 Jun 2014 21:51:52 +0100
-Subject: [PATCH] mksquashfs: fix phys mem calculation for 32-bit processes on
- PAE/64-bit kernels
-
-When adding the code to base default memory usage on physical memory
-(by default use 25% of physical memory), I made an oversight. I assumed
-the process would be able to address 25% of physical memory.
-
-However, for 32-bit processes running on a PAE kernel or 64-bit kernel,
-25% of physical memory can easily exceed the addressible memory for a
-32-bit process, e.g. if a machine has 24 GB of physical memory, the
-code would asume the process could easily use 6 GB.
-
-A 32-bit process by definition can only address 4 GB (32-bit pointers).
-But, due to the typical kernel/user-space split (1GB/3GB, or 2GB/2GB)
-on PAE kernels, a 32-bit process may only be able to address 2 GB.
-
-So, if Mksquashfs is a 32-bit application running on a PAE/64-bit kernel,
-the code assumes it can address much more memory than it really can, which
-means it runs out of memory.
-
-The fix is to impose a maximum default limit on 32-bit kernels, or
-otherwise to never use a value more than 25% of the address space. If
-we assume the maximum address space is 2 GB, then the maximum becomes
-512 MB. But, given most kernels used the 1GB/3GB split, that may be
-unduely conservative, and 25% of 3 GB (756 MB) may be better. This
-patch compromises on 640 MB, which is mid-way between the 512 MB and 756 MB
-values. It is also the fixed default value previously used by Mksquashfs.
-
-This patch also alters the code which imposes a maximum size. Previously
-it was believed limiting to the physical memory size was adequate. But
-obviously this needs to be updated to take into account a 32-bit process
-may only be able to address 2 GB. In the process I've also taken the
-opportunity to limit all requests to no more than 75% of physical memory.
-
-Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
----
- squashfs-tools/mksquashfs.c | 78 ++++++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 70 insertions(+), 8 deletions(-)
-
-diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
-index 86f82bb..5370ecf 100644
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -304,7 +304,7 @@ void restorefs();
- struct dir_info *scan1_opendir(char *pathname, char *subpath, int depth);
- void write_filesystem_tables(struct squashfs_super_block *sBlk, int nopad);
- unsigned short get_checksum_mem(char *buff, int bytes);
--int get_physical_memory();
-+void check_usable_phys_mem(int total_mem);
-
-
- void prep_exit()
-@@ -4053,11 +4053,7 @@ void initialise_threads(int readq, int fragq, int bwriteq, int fwriteq,
- BAD_ERROR("Queue sizes rediculously too large\n");
- total_mem += fwriteq;
-
-- if(total_mem > get_physical_memory()) {
-- ERROR("Total queue sizes larger than physical memory.\n");
-- ERROR("Mksquashfs will exhaust physical memory and thrash.\n");
-- BAD_ERROR("Queues too large\n");
-- }
-+ check_usable_phys_mem(total_mem);
-
- /*
- * convert from queue size in Mbytes to queue size in
-@@ -4879,6 +4875,72 @@ int get_physical_memory()
- }
-
-
-+void check_usable_phys_mem(int total_mem)
-+{
-+ /*
-+ * We want to allow users to use as much of their physical
-+ * memory as they wish. However, for practical reasons there are
-+ * limits which need to be imposed, to protect users from themselves
-+ * and to prevent people from using Mksquashfs as a DOS attack by using
-+ * all physical memory. Mksquashfs uses memory to cache data from disk
-+ * to optimise performance. It is pointless to ask it to use more
-+ * than 75% of physical memory, as this causes thrashing and it is thus
-+ * self-defeating.
-+ */
-+ int mem = get_physical_memory();
-+
-+ mem = (mem >> 1) + (mem >> 2); /* 75% */
-+
-+ if(total_mem > mem) {
-+ ERROR("Total memory requested is more than 75%% of physical "
-+ "memory.\n");
-+ ERROR("Mksquashfs uses memory to cache data from disk to "
-+ "optimise performance.\n");
-+ ERROR("It is pointless to ask it to use more than this amount "
-+ "of memory, as this\n");
-+ ERROR("causes thrashing and it is thus self-defeating.\n");
-+ BAD_ERROR("Requested memory size too large\n");
-+ }
-+
-+ if(sizeof(void *) == 4 && total_mem > 2048) {
-+ /*
-+ * If we're running on a kernel with PAE or on a 64-bit kernel,
-+ * then the 75% physical memory limit can still easily exceed
-+ * the addressable memory by this process.
-+ *
-+ * Due to the typical kernel/user-space split (1GB/3GB, or
-+ * 2GB/2GB), we have to conservatively assume the 32-bit
-+ * processes can only address 2-3GB. So refuse if the user
-+ * tries to allocate more than 2GB.
-+ */
-+ ERROR("Total memory requested may exceed maximum "
-+ "addressable memory by this process\n");
-+ BAD_ERROR("Requested memory size too large\n");
-+ }
-+}
-+
-+
-+int get_default_phys_mem()
-+{
-+ int mem = get_physical_memory() / SQUASHFS_TAKE;
-+
-+ if(sizeof(void *) == 4 && mem > 640) {
-+ /*
-+ * If we're running on a kernel with PAE or on a 64-bit kernel,
-+ * the default memory usage can exceed the addressable
-+ * memory by this process.
-+ * Due to the typical kernel/user-space split (1GB/3GB, or
-+ * 2GB/2GB), we have to conservatively assume the 32-bit
-+ * processes can only address 2-3GB. So limit the default
-+ * usage to 640M, which gives room for other data.
-+ */
-+ mem = 640;
-+ }
-+
-+ return mem;
-+}
-+
-+
- void calculate_queue_sizes(int mem, int *readq, int *fragq, int *bwriteq,
- int *fwriteq)
- {
-@@ -4890,7 +4952,7 @@ void calculate_queue_sizes(int mem, int *readq, int *fragq, int *bwriteq,
-
-
- #define VERSION() \
-- printf("mksquashfs version 4.3 (2014/05/12)\n");\
-+ printf("mksquashfs version 4.3-git (2014/06/09)\n");\
- printf("copyright (C) 2014 Phillip Lougher "\
- "<phillip@squashfs.org.uk>\n\n"); \
- printf("This program is free software; you can redistribute it and/or"\
-@@ -4918,7 +4980,7 @@ int main(int argc, char *argv[])
- int fragq;
- int bwriteq;
- int fwriteq;
-- int total_mem = get_physical_memory() / SQUASHFS_TAKE;
-+ int total_mem = get_default_phys_mem();
- int progress = TRUE;
- int force_progress = FALSE;
- struct file_buffer **fragment = NULL;
diff --git a/source/ap/squashfs-tools/0003-CVE-2015-4645_and_CVE-2015-4646.patch b/source/ap/squashfs-tools/0003-CVE-2015-4645_and_CVE-2015-4646.patch
deleted file mode 100644
index d81639f6..00000000
--- a/source/ap/squashfs-tools/0003-CVE-2015-4645_and_CVE-2015-4646.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 6777e08cc38bc780d27c69c1d8c272867b74524f Mon Sep 17 00:00:00 2001
-From: Giancarlo Canales Barreto <gcanalesb@me.com>
-Date: Wed, 17 Jun 2015 00:22:19 -0400
-Subject: [PATCH] Update unsquash-4.c
-
-There seems to be a stack overflow in read_fragment_table_4 at via what seems to be an integer overflow. Still looking into this problem, it seems like two or three different problems combined.
-
-The first problem overflows the bytes variable, so that the allocation is enormous.
-```c
-int bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments);
-```
-
-If we fix this by making the variable size_t, we run into an unrelated problem in which the stack VLA allocation of fragment_table_index can easily exceed RLIMIT_STACK.
-```c
-long long fragment_table_index[indexes];
-```
-
-In the case of my system, the RLIMIT_STACK is 8388608, and VLA is asking for 15728648. Plus the stack probably already has a bunch of other things. This is what I believe ultimately leads to the stack overflow.
-
-Afterwards, the heap allocation seems to succeed, and the disastrous call to read_fs_bytes is made, which initiates transfer from the squashfs image to the stack. At this stage, a stack overflow appears to be in full effect.
-
-```c
- res = read_fs_bytes(fd, sBlk.s.fragment_table_start,
- SQUASHFS_FRAGMENT_INDEX_BYTES(sBlk.s.fragments),
- fragment_table_index);
-```
-This problem is also present in other read_fragment_table_N functions, and in in the original squashfs-tools.
-
-```
-Parallel unsquashfs: Using 8 processors
-ASAN:SIGSEGV
-=================================================================
-==8221==ERROR: AddressSanitizer: stack-overflow on address 0x7ffef3ae9608 (pc 0x000000559011 bp 0x7ffef49e9670 sp 0x7ffef3ae9610 T0)
- #0 0x559010 in read_fragment_table_4 /home/septimus/vr/squashfs-vr/squashfs-tools/unsquash-4.c:40:9
- #1 0x525073 in main /home/septimus/vr/squashfs-vr/squashfs-tools/unsquashfs.c:2763:5
- #2 0x7fb56c533a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)
- #3 0x418468 in _start (/home/septimus/vr/squashfs-vr/squashfs-tools/unsquashfs+0x418468)
-SUMMARY: AddressSanitizer: stack-overflow /home/septimus/vr/squashfs-vr/squashfs-tools/unsquash-4.c:40:9 in read_fragment_table_4
-==8221==ABORTING
-```
-
-Perhaps we should avoid using VLA altogether, and allocate fragment_table_index to the heap?
-This pull request is an example implementation of the fix for unsquash-4, but I don't have enough test vectors to verify it will not break anything.
----
- unsquash-4.c | 11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/squashfs-tools/unsquash-4.c b/squashfs-tools/unsquash-4.c
-index ecdaac7..2c0cf63 100644
---- a/squashfs-tools/unsquash-4.c
-+++ b/squashfs-tools/unsquash-4.c
-@@ -31,9 +31,9 @@ static unsigned int *id_table;
- int read_fragment_table_4(long long *directory_table_end)
- {
- int res, i;
-- int bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments);
-- int indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments);
-- long long fragment_table_index[indexes];
-+ size_t bytes = SQUASHFS_FRAGMENT_BYTES(sBlk.s.fragments);
-+ size_t indexes = SQUASHFS_FRAGMENT_INDEXES(sBlk.s.fragments);
-+ long long *fragment_table_index;
-
- TRACE("read_fragment_table: %d fragments, reading %d fragment indexes "
- "from 0x%llx\n", sBlk.s.fragments, indexes,
-@@ -44,6 +44,11 @@ int read_fragment_table_4(long long *directory_table_end)
- return TRUE;
- }
-
-+ fragment_table_index = malloc(indexes*sizeof(long long));
-+ if(fragment_table_index == NULL)
-+ EXIT_UNSQUASH("read_fragment_table: failed to allocate "
-+ "fragment table index\n");
-+
- fragment_table = malloc(bytes);
- if(fragment_table == NULL)
- EXIT_UNSQUASH("read_fragment_table: failed to allocate "
diff --git a/source/ap/squashfs-tools/0004-unsquashfs-add-support-for-LZMA-magics.patch b/source/ap/squashfs-tools/0004-unsquashfs-add-support-for-LZMA-magics.patch
deleted file mode 100644
index 258416bf..00000000
--- a/source/ap/squashfs-tools/0004-unsquashfs-add-support-for-LZMA-magics.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From c2dc60a94b01a1fff4a22db1c0569651afa6c959 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski@gmail.com>
-Date: Wed, 19 Oct 2011 11:44:57 +0200
-Subject: [PATCH] unsquashfs: add support for LZMA magics
-X-Face: z*RaLf`X<@C75u6Ig9}{oW$H;1_\2t5)({*|jhM<pyWR#k60!#=#>/Vb;]yA5<GWI5`6u&+
- ;6b'@y|8w"wB;4/e!7wYYrcqdJFY,~%Gk_4]cq$Ei/7<j&N3ah(m`ku?pX.&+~:_/wC~dwn^)MizBG
- !pE^+iDQQ1yC6^,)YDKkxDd!T>\I~93>J<_`<4)A{':UrE
-
-Some vendor (e.g. Thomson/Technicolor) use a different super block magic
-to indicate LZMA compression:
-
- qshs (0x71736873) - LZMA compression
- shsq (0x73687371) - LZMA compression, SWAPPED fields
-
-Add support for detecting this and enable extraction for filesystems
-from those firmwares.
-
-Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
-Tested-by: Antonio Ospite <ospite@studenti.unina.it>
----
- squashfs-tools/squashfs_fs.h | 6 ++++++
- squashfs-tools/unsquashfs.c | 24 ++++++++++++++++++------
- 2 files changed, 24 insertions(+), 6 deletions(-)
-
-diff --git a/squashfs-tools/squashfs_fs.h b/squashfs-tools/squashfs_fs.h
-index d4fba1b..8462a6b 100644
---- a/squashfs-tools/squashfs_fs.h
-+++ b/squashfs-tools/squashfs_fs.h
-@@ -30,6 +30,12 @@
- #define SQUASHFS_MAGIC_SWAP 0x68737173
- #define SQUASHFS_START 0
-
-+/*
-+ * Squashfs + LZMA
-+ */
-+#define SQUASHFS_MAGIC_LZMA 0x71736873
-+#define SQUASHFS_MAGIC_LZMA_SWAP 0x73687371
-+
- /* size of metadata (inode and directory) blocks */
- #define SQUASHFS_METADATA_SIZE 8192
- #define SQUASHFS_METADATA_LOG 13
-diff --git a/squashfs-tools/unsquashfs.c b/squashfs-tools/unsquashfs.c
-index 320bead..7869a38 100644
---- a/squashfs-tools/unsquashfs.c
-+++ b/squashfs-tools/unsquashfs.c
-@@ -1516,10 +1516,12 @@ int read_super(char *source)
- */
- read_fs_bytes(fd, SQUASHFS_START, sizeof(struct squashfs_super_block),
- &sBlk_4);
-- swap = sBlk_4.s_magic != SQUASHFS_MAGIC;
-+ swap = (sBlk_4.s_magic != SQUASHFS_MAGIC &&
-+ sBlk_4.s_magic != SQUASHFS_MAGIC_LZMA);
- SQUASHFS_INSWAP_SUPER_BLOCK(&sBlk_4);
-
-- if(sBlk_4.s_magic == SQUASHFS_MAGIC && sBlk_4.s_major == 4 &&
-+ if((sBlk_4.s_magic == SQUASHFS_MAGIC ||
-+ sBlk_4.s_magic == SQUASHFS_MAGIC_LZMA) && sBlk_4.s_major == 4 &&
- sBlk_4.s_minor == 0) {
- s_ops.squashfs_opendir = squashfs_opendir_4;
- s_ops.read_fragment = read_fragment_4;
-@@ -1532,7 +1534,11 @@ int read_super(char *source)
- /*
- * Check the compression type
- */
-- comp = lookup_compressor_id(sBlk.s.compression);
-+ if (sBlk_4.s_magic == SQUASHFS_MAGIC_LZMA)
-+ comp = lookup_compressor("lzma");
-+ else
-+ comp = lookup_compressor_id(sBlk.s.compression);
-+
- return TRUE;
- }
-
-@@ -1547,8 +1553,10 @@ int read_super(char *source)
- * Check it is a SQUASHFS superblock
- */
- swap = 0;
-- if(sBlk_3.s_magic != SQUASHFS_MAGIC) {
-- if(sBlk_3.s_magic == SQUASHFS_MAGIC_SWAP) {
-+ if(sBlk_3.s_magic != SQUASHFS_MAGIC &&
-+ sBlk_3.s_magic != SQUASHFS_MAGIC_LZMA) {
-+ if(sBlk_3.s_magic == SQUASHFS_MAGIC_SWAP ||
-+ sBlk_3.s_magic == SQUASHFS_MAGIC_LZMA_SWAP) {
- squashfs_super_block_3 sblk;
- ERROR("Reading a different endian SQUASHFS filesystem "
- "on %s\n", source);
-@@ -1626,7 +1634,11 @@ int read_super(char *source)
- /*
- * 1.x, 2.x and 3.x filesystems use gzip compression.
- */
-- comp = lookup_compressor("gzip");
-+ if (sBlk.s.s_magic == SQUASHFS_MAGIC_LZMA)
-+ comp = lookup_compressor("lzma");
-+ else
-+ comp = lookup_compressor("gzip");
-+
- return TRUE;
-
- failed_mount:
---
-1.7.10.4
-
diff --git a/source/ap/squashfs-tools/0006-uptream-fix-race.patch b/source/ap/squashfs-tools/0006-uptream-fix-race.patch
deleted file mode 100644
index 3cefbe5b..00000000
--- a/source/ap/squashfs-tools/0006-uptream-fix-race.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit de03266983ceb62e5365aac84fcd3b2fd4d16e6f
-Author: Phillip Lougher <phillip@squashfs.org.uk>
-Date: Thu Sep 18 01:28:11 2014 +0100
-
- mksquashfs: fix rare race in fragment waiting in filesystem finalisation
-
- Fix a rare race condition in fragment waiting when finalising the
- filesystem. This is a race condition that was initially fixed in 2009,
- but inadvertantly re-introduced in the latest release when the code
- was rewritten.
-
- Background:
-
- When finalising the filesystem, the main control thread needs to ensure
- all the in-flight fragments have been queued to the writer thread before
- asking the writer thread to finish, and then writing the metadata.
-
- It does this by waiting on the fragments_outstanding counter. Once this
- counter reaches 0, it synchronises with the writer thread, waiting until
- the writer thread reports no outstanding data to be written.
-
- However, the main thread can race with the fragment deflator thread(s)
- because the fragment deflator thread(s) decrement the fragments_outstanding
- counter and release the mutex before queueing the compressed fragment
- to the writer thread, i.e. the offending code is:
-
- fragments_outstanding --;
- pthread_mutex_unlock(&fragment_mutex);
- queue_put(to_writer, write_buffer);
-
- In extremely rare circumstances, the main thread may see the
- fragments_outstanding counter is zero before the fragment
- deflator sends the fragment buffer to the writer thread, and synchronise
- with the writer thread, and finalise before the fragment has been written.
-
- The fix is to ensure the fragment is queued to the writer thread
- before releasing the mutex.
-
- Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
-
-diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
-index 87b7d86..f1fcff1 100644
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -2445,8 +2445,8 @@ void *frag_deflator(void *arg)
- write_buffer->block = bytes;
- bytes += compressed_size;
- fragments_outstanding --;
-- pthread_mutex_unlock(&fragment_mutex);
- queue_put(to_writer, write_buffer);
-+ pthread_mutex_unlock(&fragment_mutex);
- TRACE("Writing fragment %lld, uncompressed size %d, "
- "compressed size %d\n", file_buffer->block,
- file_buffer->size, compressed_size);
diff --git a/source/ap/squashfs-tools/0007-fix-2GB-limit-in-mksquashfs.patch b/source/ap/squashfs-tools/0007-fix-2GB-limit-in-mksquashfs.patch
deleted file mode 100644
index c689a3a9..00000000
--- a/source/ap/squashfs-tools/0007-fix-2GB-limit-in-mksquashfs.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9c1db6d13a51a2e009f0027ef336ce03624eac0d Mon Sep 17 00:00:00 2001
-From: "Guan, Xin" <guanx.bac@gmail.com>
-Date: Sat, 13 Sep 2014 13:15:26 +0200
-Subject: [PATCH] Fix 2GB-limit of the is_fragment(...) function.
-
-Applies to squashfs-tools 4.3.
-
-Reported-by: Bruno Wolff III <bruno@wolff.to>
-Signed-off-by: Guan, Xin <guanx.bac@gmail.com>
-Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
----
- squashfs-tools/mksquashfs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/squashfs-tools/mksquashfs.c b/squashfs-tools/mksquashfs.c
-index f1fcff1..d221c35 100644
---- a/squashfs-tools/mksquashfs.c
-+++ b/squashfs-tools/mksquashfs.c
-@@ -2055,7 +2055,7 @@ struct file_info *duplicate(long long file_size, long long bytes,
-
- inline int is_fragment(struct inode_info *inode)
- {
-- int file_size = inode->buf.st_size;
-+ off_t file_size = inode->buf.st_size;
-
- /*
- * If this block is to be compressed differently to the
diff --git a/source/ap/squashfs-tools/get-squashfs-tools.sh b/source/ap/squashfs-tools/get-squashfs-tools.sh
new file mode 100755
index 00000000..d0590a6c
--- /dev/null
+++ b/source/ap/squashfs-tools/get-squashfs-tools.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# Copyright 2018 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.
+
+# Pull a stable branch + patches
+BRANCH=${1:-master}
+
+PKGNAM=squashfs-tools
+
+# Clear download area:
+rm -rf ${PKGNAM}
+
+# Clone repository:
+git clone git://github.com/plougher/${PKGNAM}
+
+# checkout $BRANCH:
+( cd ${PKGNAM}
+ git checkout $BRANCH || exit 1
+)
+
+HEADISAT="$( cd ${PKGNAM} && git log -1 --format=%h )"
+DATE="$( cd ${PKGNAM} && git log -1 --format=%ad --date=format:%Y%m%d )"
+# 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}-${DATE}_${HEADISAT}
+tar cf ${PKGNAM}-${DATE}_${HEADISAT}.tar ${PKGNAM}-${DATE}_${HEADISAT}
+plzip -9 -f ${PKGNAM}-${DATE}_${HEADISAT}.tar
+rm -rf ${PKGNAM}-${DATE}_${HEADISAT}
+echo
+echo "${PKGNAM} branch $BRANCH with HEAD at $HEADISAT packaged as ${PKGNAM}-${DATE}_${HEADISAT}.tar.lz"
+echo
+
diff --git a/source/ap/squashfs-tools/slack-desc b/source/ap/squashfs-tools/slack-desc
index a5343288..848e5af7 100644
--- a/source/ap/squashfs-tools/slack-desc
+++ b/source/ap/squashfs-tools/slack-desc
@@ -9,11 +9,11 @@
squashfs-tools: squashfs-tools (squashed read-only filesystem for Linux)
squashfs-tools:
squashfs-tools: Squashfs is a highly compressed read-only filesystem for Linux.
-squashfs-tools: Squashfs compresses both files, inodes and directories, and
-squashfs-tools: supports block sizes up to 1Mbytes for greater compression.
-squashfs-tools: It is implemented as a kernel module under VFS.
-squashfs-tools: The package contains tools for manipulation of squashfs bundles.
+squashfs-tools: Squashfs compresses both files, inodes and directories, and supports
+squashfs-tools: block sizes up to 1Mbytes for greater compression. It is implemented
+squashfs-tools: as a kernel module under VFS. The package contains tools for
+squashfs-tools: manipulation of squashfs bundles.
squashfs-tools:
+squashfs-tools: Homepage: https://github.com/plougher/squashfs-tools/
squashfs-tools:
-squashfs-tools: squashfs-tools home: http://squashfs.sourceforge.net/
squashfs-tools:
diff --git a/source/ap/squashfs-tools/squashfs-tools.SlackBuild b/source/ap/squashfs-tools/squashfs-tools.SlackBuild
index 67871e9f..2141b143 100755
--- a/source/ap/squashfs-tools/squashfs-tools.SlackBuild
+++ b/source/ap/squashfs-tools/squashfs-tools.SlackBuild
@@ -1,6 +1,5 @@
#!/bin/bash
-
-# Copyright 2015 Eric Hameleers, Eindhoven, NL
+# Copyright 2015, 2018 Eric Hameleers, Eindhoven, NL
# Copyright 2017, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
@@ -24,8 +23,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=squashfs-tools
-VERSION=${VERSION:-$(echo squashfs*.tar.xz | cut -b9- | rev | cut -f3- -d . | rev)}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-$( echo squashfs-tools*.tar.?z | cut -d- -f3- | rev | cut -f3- -d . | rev )}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -75,16 +74,9 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf squashfs${VERSION}
-tar xvf $CWD/squashfs${VERSION}.tar.xz || exit 1
-cd squashfs${VERSION} || exit 1
-
-zcat $CWD/0001-kfreebsd.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0002-fix_phys_mem_calculation.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0003-CVE-2015-4645_and_CVE-2015-4646.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0004-unsquashfs-add-support-for-LZMA-magics.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0006-uptream-fix-race.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/0007-fix-2GB-limit-in-mksquashfs.patch.gz | patch -p1 --verbose || 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 . \
@@ -102,6 +94,7 @@ make $NUMJOBS \
XZ_SUPPORT="1" \
LZO_SUPPORT="1" \
LZMA_XZ_SUPPORT="1" \
+ ZSTD_SUPPORT="1" \
COMP_DEFAULT="xz" || exit 1
# Install:
@@ -114,13 +107,11 @@ make install INSTALL_DIR=$PKG/usr/bin || exit 1
)
# Add a documentation directory:
+cd ..
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
-( cd ..
- cp -a \
- ACKNOWLEDGEMENTS CHANGES COPYING DONATIONS INSTALL \
- README* PERFORMANCE.README *.example \
- $PKG/usr/doc/${PKGNAM}-$VERSION
-)
+cp -a \
+ ACKNOWLEDGEMENTS CHANGES COPYING* INSTALL *README* \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/d/binutils/binutils.SlackBuild b/source/d/binutils/binutils.SlackBuild
index cea4ac38..3cb4f27a 100755
--- a/source/d/binutils/binutils.SlackBuild
+++ b/source/d/binutils/binutils.SlackBuild
@@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=binutils
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:
MARCH=$( uname -m )
@@ -184,9 +184,12 @@ mkdir -p $PKG/usr/${TARGET}/bin
# Don't ship .la files:
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
-# Remove Windows specific tools / docs (if they exist):
-rm -f $PKG/usr/bin/{dlltool,nlmconv,windres,windmc}
-rm -f $PKG/usr/man/man1/{dlltool,nlmconv,windres,windmc}*
+# COMMENTED OUT, since a valid use case was provided for windres on Linux.
+# None of these tools are very large, and unless they can be shown to be
+# non-functional, there's no good reason to exclude them.
+## Remove Windows specific tools / docs (if they exist):
+#rm -f $PKG/usr/bin/{dlltool,nlmconv,windres,windmc}
+#rm -f $PKG/usr/man/man1/{dlltool,nlmconv,windres,windmc}*
# Add a symlink since binutils's version of strings used to be called
# "strings-GNU" on Slackware, and it's possible that people have scripts
diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt
index 173f898f..fff6fedd 100644
--- a/source/installer/ChangeLog.txt
+++ b/source/installer/ChangeLog.txt
@@ -1,3 +1,6 @@
+Thu Sep 13 19:42:20 UTC 2018
+ Load ter-114v.psf.gz in rc.font.
++--------------------------+
Mon Sep 10 20:41:59 UTC 2018
Switch to ter-114v.psf.gz as the consolefont. It has been reported that the
font we were using (ter-v14v.psf.gz) restricts the available console colors
diff --git a/source/installer/sources/initrd/etc/rc.d/rc.font b/source/installer/sources/initrd/etc/rc.d/rc.font
index 7d4d75ba..feefdd10 100755
--- a/source/installer/sources/initrd/etc/rc.d/rc.font
+++ b/source/installer/sources/initrd/etc/rc.d/rc.font
@@ -38,10 +38,10 @@ if ! grep -wq nofont /proc/cmdline ; then
# done
# fi
# else
- if [ -r /usr/share/kbd/consolefonts/ter-v14v.psf.gz ]; then
+ if [ -r /usr/share/kbd/consolefonts/ter-114v.psf.gz ]; then
create_tty
for tty in /dev/tty{1,2,3,4} ; do
- setfont -C $tty /usr/share/kbd/consolefonts/ter-v14v.psf.gz
+ setfont -C $tty /usr/share/kbd/consolefonts/ter-114v.psf.gz
done
fi
# fi
diff --git a/source/l/freetype/freetype.SlackBuild b/source/l/freetype/freetype.SlackBuild
index 2adce0b5..39ffbca9 100755
--- a/source/l/freetype/freetype.SlackBuild
+++ b/source/l/freetype/freetype.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=freetype
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -95,6 +95,10 @@ zcat $CWD/freetype.illadvisederror.diff.gz | patch -p1 --verbose || exit 1
# scripts in /etc/profile.d/.
zcat $CWD/freetype.compile.both.subpixel.hinting.methods.diff.gz | patch -p1 --verbose || exit 1
+# Just because we have the windres utility does not mean we are compiling
+# on a Windows system:
+zcat $CWD/freetype.this.is.not.a.windows.system.diff.gz | patch -p1 --verbose || exit 1
+
chown -R root:root .
CFLAGS="$SLKCFLAGS" \
diff --git a/source/l/freetype/freetype.this.is.not.a.windows.system.diff b/source/l/freetype/freetype.this.is.not.a.windows.system.diff
new file mode 100644
index 00000000..af509fd4
--- /dev/null
+++ b/source/l/freetype/freetype.this.is.not.a.windows.system.diff
@@ -0,0 +1,39 @@
+--- ./builds/freetype.mk.orig 2018-04-22 04:41:36.000000000 -0500
++++ ./builds/freetype.mk 2018-09-13 14:34:39.641002962 -0500
+@@ -248,20 +248,24 @@
+ $(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
+
+
+-# ftver component
++# COMMENTED OUT:
++# Otherwise having windres on the system causes a Windows-specific resource
++# file to be compiled, breaking the build.
+ #
+-# The VERSIONINFO resource `ftver.rc' contains version and copyright
+-# to be compiled by windres and tagged into DLL usually.
++## ftver component
++##
++## The VERSIONINFO resource `ftver.rc' contains version and copyright
++## to be compiled by windres and tagged into DLL usually.
++##
++#ifneq ($(RC),)
++# FTVER_SRC := $(BASE_DIR)/ftver.rc
++# FTVER_OBJ := $(OBJ_DIR)/ftver.$O
+ #
+-ifneq ($(RC),)
+- FTVER_SRC := $(BASE_DIR)/ftver.rc
+- FTVER_OBJ := $(OBJ_DIR)/ftver.$O
+-
+- OBJECTS_LIST += $(FTVER_OBJ)
+-
+- $(FTVER_OBJ): $(FTVER_SRC)
+- $(RC) -o $@ $<
+-endif
++# OBJECTS_LIST += $(FTVER_OBJ)
++#
++# $(FTVER_OBJ): $(FTVER_SRC)
++# $(RC) -o $@ $<
++#endif
+
+
+ # All FreeType library objects.
diff --git a/source/l/zstd/slack-desc b/source/l/zstd/slack-desc
new file mode 100644
index 00000000..215674d5
--- /dev/null
+++ b/source/l/zstd/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------------------------------------------------------|
+zstd: zstd (real-time compression algorithm)
+zstd:
+zstd: Zstandard, or zstd for short, is a real-time compression algorithm
+zstd: providing high compression ratios. It offers a very wide range of
+zstd: compression/speed trade-off, while being backed by a very fast
+zstd: decoder. It also offers a special mode for small data, called
+zstd: dictionary compression, and can create dictionaries from any sample
+zstd: set.
+zstd:
+zstd: Homepage: http://zstd.net/
+zstd:
diff --git a/source/l/zstd/zstd.SlackBuild b/source/l/zstd/zstd.SlackBuild
new file mode 100755
index 00000000..94a2388b
--- /dev/null
+++ b/source/l/zstd/zstd.SlackBuild
@@ -0,0 +1,152 @@
+#!/bin/sh
+# Copyright 2018 Eric Hameleers, Eindhoven, Netherlands
+# Copyright 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software for
+# any purpose with or without fee is hereby granted, provided that
+# the above copyright notice and this permission notice appear in all
+# copies.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS 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=zstd
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+# 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
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ SLKLDFLAGS=""
+ LIBDIRSUFFIX=""
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+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
+
+zcat $CWD/zstd.dont.link.pzstd.to.static.libzstd.a.diff.gz | patch -p1 --verbose || exit 1
+
+# Make sure ownerships and permissions are sane:
+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 {} \;
+
+# Compile it:
+make $NUMJOBS CFLAGS="$SLKCFLAGS" || exit 1
+make $NUMJOBS CFLAGS="$SLKCFLAGS" -C contrib/pzstd || exit 1
+
+# Install it:
+make \
+ prefix=/usr \
+ libdir=/usr/lib${LIBDIRSUFFIX} \
+ mandir=/usr/man \
+ DESTDIR=$PKG \
+ install || exit 1
+install -Dm755 contrib/pzstd/pzstd $PKG/usr/bin/pzstd || exit 1
+
+# Don't ship static library:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a
+
+# zstdmt as the same as zstd, so just make a symlink:
+( cd $PKG/usr/bin
+ ln -sf zstd zstdmt
+)
+
+# Strip binaries:
+find $PKG | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+find $PKG | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ CONTRIBUTING* COPYING* LICENSE NEWS README* TESTING* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# Add a package description:
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/l/zstd/zstd.dont.link.pzstd.to.static.libzstd.a.diff b/source/l/zstd/zstd.dont.link.pzstd.to.static.libzstd.a.diff
new file mode 100644
index 00000000..577ba7b0
--- /dev/null
+++ b/source/l/zstd/zstd.dont.link.pzstd.to.static.libzstd.a.diff
@@ -0,0 +1,13 @@
+--- ./contrib/pzstd/Makefile.orig 2017-12-21 03:16:40.000000000 -0600
++++ ./contrib/pzstd/Makefile 2018-02-12 16:25:19.626150873 -0600
+@@ -171,8 +171,8 @@
+ $(TESTPROG) ./test/RoundTripTest$(EXT) $(TESTFLAGS)
+
+ # Build the main binary
+-pzstd$(EXT): main.o Options.o Pzstd.o SkippableFrame.o $(ZSTDDIR)/libzstd.a
+- $(LD_COMMAND)
++pzstd$(EXT): main.o Options.o Pzstd.o SkippableFrame.o
++ $(LD_COMMAND) -L ../../lib -lzstd
+
+ # Target that depends on all the tests
+ .PHONY: tests
diff --git a/source/l/zstd/zstd.url b/source/l/zstd/zstd.url
new file mode 100644
index 00000000..0c9a52bc
--- /dev/null
+++ b/source/l/zstd/zstd.url
@@ -0,0 +1 @@
+https://github.com/facebook/zstd/archive/v1.3.3/zstd-1.3.3.tar.gz
diff --git a/source/xfce/tumbler/tumbler.url b/source/xfce/tumbler/tumbler.url
index a2f41336..8cc2fe2b 100644
--- a/source/xfce/tumbler/tumbler.url
+++ b/source/xfce/tumbler/tumbler.url
@@ -1 +1 @@
-http://archive.xfce.org/src/apps/tumbler/0.2/tumbler-0.2.2.tar.bz2
+http://archive.xfce.org/src/apps/tumbler/0.2/tumbler-0.2.3.tar.bz2