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