summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2018-10-10 23:09:36 +0000
committerEric Hameleers <alien@slackware.com>2018-10-11 09:00:31 +0200
commit7716b728c18deb9a2c780e148050e3683d4d93c1 (patch)
tree0ed1643262bc41121f3fd1a27da70106a8e9f937 /source
parent7a2f2302165a37a7a57a4765375e33881a3697b0 (diff)
downloadcurrent-7716b728c18deb9a2c780e148050e3683d4d93c1.tar.gz
Wed Oct 10 23:09:36 UTC 201820181010230936
a/kernel-firmware-20181008_c6b6265-noarch-1.txz: Upgraded. a/kernel-generic-4.14.75-x86_64-1.txz: Upgraded. a/kernel-huge-4.14.75-x86_64-1.txz: Upgraded. a/kernel-modules-4.14.75-x86_64-1.txz: Upgraded. d/git-2.19.1-x86_64-1.txz: Upgraded. Submodules' "URL"s come from the untrusted .gitmodules file, but we blindly gave it to "git clone" to clone submodules when "git clone --recurse-submodules" was used to clone a project that has such a submodule. The code has been hardened to reject such malformed URLs (e.g. one that begins with a dash). Credit for finding and fixing this vulnerability goes to joernchen and Jeff King, respectively. For more information, see: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-17456 (* Security fix *) d/kernel-headers-4.14.75-x86-1.txz: Upgraded. d/make-4.2.1-x86_64-4.txz: Rebuilt. Use a non-blocking read with pselect to avoid hangs. Thanks to Linux.tar.gz and David Spencer. d/subversion-1.10.3-x86_64-1.txz: Upgraded. k/kernel-source-4.14.75-noarch-1.txz: Upgraded. Config changes since 4.14.74: FB_HYPERV n -> m Thanks to walecha. l/librsvg-2.44.7-x86_64-1.txz: Upgraded. l/python-pillow-5.3.0-x86_64-1.txz: Upgraded. n/nghttp2-1.34.0-x86_64-1.txz: Upgraded. x/libSM-1.2.3-x86_64-1.txz: Upgraded. x/libX11-1.6.7-x86_64-1.txz: Upgraded. x/libdrm-2.4.95-x86_64-1.txz: Upgraded. x/libxcb-1.13.1-x86_64-1.txz: Upgraded. x/vulkan-sdk-1.1.85.0-x86_64-1.txz: Upgraded. Thanks to dugan. xap/gnuplot-5.2.5-x86_64-1.txz: Upgraded. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source')
-rw-r--r--source/d/make/b552b05251980f693c729e251f93f5225b400714.patch170
-rwxr-xr-xsource/d/make/make.SlackBuild3
-rw-r--r--source/installer/ChangeLog.txt3
-rwxr-xr-xsource/installer/build_installer.sh13
-rw-r--r--source/k/kernel-configs/config-generic-4.14.75 (renamed from source/k/kernel-configs/config-generic-4.14.74)4
-rw-r--r--source/k/kernel-configs/config-generic-4.14.75.x64 (renamed from source/k/kernel-configs/config-generic-4.14.74.x64)4
-rw-r--r--source/k/kernel-configs/config-generic-smp-4.14.75-smp (renamed from source/k/kernel-configs/config-generic-smp-4.14.74-smp)4
-rw-r--r--source/k/kernel-configs/config-huge-4.14.75 (renamed from source/k/kernel-configs/config-huge-4.14.74)4
-rw-r--r--source/k/kernel-configs/config-huge-4.14.75.x64 (renamed from source/k/kernel-configs/config-huge-4.14.74.x64)4
-rw-r--r--source/k/kernel-configs/config-huge-smp-4.14.75-smp (renamed from source/k/kernel-configs/config-huge-smp-4.14.74-smp)4
-rwxr-xr-xsource/x/vulkan-sdk/fetch-sources.sh152
-rwxr-xr-xsource/x/vulkan-sdk/vulkan-sdk.SlackBuild164
-rw-r--r--source/x/x11/build/libSM2
-rw-r--r--source/x/x11/build/libxcb2
14 files changed, 404 insertions, 129 deletions
diff --git a/source/d/make/b552b05251980f693c729e251f93f5225b400714.patch b/source/d/make/b552b05251980f693c729e251f93f5225b400714.patch
new file mode 100644
index 00000000..6f44ae3f
--- /dev/null
+++ b/source/d/make/b552b05251980f693c729e251f93f5225b400714.patch
@@ -0,0 +1,170 @@
+From b552b05251980f693c729e251f93f5225b400714 Mon Sep 17 00:00:00 2001
+From: Paul Smith <psmith@gnu.org>
+Date: Sat, 3 Jun 2017 16:20:51 -0400
+Subject: [SV 51159] Use a non-blocking read with pselect to avoid hangs.
+
+* posixos.c (set_blocking): Set blocking on a file descriptor.
+(jobserver_setup): Set non-blocking on the jobserver read side.
+(jobserver_parse_auth): Ditto.
+(jobserver_acquire_all): Set blocking to avoid a busy-wait loop.
+(jobserver_acquire): If the non-blocking read() returns without
+taking a token then try again.
+---
+ posixos.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 71 insertions(+), 26 deletions(-)
+
+diff --git a/posixos.c b/posixos.c
+index e642d7f..dbafa51 100644
+--- a/posixos.c
++++ b/posixos.c
+@@ -62,6 +62,24 @@ make_job_rfd (void)
+ #endif
+ }
+
++static void
++set_blocking (int fd, int blocking)
++{
++ // If we're not using pselect() don't change the blocking
++#ifdef HAVE_PSELECT
++ int flags;
++ EINTRLOOP (flags, fcntl (fd, F_GETFL));
++ if (flags >= 0)
++ {
++ int r;
++ flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK);
++ EINTRLOOP (r, fcntl (fd, F_SETFL, flags));
++ if (r < 0)
++ pfatal_with_name ("fcntl(O_NONBLOCK)");
++ }
++#endif
++}
++
+ unsigned int
+ jobserver_setup (int slots)
+ {
+@@ -86,6 +104,9 @@ jobserver_setup (int slots)
+ pfatal_with_name (_("init jobserver pipe"));
+ }
+
++ /* When using pselect() we want the read to be non-blocking. */
++ set_blocking (job_fds[0], 0);
++
+ return 1;
+ }
+
+@@ -121,6 +142,9 @@ jobserver_parse_auth (const char *auth)
+ return 0;
+ }
+
++ /* When using pselect() we want the read to be non-blocking. */
++ set_blocking (job_fds[0], 0);
++
+ return 1;
+ }
+
+@@ -169,7 +193,10 @@ jobserver_acquire_all (void)
+ {
+ unsigned int tokens = 0;
+
+- /* Close the write side, so the read() won't hang. */
++ /* Use blocking reads to wait for all outstanding jobs. */
++ set_blocking (job_fds[0], 1);
++
++ /* Close the write side, so the read() won't hang forever. */
+ close (job_fds[1]);
+ job_fds[1] = -1;
+
+@@ -236,18 +263,12 @@ jobserver_pre_acquire (void)
+ unsigned int
+ jobserver_acquire (int timeout)
+ {
+- sigset_t empty;
+- fd_set readfds;
+ struct timespec spec;
+ struct timespec *specp = NULL;
+- int r;
+- char intake;
++ sigset_t empty;
+
+ sigemptyset (&empty);
+
+- FD_ZERO (&readfds);
+- FD_SET (job_fds[0], &readfds);
+-
+ if (timeout)
+ {
+ /* Alarm after one second (is this too granular?) */
+@@ -256,28 +277,52 @@ jobserver_acquire (int timeout)
+ specp = &spec;
+ }
+
+- r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
+-
+- if (r == -1)
++ while (1)
+ {
+- /* Better be SIGCHLD. */
+- if (errno != EINTR)
+- pfatal_with_name (_("pselect jobs pipe"));
+- return 0;
+- }
++ fd_set readfds;
++ int r;
++ char intake;
+
+- if (r == 0)
+- /* Timeout. */
+- return 0;
++ FD_ZERO (&readfds);
++ FD_SET (job_fds[0], &readfds);
+
+- /* The read FD is ready: read it! */
+- EINTRLOOP (r, read (job_fds[0], &intake, 1));
+- if (r < 0)
+- pfatal_with_name (_("read jobs pipe"));
++ r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
++ if (r < 0)
++ switch (errno)
++ {
++ case EINTR:
++ /* SIGCHLD will show up as an EINTR. */
++ return 0;
++
++ case EBADF:
++ /* Someone closed the jobs pipe.
++ That shouldn't happen but if it does we're done. */
++ O (fatal, NILF, _("job server shut down"));
+
+- /* What does it mean if read() returns 0? It shouldn't happen because only
+- the master make can reap all the tokens and close the write side...?? */
+- return r > 0;
++ default:
++ pfatal_with_name (_("pselect jobs pipe"));
++ }
++
++ if (r == 0)
++ /* Timeout. */
++ return 0;
++
++ /* The read FD is ready: read it! This is non-blocking. */
++ EINTRLOOP (r, read (job_fds[0], &intake, 1));
++
++ if (r < 0)
++ {
++ /* Someone sniped our token! Try again. */
++ if (errno == EAGAIN)
++ continue;
++
++ pfatal_with_name (_("read jobs pipe"));
++ }
++
++ /* read() should never return 0: only the master make can reap all the
++ tokens and close the write side...?? */
++ return r > 0;
++ }
+ }
+
+ #else
+--
+cgit v1.0-41-gc330
+
diff --git a/source/d/make/make.SlackBuild b/source/d/make/make.SlackBuild
index b086b4d4..1bd4eee1 100755
--- a/source/d/make/make.SlackBuild
+++ b/source/d/make/make.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=make
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -79,6 +79,7 @@ find . \
zcat $CWD/make.guile22.diff.gz | patch -p1 --verbose || exit 1
zcat $CWD/make.glibc-2.27.glob.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/b552b05251980f693c729e251f93f5225b400714.patch.gz | patch -p1 --verbose || exit 1
autoreconf -vif
diff --git a/source/installer/ChangeLog.txt b/source/installer/ChangeLog.txt
index fff6fedd..2433f889 100644
--- a/source/installer/ChangeLog.txt
+++ b/source/installer/ChangeLog.txt
@@ -1,3 +1,6 @@
+Wed Oct 10 22:41:29 UTC 2018
+ Added Hyper-V keyboard and framebuffer modules.
++--------------------------+
Thu Sep 13 19:42:20 UTC 2018
Load ter-114v.psf.gz in rc.font.
+--------------------------+
diff --git a/source/installer/build_installer.sh b/source/installer/build_installer.sh
index 954bc4a5..a358e180 100755
--- a/source/installer/build_installer.sh
+++ b/source/installer/build_installer.sh
@@ -1429,7 +1429,11 @@ for ind in $(seq 0 $((${#KERNELS[*]} -1)) ); do
mv staging staging.orig
mv staging.orig/hv staging
rm -rf${VERBOSE1} staging.orig
+ # Save the Hyper-V keyboard module:
+ mkdir -p input.orig/serio
+ cp -a input/serio/hyperv-keyboard.ko input.orig/serio
rm -rf${VERBOSE1} ata atm bluetooth clocksource connector crypto dma idle infiniband input isdn kvm leds media memstick message mfd misc pci power rtc serial telephony uwb w1 watchdog
+ mv input.orig input
if [ "$ADD_KMS" = "1" ]; then
# Keep video.ko and button.ko, needed by some gpu drivers.
@@ -1466,11 +1470,16 @@ for ind in $(seq 0 $((${#KERNELS[*]} -1)) ); do
# Keep some video drivers:
mv video video.orig
- mkdir video
+ mkdir -p video/fbdev
mv video.orig/{sis,syscopyarea.ko,sysfillrect.ko,sysimgblt.ko} video
+ mv video.orig/fbdev/hyperv_fb.ko video/fbdev
rm -rf${VERBOSE1} video.orig
else
- rm -rf${VERBOSE1} acpi char cpufreq hwmon platform thermal video
+ # Save the Hyper-V framebuffer module:
+ mv video video.orig
+ mkdir -p video/fbdevmv
+ mv video.orig/fbdev/hyperv_fb.ko video/fbdev
+ rm -rf${VERBOSE1} acpi char cpufreq hwmon platform thermal video.orig
fi
# Needed to install on MMC:
diff --git a/source/k/kernel-configs/config-generic-4.14.74 b/source/k/kernel-configs/config-generic-4.14.75
index 3b32d860..10c610c6 100644
--- a/source/k/kernel-configs/config-generic-4.14.74
+++ b/source/k/kernel-configs/config-generic-4.14.75
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.74 Kernel Configuration
+# Linux/x86 4.14.75 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -5412,7 +5412,7 @@ CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
-# CONFIG_FB_HYPERV is not set
+CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/source/k/kernel-configs/config-generic-4.14.74.x64 b/source/k/kernel-configs/config-generic-4.14.75.x64
index db1d926f..21f09086 100644
--- a/source/k/kernel-configs/config-generic-4.14.74.x64
+++ b/source/k/kernel-configs/config-generic-4.14.75.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.74 Kernel Configuration
+# Linux/x86 4.14.75 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -5358,7 +5358,7 @@ CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
-# CONFIG_FB_HYPERV is not set
+CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/source/k/kernel-configs/config-generic-smp-4.14.74-smp b/source/k/kernel-configs/config-generic-smp-4.14.75-smp
index 534f94dc..a3841a89 100644
--- a/source/k/kernel-configs/config-generic-smp-4.14.74-smp
+++ b/source/k/kernel-configs/config-generic-smp-4.14.75-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.74 Kernel Configuration
+# Linux/x86 4.14.75 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -5458,7 +5458,7 @@ CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
-# CONFIG_FB_HYPERV is not set
+CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/source/k/kernel-configs/config-huge-4.14.74 b/source/k/kernel-configs/config-huge-4.14.75
index a2d8678b..a2d23aab 100644
--- a/source/k/kernel-configs/config-huge-4.14.74
+++ b/source/k/kernel-configs/config-huge-4.14.75
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.74 Kernel Configuration
+# Linux/x86 4.14.75 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -5412,7 +5412,7 @@ CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
-# CONFIG_FB_HYPERV is not set
+CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/source/k/kernel-configs/config-huge-4.14.74.x64 b/source/k/kernel-configs/config-huge-4.14.75.x64
index 492bf6f5..9ae55964 100644
--- a/source/k/kernel-configs/config-huge-4.14.74.x64
+++ b/source/k/kernel-configs/config-huge-4.14.75.x64
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.74 Kernel Configuration
+# Linux/x86 4.14.75 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -5358,7 +5358,7 @@ CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
-# CONFIG_FB_HYPERV is not set
+CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/source/k/kernel-configs/config-huge-smp-4.14.74-smp b/source/k/kernel-configs/config-huge-smp-4.14.75-smp
index 3e93bdc0..a19cf3cb 100644
--- a/source/k/kernel-configs/config-huge-smp-4.14.74-smp
+++ b/source/k/kernel-configs/config-huge-smp-4.14.75-smp
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.14.74 Kernel Configuration
+# Linux/x86 4.14.75 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
@@ -5458,7 +5458,7 @@ CONFIG_FB_BROADSHEET=m
CONFIG_FB_AUO_K190X=m
CONFIG_FB_AUO_K1900=m
CONFIG_FB_AUO_K1901=m
-# CONFIG_FB_HYPERV is not set
+CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
diff --git a/source/x/vulkan-sdk/fetch-sources.sh b/source/x/vulkan-sdk/fetch-sources.sh
index e67dfaf6..67ec96b9 100755
--- a/source/x/vulkan-sdk/fetch-sources.sh
+++ b/source/x/vulkan-sdk/fetch-sources.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2017 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2017, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,78 +25,104 @@
# github, and then look at the revisions listed in the external_revisions
# directory to fetch the proper glslang, SPIRV-Headers, and SPIRV-Tools.
#
-# Example: VERSION=1.1.73.0 ./fetch-sources.sh
+# Example: VERSION=1.1.85.0 ./fetch-sources.sh
-VERSION=${VERSION:-1.1.73.0}
+VERSION=${VERSION:-1.1.85.0}
+BRANCH=${BRANCH:-sdk-1.1.85}
-# Remove existing sources:
-rm -rf Vulkan-LoaderAndValidationLayers-sdk* glslang-* SPIRV-Headers-* SPIRV-Tools-*
+rm -rf Vulkan-*-*.tar.?z glslang* SPIRV-Tools* SPIRV-Headers* \
+ Vulkan-Headers-sdk-${VERSION}* \
+ Vulkan-ValidationLayers-sdk-${VERSION}* \
+ Vulkan-Loader-sdk-${VERSION}* \
+ Vulkan-Tools-sdk-${VERSION}*
-# Fetch SDK:
-lftpget https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/sdk-${VERSION}/Vulkan-LoaderAndValidationLayers-sdk-${VERSION}.tar.gz
-GLSLANG_REVISION=$(tar xOf Vulkan-LoaderAndValidationLayers-sdk-${VERSION}.tar.gz Vulkan-LoaderAndValidationLayers-sdk-${VERSION}/external_revisions/glslang_revision)
+git clone -b "$BRANCH" --single-branch https://github.com/KhronosGroup/Vulkan-Headers.git Vulkan-Headers-sdk-${VERSION}
+rm -rf Vulkan-Headers-sdk-${VERSION}/.git
+tar cf Vulkan-Headers-sdk-${VERSION}.tar Vulkan-Headers-sdk-${VERSION}
+rm -rf Vulkan-Headers-sdk-${VERSION}
+plzip -9 Vulkan-Headers-sdk-${VERSION}.tar
-git clone https://github.com/KhronosGroup/glslang.git glslang-$GLSLANG_REVISION
-cd glslang-$GLSLANG_REVISION
-git checkout $GLSLANG_REVISION
-SPIRV_TOOLS_REVISION=$(
-python3 - << EOF
+git clone -b "$BRANCH" --single-branch https://github.com/KhronosGroup/Vulkan-ValidationLayers.git Vulkan-ValidationLayers-sdk-${VERSION}
+rm -rf Vulkan-ValidationLayers-sdk-${VERSION}/.git
+tar cf Vulkan-ValidationLayers-sdk-${VERSION}.tar Vulkan-ValidationLayers-sdk-${VERSION}
+rm -rf Vulkan-ValidationLayers-sdk-${VERSION}
+# Put this here since python's tarfile.open doesn't like tar.lz:
+GLSLANG_COMMIT=$(python3 - << EOF
import json
-with open('known_good.json') as f:
- known_good = json.load(f)
-commits = known_good['commits']
-print(commits[0]['commit'])
+import tarfile
+with tarfile.open('Vulkan-ValidationLayers-sdk-$VERSION.tar') as layers:
+ known_good = layers.extractfile('Vulkan-ValidationLayers-sdk-1.1.85.0/scripts/known_good.json')
+ known_good_info = json.loads(known_good.read())
+glslang = next(repo for repo in known_good_info['repos'] if repo['name'] == 'glslang')
+print(glslang['commit'])
EOF
)
-SPIRV_HEADERS_REVISION=$(
-python3 - << EOF
+# Now it's safe to compress:
+plzip -9 Vulkan-ValidationLayers-sdk-${VERSION}.tar
+
+git clone -b "$BRANCH" --single-branch https://github.com/KhronosGroup/Vulkan-Loader.git Vulkan-Loader-sdk-${VERSION}
+rm -rf Vulkan-Loader-sdk-${VERSION}/.git
+tar cf Vulkan-Loader-sdk-${VERSION}.tar Vulkan-Loader-sdk-${VERSION}
+rm -rf Vulkan-Loader-sdk-${VERSION}
+plzip -9 Vulkan-Loader-sdk-${VERSION}.tar
+
+git clone -b "$BRANCH" --single-branch https://github.com/KhronosGroup/Vulkan-Tools.git Vulkan-Tools-sdk-${VERSION}
+rm -rf Vulkan-Tools-sdk-${VERSION}/.git
+tar cf Vulkan-Tools-sdk-${VERSION}.tar Vulkan-Tools-sdk-${VERSION}
+rm -rf Vulkan-Tools-sdk-${VERSION}
+plzip -9 Vulkan-Tools-sdk-${VERSION}.tar
+
+git clone https://github.com/KhronosGroup/glslang.git
+cd glslang || exit
+git checkout "$GLSLANG_COMMIT"
+GLSLANG_VERSION=$(git rev-parse --short HEAD)
+rm -rf .git
+cd ..
+
+mv glslang "glslang-$GLSLANG_VERSION"
+
+SPIRV_TOOLS_COMMIT=$(python3 - << EOF
import json
-with open('known_good.json') as f:
- known_good = json.load(f)
-commits = known_good['commits']
-print(commits[1]['commit'])
+with open('glslang-$GLSLANG_VERSION/known_good.json') as f:
+ known_good = json.load(f)
+tools = next(commit for commit in known_good['commits'] if commit['name'] == 'spirv-tools')
+print(tools['commit'])
EOF
)
-# Cleanup. We're not packing up the whole git repo.
-find . -type d -name ".git*" -exec rm -rf {} \; 2> /dev/null
-cd ..
-tar cf glslang-${GLSLANG_REVISION}.tar glslang-${GLSLANG_REVISION}
-rm -rf glslang-${GLSLANG_REVISION}
-plzip -9 glslang-${GLSLANG_REVISION}.tar
-
-git clone https://github.com/KhronosGroup/SPIRV-Headers.git SPIRV-Headers-${SPIRV_HEADERS_REVISION}
-cd SPIRV-Headers-${SPIRV_HEADERS_REVISION}
-git checkout ${SPIRV_HEADERS_REVISION}
-# Cleanup. We're not packing up the whole git repo.
-find . -type d -name ".git*" -exec rm -rf {} \; 2> /dev/null
+
+git clone https://github.com/KhronosGroup/SPIRV-Tools.git
+cd SPIRV-Tools || exit
+git checkout "$SPIRV_TOOLS_COMMIT"
+SPIRV_TOOLS_VERSION="$(git rev-parse --short HEAD)"
+rm -rf .git
cd ..
-tar cf SPIRV-Headers-${SPIRV_HEADERS_REVISION}.tar SPIRV-Headers-${SPIRV_HEADERS_REVISION}
-rm -rf SPIRV-Headers-${SPIRV_HEADERS_REVISION}
-plzip -9 SPIRV-Headers-${SPIRV_HEADERS_REVISION}.tar
-
-git clone https://github.com/KhronosGroup/SPIRV-Tools.git SPIRV-Tools-${SPIRV_TOOLS_REVISION}
-cd SPIRV-Tools-${SPIRV_TOOLS_REVISION}
-git checkout ${SPIRV_TOOLS_REVISION}
-# Only purge the .pack, since spirv_tools_commit_id.h needs to query the repo:
-rm -f .git/objects/pack/pack-*.pack
+mv SPIRV-Tools SPIRV-Tools-$SPIRV_TOOLS_VERSION
+tar cf SPIRV-Tools-$SPIRV_TOOLS_VERSION.tar SPIRV-Tools-$SPIRV_TOOLS_VERSION
+rm -rf SPIRV-Tools-$SPIRV_TOOLS_VERSION
+plzip -9 SPIRV-Tools-$SPIRV_TOOLS_VERSION.tar
+
+SPIRV_HEADERS_COMMIT=$(python3 - << EOF
+import json
+with open('glslang-$GLSLANG_VERSION/known_good.json') as f:
+ known_good = json.load(f)
+name = 'spirv-tools/external/spirv-headers'
+headers = next(commit for commit in known_good['commits'] if commit['name'] == name)
+print(headers['commit'])
+EOF
+)
+
+git clone https://github.com/KhronosGroup/SPIRV-Headers.git
+cd SPIRV-Headers || exit
+git checkout "$SPIRV_HEADERS_COMMIT"
+SPIRV_HEADERS_VERSION="$(git rev-parse --short HEAD)"
+rm -rf .git
cd ..
-tar cf SPIRV-Tools-${SPIRV_TOOLS_REVISION}.tar SPIRV-Tools-${SPIRV_TOOLS_REVISION}
-rm -rf SPIRV-Tools-${SPIRV_TOOLS_REVISION}
-plzip -9 SPIRV-Tools-${SPIRV_TOOLS_REVISION}.tar
-
-# Repack Vulkan-LoaderAndValidationLayers-sdk:
-gzip -d Vulkan-LoaderAndValidationLayers-sdk-${VERSION}.tar.gz
-plzip -9 Vulkan-LoaderAndValidationLayers-sdk-${VERSION}.tar
-
-# List URLs in vulkan-sdk.url:
-echo "https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/archive/sdk-${VERSION}/Vulkan-LoaderAndValidationLayers-sdk-${VERSION}.tar.gz" > vulkan-sdk.url
-echo "https://github.com/KhronosGroup/glslang/archive/${GLSLANG_REVISION}/glslang-${GLSLANG_REVISION}.tar.gz" >> vulkan-sdk.url
-echo "https://github.com/KhronosGroup/SPIRV-Headers/archive/${SPIRV_HEADERS_REVISION}/SPIRV-Headers-${SPIRV_HEADERS_REVISION}.tar.gz" >> vulkan-sdk.url
-echo "https://github.com/KhronosGroup/SPIRV-Tools/archive/${SPIRV_TOOLS_REVISION}/SPIRV-Tools-${SPIRV_TOOLS_REVISION}.tar.gz" >> vulkan-sdk.url
-
-# Fix timestamps to be correct:
-for file in *.tar.?z ; do
- TIMESTAMP="$(tar tvf $file | head -1 | cut -b 32-47)"
- touch -d "$TIMESTAMP" $file
-done
+mv SPIRV-Headers SPIRV-Headers-$SPIRV_HEADERS_VERSION
+tar cf SPIRV-Headers-$SPIRV_HEADERS_VERSION.tar SPIRV-Headers-$SPIRV_HEADERS_VERSION
+rm -rf SPIRV-Headers-$SPIRV_HEADERS_VERSION
+plzip -9 SPIRV-Headers-$SPIRV_HEADERS_VERSION.tar
+
+tar cf glslang-$GLSLANG_VERSION.tar glslang-$GLSLANG_VERSION
+rm -rf glslang-$GLSLANG_VERSION
+plzip -9 glslang-$GLSLANG_VERSION.tar
diff --git a/source/x/vulkan-sdk/vulkan-sdk.SlackBuild b/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
index a1d5e338..c79ac738 100755
--- a/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
+++ b/source/x/vulkan-sdk/vulkan-sdk.SlackBuild
@@ -26,10 +26,10 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=vulkan-sdk
-VERSION=${VERSION:-$(echo Vulkan-LoaderAndValidationLayers-sdk-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=${VERSION:-$(echo Vulkan-ValidationLayers-sdk-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
-NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+NUMJOBS=${NUMJOBS:--j7}
# Automatically determine the architecture we're building on:
MARCH=$( uname -m )
@@ -71,64 +71,113 @@ fi
TMP=${TMP:-/tmp}
PKG=$TMP/package-vulkan-sdk
+GLSLANG_VERSION=$(echo glslang-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+SPIRV_HEADERS_VERSION=$(echo SPIRV-Headers-sdk-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+SPIRV_TOOLS_VERSION=$(echo SPIRV-Tools-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf Vulkan-LoaderAndValidationLayers-sdk-$VERSION
-tar xvf $CWD/Vulkan-LoaderAndValidationLayers-sdk-$VERSION.tar.?z || exit 1
-cd Vulkan-LoaderAndValidationLayers-sdk-$VERSION || exit 1
+rm -rf Vulkan-ValidationLayers-sdk-$VERSION Vulkan-Headers-sdk-$VERSION glslang-$GLSLANG_VERSION
+
+tar xvf $CWD/glslang-${GLSLANG_VERSION}.tar.?z || exit 1
+cd glslang-$GLSLANG_VERSION/External
+tar xvf $CWD/SPIRV-Tools-$SPIRV_TOOLS_VERSION.tar.?z || exit 1
+mv SPIRV-Tools-$SPIRV_TOOLS_VERSION spirv-tools
+cd spirv-tools/external
+tar xvf $CWD/SPIRV-Headers-$SPIRV_HEADERS_VERSION.tar.?z || exit 1
+mv SPIRV-Headers-$SPIRV_HEADERS_VERSION spirv-headers
-GLSLANG_VERSION=$(cat external_revisions/glslang_revision | head -n 1)
-SPIRV_HEADERS_VERSION=$(basename SPIRV-Headers-* .tar.?z | rev | cut -d - -f 1 | rev)
-SPIRV_TOOLS_VERSION=$(basename SPIRV-Tools-* .tar.?z | rev | cut -d - -f 1 | rev)
+cd $TMP/glslang-${GLSLANG_VERSION}
-mkdir external
+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 {} \;
-cd external
- tar xf $CWD/glslang-${GLSLANG_VERSION}.tar.?z || exit 1
- mv glslang-${GLSLANG_VERSION} glslang
+# Fix LIBDIRSUFFIX
+for i in $(find . -name CMakeLists.txt); do
+ sed -i "s|DESTINATION lib|DESTINATION \${CMAKE_INSTALL_LIBDIR}|" "$i"
+done
-cd glslang/External
-tar xf $CWD/SPIRV-Tools-${SPIRV_TOOLS_VERSION}.tar.?z* || exit 1
-mv SPIRV-Tools-${SPIRV_TOOLS_VERSION} spirv-tools
+mkdir -p build
+cd build
+cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=$PKG \
+ -DCMAKE_INSTALL_LIBDIR=lib$LIBDIRSUFFIX \
+ -DCMAKE_BUILD_TYPE=Release \
+ ..
+cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
-mkdir -p spirv-tools/external
-cd spirv-tools/external
- tar xvf $CWD/SPIRV-Headers-${SPIRV_HEADERS_VERSION}.tar.?z* || exit 1
- mv SPIRV-Headers-${SPIRV_HEADERS_VERSION} spirv-headers
+cd $TMP
-cd $TMP/Vulkan-LoaderAndValidationLayers-sdk-$VERSION
+tar xvf $CWD/Vulkan-Headers-sdk-$VERSION.tar.?z || exit 1
+cd Vulkan-Headers-sdk-$VERSION
-# chown -R root:root .
+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 {} \;
-mkdir -p external/{glslang,spirv-tools}/build
mkdir -p build
-mkdir -p build-demos
+cd build
+cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr\
+ -DCMAKE_INSTALL_LIBDIR=lib$LIBDIRSUFFIX \
+ -DCMAKE_BUILD_TYPE=Release \
+ ..
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+cd $TMP
-# Fix LIBDIRSUFFIX
-for i in $(find external -name CMakeLists.txt); do
- sed -i "s|DESTINATION lib|DESTINATION \${CMAKE_INSTALL_LIBDIR}|" "$i"
-done
+tar xvf $CWD/Vulkan-Loader-sdk-$VERSION.tar.?z || exit 1
+cd $TMP/Vulkan-Loader-sdk-$VERSION
-cd external/glslang/build
+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 {} \;
+
+mkdir -p build
+cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib$LIBDIRSUFFIX \
- -DCMAKE_BUILD_TYPE=Release \
+ -DGLSLANG_INSTALL_DIR=$PKG/usr \
+ -DVULKAN_HEADERS_INSTALL_DIR=$PKG/usr \
+ -DBUILD_WSI_WAYLAND_SUPPORT=Off \
+ -DBUILD_WSI_MIR_SUPPORT=Off \
..
- make $NUMJOBS VERBOSE=1 || make || exit 1
+ make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-cd -
+cd $TMP
+
+tar xvf $CWD/Vulkan-ValidationLayers-sdk-$VERSION.tar.?z || exit 1
+cd $TMP/Vulkan-ValidationLayers-sdk-$VERSION
+
+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 {} \;
+mkdir -p build
cd build
cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
@@ -138,40 +187,57 @@ cd build
-DCMAKE_INSTALL_DATADIR=/share \
-DCMAKE_SKIP_RPATH=True \
-DBUILD_TESTS=Off \
- -DBUILD_DEMOS=On \
-DBUILD_WSI_XLIB_SUPPORT=On \
-DBUILD_WSI_XCB_SUPPORT=On \
-DBUILD_WSI_WAYLAND_SUPPORT=Off \
-DBUILD_WSI_MIR_SUPPORT=Off \
-DCMAKE_BUILD_TYPE=Release \
- -DGLSLANG_VALIDATOR=../external/glslang/build/StandAlone/glslangValidator \
+ -DGLSLANG_INSTALL_DIR=$PKG/usr \
+ -DVULKAN_HEADERS_INSTALL_DIR=$PKG/usr \
+ -DVULKAN_LOADER_INSTALL_DIR=$PKG/usr \
..
- make $NUMJOBS VERBOSE=1 || make || exit 1
+ make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-cd -
-mkdir -p $PKG/usr/share/vulkan/{explicit,implicit}_layer.d
+cd $TMP
-mv $PKG/etc/vulkan/explicit_layer.d/*.json $PKG/usr/share/vulkan/explicit_layer.d/
-mv $PKG/usr/bin/smoketest $PKG/usr/bin/vulkan-smoketest
+tar xvf $CWD/Vulkan-Tools-sdk-$VERSION.tar.?z || exit 1
+cd $TMP/Vulkan-Tools-sdk-$VERSION
-# Use headers from spirv-headers as they are newer than the ones installed by glslang
-for i in spirv.h spirv.hpp spirv.hpp11; do
- install -m 0644 external/glslang/External/spirv-tools/external/spirv-headers/include/spirv/1.2/$i \
- $PKG/usr/include/SPIRV/
-done
+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 {} \;
-## I don't know why this is here, so I'm commenting it out. ;-)
-#( cd $PKG/usr/include
-# ln -sf SPIRV spirv
-#)
+mkdir -p build
+cd build
+ cmake \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DVULKAN_HEADERS_INSTALL_DIR=$PKG/usr \
+ -DGLSLANG_INSTALL_DIR=$PKG/usr \
+ -DVULKAN_LOADER_INSTALL_DIR=$PKG/usr \
+ -DBUILD_WSI_WAYLAND_SUPPORT=Off \
+ -DBUILD_WSI_MIR_SUPPORT=Off \
+ ..
+
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+
+cd $TMP
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
-cp -a *.md LICENSE.txt loader/LoaderAndLayerInterface.md \
+cp -a \
+ Vulkan-Loader-sdk-$VERSION/*.txt \
+ Vulkan-Loader-sdk-$VERSION/loader/LoaderAndLayerInterface.md \
$PKG/usr/doc/$PKGNAM-$VERSION
mkdir -p $PKG/install
diff --git a/source/x/x11/build/libSM b/source/x/x11/build/libSM
index 00750edc..d00491fd 100644
--- a/source/x/x11/build/libSM
+++ b/source/x/x11/build/libSM
@@ -1 +1 @@
-3
+1
diff --git a/source/x/x11/build/libxcb b/source/x/x11/build/libxcb
index 0cfbf088..d00491fd 100644
--- a/source/x/x11/build/libxcb
+++ b/source/x/x11/build/libxcb
@@ -1 +1 @@
-2
+1