diff options
Diffstat (limited to 'source')
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 |