mirror of
git://slackware.nl/current.git
synced 2024-12-26 09:58:59 +01:00
Tue Oct 1 18:01:38 UTC 2024
Several ELF objects were found to have rpaths pointing into /tmp, a world writable directory. This could have allowed a local attacker to launch denial of service attacks or execute arbitrary code when the affected binaries are run by placing crafted ELF objects in the /tmp rpath location. All rpaths with an embedded /tmp path have been scrubbed from the binaries, and makepkg has gained a lint feature to detect these so that they won't creep back in. extra/llvm-17.0.6-x86_64-2_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/cryfs-0.10.3-x86_64-5_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/cups-filters-1.28.17-x86_64-2_slack15.0.txz: Rebuilt. Mitigate security issue that could lead to a denial of service or the execution of arbitrary code. Rebuilt with --with-browseremoteprotocols=none to disable incoming connections, since this daemon has been shown to be insecure. If you actually use cups-browsed, be sure to install the new /etc/cups/cups-browsed.conf.new containing this line: BrowseRemoteProtocols none For more information, see: https://www.cve.org/CVERecord?id=CVE-2024-47176 (* Security fix *) patches/packages/espeak-ng-1.50-x86_64-4_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/libvncserver-0.9.13-x86_64-4_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/marisa-0.2.6-x86_64-5_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/mlt-7.4.0-x86_64-2_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/mozilla-firefox-115.16.0esr-x86_64-1_slack15.0.txz: Upgraded. This update contains security fixes and improvements. For more information, see: https://www.mozilla.org/en-US/firefox/115.16.0/releasenotes/ https://www.mozilla.org/security/advisories/mfsa2024-48 https://www.cve.org/CVERecord?id=CVE-2024-9392 https://www.cve.org/CVERecord?id=CVE-2024-9393 https://www.cve.org/CVERecord?id=CVE-2024-9394 https://www.cve.org/CVERecord?id=CVE-2024-9401 (* Security fix *) patches/packages/openobex-1.7.2-x86_64-6_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) patches/packages/pkgtools-15.0-noarch-44_slack15.0.txz: Rebuilt. makepkg: when looking for ELF objects with --remove-rpaths or --remove-tmp-rpaths, avoid false hits on files containing 'ELF' as part of the directory or filename. Also warn about /tmp rpaths after the package is built. patches/packages/spirv-llvm-translator-13.0.0-x86_64-2_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *) testing/packages/llvm-18.1.8-x86_64-2_slack15.0.txz: Rebuilt. Remove rpaths from binaries. (* Security fix *)
This commit is contained in:
parent
10f65d4bf6
commit
4657194ae3
76 changed files with 3984 additions and 1058 deletions
|
@ -11,9 +11,78 @@
|
||||||
<description>Tracking Slackware development in git.</description>
|
<description>Tracking Slackware development in git.</description>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
|
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
|
||||||
<pubDate>Fri, 27 Sep 2024 21:10:23 GMT</pubDate>
|
<pubDate>Tue, 1 Oct 2024 18:01:38 GMT</pubDate>
|
||||||
<lastBuildDate>Sat, 28 Sep 2024 11:30:17 GMT</lastBuildDate>
|
<lastBuildDate>Wed, 2 Oct 2024 11:30:23 GMT</lastBuildDate>
|
||||||
<generator>maintain_current_git.sh v 1.17</generator>
|
<generator>maintain_current_git.sh v 1.17</generator>
|
||||||
|
<item>
|
||||||
|
<title>Tue, 1 Oct 2024 18:01:38 GMT</title>
|
||||||
|
<pubDate>Tue, 1 Oct 2024 18:01:38 GMT</pubDate>
|
||||||
|
<link>https://git.slackware.nl/current/tag/?h=20241001180138</link>
|
||||||
|
<guid isPermaLink="false">20241001180138</guid>
|
||||||
|
<description>
|
||||||
|
<![CDATA[<pre>
|
||||||
|
Several ELF objects were found to have rpaths pointing into /tmp, a world
|
||||||
|
writable directory. This could have allowed a local attacker to launch denial
|
||||||
|
of service attacks or execute arbitrary code when the affected binaries are
|
||||||
|
run by placing crafted ELF objects in the /tmp rpath location. All rpaths with
|
||||||
|
an embedded /tmp path have been scrubbed from the binaries, and makepkg has
|
||||||
|
gained a lint feature to detect these so that they won't creep back in.
|
||||||
|
extra/llvm-17.0.6-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/cryfs-0.10.3-x86_64-5_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/cups-filters-1.28.17-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Mitigate security issue that could lead to a denial of service or
|
||||||
|
the execution of arbitrary code.
|
||||||
|
Rebuilt with --with-browseremoteprotocols=none to disable incoming
|
||||||
|
connections, since this daemon has been shown to be insecure. If you
|
||||||
|
actually use cups-browsed, be sure to install the new
|
||||||
|
/etc/cups/cups-browsed.conf.new containing this line:
|
||||||
|
BrowseRemoteProtocols none
|
||||||
|
For more information, see:
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-47176
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/espeak-ng-1.50-x86_64-4_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/libvncserver-0.9.13-x86_64-4_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/marisa-0.2.6-x86_64-5_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/mlt-7.4.0-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/mozilla-firefox-115.16.0esr-x86_64-1_slack15.0.txz: Upgraded.
|
||||||
|
This update contains security fixes and improvements.
|
||||||
|
For more information, see:
|
||||||
|
https://www.mozilla.org/en-US/firefox/115.16.0/releasenotes/
|
||||||
|
https://www.mozilla.org/security/advisories/mfsa2024-48
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9392
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9393
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9394
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9401
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/openobex-1.7.2-x86_64-6_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/pkgtools-15.0-noarch-44_slack15.0.txz: Rebuilt.
|
||||||
|
makepkg: when looking for ELF objects with --remove-rpaths or
|
||||||
|
--remove-tmp-rpaths, avoid false hits on files containing 'ELF' as part
|
||||||
|
of the directory or filename.
|
||||||
|
Also warn about /tmp rpaths after the package is built.
|
||||||
|
patches/packages/spirv-llvm-translator-13.0.0-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
testing/packages/llvm-18.1.8-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
</pre>]]>
|
||||||
|
</description>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<title>Fri, 27 Sep 2024 21:10:23 GMT</title>
|
<title>Fri, 27 Sep 2024 21:10:23 GMT</title>
|
||||||
<pubDate>Fri, 27 Sep 2024 21:10:23 GMT</pubDate>
|
<pubDate>Fri, 27 Sep 2024 21:10:23 GMT</pubDate>
|
||||||
|
|
|
@ -1,3 +1,64 @@
|
||||||
|
Tue Oct 1 18:01:38 UTC 2024
|
||||||
|
Several ELF objects were found to have rpaths pointing into /tmp, a world
|
||||||
|
writable directory. This could have allowed a local attacker to launch denial
|
||||||
|
of service attacks or execute arbitrary code when the affected binaries are
|
||||||
|
run by placing crafted ELF objects in the /tmp rpath location. All rpaths with
|
||||||
|
an embedded /tmp path have been scrubbed from the binaries, and makepkg has
|
||||||
|
gained a lint feature to detect these so that they won't creep back in.
|
||||||
|
extra/llvm-17.0.6-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/cryfs-0.10.3-x86_64-5_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/cups-filters-1.28.17-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Mitigate security issue that could lead to a denial of service or
|
||||||
|
the execution of arbitrary code.
|
||||||
|
Rebuilt with --with-browseremoteprotocols=none to disable incoming
|
||||||
|
connections, since this daemon has been shown to be insecure. If you
|
||||||
|
actually use cups-browsed, be sure to install the new
|
||||||
|
/etc/cups/cups-browsed.conf.new containing this line:
|
||||||
|
BrowseRemoteProtocols none
|
||||||
|
For more information, see:
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-47176
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/espeak-ng-1.50-x86_64-4_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/libvncserver-0.9.13-x86_64-4_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/marisa-0.2.6-x86_64-5_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/mlt-7.4.0-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/mozilla-firefox-115.16.0esr-x86_64-1_slack15.0.txz: Upgraded.
|
||||||
|
This update contains security fixes and improvements.
|
||||||
|
For more information, see:
|
||||||
|
https://www.mozilla.org/en-US/firefox/115.16.0/releasenotes/
|
||||||
|
https://www.mozilla.org/security/advisories/mfsa2024-48
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9392
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9393
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9394
|
||||||
|
https://www.cve.org/CVERecord?id=CVE-2024-9401
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/openobex-1.7.2-x86_64-6_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
patches/packages/pkgtools-15.0-noarch-44_slack15.0.txz: Rebuilt.
|
||||||
|
makepkg: when looking for ELF objects with --remove-rpaths or
|
||||||
|
--remove-tmp-rpaths, avoid false hits on files containing 'ELF' as part
|
||||||
|
of the directory or filename.
|
||||||
|
Also warn about /tmp rpaths after the package is built.
|
||||||
|
patches/packages/spirv-llvm-translator-13.0.0-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
testing/packages/llvm-18.1.8-x86_64-2_slack15.0.txz: Rebuilt.
|
||||||
|
Remove rpaths from binaries.
|
||||||
|
(* Security fix *)
|
||||||
|
+--------------------------+
|
||||||
Fri Sep 27 21:10:23 UTC 2024
|
Fri Sep 27 21:10:23 UTC 2024
|
||||||
patches/packages/pkgtools-15.0-noarch-43_slack15.0.txz: Rebuilt.
|
patches/packages/pkgtools-15.0-noarch-43_slack15.0.txz: Rebuilt.
|
||||||
This update adds new makepkg options and fixes a bug:
|
This update adds new makepkg options and fixes a bug:
|
||||||
|
|
811
FILELIST.TXT
811
FILELIST.TXT
File diff suppressed because it is too large
Load diff
|
@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
PKGNAM=llvm
|
PKGNAM=llvm
|
||||||
VERSION=${VERSION:-$(echo llvm-*.tar.xz | rev | cut -f 4- -d . | cut -f 1 -d - | rev)}
|
VERSION=${VERSION:-$(echo llvm-*.tar.xz | rev | cut -f 4- -d . | cut -f 1 -d - | rev)}
|
||||||
BUILD=${BUILD:-1_slack15.0}
|
BUILD=${BUILD:-2_slack15.0}
|
||||||
|
|
||||||
# For the two options below, either set both to OFF or *only one* to ON:
|
# For the two options below, either set both to OFF or *only one* to ON:
|
||||||
|
|
||||||
|
@ -227,6 +227,7 @@ cd build
|
||||||
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
-DLLVM_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
-DLLVM_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
-DLIBCXX_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
-DLIBCXX_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
-DLIBCXXABI_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
-DLIBCXXABI_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
|
42
pasture/source/samba/doinst.sh
Normal file
42
pasture/source/samba/doinst.sh
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/bin/sh
|
||||||
|
config() {
|
||||||
|
NEW="$1"
|
||||||
|
OLD="`dirname $NEW`/`basename $NEW .new`"
|
||||||
|
# If there's no config file by that name, mv it over:
|
||||||
|
if [ ! -r $OLD ]; then
|
||||||
|
mv $NEW $OLD
|
||||||
|
elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
|
||||||
|
rm $NEW
|
||||||
|
fi
|
||||||
|
# Otherwise, we leave the .new copy for the admin to consider...
|
||||||
|
}
|
||||||
|
preserve_perms() {
|
||||||
|
NEW="$1"
|
||||||
|
OLD="$(dirname ${NEW})/$(basename ${NEW} .new)"
|
||||||
|
if [ -e ${OLD} ]; then
|
||||||
|
cp -a ${OLD} ${NEW}.incoming
|
||||||
|
cat ${NEW} > ${NEW}.incoming
|
||||||
|
mv ${NEW}.incoming ${NEW}
|
||||||
|
fi
|
||||||
|
config ${NEW}
|
||||||
|
}
|
||||||
|
|
||||||
|
config etc/samba/lmhosts.new
|
||||||
|
preserve_perms etc/rc.d/rc.samba.new
|
||||||
|
|
||||||
|
# Commented out 2014-09-15 just in case we do need to change this.
|
||||||
|
## This won't be needed. The point here is to preserve the permissions of the existing
|
||||||
|
## file, if there is one. I don't see major new development happening in rc.samba... ;-)
|
||||||
|
#rm -f etc/rc.d/rc.samba.new
|
||||||
|
|
||||||
|
# Since /etc/samba/private/ has moved to /var/lib/samba/private, migrate any
|
||||||
|
# important files if possible:
|
||||||
|
if [ -d etc/samba/private -a -d var/lib/samba/private ]; then
|
||||||
|
for file in etc/samba/private/* ; do
|
||||||
|
if [ -r "$file" -a ! -r "var/lib/samba/private/$(basename $file)" ]; then
|
||||||
|
mv "$file" var/lib/samba/private
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Might as well try to eliminate this directory, since it should be empty:
|
||||||
|
rmdir etc/samba/private 1> /dev/null 2> /dev/null
|
||||||
|
fi
|
48
pasture/source/samba/rc.samba
Normal file
48
pasture/source/samba/rc.samba
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# /etc/rc.d/rc.samba
|
||||||
|
#
|
||||||
|
# Start/stop/restart the Samba SMB file/print server.
|
||||||
|
#
|
||||||
|
# To make Samba start automatically at boot, make this
|
||||||
|
# file executable: chmod 755 /etc/rc.d/rc.samba
|
||||||
|
#
|
||||||
|
|
||||||
|
samba_start() {
|
||||||
|
if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf ]; then
|
||||||
|
mkdir -p /var/run/samba
|
||||||
|
echo "Starting Samba: /usr/sbin/smbd -D"
|
||||||
|
/usr/sbin/smbd -D
|
||||||
|
echo " /usr/sbin/nmbd -D"
|
||||||
|
/usr/sbin/nmbd -D
|
||||||
|
elif [ ! -r /etc/samba/smb.conf ]; then
|
||||||
|
echo "ERROR: cannot start Samba since /etc/samba/smb.conf does not exist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
samba_stop() {
|
||||||
|
killall smbd nmbd
|
||||||
|
}
|
||||||
|
|
||||||
|
samba_restart() {
|
||||||
|
samba_stop
|
||||||
|
sleep 2
|
||||||
|
samba_start
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
'start')
|
||||||
|
samba_start
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
samba_stop
|
||||||
|
;;
|
||||||
|
'restart')
|
||||||
|
samba_restart
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Default is "start", for backwards compatibility with previous
|
||||||
|
# Slackware versions. This may change to a 'usage' error someday.
|
||||||
|
samba_start
|
||||||
|
esac
|
||||||
|
|
243
pasture/source/samba/samba.SlackBuild
Executable file
243
pasture/source/samba/samba.SlackBuild
Executable file
|
@ -0,0 +1,243 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2008, 2009, 2010, 2012, 2013, 2015, 2016, 2017, 2018, 2019, 2020, 2021 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.
|
||||||
|
|
||||||
|
# Modified 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=samba
|
||||||
|
VERSION=${VERSION:-$(echo samba-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-1_slack15.0}
|
||||||
|
|
||||||
|
if [ -e $CWD/machine.conf ]; then
|
||||||
|
. $CWD/machine.conf ]
|
||||||
|
elif [ -e /etc/slackbuild/machine.conf ]; then
|
||||||
|
. /etc/slackbuild/machine.conf ]
|
||||||
|
else
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) export ARCH=i586 ;;
|
||||||
|
arm*) export ARCH=arm ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$( uname -m ) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
# Set CFLAGS/CXXFLAGS and LIBDIRSUFFIX:
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
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
|
||||||
|
|
||||||
|
case "$ARCH" in
|
||||||
|
arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
|
||||||
|
*) TARGET=$ARCH-slackware-linux ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-samba
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
cd $TMP
|
||||||
|
rm -rf samba-$VERSION
|
||||||
|
tar xvf $CWD/samba-$VERSION.tar.?z || exit 1
|
||||||
|
cd samba-$VERSION || exit 1
|
||||||
|
|
||||||
|
# Add time.h to libsmbclient.h for ffmpeg compatibility:
|
||||||
|
zcat $CWD/samba.libsmbclient.h.ffmpeg.compat.diff.gz | patch -p1 --verbose || exit 1
|
||||||
|
|
||||||
|
if [ ! -d source3/lib/cmdline ]; then
|
||||||
|
( cd source3/lib
|
||||||
|
mkdir cmdline
|
||||||
|
cd cmdline
|
||||||
|
ln -sf ../../../source3/include/popt_common.h . )
|
||||||
|
fi
|
||||||
|
|
||||||
|
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 {} \+
|
||||||
|
|
||||||
|
# Choose correct options depending on whether PAM is installed:
|
||||||
|
if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
|
||||||
|
PAM_OPTIONS="--with-pam --with-pammodulesdir=/lib${LIBDIRSUFFIX}/security --with-system-mitkrb5 --with-experimental-mit-ad-dc"
|
||||||
|
unset SHADOW_OPTIONS
|
||||||
|
else
|
||||||
|
unset PAM_OPTIONS
|
||||||
|
SHADOW_OPTIONS="--without-pam"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Some of these options could be auto-detected, but declaring them
|
||||||
|
# here doesn't hurt and helps document what features we're trying to
|
||||||
|
# build in.
|
||||||
|
#
|
||||||
|
# LDFLAGS are needed to avoid problems with missing symbols.
|
||||||
|
LDFLAGS="-Wl,--no-as-needed" \
|
||||||
|
CFLAGS="$SLKCFLAGS" \
|
||||||
|
./configure \
|
||||||
|
--enable-fhs \
|
||||||
|
--prefix=/usr \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--includedir=/usr/include \
|
||||||
|
--bindir=/usr/bin \
|
||||||
|
--sbindir=/usr/sbin \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--with-configdir=/etc/samba \
|
||||||
|
--with-piddir=/var/run \
|
||||||
|
--with-privatedir=/var/lib/samba/private \
|
||||||
|
--with-privatelibdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--with-modulesdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--with-lockdir=/var/cache/samba \
|
||||||
|
--with-logfilebase=/var/log/samba \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--enable-cups \
|
||||||
|
--with-acl-support \
|
||||||
|
--with-automount \
|
||||||
|
--with-quotas \
|
||||||
|
--with-syslog \
|
||||||
|
--with-utmp \
|
||||||
|
--with-winbind \
|
||||||
|
--with-ldap \
|
||||||
|
--with-ads \
|
||||||
|
--without-fam \
|
||||||
|
$PAM_OPTIONS \
|
||||||
|
$SHADOW_OPTIONS \
|
||||||
|
--build=$TARGET || exit 1
|
||||||
|
# Gives errors:
|
||||||
|
#--builtin-libraries=replace,ccan \
|
||||||
|
#--bundled-libraries=heimdal \
|
||||||
|
|
||||||
|
# Build with waf directly so that multiple jobs work.
|
||||||
|
# Script lifted from "./configure".
|
||||||
|
PREVPATH=`dirname $0`
|
||||||
|
WAF=./buildtools/bin/waf
|
||||||
|
# using JOBS=1 gives maximum compatibility with
|
||||||
|
# systems like AIX which have broken threading in python
|
||||||
|
JOBS=$(echo $NUMJOBS | tr -dc '0-9')
|
||||||
|
export JOBS
|
||||||
|
# Make sure we don't have any library preloaded.
|
||||||
|
unset LD_PRELOAD
|
||||||
|
cd . || exit 1
|
||||||
|
${PYTHON:=python3} $WAF build "$@" || exit 1
|
||||||
|
cd $PREVPATH
|
||||||
|
|
||||||
|
mkdir -p \
|
||||||
|
$PKG/usr/doc/samba-$VERSION \
|
||||||
|
$PKG/var/spool/samba \
|
||||||
|
$PKG/var/log/samba \
|
||||||
|
$PKG/var/lib/samba/private \
|
||||||
|
$PKG/var/cache/samba
|
||||||
|
chmod 700 $PKG/var/lib/samba/private
|
||||||
|
chmod 1777 $PKG/var/spool/samba
|
||||||
|
|
||||||
|
# Again, use waf directly to allow multithreading:
|
||||||
|
#make install DESTDIR=$PKG || exit 1
|
||||||
|
DESTDIR=$PKG
|
||||||
|
export DESTDIR
|
||||||
|
${PYTHON:=python3} $WAF install "$@" || exit 1
|
||||||
|
|
||||||
|
# Install the smbprint script:
|
||||||
|
install -m0744 packaging/printing/smbprint $PKG/usr/bin/smbprint
|
||||||
|
|
||||||
|
# Add a sample config file:
|
||||||
|
cat $CWD/smb.conf.default > $PKG/etc/samba/smb.conf-sample
|
||||||
|
|
||||||
|
# Setup a default lmhosts file:
|
||||||
|
echo "127.0.0.1 localhost" > $PKG/etc/samba/lmhosts.new
|
||||||
|
|
||||||
|
if [ ! -r $PKG/usr/bin/smbget ]; then
|
||||||
|
rm -f $PKG/usr/share/man/man1/smbget.1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We'll add rc.samba to the init directory, but chmod 644 so that it doesn't
|
||||||
|
# start by default:
|
||||||
|
mkdir -p $PKG/etc/rc.d
|
||||||
|
cat $CWD/rc.samba > $PKG/etc/rc.d/rc.samba.new
|
||||||
|
chmod 644 $PKG/etc/rc.d/rc.samba.new
|
||||||
|
|
||||||
|
mv $PKG/usr/share/man $PKG/usr
|
||||||
|
gzip -9 $PKG/usr/man/man?/*.?
|
||||||
|
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" \
|
||||||
|
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# PAM related stuff we don't use:
|
||||||
|
rm -r $PKG/usr/share/locale
|
||||||
|
rm -f $PKG/usr/man/man8/pam*
|
||||||
|
|
||||||
|
cp -a \
|
||||||
|
COPYING* MAINTAINERS Manifest PFIF.txt README* \
|
||||||
|
Read-Manifest-Now Roadmap WHATSNEW.txt docs examples \
|
||||||
|
$PKG/usr/doc/samba-$VERSION
|
||||||
|
# These are installed elsewhere:
|
||||||
|
rm -rf $PKG/usr/doc/samba-$VERSION/docs/htmldocs \
|
||||||
|
$PKG/usr/doc/samba-$VERSION/docs/manpages
|
||||||
|
# Empty now?
|
||||||
|
rmdir $PKG/usr/doc/samba-$VERSION/docs 2> /dev/null
|
||||||
|
# I'm sorry, but when all this info is included in HTML, adding 7MB worth of
|
||||||
|
# PDF files just to have extra artwork is more fluff than I'll agree to.
|
||||||
|
rm -f $PKG/usr/doc/samba-$VERSION/docs/*.pdf
|
||||||
|
# Also redundant also:
|
||||||
|
rm -rf $PKG/usr/doc/samba-$VERSION/docs/docbook
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
*** Be sure the package contains:
|
||||||
|
|
||||||
|
drwxr-xr-x 2 root root 4096 May 3 15:46 /var/cache/samba/
|
||||||
|
drwx------ 2 root root 1024 Mar 12 13:21 /var/lib/samba/private
|
||||||
|
drwxr-xr-x 2 root root 48 Aug 29 13:06 /var/log/samba/
|
||||||
|
drwxrwxrwt 2 root root 1024 Mar 12 13:21 /var/spool/samba/
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/samba-$VERSION-$ARCH-$BUILD.txz
|
||||||
|
|
10
pasture/source/samba/samba.libsmbclient.h.ffmpeg.compat.diff
Normal file
10
pasture/source/samba/samba.libsmbclient.h.ffmpeg.compat.diff
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- ./source3/include/libsmbclient.h.orig 2018-07-12 03:23:36.000000000 -0500
|
||||||
|
+++ ./source3/include/libsmbclient.h 2019-02-06 14:36:16.499779599 -0600
|
||||||
|
@@ -79,6 +79,7 @@
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <utime.h>
|
||||||
|
+#include <time.h>
|
||||||
|
|
||||||
|
#define SMBC_BASE_FD 10000 /* smallest file descriptor returned */
|
||||||
|
|
2
pasture/source/samba/samba.url
Normal file
2
pasture/source/samba/samba.url
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
https://download.samba.org/pub/samba/stable/samba-4.15.13.tar.gz
|
||||||
|
https://download.samba.org/pub/samba/stable/samba-4.15.13.tar.asc
|
19
pasture/source/samba/slack-desc
Normal file
19
pasture/source/samba/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# HOW TO EDIT THIS FILE:
|
||||||
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||||
|
# up the first '|' above the ':' following the base package name, and the '|'
|
||||||
|
# on the right side marks the last column you can put a character in. You must
|
||||||
|
# make exactly 11 lines for the formatting to be correct. It's also
|
||||||
|
# customary to leave one space after the ':'.
|
||||||
|
|
||||||
|
|-----handy-ruler------------------------------------------------------|
|
||||||
|
samba: samba (CIFS file and print server)
|
||||||
|
samba:
|
||||||
|
samba: Samba is a CIFS file and print server for CIFS clients. It allows
|
||||||
|
samba: you to make file space or printers on a Samba host available to CIFS
|
||||||
|
samba: clients (such as PCs running Windows).
|
||||||
|
samba:
|
||||||
|
samba: If you have any Windows file servers, you may be able to replace them
|
||||||
|
samba: or supplement them with Samba. One of Samba's big strengths is
|
||||||
|
samba: integration, so you can use it to tie together your Linux hosts and
|
||||||
|
samba: Windows PC clients.
|
||||||
|
samba:
|
223
pasture/source/samba/smb.conf.default
Normal file
223
pasture/source/samba/smb.conf.default
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
# This is the main Samba configuration file. You should read the
|
||||||
|
# smb.conf(5) manual page in order to understand the options listed
|
||||||
|
# here. Samba has a huge number of configurable options (perhaps too
|
||||||
|
# many!) most of which are not shown in this example
|
||||||
|
#
|
||||||
|
# For a step to step guide on installing, configuring and using samba,
|
||||||
|
# read the Samba-HOWTO-Collection. This may be obtained from:
|
||||||
|
# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
|
||||||
|
#
|
||||||
|
# Many working examples of smb.conf files can be found in the
|
||||||
|
# Samba-Guide which is generated daily and can be downloaded from:
|
||||||
|
# http://www.samba.org/samba/docs/Samba-Guide.pdf
|
||||||
|
#
|
||||||
|
# Any line which starts with a ; (semi-colon) or a # (hash)
|
||||||
|
# is a comment and is ignored. In this example we will use a #
|
||||||
|
# for commentry and a ; for parts of the config file that you
|
||||||
|
# may wish to enable
|
||||||
|
#
|
||||||
|
# NOTE: Whenever you modify this file you should run the command "testparm"
|
||||||
|
# to check that you have not made any basic syntactic errors.
|
||||||
|
#
|
||||||
|
#======================= Global Settings =====================================
|
||||||
|
[global]
|
||||||
|
|
||||||
|
# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
|
||||||
|
workgroup = MYGROUP
|
||||||
|
|
||||||
|
# server string is the equivalent of the NT Description field
|
||||||
|
server string = Samba Server
|
||||||
|
|
||||||
|
# Server role. Defines in which mode Samba will operate. Possible
|
||||||
|
# values are "standalone server", "member server", "classic primary
|
||||||
|
# domain controller", "classic backup domain controller", "active
|
||||||
|
# directory domain controller".
|
||||||
|
#
|
||||||
|
# Most people will want "standalone server" or "member server".
|
||||||
|
# Running as "active directory domain controller" will require first
|
||||||
|
# running "samba-tool domain provision" to wipe databases and create a
|
||||||
|
# new domain.
|
||||||
|
server role = standalone server
|
||||||
|
|
||||||
|
# This option is important for security. It allows you to restrict
|
||||||
|
# connections to machines which are on your local network. The
|
||||||
|
# following example restricts access to two C class networks and
|
||||||
|
# the "loopback" interface. For more examples of the syntax see
|
||||||
|
# the smb.conf man page
|
||||||
|
; hosts allow = 192.168.1. 192.168.2. 127.
|
||||||
|
|
||||||
|
# Uncomment this if you want a guest account, you must add this to /etc/passwd
|
||||||
|
# otherwise the user "nobody" is used
|
||||||
|
; guest account = pcguest
|
||||||
|
|
||||||
|
# this tells Samba to use a separate log file for each machine
|
||||||
|
# that connects
|
||||||
|
log file = /var/log/samba.%m
|
||||||
|
|
||||||
|
# Put a capping on the size of the log files (in Kb).
|
||||||
|
max log size = 50
|
||||||
|
|
||||||
|
# Specifies the Kerberos or Active Directory realm the host is part of
|
||||||
|
; realm = MY_REALM
|
||||||
|
|
||||||
|
# Backend to store user information in. New installations should
|
||||||
|
# use either tdbsam or ldapsam. smbpasswd is available for backwards
|
||||||
|
# compatibility. tdbsam requires no further configuration.
|
||||||
|
; passdb backend = tdbsam
|
||||||
|
|
||||||
|
# Using the following line enables you to customise your configuration
|
||||||
|
# on a per machine basis. The %m gets replaced with the netbios name
|
||||||
|
# of the machine that is connecting.
|
||||||
|
# Note: Consider carefully the location in the configuration file of
|
||||||
|
# this line. The included file is read at that point.
|
||||||
|
; include = /usr/local/samba/lib/smb.conf.%m
|
||||||
|
|
||||||
|
# Configure Samba to use multiple interfaces
|
||||||
|
# If you have multiple network interfaces then you must list them
|
||||||
|
# here. See the man page for details.
|
||||||
|
; interfaces = 192.168.12.2/24 192.168.13.2/24
|
||||||
|
|
||||||
|
# Where to store roving profiles (only for Win95 and WinNT)
|
||||||
|
# %L substitutes for this servers netbios name, %U is username
|
||||||
|
# You must uncomment the [Profiles] share below
|
||||||
|
; logon path = \\%L\Profiles\%U
|
||||||
|
|
||||||
|
# Windows Internet Name Serving Support Section:
|
||||||
|
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
|
||||||
|
; wins support = yes
|
||||||
|
|
||||||
|
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
|
||||||
|
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
|
||||||
|
; wins server = w.x.y.z
|
||||||
|
|
||||||
|
# WINS Proxy - Tells Samba to answer name resolution queries on
|
||||||
|
# behalf of a non WINS capable client, for this to work there must be
|
||||||
|
# at least one WINS Server on the network. The default is NO.
|
||||||
|
; wins proxy = yes
|
||||||
|
|
||||||
|
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
|
||||||
|
# via DNS nslookups. The default is NO.
|
||||||
|
dns proxy = no
|
||||||
|
|
||||||
|
# These scripts are used on a domain controller or stand-alone
|
||||||
|
# machine to add or delete corresponding unix accounts
|
||||||
|
; add user script = /usr/sbin/useradd %u
|
||||||
|
; add group script = /usr/sbin/groupadd %g
|
||||||
|
; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
|
||||||
|
; delete user script = /usr/sbin/userdel %u
|
||||||
|
; delete user from group script = /usr/sbin/deluser %u %g
|
||||||
|
; delete group script = /usr/sbin/groupdel %g
|
||||||
|
|
||||||
|
|
||||||
|
#============================ Share Definitions ==============================
|
||||||
|
[homes]
|
||||||
|
comment = Home Directories
|
||||||
|
browseable = no
|
||||||
|
writable = yes
|
||||||
|
|
||||||
|
# Un-comment the following and create the netlogon directory for Domain Logons
|
||||||
|
; [netlogon]
|
||||||
|
; comment = Network Logon Service
|
||||||
|
; path = /usr/local/samba/lib/netlogon
|
||||||
|
; guest ok = yes
|
||||||
|
; writable = no
|
||||||
|
; share modes = no
|
||||||
|
|
||||||
|
|
||||||
|
# Un-comment the following to provide a specific roving profile share
|
||||||
|
# the default is to use the user's home directory
|
||||||
|
;[Profiles]
|
||||||
|
; path = /usr/local/samba/profiles
|
||||||
|
; browseable = no
|
||||||
|
; guest ok = yes
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE: If you have a BSD-style print system there is no need to
|
||||||
|
# specifically define each individual printer
|
||||||
|
[printers]
|
||||||
|
comment = All Printers
|
||||||
|
path = /var/spool/samba
|
||||||
|
browseable = no
|
||||||
|
# Set public = yes to allow user 'guest account' to print
|
||||||
|
guest ok = no
|
||||||
|
writable = no
|
||||||
|
printable = yes
|
||||||
|
|
||||||
|
# This one is useful for people to share files
|
||||||
|
;[tmp]
|
||||||
|
; comment = Temporary file space
|
||||||
|
; path = /tmp
|
||||||
|
; read only = no
|
||||||
|
; public = yes
|
||||||
|
|
||||||
|
# A publicly accessible directory, but read only, except for people in
|
||||||
|
# the "staff" group
|
||||||
|
;[public]
|
||||||
|
; comment = Public Stuff
|
||||||
|
; path = /home/samba
|
||||||
|
; public = yes
|
||||||
|
; writable = no
|
||||||
|
; printable = no
|
||||||
|
; write list = @staff
|
||||||
|
|
||||||
|
# Other examples.
|
||||||
|
#
|
||||||
|
# A private printer, usable only by fred. Spool data will be placed in fred's
|
||||||
|
# home directory. Note that fred must have write access to the spool directory,
|
||||||
|
# wherever it is.
|
||||||
|
;[fredsprn]
|
||||||
|
; comment = Fred's Printer
|
||||||
|
; valid users = fred
|
||||||
|
; path = /homes/fred
|
||||||
|
; printer = freds_printer
|
||||||
|
; public = no
|
||||||
|
; writable = no
|
||||||
|
; printable = yes
|
||||||
|
|
||||||
|
# A private directory, usable only by fred. Note that fred requires write
|
||||||
|
# access to the directory.
|
||||||
|
;[fredsdir]
|
||||||
|
; comment = Fred's Service
|
||||||
|
; path = /usr/somewhere/private
|
||||||
|
; valid users = fred
|
||||||
|
; public = no
|
||||||
|
; writable = yes
|
||||||
|
; printable = no
|
||||||
|
|
||||||
|
# a service which has a different directory for each machine that connects
|
||||||
|
# this allows you to tailor configurations to incoming machines. You could
|
||||||
|
# also use the %U option to tailor it by user name.
|
||||||
|
# The %m gets replaced with the machine name that is connecting.
|
||||||
|
;[pchome]
|
||||||
|
; comment = PC Directories
|
||||||
|
; path = /usr/pc/%m
|
||||||
|
; public = no
|
||||||
|
; writable = yes
|
||||||
|
|
||||||
|
# A publicly accessible directory, read/write to all users. Note that all files
|
||||||
|
# created in the directory by users will be owned by the default user, so
|
||||||
|
# any user with access can delete any other user's files. Obviously this
|
||||||
|
# directory must be writable by the default user. Another user could of course
|
||||||
|
# be specified, in which case all files would be owned by that user instead.
|
||||||
|
;[public]
|
||||||
|
; path = /usr/somewhere/else/public
|
||||||
|
; public = yes
|
||||||
|
; only guest = yes
|
||||||
|
; writable = yes
|
||||||
|
; printable = no
|
||||||
|
|
||||||
|
# The following two entries demonstrate how to share a directory so that two
|
||||||
|
# users can place files there that will be owned by the specific users. In this
|
||||||
|
# setup, the directory should be writable by both users and should have the
|
||||||
|
# sticky bit set on it to prevent abuse. Obviously this could be extended to
|
||||||
|
# as many users as required.
|
||||||
|
;[myshare]
|
||||||
|
; comment = Mary's and Fred's stuff
|
||||||
|
; path = /usr/somewhere/shared
|
||||||
|
; valid users = mary fred
|
||||||
|
; public = no
|
||||||
|
; writable = yes
|
||||||
|
; printable = no
|
||||||
|
; create mask = 0765
|
||||||
|
|
||||||
|
|
223
pasture/source/samba/smb.conf.default.orig
Normal file
223
pasture/source/samba/smb.conf.default.orig
Normal file
|
@ -0,0 +1,223 @@
|
||||||
|
# This is the main Samba configuration file. You should read the
|
||||||
|
# smb.conf(5) manual page in order to understand the options listed
|
||||||
|
# here. Samba has a huge number of configurable options (perhaps too
|
||||||
|
# many!) most of which are not shown in this example
|
||||||
|
#
|
||||||
|
# For a step to step guide on installing, configuring and using samba,
|
||||||
|
# read the Samba-HOWTO-Collection. This may be obtained from:
|
||||||
|
# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
|
||||||
|
#
|
||||||
|
# Many working examples of smb.conf files can be found in the
|
||||||
|
# Samba-Guide which is generated daily and can be downloaded from:
|
||||||
|
# http://www.samba.org/samba/docs/Samba-Guide.pdf
|
||||||
|
#
|
||||||
|
# Any line which starts with a ; (semi-colon) or a # (hash)
|
||||||
|
# is a comment and is ignored. In this example we will use a #
|
||||||
|
# for commentry and a ; for parts of the config file that you
|
||||||
|
# may wish to enable
|
||||||
|
#
|
||||||
|
# NOTE: Whenever you modify this file you should run the command "testparm"
|
||||||
|
# to check that you have not made any basic syntactic errors.
|
||||||
|
#
|
||||||
|
#======================= Global Settings =====================================
|
||||||
|
[global]
|
||||||
|
|
||||||
|
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
|
||||||
|
workgroup = MYGROUP
|
||||||
|
|
||||||
|
# server string is the equivalent of the NT Description field
|
||||||
|
server string = Samba Server
|
||||||
|
|
||||||
|
# Server role. Defines in which mode Samba will operate. Possible
|
||||||
|
# values are "standalone server", "member server", "classic primary
|
||||||
|
# domain controller", "classic backup domain controller", "active
|
||||||
|
# directory domain controller".
|
||||||
|
#
|
||||||
|
# Most people will want "standalone server" or "member server".
|
||||||
|
# Running as "active directory domain controller" will require first
|
||||||
|
# running "samba-tool domain provision" to wipe databases and create a
|
||||||
|
# new domain.
|
||||||
|
server role = standalone server
|
||||||
|
|
||||||
|
# This option is important for security. It allows you to restrict
|
||||||
|
# connections to machines which are on your local network. The
|
||||||
|
# following example restricts access to two C class networks and
|
||||||
|
# the "loopback" interface. For more examples of the syntax see
|
||||||
|
# the smb.conf man page
|
||||||
|
; hosts allow = 192.168.1. 192.168.2. 127.
|
||||||
|
|
||||||
|
# Uncomment this if you want a guest account, you must add this to /etc/passwd
|
||||||
|
# otherwise the user "nobody" is used
|
||||||
|
; guest account = pcguest
|
||||||
|
|
||||||
|
# this tells Samba to use a separate log file for each machine
|
||||||
|
# that connects
|
||||||
|
log file = /usr/local/samba/var/log.%m
|
||||||
|
|
||||||
|
# Put a capping on the size of the log files (in Kb).
|
||||||
|
max log size = 50
|
||||||
|
|
||||||
|
# Specifies the Kerberos or Active Directory realm the host is part of
|
||||||
|
; realm = MY_REALM
|
||||||
|
|
||||||
|
# Backend to store user information in. New installations should
|
||||||
|
# use either tdbsam or ldapsam. smbpasswd is available for backwards
|
||||||
|
# compatibility. tdbsam requires no further configuration.
|
||||||
|
; passdb backend = tdbsam
|
||||||
|
|
||||||
|
# Using the following line enables you to customise your configuration
|
||||||
|
# on a per machine basis. The %m gets replaced with the netbios name
|
||||||
|
# of the machine that is connecting.
|
||||||
|
# Note: Consider carefully the location in the configuration file of
|
||||||
|
# this line. The included file is read at that point.
|
||||||
|
; include = /usr/local/samba/lib/smb.conf.%m
|
||||||
|
|
||||||
|
# Configure Samba to use multiple interfaces
|
||||||
|
# If you have multiple network interfaces then you must list them
|
||||||
|
# here. See the man page for details.
|
||||||
|
; interfaces = 192.168.12.2/24 192.168.13.2/24
|
||||||
|
|
||||||
|
# Where to store roving profiles (only for Win95 and WinNT)
|
||||||
|
# %L substitutes for this servers netbios name, %U is username
|
||||||
|
# You must uncomment the [Profiles] share below
|
||||||
|
; logon path = \\%L\Profiles\%U
|
||||||
|
|
||||||
|
# Windows Internet Name Serving Support Section:
|
||||||
|
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
|
||||||
|
; wins support = yes
|
||||||
|
|
||||||
|
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
|
||||||
|
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
|
||||||
|
; wins server = w.x.y.z
|
||||||
|
|
||||||
|
# WINS Proxy - Tells Samba to answer name resolution queries on
|
||||||
|
# behalf of a non WINS capable client, for this to work there must be
|
||||||
|
# at least one WINS Server on the network. The default is NO.
|
||||||
|
; wins proxy = yes
|
||||||
|
|
||||||
|
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
|
||||||
|
# via DNS nslookups. The default is NO.
|
||||||
|
dns proxy = no
|
||||||
|
|
||||||
|
# These scripts are used on a domain controller or stand-alone
|
||||||
|
# machine to add or delete corresponding unix accounts
|
||||||
|
; add user script = /usr/sbin/useradd %u
|
||||||
|
; add group script = /usr/sbin/groupadd %g
|
||||||
|
; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
|
||||||
|
; delete user script = /usr/sbin/userdel %u
|
||||||
|
; delete user from group script = /usr/sbin/deluser %u %g
|
||||||
|
; delete group script = /usr/sbin/groupdel %g
|
||||||
|
|
||||||
|
|
||||||
|
#============================ Share Definitions ==============================
|
||||||
|
[homes]
|
||||||
|
comment = Home Directories
|
||||||
|
browseable = no
|
||||||
|
writable = yes
|
||||||
|
|
||||||
|
# Un-comment the following and create the netlogon directory for Domain Logons
|
||||||
|
; [netlogon]
|
||||||
|
; comment = Network Logon Service
|
||||||
|
; path = /usr/local/samba/lib/netlogon
|
||||||
|
; guest ok = yes
|
||||||
|
; writable = no
|
||||||
|
; share modes = no
|
||||||
|
|
||||||
|
|
||||||
|
# Un-comment the following to provide a specific roving profile share
|
||||||
|
# the default is to use the user's home directory
|
||||||
|
;[Profiles]
|
||||||
|
; path = /usr/local/samba/profiles
|
||||||
|
; browseable = no
|
||||||
|
; guest ok = yes
|
||||||
|
|
||||||
|
|
||||||
|
# NOTE: If you have a BSD-style print system there is no need to
|
||||||
|
# specifically define each individual printer
|
||||||
|
[printers]
|
||||||
|
comment = All Printers
|
||||||
|
path = /usr/spool/samba
|
||||||
|
browseable = no
|
||||||
|
# Set public = yes to allow user 'guest account' to print
|
||||||
|
guest ok = no
|
||||||
|
writable = no
|
||||||
|
printable = yes
|
||||||
|
|
||||||
|
# This one is useful for people to share files
|
||||||
|
;[tmp]
|
||||||
|
; comment = Temporary file space
|
||||||
|
; path = /tmp
|
||||||
|
; read only = no
|
||||||
|
; public = yes
|
||||||
|
|
||||||
|
# A publicly accessible directory, but read only, except for people in
|
||||||
|
# the "staff" group
|
||||||
|
;[public]
|
||||||
|
; comment = Public Stuff
|
||||||
|
; path = /home/samba
|
||||||
|
; public = yes
|
||||||
|
; writable = no
|
||||||
|
; printable = no
|
||||||
|
; write list = @staff
|
||||||
|
|
||||||
|
# Other examples.
|
||||||
|
#
|
||||||
|
# A private printer, usable only by fred. Spool data will be placed in fred's
|
||||||
|
# home directory. Note that fred must have write access to the spool directory,
|
||||||
|
# wherever it is.
|
||||||
|
;[fredsprn]
|
||||||
|
; comment = Fred's Printer
|
||||||
|
; valid users = fred
|
||||||
|
; path = /homes/fred
|
||||||
|
; printer = freds_printer
|
||||||
|
; public = no
|
||||||
|
; writable = no
|
||||||
|
; printable = yes
|
||||||
|
|
||||||
|
# A private directory, usable only by fred. Note that fred requires write
|
||||||
|
# access to the directory.
|
||||||
|
;[fredsdir]
|
||||||
|
; comment = Fred's Service
|
||||||
|
; path = /usr/somewhere/private
|
||||||
|
; valid users = fred
|
||||||
|
; public = no
|
||||||
|
; writable = yes
|
||||||
|
; printable = no
|
||||||
|
|
||||||
|
# a service which has a different directory for each machine that connects
|
||||||
|
# this allows you to tailor configurations to incoming machines. You could
|
||||||
|
# also use the %U option to tailor it by user name.
|
||||||
|
# The %m gets replaced with the machine name that is connecting.
|
||||||
|
;[pchome]
|
||||||
|
; comment = PC Directories
|
||||||
|
; path = /usr/pc/%m
|
||||||
|
; public = no
|
||||||
|
; writable = yes
|
||||||
|
|
||||||
|
# A publicly accessible directory, read/write to all users. Note that all files
|
||||||
|
# created in the directory by users will be owned by the default user, so
|
||||||
|
# any user with access can delete any other user's files. Obviously this
|
||||||
|
# directory must be writable by the default user. Another user could of course
|
||||||
|
# be specified, in which case all files would be owned by that user instead.
|
||||||
|
;[public]
|
||||||
|
; path = /usr/somewhere/else/public
|
||||||
|
; public = yes
|
||||||
|
; only guest = yes
|
||||||
|
; writable = yes
|
||||||
|
; printable = no
|
||||||
|
|
||||||
|
# The following two entries demonstrate how to share a directory so that two
|
||||||
|
# users can place files there that will be owned by the specific users. In this
|
||||||
|
# setup, the directory should be writable by both users and should have the
|
||||||
|
# sticky bit set on it to prevent abuse. Obviously this could be extended to
|
||||||
|
# as many users as required.
|
||||||
|
;[myshare]
|
||||||
|
; comment = Mary's and Fred's stuff
|
||||||
|
; path = /usr/somewhere/shared
|
||||||
|
; valid users = mary fred
|
||||||
|
; public = no
|
||||||
|
; writable = yes
|
||||||
|
; printable = no
|
||||||
|
; create mask = 0765
|
||||||
|
|
||||||
|
|
29
pasture/source/samba/smb.conf.diff
Normal file
29
pasture/source/samba/smb.conf.diff
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
--- smb.conf.default.orig 2017-01-11 01:55:14.000000000 -0600
|
||||||
|
+++ smb.conf.default 2017-03-23 14:18:05.114503416 -0500
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
#======================= Global Settings =====================================
|
||||||
|
[global]
|
||||||
|
|
||||||
|
-# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
|
||||||
|
+# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
|
||||||
|
workgroup = MYGROUP
|
||||||
|
|
||||||
|
# server string is the equivalent of the NT Description field
|
||||||
|
@@ -52,7 +52,7 @@
|
||||||
|
|
||||||
|
# this tells Samba to use a separate log file for each machine
|
||||||
|
# that connects
|
||||||
|
- log file = /usr/local/samba/var/log.%m
|
||||||
|
+ log file = /var/log/samba.%m
|
||||||
|
|
||||||
|
# Put a capping on the size of the log files (in Kb).
|
||||||
|
max log size = 50
|
||||||
|
@@ -136,7 +136,7 @@
|
||||||
|
# specifically define each individual printer
|
||||||
|
[printers]
|
||||||
|
comment = All Printers
|
||||||
|
- path = /usr/spool/samba
|
||||||
|
+ path = /var/spool/samba
|
||||||
|
browseable = no
|
||||||
|
# Set public = yes to allow user 'guest account' to print
|
||||||
|
guest ok = no
|
11
patches/packages/cryfs-0.10.3-x86_64-5_slack15.0.txt
Normal file
11
patches/packages/cryfs-0.10.3-x86_64-5_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
cryfs: cryfs (cryptographic filesystem)
|
||||||
|
cryfs:
|
||||||
|
cryfs: CryFS encrypts your files, so you can safely store them anywhere. It
|
||||||
|
cryfs: works well together with cloud services.
|
||||||
|
cryfs:
|
||||||
|
cryfs: Homepage: https://www.cryfs.org
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
11
patches/packages/espeak-ng-1.50-x86_64-4_slack15.0.txt
Normal file
11
patches/packages/espeak-ng-1.50-x86_64-4_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
espeak-ng: espeak-ng (text-to-speech synthesizer)
|
||||||
|
espeak-ng:
|
||||||
|
espeak-ng: The eSpeak NG (Next Generation) Text-to-Speech program is an open
|
||||||
|
espeak-ng: source speech synthesizer that supports many languages and accents. It
|
||||||
|
espeak-ng: is based on the eSpeak engine created by Jonathan Duddington. It uses
|
||||||
|
espeak-ng: spectral formant synthesis by default which sounds robotic, but can be
|
||||||
|
espeak-ng: configured to use Klatt formant synthesis or MBROLA to give it a more
|
||||||
|
espeak-ng: natural sound.
|
||||||
|
espeak-ng:
|
||||||
|
espeak-ng: Homepage: https://github.com/espeak-ng/espeak-ng
|
||||||
|
espeak-ng:
|
11
patches/packages/libvncserver-0.9.13-x86_64-4_slack15.0.txt
Normal file
11
patches/packages/libvncserver-0.9.13-x86_64-4_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
libvncserver: libvncserver (VNC Server Library)
|
||||||
|
libvncserver:
|
||||||
|
libvncserver: LibVNCServer makes writing a VNC server (or more correctly,
|
||||||
|
libvncserver: a program exporting a framebuffer via the Remote Frame Buffer
|
||||||
|
libvncserver: protocol) easy.
|
||||||
|
libvncserver:
|
||||||
|
libvncserver: Homepage: https://libvnc.github.io/
|
||||||
|
libvncserver:
|
||||||
|
libvncserver:
|
||||||
|
libvncserver:
|
||||||
|
libvncserver:
|
11
patches/packages/marisa-0.2.6-x86_64-5_slack15.0.txt
Normal file
11
patches/packages/marisa-0.2.6-x86_64-5_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
marisa: marisa (trie data structure library)
|
||||||
|
marisa:
|
||||||
|
marisa: Matching Algorithm with Recursively Implemented StorAge (MARISA) is a
|
||||||
|
marisa: static and space-efficient trie data structure. And libmarisa is a
|
||||||
|
marisa: C++ library to provide an implementation of MARISA. Also, the package
|
||||||
|
marisa: of libmarisa contains a set of command line tools for building and
|
||||||
|
marisa: operating a MARISA-based dictionary.
|
||||||
|
marisa:
|
||||||
|
marisa: Homepage: https://code.google.com/p/marisa-trie/
|
||||||
|
marisa:
|
||||||
|
marisa:
|
11
patches/packages/mlt-7.4.0-x86_64-2_slack15.0.txt
Normal file
11
patches/packages/mlt-7.4.0-x86_64-2_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
mlt: mlt (open source multimedia framework)
|
||||||
|
mlt:
|
||||||
|
mlt: MLT is an open source multimedia framework, designed and developed for
|
||||||
|
mlt: television broadcasting. It provides a toolkit for broadcasters, video
|
||||||
|
mlt: editors, media players, transcoders, web streamers, and many more
|
||||||
|
mlt: types of applications. The functionality of the system is provided via
|
||||||
|
mlt: an assortment of ready to use tools, XML authoring components, and an
|
||||||
|
mlt: extensible plug-in based API.
|
||||||
|
mlt:
|
||||||
|
mlt: Homepage: http://www.mltframework.org/
|
||||||
|
mlt:
|
11
patches/packages/openobex-1.7.2-x86_64-6_slack15.0.txt
Normal file
11
patches/packages/openobex-1.7.2-x86_64-6_slack15.0.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
openobex: openobex (Object Exchange protocol library)
|
||||||
|
openobex:
|
||||||
|
openobex: OpenOBEX is a free open source implementation of the Object Exchange
|
||||||
|
openobex: (OBEX) protocol. OBEX is a session protocol and can best be
|
||||||
|
openobex: described as a binary HTTP protocol. OBEX is optimised for ad-hoc
|
||||||
|
openobex: wireless links and can be used to exchange all kinds of objects like
|
||||||
|
openobex: files, pictures, calendar entries (vCal) and business cards (vCard).
|
||||||
|
openobex:
|
||||||
|
openobex: Visit the project here: http://www.openobex.org
|
||||||
|
openobex:
|
||||||
|
openobex:
|
|
@ -0,0 +1,11 @@
|
||||||
|
spirv-llvm-translator: spirv-llvm-translator (LLVM/SPIR-V Bi-Directional Translator)
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator: This is the LLVM/SPIR-V Bi-Directional Translator, a library and tool
|
||||||
|
spirv-llvm-translator: for translation between LLVM IR and SPIR-V.
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator: Homepage: https://github.com/KhronosGroup/SPIRV-LLVM-Translator
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
|
@ -0,0 +1,27 @@
|
||||||
|
From 041b5baea5a4efceff33df2f316646b47a1cd7c0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam James <11667869+thesamesam@users.noreply.github.com>
|
||||||
|
Date: Sat, 14 Aug 2021 17:29:24 +0100
|
||||||
|
Subject: [PATCH] src/fspp/fuse/Fuse.h: add <memory.h> include for
|
||||||
|
std::shared_ptr (#395)
|
||||||
|
|
||||||
|
Needed to fix build with Boost 1.77 (some indirect inclusion
|
||||||
|
got lost).
|
||||||
|
|
||||||
|
Signed-off-by: Sam James <sam@gentoo.org>
|
||||||
|
---
|
||||||
|
src/fspp/fuse/Fuse.h | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/src/fspp/fuse/Fuse.h b/src/fspp/fuse/Fuse.h
|
||||||
|
index 2dd3c2d4d..3841e38a4 100644
|
||||||
|
--- a/src/fspp/fuse/Fuse.h
|
||||||
|
+++ b/src/fspp/fuse/Fuse.h
|
||||||
|
@@ -11,6 +11,7 @@
|
||||||
|
#include <boost/optional.hpp>
|
||||||
|
#include <cpp-utils/macros.h>
|
||||||
|
#include <atomic>
|
||||||
|
+#include <memory>
|
||||||
|
#include "stat_compatibility.h"
|
||||||
|
#include <fspp/fs_interface/Context.h>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,297 @@
|
||||||
|
From 27587ea1acec5f939a31217f1c43953378f18821 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sebastian Messmer <messmer@cryfs.org>
|
||||||
|
Date: Sat, 8 May 2021 14:44:27 -0700
|
||||||
|
Subject: [PATCH] Fixed an issue when compiling with GCC 11, see
|
||||||
|
https://github.com/cryfs/cryfs/issues/389
|
||||||
|
|
||||||
|
---
|
||||||
|
ChangeLog.txt | 5 ++
|
||||||
|
.../onblocks/datanodestore/DataNodeView.h | 8 +--
|
||||||
|
.../filesystem/fsblobstore/utils/DirEntry.cpp | 66 +++++++++----------
|
||||||
|
src/cryfs/localstate/LocalStateMetadata.cpp | 24 +++----
|
||||||
|
src/cryfs/localstate/LocalStateMetadata.h | 10 +--
|
||||||
|
5 files changed, 59 insertions(+), 54 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ChangeLog.txt b/ChangeLog.txt
|
||||||
|
index f9776eb93..9d7a6708c 100644
|
||||||
|
--- a/ChangeLog.txt
|
||||||
|
+++ b/ChangeLog.txt
|
||||||
|
@@ -1,3 +1,8 @@
|
||||||
|
+Version 0.10.4 (unreleased)
|
||||||
|
+--------------
|
||||||
|
+Fixed bugs:
|
||||||
|
+* Fixed an issue when compiling with GCC 11, see https://github.com/cryfs/cryfs/issues/389
|
||||||
|
+
|
||||||
|
Version 0.10.3
|
||||||
|
---------------
|
||||||
|
Fixed bugs:
|
||||||
|
diff --git a/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h b/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h
|
||||||
|
index 256c28495..3799612e3 100644
|
||||||
|
--- a/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h
|
||||||
|
+++ b/src/blobstore/implementations/onblocks/datanodestore/DataNodeView.h
|
||||||
|
@@ -67,7 +67,7 @@ class DataNodeView final {
|
||||||
|
|
||||||
|
static DataNodeView create(blockstore::BlockStore *blockStore, const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
|
||||||
|
ASSERT(data.size() <= layout.datasizeBytes(), "Data is too large for node");
|
||||||
|
- cpputils::Data serialized = _serialize(layout, formatVersion, depth, size, std::move(data));
|
||||||
|
+ cpputils::Data serialized = serialize_(layout, formatVersion, depth, size, std::move(data));
|
||||||
|
ASSERT(serialized.size() == layout.blocksizeBytes(), "Wrong block size");
|
||||||
|
auto block = blockStore->create(serialized);
|
||||||
|
return DataNodeView(std::move(block));
|
||||||
|
@@ -75,7 +75,7 @@ class DataNodeView final {
|
||||||
|
|
||||||
|
static DataNodeView initialize(cpputils::unique_ref<blockstore::Block> block, const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
|
||||||
|
ASSERT(data.size() <= DataNodeLayout(block->size()).datasizeBytes(), "Data is too large for node");
|
||||||
|
- cpputils::Data serialized = _serialize(layout, formatVersion, depth, size, std::move(data));
|
||||||
|
+ cpputils::Data serialized = serialize_(layout, formatVersion, depth, size, std::move(data));
|
||||||
|
ASSERT(serialized.size() == block->size(), "Block has wrong size");
|
||||||
|
block->write(serialized.data(), 0, serialized.size());
|
||||||
|
return DataNodeView(std::move(block));
|
||||||
|
@@ -83,7 +83,7 @@ class DataNodeView final {
|
||||||
|
|
||||||
|
static DataNodeView overwrite(blockstore::BlockStore *blockStore, const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, const blockstore::BlockId &blockId, cpputils::Data data) {
|
||||||
|
ASSERT(data.size() <= layout.datasizeBytes(), "Data is too large for node");
|
||||||
|
- cpputils::Data serialized = _serialize(layout, formatVersion, depth, size, std::move(data));
|
||||||
|
+ cpputils::Data serialized = serialize_(layout, formatVersion, depth, size, std::move(data));
|
||||||
|
auto block = blockStore->overwrite(blockId, std::move(serialized));
|
||||||
|
return DataNodeView(std::move(block));
|
||||||
|
}
|
||||||
|
@@ -143,7 +143,7 @@ class DataNodeView final {
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
- static cpputils::Data _serialize(const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
|
||||||
|
+ static cpputils::Data serialize_(const DataNodeLayout &layout, uint16_t formatVersion, uint8_t depth, uint32_t size, cpputils::Data data) {
|
||||||
|
cpputils::Data result(layout.blocksizeBytes());
|
||||||
|
cpputils::serialize<uint16_t>(result.dataOffset(layout.FORMAT_VERSION_OFFSET_BYTES), formatVersion);
|
||||||
|
cpputils::serialize<uint8_t>(result.dataOffset(layout.DEPTH_OFFSET_BYTES), depth);
|
||||||
|
diff --git a/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp b/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp
|
||||||
|
index 941148db9..70dd5a560 100644
|
||||||
|
--- a/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp
|
||||||
|
+++ b/src/cryfs/filesystem/fsblobstore/utils/DirEntry.cpp
|
||||||
|
@@ -11,55 +11,55 @@ namespace cryfs {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
template<typename DataType>
|
||||||
|
- size_t _serialize(void* dst, const DataType& obj) {
|
||||||
|
+ size_t serialize_(void* dst, const DataType& obj) {
|
||||||
|
cpputils::serialize<DataType>(dst, obj);
|
||||||
|
return sizeof(DataType);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename DataType>
|
||||||
|
- DataType _deserialize(const char** src) {
|
||||||
|
+ DataType deserialize_(const char** src) {
|
||||||
|
DataType result = cpputils::deserialize<DataType>(*src);
|
||||||
|
*src += sizeof(DataType);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
- constexpr size_t _serializedTimeValueSize() {
|
||||||
|
+ constexpr size_t serializedTimeValueSize_() {
|
||||||
|
return sizeof(uint64_t) + sizeof(uint32_t);
|
||||||
|
}
|
||||||
|
|
||||||
|
- unsigned int _serializeTimeValue(uint8_t *dest, timespec value) {
|
||||||
|
+ unsigned int serializeTimeValue_(uint8_t *dest, timespec value) {
|
||||||
|
unsigned int offset = 0;
|
||||||
|
- offset += _serialize<uint64_t>(dest + offset, value.tv_sec);
|
||||||
|
- offset += _serialize<uint32_t>(dest + offset, value.tv_nsec);
|
||||||
|
- ASSERT(offset == _serializedTimeValueSize(), "serialized to wrong size");
|
||||||
|
+ offset += serialize_<uint64_t>(dest + offset, value.tv_sec);
|
||||||
|
+ offset += serialize_<uint32_t>(dest + offset, value.tv_nsec);
|
||||||
|
+ ASSERT(offset == serializedTimeValueSize_(), "serialized to wrong size");
|
||||||
|
return offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
- timespec _deserializeTimeValue(const char **pos) {
|
||||||
|
+ timespec deserializeTimeValue_(const char **pos) {
|
||||||
|
timespec value{};
|
||||||
|
- value.tv_sec = _deserialize<uint64_t>(pos);
|
||||||
|
- value.tv_nsec = _deserialize<uint32_t>(pos);
|
||||||
|
+ value.tv_sec = deserialize_<uint64_t>(pos);
|
||||||
|
+ value.tv_nsec = deserialize_<uint32_t>(pos);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
- unsigned int _serializeString(uint8_t *dest, const string &value) {
|
||||||
|
+ unsigned int serializeString_(uint8_t *dest, const string &value) {
|
||||||
|
std::memcpy(dest, value.c_str(), value.size()+1);
|
||||||
|
return value.size() + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- string _deserializeString(const char **pos) {
|
||||||
|
+ string deserializeString_(const char **pos) {
|
||||||
|
size_t length = strlen(*pos);
|
||||||
|
string value(*pos, length);
|
||||||
|
*pos += length + 1;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
- unsigned int _serializeBlockId(uint8_t *dest, const BlockId &blockId) {
|
||||||
|
+ unsigned int serializeBlockId_(uint8_t *dest, const BlockId &blockId) {
|
||||||
|
blockId.ToBinary(dest);
|
||||||
|
return blockId.BINARY_LENGTH;
|
||||||
|
}
|
||||||
|
|
||||||
|
- BlockId _deserializeBlockId(const char **pos) {
|
||||||
|
+ BlockId deserializeBlockId_(const char **pos) {
|
||||||
|
BlockId blockId = BlockId::FromBinary(*pos);
|
||||||
|
*pos += BlockId::BINARY_LENGTH;
|
||||||
|
return blockId;
|
||||||
|
@@ -75,35 +75,35 @@ namespace cryfs {
|
||||||
|
_mode.hasDirFlag()) + ", " + std::to_string(_mode.hasSymlinkFlag()) + ", " + std::to_string(static_cast<uint8_t>(_type))
|
||||||
|
);
|
||||||
|
unsigned int offset = 0;
|
||||||
|
- offset += _serialize<uint8_t>(dest + offset, static_cast<uint8_t>(_type));
|
||||||
|
- offset += _serialize<uint32_t>(dest + offset, _mode.value());
|
||||||
|
- offset += _serialize<uint32_t>(dest + offset, _uid.value());
|
||||||
|
- offset += _serialize<uint32_t>(dest + offset, _gid.value());
|
||||||
|
- offset += _serializeTimeValue(dest + offset, _lastAccessTime);
|
||||||
|
- offset += _serializeTimeValue(dest + offset, _lastModificationTime);
|
||||||
|
- offset += _serializeTimeValue(dest + offset, _lastMetadataChangeTime);
|
||||||
|
- offset += _serializeString(dest + offset, _name);
|
||||||
|
- offset += _serializeBlockId(dest + offset, _blockId);
|
||||||
|
+ offset += serialize_<uint8_t>(dest + offset, static_cast<uint8_t>(_type));
|
||||||
|
+ offset += serialize_<uint32_t>(dest + offset, _mode.value());
|
||||||
|
+ offset += serialize_<uint32_t>(dest + offset, _uid.value());
|
||||||
|
+ offset += serialize_<uint32_t>(dest + offset, _gid.value());
|
||||||
|
+ offset += serializeTimeValue_(dest + offset, _lastAccessTime);
|
||||||
|
+ offset += serializeTimeValue_(dest + offset, _lastModificationTime);
|
||||||
|
+ offset += serializeTimeValue_(dest + offset, _lastMetadataChangeTime);
|
||||||
|
+ offset += serializeString_(dest + offset, _name);
|
||||||
|
+ offset += serializeBlockId_(dest + offset, _blockId);
|
||||||
|
ASSERT(offset == serializedSize(), "Didn't write correct number of elements");
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *DirEntry::deserializeAndAddToVector(const char *pos, vector<DirEntry> *result) {
|
||||||
|
- fspp::Dir::EntryType type = static_cast<fspp::Dir::EntryType>(_deserialize<uint8_t>(&pos));
|
||||||
|
- fspp::mode_t mode = fspp::mode_t(_deserialize<uint32_t>(&pos));
|
||||||
|
- fspp::uid_t uid = fspp::uid_t(_deserialize<uint32_t>(&pos));
|
||||||
|
- fspp::gid_t gid = fspp::gid_t(_deserialize<uint32_t>(&pos));
|
||||||
|
- timespec lastAccessTime = _deserializeTimeValue(&pos);
|
||||||
|
- timespec lastModificationTime = _deserializeTimeValue(&pos);
|
||||||
|
- timespec lastMetadataChangeTime = _deserializeTimeValue(&pos);
|
||||||
|
- string name = _deserializeString(&pos);
|
||||||
|
- BlockId blockId = _deserializeBlockId(&pos);
|
||||||
|
+ fspp::Dir::EntryType type = static_cast<fspp::Dir::EntryType>(deserialize_<uint8_t>(&pos));
|
||||||
|
+ fspp::mode_t mode = fspp::mode_t(deserialize_<uint32_t>(&pos));
|
||||||
|
+ fspp::uid_t uid = fspp::uid_t(deserialize_<uint32_t>(&pos));
|
||||||
|
+ fspp::gid_t gid = fspp::gid_t(deserialize_<uint32_t>(&pos));
|
||||||
|
+ timespec lastAccessTime = deserializeTimeValue_(&pos);
|
||||||
|
+ timespec lastModificationTime = deserializeTimeValue_(&pos);
|
||||||
|
+ timespec lastMetadataChangeTime = deserializeTimeValue_(&pos);
|
||||||
|
+ string name = deserializeString_(&pos);
|
||||||
|
+ BlockId blockId = deserializeBlockId_(&pos);
|
||||||
|
|
||||||
|
result->emplace_back(type, name, blockId, mode, uid, gid, lastAccessTime, lastModificationTime, lastMetadataChangeTime);
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t DirEntry::serializedSize() const {
|
||||||
|
- return 1 + sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t) + 3*_serializedTimeValueSize() + (
|
||||||
|
+ return 1 + sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uint32_t) + 3*serializedTimeValueSize_() + (
|
||||||
|
_name.size() + 1) + _blockId.BINARY_LENGTH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/cryfs/localstate/LocalStateMetadata.cpp b/src/cryfs/localstate/LocalStateMetadata.cpp
|
||||||
|
index 529a26129..dfa952a1a 100644
|
||||||
|
--- a/src/cryfs/localstate/LocalStateMetadata.cpp
|
||||||
|
+++ b/src/cryfs/localstate/LocalStateMetadata.cpp
|
||||||
|
@@ -30,10 +30,10 @@ LocalStateMetadata::LocalStateMetadata(uint32_t myClientId, Hash encryptionKeyHa
|
||||||
|
|
||||||
|
LocalStateMetadata LocalStateMetadata::loadOrGenerate(const bf::path &statePath, const Data& encryptionKey, bool allowReplacedFilesystem) {
|
||||||
|
auto metadataFile = statePath / "metadata";
|
||||||
|
- auto loaded = _load(metadataFile);
|
||||||
|
+ auto loaded = load_(metadataFile);
|
||||||
|
if (loaded == none) {
|
||||||
|
// If it couldn't be loaded, generate a new client id.
|
||||||
|
- return _generate(metadataFile, encryptionKey);
|
||||||
|
+ return generate_(metadataFile, encryptionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!allowReplacedFilesystem && loaded->_encryptionKeyHash.digest != cpputils::hash::hash(encryptionKey, loaded->_encryptionKeyHash.salt).digest) {
|
||||||
|
@@ -42,22 +42,22 @@ LocalStateMetadata LocalStateMetadata::loadOrGenerate(const bf::path &statePath,
|
||||||
|
return *loaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
-optional<LocalStateMetadata> LocalStateMetadata::_load(const bf::path &metadataFilePath) {
|
||||||
|
+optional<LocalStateMetadata> LocalStateMetadata::load_(const bf::path &metadataFilePath) {
|
||||||
|
ifstream file(metadataFilePath.string());
|
||||||
|
if (!file.good()) {
|
||||||
|
// State file doesn't exist
|
||||||
|
return none;
|
||||||
|
}
|
||||||
|
- return _deserialize(file);
|
||||||
|
+ return deserialize_(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void LocalStateMetadata::_save(const bf::path &metadataFilePath) const {
|
||||||
|
+void LocalStateMetadata::save_(const bf::path &metadataFilePath) const {
|
||||||
|
ofstream file(metadataFilePath.string(), std::ios::trunc);
|
||||||
|
- _serialize(file);
|
||||||
|
+ serialize_(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
-uint32_t _generateClientId() {
|
||||||
|
+uint32_t generateClientId_() {
|
||||||
|
uint32_t result;
|
||||||
|
do {
|
||||||
|
result = cpputils::deserialize<uint32_t>(Random::PseudoRandom().getFixedSize<sizeof(uint32_t)>().data());
|
||||||
|
@@ -82,8 +82,8 @@ optional<uint32_t> _tryLoadClientIdFromLegacyFile(const bf::path &metadataFilePa
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
-LocalStateMetadata LocalStateMetadata::_generate(const bf::path &metadataFilePath, const Data& encryptionKey) {
|
||||||
|
- uint32_t myClientId = _generateClientId();
|
||||||
|
+LocalStateMetadata LocalStateMetadata::generate_(const bf::path &metadataFilePath, const Data& encryptionKey) {
|
||||||
|
+ uint32_t myClientId = generateClientId_();
|
||||||
|
#ifndef CRYFS_NO_COMPATIBILITY
|
||||||
|
// In the old format, this was stored in a "myClientId" file. If that file exists, load it from there.
|
||||||
|
optional<uint32_t> legacy = _tryLoadClientIdFromLegacyFile(metadataFilePath);
|
||||||
|
@@ -93,11 +93,11 @@ LocalStateMetadata LocalStateMetadata::_generate(const bf::path &metadataFilePat
|
||||||
|
#endif
|
||||||
|
|
||||||
|
LocalStateMetadata result(myClientId, cpputils::hash::hash(encryptionKey, cpputils::hash::generateSalt()));
|
||||||
|
- result._save(metadataFilePath);
|
||||||
|
+ result.save_(metadataFilePath);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void LocalStateMetadata::_serialize(ostream& stream) const {
|
||||||
|
+void LocalStateMetadata::serialize_(ostream& stream) const {
|
||||||
|
ptree pt;
|
||||||
|
pt.put<uint32_t>("myClientId", myClientId());
|
||||||
|
pt.put<string>("encryptionKey.salt", _encryptionKeyHash.salt.ToString());
|
||||||
|
@@ -106,7 +106,7 @@ void LocalStateMetadata::_serialize(ostream& stream) const {
|
||||||
|
write_json(stream, pt);
|
||||||
|
}
|
||||||
|
|
||||||
|
-LocalStateMetadata LocalStateMetadata::_deserialize(istream& stream) {
|
||||||
|
+LocalStateMetadata LocalStateMetadata::deserialize_(istream& stream) {
|
||||||
|
try {
|
||||||
|
ptree pt;
|
||||||
|
read_json(stream, pt);
|
||||||
|
diff --git a/src/cryfs/localstate/LocalStateMetadata.h b/src/cryfs/localstate/LocalStateMetadata.h
|
||||||
|
index 8b0ffc662..c06b0f05b 100644
|
||||||
|
--- a/src/cryfs/localstate/LocalStateMetadata.h
|
||||||
|
+++ b/src/cryfs/localstate/LocalStateMetadata.h
|
||||||
|
@@ -20,11 +20,11 @@ class LocalStateMetadata final {
|
||||||
|
const uint32_t _myClientId;
|
||||||
|
const cpputils::hash::Hash _encryptionKeyHash;
|
||||||
|
|
||||||
|
- static boost::optional<LocalStateMetadata> _load(const boost::filesystem::path &metadataFilePath);
|
||||||
|
- static LocalStateMetadata _deserialize(std::istream& stream);
|
||||||
|
- static LocalStateMetadata _generate(const boost::filesystem::path &metadataFilePath, const cpputils::Data& encryptionKey);
|
||||||
|
- void _save(const boost::filesystem::path &metadataFilePath) const;
|
||||||
|
- void _serialize(std::ostream& stream) const;
|
||||||
|
+ static boost::optional<LocalStateMetadata> load_(const boost::filesystem::path &metadataFilePath);
|
||||||
|
+ static LocalStateMetadata deserialize_(std::istream& stream);
|
||||||
|
+ static LocalStateMetadata generate_(const boost::filesystem::path &metadataFilePath, const cpputils::Data& encryptionKey);
|
||||||
|
+ void save_(const boost::filesystem::path &metadataFilePath) const;
|
||||||
|
+ void serialize_(std::ostream& stream) const;
|
||||||
|
|
||||||
|
LocalStateMetadata(uint32_t myClientId, cpputils::hash::Hash encryptionKey);
|
||||||
|
};
|
||||||
|
|
145
patches/source/cryfs/cryfs.SlackBuild
Executable file
145
patches/source/cryfs/cryfs.SlackBuild
Executable file
|
@ -0,0 +1,145 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018, 2019, 2020 Eric Hameleers, Eindhoven, NL
|
||||||
|
# Copyright 2020 Patrick J. Volkerding, Sebeka, Minnesota, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=cryfs
|
||||||
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-5_slack15.0}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
export ARCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PKGNAM-$VERSION
|
||||||
|
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
|
||||||
|
cd $PKGNAM-$VERSION || exit 1
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
# Oddly, cryfs expects a static boost, so we'll need to hit it with the LART:
|
||||||
|
export LDFLAGS="$SLKLDFLAGS -lboost_thread -lboost_program_options -lboost_filesystem -lboost_chrono -lcryptopp -lfuse"
|
||||||
|
|
||||||
|
# gcc11 fixes:
|
||||||
|
zcat $CWD/27587ea1acec5f939a31217f1c43953378f18821.patch.gz | patch -p1 --verbose || exit 1
|
||||||
|
|
||||||
|
# Boost 1.77.0 fix:
|
||||||
|
zcat $CWD/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch.gz | patch -p1 --verbose || exit 1
|
||||||
|
|
||||||
|
# Configure, build, and install:
|
||||||
|
mkdir cmake-build
|
||||||
|
cd cmake-build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_INSTALL_MANDIR=/usr/man \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
-DBoost_INCLUDE_DIRS=/usr/include/boost \
|
||||||
|
-DBoost_USE_STATIC_LIBS=OFF \
|
||||||
|
-DCRYFS_UPDATE_CHECKS=OFF \
|
||||||
|
.. || exit 1
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
# When compiling against a shared boost, these fail to install properly without help:
|
||||||
|
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
|
||||||
|
install -m0755 ./src/cryfs-cli/libcryfs-cli.so $PKG/usr/lib${LIBDIRSUFFIX}/libcryfs-cli.so
|
||||||
|
install -m0755 ./src/cryfs-unmount/libcryfs-unmount.so $PKG/usr/lib${LIBDIRSUFFIX}/libcryfs-unmount.so
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Strip binaries:
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# Compress manual pages:
|
||||||
|
find $PKG/usr/man -type f -exec gzip -9 {} \+
|
||||||
|
for i in $( find $PKG/usr/man -type l ) ; do
|
||||||
|
ln -s $( readlink $i ).gz $i.gz
|
||||||
|
rm $i
|
||||||
|
done
|
||||||
|
|
||||||
|
# Add a documentation directory:
|
||||||
|
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
cp -a \
|
||||||
|
ChangeLog* README* LICENSE* \
|
||||||
|
$PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
1
patches/source/cryfs/cryfs.url
Normal file
1
patches/source/cryfs/cryfs.url
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://github.com/cryfs/cryfs
|
19
patches/source/cryfs/slack-desc
Normal file
19
patches/source/cryfs/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# HOW TO EDIT THIS FILE:
|
||||||
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||||
|
# up the first '|' above the ':' following the base package name, and the '|'
|
||||||
|
# on the right side marks the last column you can put a character in. You must
|
||||||
|
# make exactly 11 lines for the formatting to be correct. It's also
|
||||||
|
# customary to leave one space after the ':'.
|
||||||
|
|
||||||
|
|-----handy-ruler------------------------------------------------------|
|
||||||
|
cryfs: cryfs (cryptographic filesystem)
|
||||||
|
cryfs:
|
||||||
|
cryfs: CryFS encrypts your files, so you can safely store them anywhere. It
|
||||||
|
cryfs: works well together with cloud services.
|
||||||
|
cryfs:
|
||||||
|
cryfs: Homepage: https://www.cryfs.org
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
||||||
|
cryfs:
|
|
@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
PKGNAM=cups-filters
|
PKGNAM=cups-filters
|
||||||
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
BUILD=${BUILD:-1_slack15.0}
|
BUILD=${BUILD:-2_slack15.0}
|
||||||
|
|
||||||
# Automatically determine the architecture we're building on:
|
# Automatically determine the architecture we're building on:
|
||||||
if [ -z "$ARCH" ]; then
|
if [ -z "$ARCH" ]; then
|
||||||
|
@ -102,7 +102,7 @@ CXXFLAGS="$SLKCFLAGS -std=c++17 -fpermissive" \
|
||||||
--disable-avahi \
|
--disable-avahi \
|
||||||
--disable-mutool \
|
--disable-mutool \
|
||||||
--disable-static \
|
--disable-static \
|
||||||
--with-browseremoteprotocols=cups \
|
--with-browseremoteprotocols=none \
|
||||||
--build=$ARCH-slackware-linux || exit 1
|
--build=$ARCH-slackware-linux || exit 1
|
||||||
|
|
||||||
make $NUMJOBS || exit 1
|
make $NUMJOBS || exit 1
|
||||||
|
|
125
patches/source/espeak-ng/espeak-ng.SlackBuild
Executable file
125
patches/source/espeak-ng/espeak-ng.SlackBuild
Executable file
|
@ -0,0 +1,125 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2019 Eric Hameleers, Eindhoven, NL
|
||||||
|
# Copyright 2020 Patrick J. Volkerding, Sebeka, Minnesota, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=espeak-ng
|
||||||
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-4_slack15.0}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
export ARCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PKGNAM-$VERSION
|
||||||
|
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
|
||||||
|
cd $PKGNAM-$VERSION || exit 1
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
# Configure, build, and install:
|
||||||
|
if [ ! -r configure ]; then
|
||||||
|
NOCONFIGURE=1 ./autogen.sh
|
||||||
|
fi
|
||||||
|
CFLAGS="$SLKCFLAGS" \
|
||||||
|
CXXFLAGS="$SLKCFLAGS" \
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--docdir=/usr/doc/$PKGNAM-$VERSION \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--infodir=/usr/info \
|
||||||
|
--disable-static \
|
||||||
|
--disable-rpath \
|
||||||
|
--build=$ARCH-slackware-linux || exit 1
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
|
||||||
|
# Don't ship .la files:
|
||||||
|
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
|
||||||
|
|
||||||
|
# Strip binaries:
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# Add a documentation directory:
|
||||||
|
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
cp -a \
|
||||||
|
AUTHORS* CHANGELOG* COPYING* NEWS* README* THANKS* TODO* \
|
||||||
|
$PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
1
patches/source/espeak-ng/espeak-ng.url
Normal file
1
patches/source/espeak-ng/espeak-ng.url
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://github.com/espeak-ng/espeak-ng
|
19
patches/source/espeak-ng/slack-desc
Normal file
19
patches/source/espeak-ng/slack-desc
Normal file
|
@ -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------------------------------------------------------|
|
||||||
|
espeak-ng: espeak-ng (text-to-speech synthesizer)
|
||||||
|
espeak-ng:
|
||||||
|
espeak-ng: The eSpeak NG (Next Generation) Text-to-Speech program is an open
|
||||||
|
espeak-ng: source speech synthesizer that supports many languages and accents. It
|
||||||
|
espeak-ng: is based on the eSpeak engine created by Jonathan Duddington. It uses
|
||||||
|
espeak-ng: spectral formant synthesis by default which sounds robotic, but can be
|
||||||
|
espeak-ng: configured to use Klatt formant synthesis or MBROLA to give it a more
|
||||||
|
espeak-ng: natural sound.
|
||||||
|
espeak-ng:
|
||||||
|
espeak-ng: Homepage: https://github.com/espeak-ng/espeak-ng
|
||||||
|
espeak-ng:
|
137
patches/source/libvncserver/libvncserver.SlackBuild
Executable file
137
patches/source/libvncserver/libvncserver.SlackBuild
Executable file
|
@ -0,0 +1,137 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2007, 2014 Heinz Wiesinger, Amsterdam, NL
|
||||||
|
# Copyright 2008, 2009, 2010, 2011, 2012, 2015, 2018, 2019, 2020 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
# Modified by Robby Workman <rworkman at slackware.com>
|
||||||
|
# Modified by Eric Hameleers <alien at slackware.com>
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=libvncserver
|
||||||
|
VERSION=${VERSION:-$(echo LibVNCServer-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-4_slack15.0}
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
MARCH=$( uname -m )
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$MARCH" in
|
||||||
|
i?86) export ARCH=i586 ;;
|
||||||
|
armv7hl) export ARCH=$MARCH ;;
|
||||||
|
arm*) export ARCH=arm ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$MARCH ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$ARCH" in
|
||||||
|
arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
|
||||||
|
*) TARGET=$ARCH-slackware-linux ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-libvncserver
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
cd $TMP
|
||||||
|
rm -rf LibVNCServer-$VERSION
|
||||||
|
tar xvf $CWD/LibVNCServer-$VERSION.tar.?z* || exit 1
|
||||||
|
cd LibVNCServer-$VERSION || exit 1
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
#zcat $CWD/libvncserver.CMAKE_INSTALL_LIBDIR.diff.gz | patch -p1 --verbose || exit 1
|
||||||
|
|
||||||
|
# Configure, build, and install:
|
||||||
|
mkdir cmake-build
|
||||||
|
cd cmake-build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_INSTALL_LIBDIR="lib$LIBDIRSUFFIX" \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DDOC_INSTALL_DIR="doc" \
|
||||||
|
-DMAN_INSTALL_DIR=/usr/man \
|
||||||
|
.. || exit 1
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
if [ -x cmake-build/client_examples/SDLvncviewer ]; then
|
||||||
|
mkdir -p $PKG/usr/bin
|
||||||
|
cp -a cmake-build/client_examples/SDLvncviewer $PKG/usr/bin/SDLvncviewer
|
||||||
|
fi
|
||||||
|
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" \
|
||||||
|
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/libvncserver-$VERSION
|
||||||
|
cp -a \
|
||||||
|
AUTHORS COPYING* NEWS* README* TODO* \
|
||||||
|
$PKG/usr/doc/libvncserver-$VERSION
|
||||||
|
|
||||||
|
# If there's a ChangeLog, installing at least part of the recent history
|
||||||
|
# is useful, but don't let it get totally out of control:
|
||||||
|
if [ -r ChangeLog ]; then
|
||||||
|
DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
|
||||||
|
cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
|
||||||
|
touch -r ChangeLog $DOCSDIR/ChangeLog
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/libvncserver-$VERSION-$ARCH-$BUILD.txz
|
||||||
|
|
19
patches/source/libvncserver/slack-desc
Normal file
19
patches/source/libvncserver/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# HOW TO EDIT THIS FILE:
|
||||||
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||||
|
# up the first '|' above the ':' following the base package name, and the '|'
|
||||||
|
# on the right side marks the last column you can put a character in. You must
|
||||||
|
# make exactly 11 lines for the formatting to be correct. It's also
|
||||||
|
# customary to leave one space after the ':'.
|
||||||
|
|
||||||
|
|-----handy-ruler------------------------------------------------------|
|
||||||
|
libvncserver: libvncserver (VNC Server Library)
|
||||||
|
libvncserver:
|
||||||
|
libvncserver: LibVNCServer makes writing a VNC server (or more correctly,
|
||||||
|
libvncserver: a program exporting a framebuffer via the Remote Frame Buffer
|
||||||
|
libvncserver: protocol) easy.
|
||||||
|
libvncserver:
|
||||||
|
libvncserver: Homepage: https://libvnc.github.io/
|
||||||
|
libvncserver:
|
||||||
|
libvncserver:
|
||||||
|
libvncserver:
|
||||||
|
libvncserver:
|
159
patches/source/marisa/marisa.SlackBuild
Executable file
159
patches/source/marisa/marisa.SlackBuild
Executable file
|
@ -0,0 +1,159 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands
|
||||||
|
# Copyright 2016, 2020 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=marisa
|
||||||
|
SRCNAM=marisa-trie
|
||||||
|
VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
|
||||||
|
BUILD=${BUILD:-5_slack15.0}
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
MARCH=$( uname -m )
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$MARCH" in
|
||||||
|
i?86) export ARCH=i586 ;;
|
||||||
|
armv7hl) export ARCH=$MARCH ;;
|
||||||
|
arm*) export ARCH=arm ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$MARCH ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-marisa
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $SRCNAM-$VERSION
|
||||||
|
tar xvf $CWD/$SRCNAM-$VERSION.tar.?z || exit 1
|
||||||
|
cd $SRCNAM-$VERSION || exit 1
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
if [ ! -r configure ]; then
|
||||||
|
if [ -x ./autogen.sh ]; then
|
||||||
|
NOCONFIGURE=1 ./autogen.sh
|
||||||
|
else
|
||||||
|
autoreconf -vif
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
CFLAGS="$SLKCFLAGS" \
|
||||||
|
CXXFLAGS="$SLKCFLAGS" \
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--disable-static \
|
||||||
|
--build=$ARCH-slackware-linux
|
||||||
|
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
|
||||||
|
cd bindings/perl
|
||||||
|
perl Makefile.PL \
|
||||||
|
INC="-I$PKG/usr/include" \
|
||||||
|
LIBS="-L$PKG/usr/lib${LIBDIRSUFFIX}" \
|
||||||
|
PREFIX=/usr \
|
||||||
|
INSTALLDIRS=vendor
|
||||||
|
|
||||||
|
make $NUMJOBS || make || exit
|
||||||
|
make test || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd -
|
||||||
|
|
||||||
|
cd bindings/python
|
||||||
|
python setup.py build_ext \
|
||||||
|
--include-dirs="$PKG/usr/include" \
|
||||||
|
--library-dirs="$PKG/usr/lib${LIBDIRSUFFIX}" || exit 1
|
||||||
|
python setup.py install \
|
||||||
|
--root=$PKG || exit 1
|
||||||
|
cd -
|
||||||
|
|
||||||
|
cd bindings/ruby
|
||||||
|
ruby extconf.rb \
|
||||||
|
--with-opt-include="$PKG/usr/include" \
|
||||||
|
--with-opt-lib="$PKG/usr/lib${LIBDIRSUFFIX}" \
|
||||||
|
--vendor
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd -
|
||||||
|
|
||||||
|
# Don't ship .la files:
|
||||||
|
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
|
||||||
|
|
||||||
|
# Remove perllocal.pod and other special files that don't need to be installed,
|
||||||
|
# as they will overwrite what's already on the system.
|
||||||
|
find $PKG -name perllocal.pod -o -name ".packlist" -o -name "*.bs" | xargs rm -f || true
|
||||||
|
|
||||||
|
# Remove empty directories
|
||||||
|
find $PKG -depth -type d -empty -delete || true
|
||||||
|
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
|
||||||
|
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
cp -a AUTHORS* ChangeLog* COPYING* INSTALL* NEWS* README* \
|
||||||
|
docs/readme* \
|
||||||
|
$PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n --remove-rpaths $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
1
patches/source/marisa/marisa.url
Normal file
1
patches/source/marisa/marisa.url
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://github.com/s-yata/marisa-trie
|
19
patches/source/marisa/slack-desc
Normal file
19
patches/source/marisa/slack-desc
Normal file
|
@ -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------------------------------------------------------|
|
||||||
|
marisa: marisa (trie data structure library)
|
||||||
|
marisa:
|
||||||
|
marisa: Matching Algorithm with Recursively Implemented StorAge (MARISA) is a
|
||||||
|
marisa: static and space-efficient trie data structure. And libmarisa is a
|
||||||
|
marisa: C++ library to provide an implementation of MARISA. Also, the package
|
||||||
|
marisa: of libmarisa contains a set of command line tools for building and
|
||||||
|
marisa: operating a MARISA-based dictionary.
|
||||||
|
marisa:
|
||||||
|
marisa: Homepage: https://code.google.com/p/marisa-trie/
|
||||||
|
marisa:
|
||||||
|
marisa:
|
122
patches/source/mlt/mlt.SlackBuild
Executable file
122
patches/source/mlt/mlt.SlackBuild
Executable file
|
@ -0,0 +1,122 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2021 Patrick J. Volkerding, Sebeka, Minnesota, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=mlt
|
||||||
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-2_slack15.0}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
export ARCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j $(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PKGNAM-$VERSION
|
||||||
|
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
|
||||||
|
cd $PKGNAM-$VERSION || exit 1
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
# Configure, build, and install:
|
||||||
|
mkdir cmake-build
|
||||||
|
cd cmake-build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_INSTALL_MANDIR=/usr/man \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
.. || exit 1
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Strip binaries:
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# Compress manual pages:
|
||||||
|
find $PKG/usr/man -type f -exec gzip -9 {} \+
|
||||||
|
for i in $( find $PKG/usr/man -type l ) ; do
|
||||||
|
ln -s $( readlink $i ).gz $i.gz
|
||||||
|
rm $i
|
||||||
|
done
|
||||||
|
|
||||||
|
# Add a documentation directory:
|
||||||
|
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
cp -a \
|
||||||
|
AUTHORS* ChangeLog CHANGES COPYING* LICENSE* NEWS* README* THANKS* TODO* \
|
||||||
|
$PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
4
patches/source/mlt/mlt.deps
Normal file
4
patches/source/mlt/mlt.deps
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
frei0r-plugins
|
||||||
|
opencv
|
||||||
|
qt5
|
||||||
|
vid.stab
|
1
patches/source/mlt/mlt.url
Normal file
1
patches/source/mlt/mlt.url
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://github.com/mltframework/mlt
|
19
patches/source/mlt/slack-desc
Normal file
19
patches/source/mlt/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# HOW TO EDIT THIS FILE:
|
||||||
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||||
|
# up the first '|' above the ':' following the base package name, and the '|'
|
||||||
|
# on the right side marks the last column you can put a character in. You must
|
||||||
|
# make exactly 11 lines for the formatting to be correct. It's also
|
||||||
|
# customary to leave one space after the ':'.
|
||||||
|
|
||||||
|
|-----handy-ruler------------------------------------------------------|
|
||||||
|
mlt: mlt (open source multimedia framework)
|
||||||
|
mlt:
|
||||||
|
mlt: MLT is an open source multimedia framework, designed and developed for
|
||||||
|
mlt: television broadcasting. It provides a toolkit for broadcasters, video
|
||||||
|
mlt: editors, media players, transcoders, web streamers, and many more
|
||||||
|
mlt: types of applications. The functionality of the system is provided via
|
||||||
|
mlt: an assortment of ready to use tools, XML authoring components, and an
|
||||||
|
mlt: extensible plug-in based API.
|
||||||
|
mlt:
|
||||||
|
mlt: Homepage: http://www.mltframework.org/
|
||||||
|
mlt:
|
147
patches/source/openobex/openobex.SlackBuild
Executable file
147
patches/source/openobex/openobex.SlackBuild
Executable file
|
@ -0,0 +1,147 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2006, 2007, 2008, 2009, 2010, 2015, 2018 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=openobex
|
||||||
|
VERSION=${VERSION:-$(echo $PKGNAM-*-Source.tar.?z* | rev | cut -f 3- -d . | cut -f 2 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-6_slack15.0}
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
# Automatically determine architecture for build & packaging:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) export ARCH=i586 ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$( uname -m ) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-${PKGNAM}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
cd $TMP
|
||||||
|
rm -rf ${PKGNAM}-${VERSION}-Source
|
||||||
|
tar xvf $CWD/${PKGNAM}-${VERSION}-Source.tar.?z* || exit 1
|
||||||
|
cd ${PKGNAM}-${VERSION}-Source || 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 {} \+
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
-DCMAKE_INSTALL_DOCDIR=/usr/doc/$PKGNAM-$VERSION \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release ..
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make $NUMJOBS openobex-apps || make openobex-apps || exit 1
|
||||||
|
make doc || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Strip binaries:
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" \
|
||||||
|
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# Relocate man pages:
|
||||||
|
mv $PKG/usr/share/man $PKG/usr
|
||||||
|
rmdir $PKG/usr/share 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
|
||||||
|
|
||||||
|
# Compress info files, if any:
|
||||||
|
if [ -d $PKG/usr/info ]; then
|
||||||
|
( cd $PKG/usr/info
|
||||||
|
rm -f dir
|
||||||
|
gzip -9 *
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add a documentation directory:
|
||||||
|
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
cp -a \
|
||||||
|
AUTHORS COPYING* INSTALL NEWS README* \
|
||||||
|
$PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
|
||||||
|
# If there's a ChangeLog, installing at least part of the recent history
|
||||||
|
# is useful, but don't let it get totally out of control:
|
||||||
|
if [ -r ChangeLog ]; then
|
||||||
|
DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
|
||||||
|
cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
|
||||||
|
touch -r ChangeLog $DOCSDIR/ChangeLog
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
|
||||||
|
|
19
patches/source/openobex/slack-desc
Normal file
19
patches/source/openobex/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# HOW TO EDIT THIS FILE:
|
||||||
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||||
|
# up the first '|' above the ':' following the base package name, and the '|'
|
||||||
|
# on the right side marks the last column you can put a character in. You must
|
||||||
|
# make exactly 11 lines for the formatting to be correct. It's also
|
||||||
|
# customary to leave one space after the ':'.
|
||||||
|
|
||||||
|
|-----handy-ruler------------------------------------------------------|
|
||||||
|
openobex: openobex (Object Exchange protocol library)
|
||||||
|
openobex:
|
||||||
|
openobex: OpenOBEX is a free open source implementation of the Object Exchange
|
||||||
|
openobex: (OBEX) protocol. OBEX is a session protocol and can best be
|
||||||
|
openobex: described as a binary HTTP protocol. OBEX is optimised for ad-hoc
|
||||||
|
openobex: wireless links and can be used to exchange all kinds of objects like
|
||||||
|
openobex: files, pictures, calendar entries (vCal) and business cards (vCard).
|
||||||
|
openobex:
|
||||||
|
openobex: Visit the project here: http://www.openobex.org
|
||||||
|
openobex:
|
||||||
|
openobex:
|
|
@ -30,7 +30,7 @@ PKGNAM=pkgtools
|
||||||
# *** UPDATE THESE WITH EACH BUILD:
|
# *** UPDATE THESE WITH EACH BUILD:
|
||||||
VERSION=15.0
|
VERSION=15.0
|
||||||
ARCH=${ARCH:-noarch}
|
ARCH=${ARCH:-noarch}
|
||||||
BUILD=${BUILD:-43_slack15.0}
|
BUILD=${BUILD:-44_slack15.0}
|
||||||
|
|
||||||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
# 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
|
# the name of the created package would be, and then exit. This information
|
||||||
|
|
|
@ -416,7 +416,7 @@ if [ $OLDROOTPERMS -ne 755 ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Detect/warn/remove rpaths from ELF objects:
|
# Detect/warn/remove rpaths from ELF objects:
|
||||||
find . -type f | xargs file | grep ELF | cut -f 1 -d : | while read ELFOBJ ; do
|
for ELFOBJ in $(find . -type f | xargs file | grep ' ELF ' | cut -f 1 -d :) ; do
|
||||||
if objdump -p "$ELFOBJ" 2>/dev/null | grep -q R.*PATH ; then
|
if objdump -p "$ELFOBJ" 2>/dev/null | grep -q R.*PATH ; then
|
||||||
if [ "$REMOVE_RPATHS" = "true" ]; then
|
if [ "$REMOVE_RPATHS" = "true" ]; then
|
||||||
echo "Removing rpath from: $ELFOBJ"
|
echo "Removing rpath from: $ELFOBJ"
|
||||||
|
@ -429,8 +429,8 @@ find . -type f | xargs file | grep ELF | cut -f 1 -d : | while read ELFOBJ ; do
|
||||||
else # just warn:
|
else # just warn:
|
||||||
if objdump -p "$ELFOBJ" 2>/dev/null | grep -q R.*PATH.*/tmp ; then
|
if objdump -p "$ELFOBJ" 2>/dev/null | grep -q R.*PATH.*/tmp ; then
|
||||||
echo "WARNING: */tmp* rpath found in $ELFOBJ: $(objdump -p "$ELFOBJ" 2>/dev/null | grep R.*PATH)"
|
echo "WARNING: */tmp* rpath found in $ELFOBJ: $(objdump -p "$ELFOBJ" 2>/dev/null | grep R.*PATH)"
|
||||||
# This is important, so give a better chance to notice this:
|
# This is important, so we'll notify again after the package is built:
|
||||||
sleep 10
|
NOTIFY_INSECURE_RPATH=" WARNING: */tmp* rpath found in $ELFOBJ: $(objdump -p "$ELFOBJ" 2>/dev/null | grep R.*PATH)"
|
||||||
else
|
else
|
||||||
echo "WARNING: rpath found in $ELFOBJ: $(objdump -p "$ELFOBJ" 2>/dev/null | grep R.*PATH)"
|
echo "WARNING: rpath found in $ELFOBJ: $(objdump -p "$ELFOBJ" 2>/dev/null | grep R.*PATH)"
|
||||||
fi
|
fi
|
||||||
|
@ -500,4 +500,8 @@ fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created."
|
echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created."
|
||||||
|
if [ ! -z "$NOTIFY_INSECURE_RPATH" ]; then
|
||||||
|
echo "WARNING: detected at least one insecure /tmp rpath:"
|
||||||
|
echo $NOTIFY_INSECURE_RPATH
|
||||||
|
fi
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
https://github.com/KhronosGroup/SPIRV-LLVM-Translator
|
52
patches/source/spirv-llvm-translator/fetch-SPIRV-LLVM-Translator.sh
Executable file
52
patches/source/spirv-llvm-translator/fetch-SPIRV-LLVM-Translator.sh
Executable file
|
@ -0,0 +1,52 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright 2021 Patrick J. Volkerding, Sebeka, Minnesota, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
PKGNAM=SPIRV-LLVM-Translator
|
||||||
|
|
||||||
|
# Pull a stable branch + patches
|
||||||
|
BRANCH=${1:-llvm_release_130}
|
||||||
|
|
||||||
|
# Clear download area:
|
||||||
|
rm -rf ${PKGNAM}
|
||||||
|
|
||||||
|
# Clone repository:
|
||||||
|
git clone https://github.com/KhronosGroup/${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=%cd --date=format:%Y%m%d )"
|
||||||
|
LONGDATE="$( cd ${PKGNAM} && git log -1 --format=%cd --date=format:%c )"
|
||||||
|
# Cleanup. We're not packing up the whole git repo.
|
||||||
|
( cd ${PKGNAM} && find . -type d -name ".git*" -exec rm -rf {} \; 2> /dev/null )
|
||||||
|
mv ${PKGNAM} ${PKGNAM}-${DATE}_${HEADISAT}
|
||||||
|
tar cf ${PKGNAM}-${DATE}_${HEADISAT}.tar ${PKGNAM}-${DATE}_${HEADISAT}
|
||||||
|
plzip -9 -f ${PKGNAM}-${DATE}_${HEADISAT}.tar
|
||||||
|
rm -rf ${PKGNAM}-${DATE}_${HEADISAT}
|
||||||
|
touch -d "$LONGDATE" ${PKGNAM}-${DATE}_${HEADISAT}.tar.lz
|
||||||
|
echo
|
||||||
|
echo "${PKGNAM} branch $BRANCH with HEAD at $HEADISAT packaged as ${PKGNAM}-${DATE}_${HEADISAT}.tar.lz"
|
||||||
|
echo
|
19
patches/source/spirv-llvm-translator/slack-desc
Normal file
19
patches/source/spirv-llvm-translator/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# HOW TO EDIT THIS FILE:
|
||||||
|
# The "handy ruler" below makes it easier to edit a package description. Line
|
||||||
|
# up the first '|' above the ':' following the base package name, and the '|'
|
||||||
|
# on the right side marks the last column you can put a character in. You must
|
||||||
|
# make exactly 11 lines for the formatting to be correct. It's also
|
||||||
|
# customary to leave one space after the ':'.
|
||||||
|
|
||||||
|
|-----handy-ruler------------------------------------------------------|
|
||||||
|
spirv-llvm-translator: spirv-llvm-translator (LLVM/SPIR-V Bi-Directional Translator)
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator: This is the LLVM/SPIR-V Bi-Directional Translator, a library and tool
|
||||||
|
spirv-llvm-translator: for translation between LLVM IR and SPIR-V.
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator: Homepage: https://github.com/KhronosGroup/SPIRV-LLVM-Translator
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
||||||
|
spirv-llvm-translator:
|
131
patches/source/spirv-llvm-translator/spirv-llvm-translator.SlackBuild
Executable file
131
patches/source/spirv-llvm-translator/spirv-llvm-translator.SlackBuild
Executable file
|
@ -0,0 +1,131 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2021 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=spirv-llvm-translator
|
||||||
|
VERSION=${VERSION:-$(echo SPIRV-LLVM-Translator-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-2_slack15.0}
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
MARCH=$( uname -m )
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$MARCH" in
|
||||||
|
i?86) export ARCH=i586 ;;
|
||||||
|
armv7hl) export ARCH=$MARCH ;;
|
||||||
|
arm*) export ARCH=arm ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$MARCH ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-${PKGNAM}
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
cd $TMP
|
||||||
|
rm -rf SPIRV-LLVM-Translator-${VERSION}
|
||||||
|
tar xvf $CWD/SPIRV-LLVM-Translator-$VERSION.tar.?z* || exit 1
|
||||||
|
cd SPIRV-LLVM-Translator-$VERSION || 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 {} \+
|
||||||
|
|
||||||
|
# This git pull needs a specific set of headers. These were obtained by letting
|
||||||
|
# the build download them, and then tarring them up and pointing to them with
|
||||||
|
# the -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR option below.
|
||||||
|
tar xf $CWD/SPIRV-Headers.tar.lz
|
||||||
|
|
||||||
|
# Build and install:
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DLIB_INSTALL_DIR=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
-DMAN_INSTALL_DIR=/usr/man \
|
||||||
|
-DSYSCONF_INSTALL_DIR=/etc \
|
||||||
|
-DINCLUDE_INSTALL_DIR=/usr/include \
|
||||||
|
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
-DBUILD_SHARED_LIBS=ON \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=$TMP/SPIRV-LLVM-Translator-$VERSION/SPIRV-Headers \
|
||||||
|
..
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make $NUMJOBS llvm-spirv || make llvm-spirv || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd -
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/bin
|
||||||
|
install -m 755 build/tools/llvm-spirv/llvm-spirv $PKG/usr/bin/
|
||||||
|
|
||||||
|
# Strip binaries:
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" \
|
||||||
|
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# Add a documentation directory:
|
||||||
|
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
cp -a \
|
||||||
|
LICENSE.txt README* *.md \
|
||||||
|
$PKG/usr/doc/${PKGNAM}-$VERSION
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
|
||||||
|
|
|
@ -1196,7 +1196,8 @@ gzip ./source/x/ibus/doinst.sh
|
||||||
gzip ./source/x/ibus/emoji-test.txt
|
gzip ./source/x/ibus/emoji-test.txt
|
||||||
gzip ./source/x/xcm/xcm.udev.rules.diff
|
gzip ./source/x/xcm/xcm.udev.rules.diff
|
||||||
gzip ./source/x/libva/doinst.sh
|
gzip ./source/x/libva/doinst.sh
|
||||||
gzip ./testing/source/bind/doinst.sh
|
gzip ./testing/source/llvm/clang.toolchains.32-bit.triple.diff
|
||||||
|
gzip ./testing/source/rust/link_libffi.diff
|
||||||
gzip ./patches/source/bluez/bluez-5.51-obexd_without_systemd-1.patch
|
gzip ./patches/source/bluez/bluez-5.51-obexd_without_systemd-1.patch
|
||||||
gzip ./patches/source/bluez/doinst.sh
|
gzip ./patches/source/bluez/doinst.sh
|
||||||
gzip ./patches/source/glibc/glibc.ru_RU.CP1251.diff
|
gzip ./patches/source/glibc/glibc.ru_RU.CP1251.diff
|
||||||
|
@ -1491,10 +1492,15 @@ gzip ./patches/source/qt5/patches/qt5.mysql.h.diff
|
||||||
gzip ./patches/source/qt5/patches/qt5-qtwebengine-gcc11.patch
|
gzip ./patches/source/qt5/patches/qt5-qtwebengine-gcc11.patch
|
||||||
gzip ./patches/source/qt5/doinst.sh
|
gzip ./patches/source/qt5/doinst.sh
|
||||||
gzip ./patches/source/netatalk/doinst.sh
|
gzip ./patches/source/netatalk/doinst.sh
|
||||||
|
gzip ./patches/source/cryfs/27587ea1acec5f939a31217f1c43953378f18821.patch
|
||||||
|
gzip ./patches/source/cryfs/041b5baea5a4efceff33df2f316646b47a1cd7c0.patch
|
||||||
gzip ./pasture/source/php/php-fpm.conf.diff
|
gzip ./pasture/source/php/php-fpm.conf.diff
|
||||||
gzip ./pasture/source/php/doinst.sh
|
gzip ./pasture/source/php/doinst.sh
|
||||||
gzip ./pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
|
gzip ./pasture/source/php/PHP-5.6.31-OpenSSL-1.1.0-compatibility-20170801.patch
|
||||||
gzip ./pasture/source/php/php.ini-development.diff
|
gzip ./pasture/source/php/php.ini-development.diff
|
||||||
|
gzip ./pasture/source/samba/smb.conf.diff
|
||||||
|
gzip ./pasture/source/samba/doinst.sh
|
||||||
|
gzip ./pasture/source/samba/samba.libsmbclient.h.ffmpeg.compat.diff
|
||||||
bzip2 ./extra/source/xv/xv-3.10a-enhancements.20070520-20081216.diff
|
bzip2 ./extra/source/xv/xv-3.10a-enhancements.20070520-20081216.diff
|
||||||
bzip2 ./extra/source/xv/xv-3.10a-jumbo-additions.diff
|
bzip2 ./extra/source/xv/xv-3.10a-jumbo-additions.diff
|
||||||
bzip2 ./extra/source/xv/xv-3.10a-jumbo-fix-enh-patch-20070520.txt
|
bzip2 ./extra/source/xv/xv-3.10a-jumbo-fix-enh-patch-20070520.txt
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Copyright 2011, 2016, 2018 Patrick J. Volkerding, Sebeka, MN, USA
|
# Copyright 2011, 2016, 2018, 2023 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use of this script, with or without modification, is
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
@ -25,6 +25,10 @@ cd $(dirname $0) ; CWD=$(pwd)
|
||||||
PKGNAM=kernel-firmware
|
PKGNAM=kernel-firmware
|
||||||
ARCH=noarch
|
ARCH=noarch
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
|
# Compress the firmware blobs?
|
||||||
|
# Default is "none" for no compression.
|
||||||
|
# Other types known to be currently supported are "xz" and "zstd".
|
||||||
|
COMPRESSION=${COMPRESSION:-none}
|
||||||
|
|
||||||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
# 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
|
# the name of the created package would be, and then exit. This information
|
||||||
|
@ -56,13 +60,19 @@ DATE="$(lynx -dump -width=256 https://git.kernel.org/pub/scm/linux/kernel/git/fi
|
||||||
HEADISAT="$(lynx -dump -width=256 https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=HEAD | grep " commit " | head -n 1 | cut -f 2 -d ] | cut -b 1-7)"
|
HEADISAT="$(lynx -dump -width=256 https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=HEAD | grep " commit " | head -n 1 | cut -f 2 -d ] | cut -b 1-7)"
|
||||||
find . -name ".git*" -exec rm -rf "{}" \+
|
find . -name ".git*" -exec rm -rf "{}" \+
|
||||||
chown -R root:root .
|
chown -R root:root .
|
||||||
mkdir -p lib
|
mkdir -p lib/firmware
|
||||||
mv linux-firmware lib/firmware
|
|
||||||
# Make sure that symlinks are created by running "make install":
|
# Install the firmware from the download directory using "make $INSTALLTARGET":
|
||||||
( cd lib/firmware
|
case $COMPRESSION in
|
||||||
echo "Running make DESTDIR=$PKG install..."
|
xz) INSTALLTARGET="install-xz" ;;
|
||||||
make DESTDIR=$PKG install 2> /dev/null
|
zstd) INSTALLTARGET="install-zst" ;;
|
||||||
|
*) INSTALLTARGET="install" ;;
|
||||||
|
esac
|
||||||
|
( cd linux-firmware
|
||||||
|
echo "Running make DESTDIR=$PKG ${INSTALLTARGET}..."
|
||||||
|
make DESTDIR=$PKG $INSTALLTARGET 2> /dev/null
|
||||||
)
|
)
|
||||||
|
rm -rf linux-firmware
|
||||||
|
|
||||||
# Remove sources for carl9170fw:
|
# Remove sources for carl9170fw:
|
||||||
( cd $PKG/lib/firmware
|
( cd $PKG/lib/firmware
|
||||||
|
|
|
@ -1,136 +0,0 @@
|
||||||
rm -f lwres_addr_parse.3
|
|
||||||
ln -sf lwres_resutil.3 lwres_addr_parse.3
|
|
||||||
rm -f lwres_buffer_add.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_add.3
|
|
||||||
rm -f lwres_buffer_back.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_back.3
|
|
||||||
rm -f lwres_buffer_clear.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_clear.3
|
|
||||||
rm -f lwres_buffer_first.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_first.3
|
|
||||||
rm -f lwres_buffer_forward.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_forward.3
|
|
||||||
rm -f lwres_buffer_getmem.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_getmem.3
|
|
||||||
rm -f lwres_buffer_getuint16.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_getuint16.3
|
|
||||||
rm -f lwres_buffer_getuint32.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_getuint32.3
|
|
||||||
rm -f lwres_buffer_getuint8.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_getuint8.3
|
|
||||||
rm -f lwres_buffer_init.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_init.3
|
|
||||||
rm -f lwres_buffer_invalidate.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_invalidate.3
|
|
||||||
rm -f lwres_buffer_putmem.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_putmem.3
|
|
||||||
rm -f lwres_buffer_putuint16.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_putuint16.3
|
|
||||||
rm -f lwres_buffer_putuint32.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_putuint32.3
|
|
||||||
rm -f lwres_buffer_putuint8.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_putuint8.3
|
|
||||||
rm -f lwres_buffer_subtract.3
|
|
||||||
ln -sf lwres_buffer.3 lwres_buffer_subtract.3
|
|
||||||
rm -f lwres_conf_clear.3
|
|
||||||
ln -sf lwres_config.3 lwres_conf_clear.3
|
|
||||||
rm -f lwres_conf_get.3
|
|
||||||
ln -sf lwres_config.3 lwres_conf_get.3
|
|
||||||
rm -f lwres_conf_init.3
|
|
||||||
ln -sf lwres_config.3 lwres_conf_init.3
|
|
||||||
rm -f lwres_conf_parse.3
|
|
||||||
ln -sf lwres_config.3 lwres_conf_parse.3
|
|
||||||
rm -f lwres_conf_print.3
|
|
||||||
ln -sf lwres_config.3 lwres_conf_print.3
|
|
||||||
rm -f lwres_context_allocmem.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_allocmem.3
|
|
||||||
rm -f lwres_context_create.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_create.3
|
|
||||||
rm -f lwres_context_destroy.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_destroy.3
|
|
||||||
rm -f lwres_context_freemem.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_freemem.3
|
|
||||||
rm -f lwres_context_initserial.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_initserial.3
|
|
||||||
rm -f lwres_context_nextserial.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_nextserial.3
|
|
||||||
rm -f lwres_context_sendrecv.3
|
|
||||||
ln -sf lwres_context.3 lwres_context_sendrecv.3
|
|
||||||
rm -f lwres_endhostent.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_endhostent.3
|
|
||||||
rm -f lwres_endhostent_r.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_endhostent_r.3
|
|
||||||
rm -f lwres_freeaddrinfo.3
|
|
||||||
ln -sf lwres_getaddrinfo.3 lwres_freeaddrinfo.3
|
|
||||||
rm -f lwres_freehostent.3
|
|
||||||
ln -sf lwres_getipnode.3 lwres_freehostent.3
|
|
||||||
rm -f lwres_gabnrequest_free.3
|
|
||||||
ln -sf lwres_gabn.3 lwres_gabnrequest_free.3
|
|
||||||
rm -f lwres_gabnrequest_parse.3
|
|
||||||
ln -sf lwres_gabn.3 lwres_gabnrequest_parse.3
|
|
||||||
rm -f lwres_gabnrequest_render.3
|
|
||||||
ln -sf lwres_gabn.3 lwres_gabnrequest_render.3
|
|
||||||
rm -f lwres_gabnresponse_free.3
|
|
||||||
ln -sf lwres_gabn.3 lwres_gabnresponse_free.3
|
|
||||||
rm -f lwres_gabnresponse_parse.3
|
|
||||||
ln -sf lwres_gabn.3 lwres_gabnresponse_parse.3
|
|
||||||
rm -f lwres_gabnresponse_render.3
|
|
||||||
ln -sf lwres_gabn.3 lwres_gabnresponse_render.3
|
|
||||||
rm -f lwres_getaddrsbyname.3
|
|
||||||
ln -sf lwres_resutil.3 lwres_getaddrsbyname.3
|
|
||||||
rm -f lwres_gethostbyaddr.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_gethostbyaddr.3
|
|
||||||
rm -f lwres_gethostbyaddr_r.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_gethostbyaddr_r.3
|
|
||||||
rm -f lwres_gethostbyname.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_gethostbyname.3
|
|
||||||
rm -f lwres_gethostbyname2.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_gethostbyname2.3
|
|
||||||
rm -f lwres_gethostbyname_r.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_gethostbyname_r.3
|
|
||||||
rm -f lwres_gethostent_r.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_gethostent_r.3
|
|
||||||
rm -f lwres_getipnodebyaddr.3
|
|
||||||
ln -sf lwres_getipnode.3 lwres_getipnodebyaddr.3
|
|
||||||
rm -f lwres_getipnodebyname.3
|
|
||||||
ln -sf lwres_getipnode.3 lwres_getipnodebyname.3
|
|
||||||
rm -f lwres_getnamebyaddr.3
|
|
||||||
ln -sf lwres_resutil.3 lwres_getnamebyaddr.3
|
|
||||||
rm -f lwres_gnbarequest_free.3
|
|
||||||
ln -sf lwres_gnba.3 lwres_gnbarequest_free.3
|
|
||||||
rm -f lwres_gnbarequest_parse.3
|
|
||||||
ln -sf lwres_gnba.3 lwres_gnbarequest_parse.3
|
|
||||||
rm -f lwres_gnbarequest_render.3
|
|
||||||
ln -sf lwres_gnba.3 lwres_gnbarequest_render.3
|
|
||||||
rm -f lwres_gnbaresponse_free.3
|
|
||||||
ln -sf lwres_gnba.3 lwres_gnbaresponse_free.3
|
|
||||||
rm -f lwres_gnbaresponse_parse.3
|
|
||||||
ln -sf lwres_gnba.3 lwres_gnbaresponse_parse.3
|
|
||||||
rm -f lwres_gnbaresponse_render.3
|
|
||||||
ln -sf lwres_gnba.3 lwres_gnbaresponse_render.3
|
|
||||||
rm -f lwres_herror.3
|
|
||||||
ln -sf lwres_hstrerror.3 lwres_herror.3
|
|
||||||
rm -f lwres_lwpacket_parseheader.3
|
|
||||||
ln -sf lwres_packet.3 lwres_lwpacket_parseheader.3
|
|
||||||
rm -f lwres_lwpacket_renderheader.3
|
|
||||||
ln -sf lwres_packet.3 lwres_lwpacket_renderheader.3
|
|
||||||
rm -f lwres_net_ntop.3
|
|
||||||
ln -sf lwres_inetntop.3 lwres_net_ntop.3
|
|
||||||
rm -f lwres_nooprequest_free.3
|
|
||||||
ln -sf lwres_noop.3 lwres_nooprequest_free.3
|
|
||||||
rm -f lwres_nooprequest_parse.3
|
|
||||||
ln -sf lwres_noop.3 lwres_nooprequest_parse.3
|
|
||||||
rm -f lwres_nooprequest_render.3
|
|
||||||
ln -sf lwres_noop.3 lwres_nooprequest_render.3
|
|
||||||
rm -f lwres_noopresponse_free.3
|
|
||||||
ln -sf lwres_noop.3 lwres_noopresponse_free.3
|
|
||||||
rm -f lwres_noopresponse_parse.3
|
|
||||||
ln -sf lwres_noop.3 lwres_noopresponse_parse.3
|
|
||||||
rm -f lwres_noopresponse_render.3
|
|
||||||
ln -sf lwres_noop.3 lwres_noopresponse_render.3
|
|
||||||
rm -f lwres_sethostent.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_sethostent.3
|
|
||||||
rm -f lwres_sethostent_r.3
|
|
||||||
ln -sf lwres_gethostent.3 lwres_sethostent_r.3
|
|
||||||
rm -f lwres_string_parse.3
|
|
||||||
ln -sf lwres_resutil.3 lwres_string_parse.3
|
|
|
@ -1,180 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Patrick J. Volkerding, Sebeka, MN, USA
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use of this script, with or without modification, is
|
|
||||||
# permitted provided that the following conditions are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of this script must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
||||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
||||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
||||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
||||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
cd $(dirname $0) ; CWD=$(pwd)
|
|
||||||
|
|
||||||
PKGNAM=bind
|
|
||||||
VERSION=${VERSION:-$(echo ${PKGNAM}-[0-9]*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
|
||||||
BUILD=${BUILD:-1_slack15.0}
|
|
||||||
|
|
||||||
# Automatically determine the architecture we're building on:
|
|
||||||
if [ -z "$ARCH" ]; then
|
|
||||||
case "$( uname -m )" in
|
|
||||||
i?86) export ARCH=i586 ;;
|
|
||||||
arm*) export ARCH=arm ;;
|
|
||||||
# Unless $ARCH is already set, use uname -m for all other archs:
|
|
||||||
*) export ARCH=$( uname -m ) ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
|
||||||
# the name of the created package would be, and then exit. This information
|
|
||||||
# could be useful to other scripts.
|
|
||||||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
|
||||||
echo "$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
|
||||||
|
|
||||||
TMP=${TMP:-/tmp}
|
|
||||||
PKG=$TMP/package-${PKGNAM}
|
|
||||||
rm -rf $PKG
|
|
||||||
mkdir -p $TMP $PKG/etc/default
|
|
||||||
|
|
||||||
if [ "$ARCH" = "i586" ]; then
|
|
||||||
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
|
||||||
LIBDIRSUFFIX=""
|
|
||||||
elif [ "$ARCH" = "s390" ]; then
|
|
||||||
SLKCFLAGS="-O2"
|
|
||||||
LIBDIRSUFFIX=""
|
|
||||||
elif [ "$ARCH" = "x86_64" ]; then
|
|
||||||
SLKCFLAGS="-O2 -fPIC"
|
|
||||||
LIBDIRSUFFIX="64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $TMP
|
|
||||||
rm -rf ${PKGNAM}-${VERSION}
|
|
||||||
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z || exit 1
|
|
||||||
cd ${PKGNAM}-$VERSION || 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 {} \+
|
|
||||||
|
|
||||||
# Detect krb5:
|
|
||||||
if ls /lib*/libgssapi_krb5* 1> /dev/null 2> /dev/null ; then
|
|
||||||
GSSAPI=" --with-gssapi "
|
|
||||||
else
|
|
||||||
GSSAPI=" "
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Configure:
|
|
||||||
CFLAGS="$SLKCFLAGS" \
|
|
||||||
./configure \
|
|
||||||
--prefix=/usr \
|
|
||||||
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
|
||||||
--sysconfdir=/etc \
|
|
||||||
--localstatedir=/var \
|
|
||||||
--with-libtool \
|
|
||||||
--with-libidn2 \
|
|
||||||
--with-python=/usr/bin/python3 \
|
|
||||||
--mandir=/usr/man \
|
|
||||||
--enable-shared \
|
|
||||||
--disable-static \
|
|
||||||
--with-openssl=/usr \
|
|
||||||
$GSSAPI \
|
|
||||||
--build=$ARCH-slackware-linux || exit 1
|
|
||||||
|
|
||||||
# Build and install:
|
|
||||||
make $NUMJOBS || make || exit 1
|
|
||||||
make install DESTDIR=$PKG || exit 1
|
|
||||||
|
|
||||||
# Don't ship .la files:
|
|
||||||
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
|
|
||||||
|
|
||||||
# These probably were not supposed to be installed:
|
|
||||||
find . -name .deps -exec rm -rf "{}" \;
|
|
||||||
find . -name .libs -exec rm -rf "{}" \;
|
|
||||||
|
|
||||||
# We like symlinks.
|
|
||||||
( cd $PKG/usr/sbin
|
|
||||||
ln -sf named lwresd
|
|
||||||
)
|
|
||||||
|
|
||||||
# We like a lot of symlinks.
|
|
||||||
if [ -d $PKG/usr/man/man3 ]; then
|
|
||||||
( cd $PKG/usr/man/man3
|
|
||||||
sh $CWD/3link.sh
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install init script:
|
|
||||||
mkdir -p $PKG/etc/rc.d
|
|
||||||
cp -a $CWD/rc.bind $PKG/etc/rc.d/rc.bind.new
|
|
||||||
chmod 644 $PKG/etc/rc.d/rc.bind.new
|
|
||||||
|
|
||||||
# Install default options file for named:
|
|
||||||
cat $CWD/default.named > $PKG/etc/default/named.new
|
|
||||||
|
|
||||||
# Fix library perms:
|
|
||||||
chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/*
|
|
||||||
|
|
||||||
# Strip binaries:
|
|
||||||
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
|
|
||||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
|
||||||
|
|
||||||
# Compress manual pages:
|
|
||||||
find $PKG/usr/man -type f -exec gzip -9 {} \+
|
|
||||||
for i in $( find $PKG/usr/man -type l ) ; do
|
|
||||||
ln -s $( readlink $i ).gz $i.gz
|
|
||||||
rm $i
|
|
||||||
done
|
|
||||||
|
|
||||||
# Add a documentation directory:
|
|
||||||
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
|
|
||||||
cp -a \
|
|
||||||
CHANGES COPYRIGHT FAQ* README* \
|
|
||||||
doc/arm doc/misc \
|
|
||||||
$PKG/usr/doc/${PKGNAM}-$VERSION
|
|
||||||
|
|
||||||
# This one should have the correct perms of the config file:
|
|
||||||
if [ -r $PKG/usr/doc/${PKGNAM}-$VERSION/misc/rndc.conf-sample ]; then
|
|
||||||
chmod 644 $PKG/usr/doc/${PKGNAM}-$VERSION/misc/rndc.conf-sample
|
|
||||||
fi
|
|
||||||
|
|
||||||
# One format of this is plenty. Especially get rid of the bloated PDF.
|
|
||||||
( cd $PKG/usr/doc/bind-$VERSION/arm
|
|
||||||
rm -f Makefile* *.pdf *.xml README.SGML latex-fixup.pl
|
|
||||||
)
|
|
||||||
|
|
||||||
# Add sample config files for a simple caching nameserver:
|
|
||||||
mkdir -p $PKG/var/named/caching-example
|
|
||||||
cat $CWD/caching-example/named.conf > $PKG/etc/named.conf.new
|
|
||||||
cat $CWD/caching-example/localhost.zone > $PKG/var/named/caching-example/localhost.zone
|
|
||||||
cat $CWD/caching-example/named.local > $PKG/var/named/caching-example/named.local
|
|
||||||
cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.root
|
|
||||||
# This name is deprecated, but having it here doesn't hurt in case
|
|
||||||
# an old configuration file wants it:
|
|
||||||
cat $CWD/caching-example/named.root > $PKG/var/named/caching-example/named.ca
|
|
||||||
|
|
||||||
mkdir -p $PKG/install
|
|
||||||
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
|
|
||||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
||||||
|
|
||||||
cd $PKG
|
|
||||||
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
$TTL 86400
|
|
||||||
$ORIGIN localhost.
|
|
||||||
@ 1D IN SOA @ root (
|
|
||||||
42 ; serial (d. adams)
|
|
||||||
3H ; refresh
|
|
||||||
15M ; retry
|
|
||||||
1W ; expiry
|
|
||||||
1D ) ; minimum
|
|
||||||
|
|
||||||
1D IN NS @
|
|
||||||
1D IN A 127.0.0.1
|
|
|
@ -1,31 +0,0 @@
|
||||||
options {
|
|
||||||
directory "/var/named";
|
|
||||||
/*
|
|
||||||
* If there is a firewall between you and nameservers you want
|
|
||||||
* to talk to, you might need to uncomment the query-source
|
|
||||||
* directive below. Previous versions of BIND always asked
|
|
||||||
* questions using port 53, but BIND 8.1 uses an unprivileged
|
|
||||||
* port by default.
|
|
||||||
*/
|
|
||||||
// query-source address * port 53;
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
|
||||||
// a caching only nameserver config
|
|
||||||
//
|
|
||||||
zone "." IN {
|
|
||||||
type hint;
|
|
||||||
file "caching-example/named.root";
|
|
||||||
};
|
|
||||||
|
|
||||||
zone "localhost" IN {
|
|
||||||
type master;
|
|
||||||
file "caching-example/localhost.zone";
|
|
||||||
allow-update { none; };
|
|
||||||
};
|
|
||||||
|
|
||||||
zone "0.0.127.in-addr.arpa" IN {
|
|
||||||
type master;
|
|
||||||
file "caching-example/named.local";
|
|
||||||
allow-update { none; };
|
|
||||||
};
|
|
|
@ -1,10 +0,0 @@
|
||||||
$TTL 86400
|
|
||||||
@ IN SOA localhost. root.localhost. (
|
|
||||||
2011032500 ; Serial
|
|
||||||
28800 ; Refresh
|
|
||||||
14400 ; Retry
|
|
||||||
3600000 ; Expire
|
|
||||||
86400 ) ; Minimum
|
|
||||||
IN NS localhost.
|
|
||||||
|
|
||||||
1 IN PTR localhost.
|
|
|
@ -1,92 +0,0 @@
|
||||||
; This file holds the information on root name servers needed to
|
|
||||||
; initialize cache of Internet domain name servers
|
|
||||||
; (e.g. reference this file in the "cache . <file>"
|
|
||||||
; configuration file of BIND domain name servers).
|
|
||||||
;
|
|
||||||
; This file is made available by InterNIC
|
|
||||||
; under anonymous FTP as
|
|
||||||
; file /domain/named.cache
|
|
||||||
; on server FTP.INTERNIC.NET
|
|
||||||
; -OR- RS.INTERNIC.NET
|
|
||||||
;
|
|
||||||
; last update: July 30, 2019
|
|
||||||
; related version of root zone: 2019073000
|
|
||||||
;
|
|
||||||
; FORMERLY NS.INTERNIC.NET
|
|
||||||
;
|
|
||||||
. 3600000 NS A.ROOT-SERVERS.NET.
|
|
||||||
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
|
|
||||||
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
|
|
||||||
;
|
|
||||||
; FORMERLY NS1.ISI.EDU
|
|
||||||
;
|
|
||||||
. 3600000 NS B.ROOT-SERVERS.NET.
|
|
||||||
B.ROOT-SERVERS.NET. 3600000 A 199.9.14.201
|
|
||||||
B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:200::b
|
|
||||||
;
|
|
||||||
; FORMERLY C.PSI.NET
|
|
||||||
;
|
|
||||||
. 3600000 NS C.ROOT-SERVERS.NET.
|
|
||||||
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
|
|
||||||
C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2::c
|
|
||||||
;
|
|
||||||
; FORMERLY TERP.UMD.EDU
|
|
||||||
;
|
|
||||||
. 3600000 NS D.ROOT-SERVERS.NET.
|
|
||||||
D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13
|
|
||||||
D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2d::d
|
|
||||||
;
|
|
||||||
; FORMERLY NS.NASA.GOV
|
|
||||||
;
|
|
||||||
. 3600000 NS E.ROOT-SERVERS.NET.
|
|
||||||
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
|
|
||||||
E.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:a8::e
|
|
||||||
;
|
|
||||||
; FORMERLY NS.ISC.ORG
|
|
||||||
;
|
|
||||||
. 3600000 NS F.ROOT-SERVERS.NET.
|
|
||||||
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
|
|
||||||
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f
|
|
||||||
;
|
|
||||||
; FORMERLY NS.NIC.DDN.MIL
|
|
||||||
;
|
|
||||||
. 3600000 NS G.ROOT-SERVERS.NET.
|
|
||||||
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
|
|
||||||
G.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:12::d0d
|
|
||||||
;
|
|
||||||
; FORMERLY AOS.ARL.ARMY.MIL
|
|
||||||
;
|
|
||||||
. 3600000 NS H.ROOT-SERVERS.NET.
|
|
||||||
H.ROOT-SERVERS.NET. 3600000 A 198.97.190.53
|
|
||||||
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::53
|
|
||||||
;
|
|
||||||
; FORMERLY NIC.NORDU.NET
|
|
||||||
;
|
|
||||||
. 3600000 NS I.ROOT-SERVERS.NET.
|
|
||||||
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
|
|
||||||
I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fe::53
|
|
||||||
;
|
|
||||||
; OPERATED BY VERISIGN, INC.
|
|
||||||
;
|
|
||||||
. 3600000 NS J.ROOT-SERVERS.NET.
|
|
||||||
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
|
|
||||||
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:c27::2:30
|
|
||||||
;
|
|
||||||
; OPERATED BY RIPE NCC
|
|
||||||
;
|
|
||||||
. 3600000 NS K.ROOT-SERVERS.NET.
|
|
||||||
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
|
|
||||||
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1
|
|
||||||
;
|
|
||||||
; OPERATED BY ICANN
|
|
||||||
;
|
|
||||||
. 3600000 NS L.ROOT-SERVERS.NET.
|
|
||||||
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
|
|
||||||
L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:9f::42
|
|
||||||
;
|
|
||||||
; OPERATED BY WIDE
|
|
||||||
;
|
|
||||||
. 3600000 NS M.ROOT-SERVERS.NET.
|
|
||||||
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
|
|
||||||
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35
|
|
||||||
; End of file
|
|
|
@ -1,12 +0,0 @@
|
||||||
# User to run named as:
|
|
||||||
NAMED_USER=named
|
|
||||||
|
|
||||||
# Group to use for chowning named related files and directories.
|
|
||||||
# By default, named will also run as the primary group of $NAMED_USER,
|
|
||||||
# which will usually be the same as what's listed below, but not
|
|
||||||
# necessarily if something other than the default of "named" is used.
|
|
||||||
NAMED_GROUP=named
|
|
||||||
|
|
||||||
# Options to run named with. At least -u $NAMED_USER is required, but
|
|
||||||
# additional options may be added if needed.
|
|
||||||
NAMED_OPTIONS="-u $NAMED_USER"
|
|
|
@ -1,38 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
config() {
|
|
||||||
NEW="$1"
|
|
||||||
OLD="`dirname $NEW`/`basename $NEW .new`"
|
|
||||||
# If there's no config file by that name, mv it over:
|
|
||||||
if [ ! -r $OLD ]; then
|
|
||||||
mv $NEW $OLD
|
|
||||||
elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
|
|
||||||
rm $NEW
|
|
||||||
fi
|
|
||||||
# Otherwise, we leave the .new copy for the admin to consider...
|
|
||||||
}
|
|
||||||
|
|
||||||
# Keep same perms on rc.bind.new:
|
|
||||||
if [ -e etc/rc.d/rc.bind ]; then
|
|
||||||
cp -a etc/rc.d/rc.bind etc/rc.d/rc.bind.new.incoming
|
|
||||||
cat etc/rc.d/rc.bind.new > etc/rc.d/rc.bind.new.incoming
|
|
||||||
mv etc/rc.d/rc.bind.new.incoming etc/rc.d/rc.bind.new
|
|
||||||
fi
|
|
||||||
|
|
||||||
config etc/default/named.new
|
|
||||||
config etc/named.conf.new
|
|
||||||
config etc/rc.d/rc.bind.new
|
|
||||||
|
|
||||||
# Add a /var/named if it doesn't exist:
|
|
||||||
if [ ! -d var/named ]; then
|
|
||||||
mkdir -p var/named
|
|
||||||
chmod 755 var/named
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Generate /etc/rndc.key if there's none there,
|
|
||||||
# and there's also no /etc/rndc.conf (the other
|
|
||||||
# way to set this up).
|
|
||||||
if [ ! -r etc/rndc.key -a ! -r /etc/rndc.conf ]; then
|
|
||||||
chroot . /sbin/ldconfig
|
|
||||||
chroot . /usr/sbin/rndc-confgen -a 2> /dev/null
|
|
||||||
chroot . /bin/chown named:named /etc/rndc.key 2> /dev/null
|
|
||||||
fi
|
|
|
@ -1,136 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Start/stop/restart the BIND name server daemon (named).
|
|
||||||
|
|
||||||
# Start BIND. By default this will run with user "named". If you'd like to
|
|
||||||
# change this or other options, see: /etc/default/named
|
|
||||||
|
|
||||||
# You might also consider running BIND in a "chroot jail",
|
|
||||||
# a discussion of which may be found in
|
|
||||||
# /usr/doc/Linux-HOWTOs/Chroot-BIND-HOWTO.
|
|
||||||
|
|
||||||
# One last note: rndc has a lot of other nice features that it is not
|
|
||||||
# within the scope of this start/stop/restart script to support.
|
|
||||||
# For more details, see "man rndc" or just type "rndc" to see the options.
|
|
||||||
|
|
||||||
# Load command defaults:
|
|
||||||
if [ -f /etc/default/named ] ; then . /etc/default/named ; fi
|
|
||||||
if [ -f /etc/default/rndc ] ; then . /etc/default/rndc ; fi
|
|
||||||
|
|
||||||
# In case /etc/default/named was missing, provide fallbacks:
|
|
||||||
if [ -z "$NAMED_USER" ]; then
|
|
||||||
NAMED_USER="named"
|
|
||||||
fi
|
|
||||||
if [ -z "$NAMED_GROUP" ]; then
|
|
||||||
NAMED_GROUP="named"
|
|
||||||
fi
|
|
||||||
if [ -z "$NAMED_OPTIONS" ]; then
|
|
||||||
NAMED_OPTIONS="-u $NAMED_USER"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sanity check. If /usr/sbin/named is missing then it
|
|
||||||
# doesn't make much sense to try to run this script:
|
|
||||||
if [ ! -x /usr/sbin/named ]; then
|
|
||||||
echo "/etc/rc.d/rc.bind: no /usr/sbin/named found (or not executable); cannot start."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Start BIND. As many times as you like. ;-)
|
|
||||||
# Seriously, don't run "rc.bind start" if BIND is already
|
|
||||||
# running or you'll get more than one copy running.
|
|
||||||
bind_start() {
|
|
||||||
# Make sure /var/run/named exists:
|
|
||||||
mkdir -p /var/run/named
|
|
||||||
# Make sure that /var/run/named has correct ownership:
|
|
||||||
chown -R ${NAMED_USER}:${NAMED_GROUP} /var/run/named
|
|
||||||
# Make sure that /var/named has correct ownership:
|
|
||||||
chown -R ${NAMED_USER}:${NAMED_GROUP} /var/named
|
|
||||||
if [ -r /etc/rndc.key ]; then
|
|
||||||
# Make sure that /etc/rndc.key has correct ownership:
|
|
||||||
chown ${NAMED_USER}:${NAMED_GROUP} /etc/rndc.key
|
|
||||||
fi
|
|
||||||
# Start named:
|
|
||||||
if [ -x /usr/sbin/named ]; then
|
|
||||||
echo "Starting BIND: /usr/sbin/named $NAMED_OPTIONS"
|
|
||||||
/usr/sbin/named $NAMED_OPTIONS
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
# Make sure that named started:
|
|
||||||
if ! ps axc | grep -q named ; then
|
|
||||||
echo "WARNING: named did not start."
|
|
||||||
echo "Attempting to start named again: /usr/sbin/named $NAMED_OPTIONS"
|
|
||||||
/usr/sbin/named $NAMED_OPTIONS
|
|
||||||
sleep 1
|
|
||||||
if ps axc | grep -q named ; then
|
|
||||||
echo "SUCCESS: named started."
|
|
||||||
else
|
|
||||||
echo "FAILED: Sorry, a second attempt to start named has also failed."
|
|
||||||
echo "There may be a configuration error that needs fixing. Good luck!"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Stop all running copies of BIND (/usr/sbin/named):
|
|
||||||
bind_stop() {
|
|
||||||
# If you've set up rndc, we can use this to make shutting down BIND faster.
|
|
||||||
# If you have /etc/rndc.conf, or you have /etc/rndc.key, or $RNDC_OPTIONS is
|
|
||||||
# not empty, we'll try it.
|
|
||||||
if [ -r /etc/rndc.conf -o -r /etc/rndc.key -o ! -z "$RNDC_OPTIONS" ]; then
|
|
||||||
if [ -z "$RNDC_OPTIONS" ]; then
|
|
||||||
echo "Stopping BIND: /usr/sbin/rndc stop"
|
|
||||||
else
|
|
||||||
echo "Stopping BIND: /usr/sbin/rndc $RNDC_OPTIONS stop"
|
|
||||||
fi
|
|
||||||
/usr/sbin/rndc $RNDC_OPTIONS stop
|
|
||||||
# Wait for up to $TIMEOUT seconds before moving on to try killall:
|
|
||||||
TIMEOUT=${TIMEOUT:-10}
|
|
||||||
while [ "$TIMEOUT" -gt "0" ]; do
|
|
||||||
# Exit the timeout loop if there are no named processes:
|
|
||||||
if ! ps axco command | grep -q -e "^named$"; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1
|
|
||||||
TIMEOUT=$(expr $TIMEOUT - 1)
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
# Kill named processes if there are any running:
|
|
||||||
if ps axco command | grep -q -e "^named$"; then
|
|
||||||
echo "Stopping all named processes in this namespace: /bin/killall -SIGTERM --ns \$\$ named"
|
|
||||||
/bin/killall -SIGTERM --ns $$ named 2> /dev/null
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Reload BIND:
|
|
||||||
bind_reload() {
|
|
||||||
/usr/sbin/rndc $RNDC_OPTIONS reload
|
|
||||||
}
|
|
||||||
|
|
||||||
# Restart BIND:
|
|
||||||
bind_restart() {
|
|
||||||
bind_stop
|
|
||||||
bind_start
|
|
||||||
}
|
|
||||||
|
|
||||||
# Get BIND status:
|
|
||||||
bind_status() {
|
|
||||||
/usr/sbin/rndc $RNDC_OPTIONS status
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
'start')
|
|
||||||
bind_start
|
|
||||||
;;
|
|
||||||
'stop')
|
|
||||||
bind_stop
|
|
||||||
;;
|
|
||||||
'reload')
|
|
||||||
bind_reload
|
|
||||||
;;
|
|
||||||
'restart')
|
|
||||||
bind_restart
|
|
||||||
;;
|
|
||||||
'status')
|
|
||||||
bind_status
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "usage $0 start|stop|reload|restart|status"
|
|
||||||
esac
|
|
|
@ -1,19 +0,0 @@
|
||||||
# HOW TO EDIT THIS FILE:
|
|
||||||
# The "handy ruler" below makes it easier to edit a package description. Line
|
|
||||||
# up the first '|' above the ':' following the base package name, and the '|'
|
|
||||||
# on the right side marks the last column you can put a character in. You must
|
|
||||||
# make exactly 11 lines for the formatting to be correct. It's also
|
|
||||||
# customary to leave one space after the ':'.
|
|
||||||
|
|
||||||
|-----handy-ruler------------------------------------------------------|
|
|
||||||
bind: bind (DNS server and utilities)
|
|
||||||
bind:
|
|
||||||
bind: The named daemon and support utilities such as dig, host, and
|
|
||||||
bind: nslookup. Sample configuration files for running a simple caching
|
|
||||||
bind: nameserver are included. Documentation for advanced name server
|
|
||||||
bind: setup can be found in /usr/doc/bind-9.x.x/.
|
|
||||||
bind:
|
|
||||||
bind:
|
|
||||||
bind:
|
|
||||||
bind:
|
|
||||||
bind:
|
|
10
testing/source/llvm/clang.toolchains.32-bit.triple.diff
Normal file
10
testing/source/llvm/clang.toolchains.32-bit.triple.diff
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- ./tools/clang/lib/Driver/ToolChains/Gnu.cpp.orig 2024-03-06 13:59:35.328900971 -0600
|
||||||
|
+++ ./tools/clang/lib/Driver/ToolChains/Gnu.cpp 2024-03-06 14:02:01.218892901 -0600
|
||||||
|
@@ -2490,6 +2490,7 @@
|
||||||
|
static const char *const X86Triples[] = {
|
||||||
|
"i586-linux-gnu", "i686-linux-gnu", "i686-pc-linux-gnu",
|
||||||
|
"i386-redhat-linux6E", "i686-redhat-linux", "i386-redhat-linux",
|
||||||
|
+ "i586-slackware-linux", "i686-slackware-linux",
|
||||||
|
"i586-suse-linux", "i686-montavista-linux",
|
||||||
|
};
|
||||||
|
|
125
testing/source/llvm/libclc.SlackBuild
Executable file
125
testing/source/llvm/libclc.SlackBuild
Executable file
|
@ -0,0 +1,125 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for libclc
|
||||||
|
|
||||||
|
# Copyright 2016 Heinz Wiesinger, Amsterdam, The Netherlands
|
||||||
|
# Copyright 2017, 2018, 2021, 2024 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=libclc
|
||||||
|
VERSION=${VERSION:-$(echo llvmorg-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-1_slack15.0}
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
MARCH=$( uname -m )
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$MARCH" in
|
||||||
|
i?86) export ARCH=i586 ;;
|
||||||
|
armv7hl) export ARCH=$MARCH ;;
|
||||||
|
arm*) export ARCH=arm ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$MARCH ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
BUILDDIR=${TMP}/libclc-build-${VERSION}
|
||||||
|
|
||||||
|
rm -rf $PKG $BUILDDIR
|
||||||
|
mkdir -p $TMP $PKG $BUILDDIR
|
||||||
|
cd $BUILDDIR
|
||||||
|
|
||||||
|
# Add a fake configure script so the cleanup script used here at Slackware
|
||||||
|
# knows to delete this stuff later. Other folks can just ignore this... it
|
||||||
|
# doesn't have any other purpose.
|
||||||
|
touch configure
|
||||||
|
chmod 755 configure
|
||||||
|
|
||||||
|
echo "Extracting $CWD/llvmorg-$VERSION.tar.?z..."
|
||||||
|
tar xf $CWD/llvmorg-$VERSION.tar.?z llvm-project-llvmorg-$VERSION/libclc || tar xf $CWD/llvmorg-$VERSION.tar.?z llvmorg-$VERSION/libclc || exit 1
|
||||||
|
cd llvm-project-llvmorg-$VERSION/libclc || cd llvmorg-$VERSION/libclc || exit 1
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
# Configure, build, and install:
|
||||||
|
mkdir cmake-build
|
||||||
|
cd cmake-build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DLIB_SUFFIX="$LIBDIRSUFFIX" \
|
||||||
|
-DDOC_INSTALL_DIR="doc" \
|
||||||
|
-DMAN_INSTALL_DIR=/usr/man \
|
||||||
|
.. || exit 1
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
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 *.{txt,md,TXT,rst} $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
rm -f $PKG/usr/doc/$PKGNAM-$VERSION/CMakeLists.txt
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc.libclc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
222
testing/source/llvm/llvm.SlackBuild
Executable file
222
testing/source/llvm/llvm.SlackBuild
Executable file
|
@ -0,0 +1,222 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for llvm
|
||||||
|
|
||||||
|
# Copyright 2008-2016 Heinz Wiesinger, Amsterdam, The Netherlands
|
||||||
|
# Copyright 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022, 2023, 2024 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=llvm
|
||||||
|
VERSION=${VERSION:-$(echo llvmorg-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-2_slack15.0}
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i686 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) ARCH=$( uname -m ) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Select projects to build:
|
||||||
|
if [ "$ARCH" = "i586" -o "$ARCH" = "i686" ]; then
|
||||||
|
# bolt and flang are not available on 32-bit
|
||||||
|
LLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS:-"clang;clang-tools-extra;compiler-rt;lld;lldb;llvm;mlir;openmp;polly"}
|
||||||
|
else
|
||||||
|
LLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS:-"bolt;clang;clang-tools-extra;compiler-rt;flang;lld;lldb;llvm;mlir;openmp;polly"}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Select runtimes to build:
|
||||||
|
LLVM_ENABLE_RUNTIMES=${LLVM_ENABLE_RUNTIMES:-"libcxx;libcxxabi"}
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
BUILDDIR=${TMP}/llvm-build-${VERSION}
|
||||||
|
|
||||||
|
# Ignore that which should be ignored to avoid long build times and
|
||||||
|
# massive warning spew:
|
||||||
|
IGNORE_GNU_EXTENSIONS=${IGNORE_GNU_EXTENSIONS:--Wno-unknown-warning-option -Wno-gnu-line-marker -Wno-gnu-anonymous-struct -Wno-gnu-include-next}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686 $IGNORE_GNU_EXTENSIONS"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=pentium4 -mtune=generic $IGNORE_GNU_EXTENSIONS"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC $IGNORE_GNU_EXTENSIONS"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2 $IGNORE_GNU_EXTENSIONS"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Python3 short version:
|
||||||
|
PY3=$(python3 -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())' | cut -f 2 -d n | cut -f 1 -d /)
|
||||||
|
|
||||||
|
rm -rf $PKG $BUILDDIR
|
||||||
|
mkdir -p $TMP $PKG $BUILDDIR
|
||||||
|
cd $BUILDDIR
|
||||||
|
|
||||||
|
# Add a fake configure script so the cleanup script used here at Slackware
|
||||||
|
# knows to delete this stuff later. Other folks can just ignore this... it
|
||||||
|
# doesn't have any other purpose.
|
||||||
|
touch configure
|
||||||
|
chmod 755 configure
|
||||||
|
|
||||||
|
echo "Extracting $CWD/llvmorg-$VERSION.tar.?z..."
|
||||||
|
tar xf $CWD/llvmorg-$VERSION.tar.?z || exit 1
|
||||||
|
cd llvm-project-llvmorg-$VERSION || cd llvmorg-$VERSION || exit 1
|
||||||
|
|
||||||
|
# Support GCC built for i?86-slackware-linux:
|
||||||
|
zcat $CWD/clang.toolchains.32-bit.triple.diff.gz | patch -p2 --verbose || exit 1
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -GNinja \
|
||||||
|
-DCMAKE_C_COMPILER="clang" \
|
||||||
|
-DCMAKE_CXX_COMPILER="clang++" \
|
||||||
|
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DCMAKE_SKIP_RPATH=ON \
|
||||||
|
-DLLVM_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
||||||
|
-DLLVM_LINK_LLVM_DYLIB=ON \
|
||||||
|
-DCLANG_LINK_CLANG_DYLIB=ON \
|
||||||
|
-DLLVM_USE_LINKER=lld \
|
||||||
|
-DLLVM_ENABLE_PROJECTS="$LLVM_ENABLE_PROJECTS" \
|
||||||
|
-DLLVM_ENABLE_RUNTIMES="$LLVM_ENABLE_RUNTIMES" \
|
||||||
|
-DLLVM_ENABLE_RTTI=ON \
|
||||||
|
-DLLVM_ENABLE_FFI=ON \
|
||||||
|
-DLLVM_ENABLE_ZLIB=ON \
|
||||||
|
-DLLVM_ENABLE_ASSERTIONS=OFF \
|
||||||
|
-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO \
|
||||||
|
-DLLVM_INSTALL_UTILS=ON \
|
||||||
|
-DLLVM_BINUTILS_INCDIR=/usr/include \
|
||||||
|
-DCLANG_RESOURCE_DIR="../lib${LIBDIRSUFFIX}/clang/$(echo $VERSION | cut -f 1 -d .)" \
|
||||||
|
-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF;WebAssembly" \
|
||||||
|
-DLLVM_INCLUDE_BENCHMARKS=OFF \
|
||||||
|
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
|
||||||
|
-DCLANG_DEFAULT_PIE_ON_LINUX=ON \
|
||||||
|
-DLIBCXX_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
-DLIBCXXABI_LIBDIR_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
-DLIBCXX_INCLUDE_BENCHMARKS=OFF \
|
||||||
|
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=ON \
|
||||||
|
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
|
||||||
|
../llvm || exit 1
|
||||||
|
"${NINJA:=ninja}" $NUMJOBS || exit 1
|
||||||
|
DESTDIR=$PKG "$NINJA" install || exit 1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# Add symlinks for $ARCH-slackware-linux-{clang,clang++}:
|
||||||
|
( cd $PKG/usr/bin
|
||||||
|
ln -sf clang $ARCH-slackware-linux-clang
|
||||||
|
ln -sf clang++ $ARCH-slackware-linux-clang++
|
||||||
|
)
|
||||||
|
|
||||||
|
# Install clang-static-analyzer:
|
||||||
|
for i in ccc c++; do
|
||||||
|
ln -s /usr/libexec/$i-analyzer \
|
||||||
|
$PKG/usr/bin/$i-analyzer || exit 1
|
||||||
|
done
|
||||||
|
|
||||||
|
# Ensure lit-cpuid is installed:
|
||||||
|
if [ ! -r $PKG/usr/bin/lit-cpuid ]; then
|
||||||
|
cp -a build/bin/lit-cpuid $PKG/usr/bin/lit-cpuid
|
||||||
|
chown root:root $PKG/usr/bin/lit-cpuid
|
||||||
|
chmod 755 $PKG/usr/bin/lit-cpuid
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove symlink to libgomp, which is already provided by gcc:
|
||||||
|
rm -f $PKG/usr/lib$LIBDIRSUFFIX/libgomp.so
|
||||||
|
|
||||||
|
# Install Python bindings:
|
||||||
|
for pyver in ${PY3}; do
|
||||||
|
mkdir -p "$PKG/usr/lib$LIBDIRSUFFIX/python$pyver/site-packages"
|
||||||
|
cp -a clang/bindings/python/clang "$PKG/usr/lib$LIBDIRSUFFIX/python$pyver/site-packages/"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Remove bundled python-six:
|
||||||
|
rm -f "$PKG/usr/lib$LIBDIRSUFFIX/python2*/site-packages/six.py"
|
||||||
|
|
||||||
|
# Compile Python scripts:
|
||||||
|
python3 -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python${PY3}/site-packages/clang"
|
||||||
|
python3 -O -m compileall "$PKG/usr/lib$LIBDIRSUFFIX/python${PY3}/site-packages/clang"
|
||||||
|
python3 -m compileall "$PKG/usr/share/scan-view"
|
||||||
|
python3 -O -m compileall "$PKG/usr/share/scan-view"
|
||||||
|
python3 -m compileall "$PKG/usr/share/clang"
|
||||||
|
python3 -O -m compileall "$PKG/usr/share/clang"
|
||||||
|
python3 -m compileall "$PKG/usr/share/opt-viewer"
|
||||||
|
python3 -O -m compileall "$PKG/usr/share/opt-viewer"
|
||||||
|
|
||||||
|
# Nevermind, we're not shipping this python2 crap:
|
||||||
|
rm -rf $PKG/usr/lib$LIBDIRSUFFIX/python2*
|
||||||
|
|
||||||
|
# Move man page directory:
|
||||||
|
mv $PKG/usr/share/man $PKG/usr/
|
||||||
|
|
||||||
|
# Strip binaries:
|
||||||
|
( cd $PKG
|
||||||
|
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
)
|
||||||
|
|
||||||
|
# Compress manual pages:
|
||||||
|
find $PKG/usr/man -type f -exec gzip -9 {} \+
|
||||||
|
for i in $( find $PKG/usr/man -type l ) ; do
|
||||||
|
ln -s $( readlink $i ).gz $i.gz
|
||||||
|
rm $i
|
||||||
|
done
|
||||||
|
|
||||||
|
# Just copy anything top or next level that looks like it might be docs.
|
||||||
|
# Maybe we'll include it someday. ;-)
|
||||||
|
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
cp -a *.{txt,md,TXT,rst} $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
cp -a --parents */*.{txt,md,TXT,rst} $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
cp -a --parents */README* $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
find $PKG/usr/doc/$PKGNAM-$VERSION -name CMakeLists.txt -exec rm -f "{}" \;
|
||||||
|
rmdir $PKG/usr/doc/$PKGNAM-$VERSION/* 2> /dev/null
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
1
testing/source/llvm/llvm.url
Normal file
1
testing/source/llvm/llvm.url
Normal file
|
@ -0,0 +1 @@
|
||||||
|
https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-18.1.8.tar.gz
|
19
testing/source/llvm/slack-desc
Normal file
19
testing/source/llvm/slack-desc
Normal file
|
@ -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------------------------------------------------------|
|
||||||
|
llvm: llvm (LLVM compiler toolkit)
|
||||||
|
llvm:
|
||||||
|
llvm: LLVM is a toolkit for the construction of highly optimized compilers,
|
||||||
|
llvm: optimizers, and runtime environments.
|
||||||
|
llvm:
|
||||||
|
llvm: This package also includes the clang frontend for the C family of
|
||||||
|
llvm: languages: C, C++, Objective-C, and Objective-C++
|
||||||
|
llvm:
|
||||||
|
llvm:
|
||||||
|
llvm: Homepage: http://llvm.org/
|
||||||
|
llvm:
|
19
testing/source/llvm/slack-desc.libclc
Normal file
19
testing/source/llvm/slack-desc.libclc
Normal file
|
@ -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------------------------------------------------------|
|
||||||
|
libclc: libclc (OpenCL 1.1 libraries)
|
||||||
|
libclc:
|
||||||
|
libclc: libclc is an open source, BSD/MIT dual licensed implementation of the
|
||||||
|
libclc: library requirements of the OpenCL C programming language, as
|
||||||
|
libclc: specified by the OpenCL 1.1 Specification.
|
||||||
|
libclc:
|
||||||
|
libclc: Homepage: http://libclc.llvm.org/
|
||||||
|
libclc:
|
||||||
|
libclc:
|
||||||
|
libclc:
|
||||||
|
libclc:
|
35
testing/source/rust-bindgen/fetch-sources.sh
Executable file
35
testing/source/rust-bindgen/fetch-sources.sh
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#VERSION=$1
|
||||||
|
VERSION=0.69.4
|
||||||
|
|
||||||
|
rm -rf rust-bindgen-*.tar.?z cargo-rust-bindgen*
|
||||||
|
|
||||||
|
echo "Downloading rust-bindgen-$VERSION..."
|
||||||
|
|
||||||
|
wget --content-disposition "https://github.com/rust-lang/rust-bindgen/archive/refs/tags/v$VERSION.tar.gz"
|
||||||
|
|
||||||
|
tar xf rust-bindgen-$VERSION.tar.gz
|
||||||
|
|
||||||
|
tar cf rust-bindgen-$VERSION.tar rust-bindgen-$VERSION
|
||||||
|
|
||||||
|
cd rust-bindgen-$VERSION
|
||||||
|
|
||||||
|
if ! [ -f /usr/bin/cargo-vendor-filterer ]; then
|
||||||
|
echo "WARNING: Creating unfiltered vendor libs tarball!"
|
||||||
|
cargo vendor
|
||||||
|
else
|
||||||
|
cargo vendor-filterer --platform="x86_64-unknown-linux-gnu" --platform="i686-unknown-linux-gnu"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv vendor ../cargo-rust-bindgen-$VERSION
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
tar cf cargo-rust-bindgen-$VERSION.tar cargo-rust-bindgen-$VERSION
|
||||||
|
|
||||||
|
plzip -9 cargo-rust-bindgen-$VERSION.tar
|
||||||
|
plzip -9 rust-bindgen-$VERSION.tar
|
||||||
|
|
||||||
|
rm -rf rust-bindgen-$VERSION
|
||||||
|
rm -rf cargo-rust-bindgen-$VERSION
|
||||||
|
rm -f rust-bindgen-$VERSION.tar.gz
|
123
testing/source/rust-bindgen/rust-bindgen.SlackBuild
Executable file
123
testing/source/rust-bindgen/rust-bindgen.SlackBuild
Executable file
|
@ -0,0 +1,123 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2022 Patrick J. Volkerding, Sebeka, MN, USA
|
||||||
|
# Copyright 2022 Heinz Wiesinger, Amsterdam, The Netherlands
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=rust-bindgen
|
||||||
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-1_slack15.0}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
i?86) ARCH=i686 ;;
|
||||||
|
arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
export ARCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
|
||||||
|
# the name of the created package would be, and then exit. This information
|
||||||
|
# could be useful to other scripts.
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "s390" ]; then
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PKGNAM-$VERSION
|
||||||
|
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
|
||||||
|
cd $PKGNAM-$VERSION || exit 1
|
||||||
|
tar xvf $CWD/cargo-$PKGNAM-$VERSION.tar.?z || exit 1
|
||||||
|
mv cargo-$PKGNAM-$VERSION vendor
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||||
|
-exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
||||||
|
-exec chmod 644 {} \+
|
||||||
|
|
||||||
|
# Configure cargo for offline builds
|
||||||
|
mkdir -p .cargo
|
||||||
|
cat << EOF >> .cargo/config.toml
|
||||||
|
[source.crates-io]
|
||||||
|
replace-with = "vendored-sources"
|
||||||
|
|
||||||
|
[source.vendored-sources]
|
||||||
|
directory = "vendor"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
CFLAGS="$SLKCFLAGS" \
|
||||||
|
CXXFLAGS="$SLKCFLAGS" \
|
||||||
|
RUSTONIG_DYNAMIC_LIBONIG=1 \
|
||||||
|
cargo build \
|
||||||
|
--offline \
|
||||||
|
--release \
|
||||||
|
--target $ARCH-unknown-linux-gnu \
|
||||||
|
--verbose \
|
||||||
|
$NUMJOBS || exit 1
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/bin
|
||||||
|
install -m 755 target/$ARCH-unknown-linux-gnu/release/bindgen \
|
||||||
|
$PKG/usr/bin/
|
||||||
|
|
||||||
|
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* \
|
||||||
|
$PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
19
testing/source/rust-bindgen/slack-desc
Normal file
19
testing/source/rust-bindgen/slack-desc
Normal file
|
@ -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------------------------------------------------------|
|
||||||
|
rust-bindgen: rust-bindgen (Generate Rust FFI bindings to C and C++ libraries)
|
||||||
|
rust-bindgen:
|
||||||
|
rust-bindgen: bindgen automatically generates Rust FFI bindings to C (and some C++)
|
||||||
|
rust-bindgen: libraries.
|
||||||
|
rust-bindgen:
|
||||||
|
rust-bindgen: Homepage: https://github.com/rust-lang/rust-bindgen
|
||||||
|
rust-bindgen:
|
||||||
|
rust-bindgen:
|
||||||
|
rust-bindgen:
|
||||||
|
rust-bindgen:
|
||||||
|
rust-bindgen:
|
|
@ -0,0 +1,24 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
|
||||||
|
Date: Sat, 6 Nov 2021 22:42:06 +0100
|
||||||
|
Subject: [PATCH] compiler: Use wasm-ld for wasm targets
|
||||||
|
|
||||||
|
We don't ship rust-lld.
|
||||||
|
---
|
||||||
|
compiler/rustc_target/src/spec/base/wasm.rs | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/compiler/rustc_target/src/spec/base/wasm.rs b/compiler/rustc_target/src/spec/base/wasm.rs
|
||||||
|
index 4b4d2aca26e4..b4918c8fdda2 100644
|
||||||
|
--- a/compiler/rustc_target/src/spec/base/wasm.rs
|
||||||
|
+++ b/compiler/rustc_target/src/spec/base/wasm.rs
|
||||||
|
@@ -88,8 +88,7 @@ macro_rules! args {
|
||||||
|
// arguments just yet
|
||||||
|
limit_rdylib_exports: false,
|
||||||
|
|
||||||
|
- // we use the LLD shipped with the Rust toolchain by default
|
||||||
|
- linker: Some("rust-lld".into()),
|
||||||
|
+ linker: Some("wasm-ld".into()),
|
||||||
|
linker_flavor: LinkerFlavor::WasmLld(Cc::No),
|
||||||
|
|
||||||
|
pre_link_args,
|
11
testing/source/rust/link_libffi.diff
Normal file
11
testing/source/rust/link_libffi.diff
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- ./compiler/rustc_llvm/build.rs.orig 2020-11-16 08:01:53.000000000 -0600
|
||||||
|
+++ ./compiler/rustc_llvm/build.rs 2020-11-19 13:46:21.222785372 -0600
|
||||||
|
@@ -234,6 +234,8 @@
|
||||||
|
println!("cargo:rustc-link-lib={}={}", kind, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ println!("cargo:rustc-link-lib=dylib=ffi");
|
||||||
|
+
|
||||||
|
// LLVM ldflags
|
||||||
|
//
|
||||||
|
// If we're a cross-compile of LLVM then unfortunately we can't trust these
|
319
testing/source/rust/rust.SlackBuild
Executable file
319
testing/source/rust/rust.SlackBuild
Executable file
|
@ -0,0 +1,319 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 Andrew Clemons, Wellington, New Zealand
|
||||||
|
# Copyright 2017, 2018, 2019, 2020, 2021, 2022, 2023 Patrick J. Volkerding, Sebeka, Minnesota, USA
|
||||||
|
# Copyright 2017 Stuart Winter
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use of this script, with or without modification, is
|
||||||
|
# permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of this script must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||||
|
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||||
|
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=rust
|
||||||
|
SRCNAM="${PKGNAM}c"
|
||||||
|
VERSION=${VERSION:-1.81.0}
|
||||||
|
BUILD=${BUILD:-1_slack15.0}
|
||||||
|
|
||||||
|
# Set this to YES to build with the system LLVM, or NO to use the bundled LLVM.
|
||||||
|
SYSTEM_LLVM=${SYSTEM_LLVM:-NO}
|
||||||
|
|
||||||
|
# Bootstrap variables (might not be kept updated for latest Rust):
|
||||||
|
RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.80.1}
|
||||||
|
RSTAGE0_DIR=${RSTAGE0_DIR:-2024-08-08}
|
||||||
|
CSTAGE0_VERSION=${CSTAGE0_VERSION:-1.80.1}
|
||||||
|
CSTAGE0_DIR=${CSTAGE0_DIR:-$RSTAGE0_DIR}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
MARCH=$( uname -m )
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$MARCH" in
|
||||||
|
i?86) export ARCH=i686 ;;
|
||||||
|
armv7hl) export ARCH=$MARCH ;;
|
||||||
|
arm*) export ARCH=arm ;;
|
||||||
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
||||||
|
*) export ARCH=$MARCH ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
unset MARCH
|
||||||
|
|
||||||
|
# For compiling i686 under an x86_64 kernel:
|
||||||
|
if [ "$(uname -m)" = "x86_64" -a "$(file -L /usr/bin/gcc | grep 80386 | grep 32-bit)" != "" ]; then
|
||||||
|
ARCH=i686
|
||||||
|
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 the bootstrap binaries are present, use those. Otherwise bootstrap from
|
||||||
|
# installed compiler.
|
||||||
|
if /bin/ls *-unknown-linux-gnu.tar.?z 1> /dev/null 2> /dev/null ; then
|
||||||
|
LOCAL_BOOTSTRAP=no
|
||||||
|
else
|
||||||
|
LOCAL_BOOTSTRAP=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
# https://forge.rust-lang.org/platform-support.html
|
||||||
|
# Bootstrapping ARCH:
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
if [ "$LOCAL_BOOTSTRAP" = "yes" ] ; then
|
||||||
|
if rustc -Vv | grep host | grep i586 > /dev/null ; then
|
||||||
|
BARCH="$ARCH"
|
||||||
|
else
|
||||||
|
BARCH="i686"
|
||||||
|
if case "$( uname -m )" in i586) true ;; *) false ;; esac ; then
|
||||||
|
echo "rust must be bootstrapped from an i686 machine"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# i586 must be built on a i686 machine, since the bootstrap compiler is i686
|
||||||
|
BARCH="i686"
|
||||||
|
if case "$( uname -m )" in i586) true ;; *) false ;; esac ; then
|
||||||
|
echo "rust must be bootstrapped from an i686 machine"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
TARCH="$ARCH"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
BARCH="armv7"
|
||||||
|
TARCH="$BARCH"
|
||||||
|
else
|
||||||
|
BARCH="$ARCH"
|
||||||
|
TARCH="$ARCH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Bootstrapping ABI:
|
||||||
|
if [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
BABI="gnueabihf"
|
||||||
|
else
|
||||||
|
BABI="gnu"
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
OUTPUT=${OUTPUT:-$TMP}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
# Not needed, as the build will automatically use as many jobs as there are
|
||||||
|
# threads.
|
||||||
|
#NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "armv7hl" ]; then
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
else
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $SRCNAM-$VERSION-src
|
||||||
|
echo "Extracting $CWD/$SRCNAM-$VERSION-src.tar.?z..."
|
||||||
|
tar xf $CWD/$SRCNAM-$VERSION-src.tar.?z || exit 1
|
||||||
|
cd $SRCNAM-$VERSION-src || exit 1
|
||||||
|
|
||||||
|
# Link with -lffi in case of using system LLVM:
|
||||||
|
if [ "${SYSTEM_LLVM}" = "YES" ]; then
|
||||||
|
zcat $CWD/link_libffi.diff.gz | patch -p1 --verbose || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat $CWD/0004-compiler-Use-wasm-ld-for-wasm-targets.patch | patch -p1 --verbose || exit 1
|
||||||
|
|
||||||
|
if [ "$LOCAL_BOOTSTRAP" != "yes" ] ; then
|
||||||
|
# rust requires bootstrapping with the previous rust version.
|
||||||
|
# versions are defined in src/stage0.txt.
|
||||||
|
mkdir -p build/cache/$RSTAGE0_DIR
|
||||||
|
cp $CWD/$PKGNAM-std-$RSTAGE0_VERSION-$BARCH-unknown-linux-gnu.tar.?z \
|
||||||
|
$CWD/$SRCNAM-$RSTAGE0_VERSION-$BARCH-unknown-linux-gnu.tar.?z \
|
||||||
|
build/cache/$RSTAGE0_DIR
|
||||||
|
mkdir -p build/cache/$CSTAGE0_DIR
|
||||||
|
cp $CWD/cargo-$CSTAGE0_VERSION-$BARCH-unknown-linux-gnu.tar.?z build/cache/$CSTAGE0_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build configuration:
|
||||||
|
cat << EOF > config.toml
|
||||||
|
[llvm]
|
||||||
|
ccache = "/usr/bin/ccache"
|
||||||
|
link-shared = true
|
||||||
|
|
||||||
|
[build]
|
||||||
|
build = "$BARCH-unknown-linux-$BABI"
|
||||||
|
host = ["$TARCH-unknown-linux-$BABI"]
|
||||||
|
target = ["$TARCH-unknown-linux-$BABI"]
|
||||||
|
tools = ["analysis", "cargo", "clippy", "rls", "rustfmt", "src", "rust-analyzer", "rust-demangler"]
|
||||||
|
submodules = false
|
||||||
|
vendor = true
|
||||||
|
extended = true
|
||||||
|
profiler = true
|
||||||
|
sanitizers = true
|
||||||
|
# Do not query new versions of dependencies online.
|
||||||
|
locked-deps = true
|
||||||
|
|
||||||
|
[install]
|
||||||
|
prefix = "/usr"
|
||||||
|
docdir = "doc/rust-$VERSION"
|
||||||
|
libdir = "lib$LIBDIRSUFFIX"
|
||||||
|
mandir = "man"
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
codegen-units = 0
|
||||||
|
channel = "stable"
|
||||||
|
rpath = false
|
||||||
|
codegen-tests = false
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [ "${SYSTEM_LLVM}" = "YES" ]; then
|
||||||
|
cat << EOF >> config.toml
|
||||||
|
# Add this stuff to build with the system LLVM:
|
||||||
|
[target.i586-unknown-linux-gnu]
|
||||||
|
llvm-config = "/usr/bin/llvm-config"
|
||||||
|
|
||||||
|
[target.i686-unknown-linux-gnu]
|
||||||
|
llvm-config = "/usr/bin/llvm-config"
|
||||||
|
|
||||||
|
[target.x86_64-unknown-linux-gnu]
|
||||||
|
llvm-config = "/usr/bin/llvm-config"
|
||||||
|
|
||||||
|
[target.armv7-unknown-linux-gnueabihf]
|
||||||
|
llvm-config = "/usr/bin/llvm-config"
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$LOCAL_BOOTSTRAP" = "yes" ] ; then
|
||||||
|
sed -i "s|^\(extended = true\)$|\1\nrustc = \"/usr/bin/rustc\"\ncargo = \"/usr/bin/cargo\"|" config.toml
|
||||||
|
fi
|
||||||
|
|
||||||
|
chown -R root:root .
|
||||||
|
find -L . \
|
||||||
|
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||||
|
-o -perm 511 \) -exec chmod 755 {} \+ -o \
|
||||||
|
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||||
|
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
|
||||||
|
|
||||||
|
export PKG_CONFIG_ALLOW_CROSS=1
|
||||||
|
|
||||||
|
if [ "$BARCH" = "i586" ] ; then
|
||||||
|
# when bootstrapping from i586 (rust already installed), also build a i686
|
||||||
|
# rustlib:
|
||||||
|
sed -i 's/^target =.*$/target = ["i686-unknown-linux-gnu"]/' config.toml
|
||||||
|
elif [ "$BARCH" = "i686" ] ; then
|
||||||
|
if [ "$TARCH" = "i586" ] ; then
|
||||||
|
# this will cause some messages like:
|
||||||
|
# warning: redundant linker flag specified for library `m`
|
||||||
|
# but will keep the build from falling over when doing the stage1 compiler
|
||||||
|
# linking for the i586 compiler. seems the correct flags don't get passed
|
||||||
|
# through and we end up failures like:
|
||||||
|
# error: linking with `clang` failed: exit code: 1
|
||||||
|
# /tmp/SBo/rustc-1.20.0-src/build/i686-unknown-linux-gnu/stage1-rustc/i586-unknown-linux-gnu/release/deps/librustc_llvm-4ab259c9aed547db.so: undefined reference to `xxx`
|
||||||
|
export RUSTFLAGS="$RUSTFLAGS -C link-args=-lrt -ldl -lcurses -lpthread -lz -lm"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix path to the rust libraries in rust-analyzer:
|
||||||
|
if [ -r src/tools/rust-analyzer/crates/rust-analyzer/src/config.rs ]; then
|
||||||
|
if [ ! "$LIBDIRSUFFIX" = "" ]; then
|
||||||
|
sed -i "s,\"lib/rustlib,\"lib${LIBDIRSUFFIX}/rustlib,g" src/tools/rust-analyzer/crates/project-model/src/sysroot.rs
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build and install:
|
||||||
|
python3 ./x.py build || exit 1
|
||||||
|
DESTDIR=$PKG python3 x.py install || exit 1
|
||||||
|
|
||||||
|
# In case the rls stub doesn't get installed by the 'install' target:
|
||||||
|
if [ ! -x $PKG/usr/bin/rls ]; then
|
||||||
|
install -m755 build/*-linux-gnu/stage1-tools-bin/rls $PKG/usr/bin/rls
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fix path to lldb_commands:
|
||||||
|
if [ -x $PKG/usr/bin/rust-lldb ]; then
|
||||||
|
if [ ! "$LIBDIRSUFFIX" = "" ]; then
|
||||||
|
sed -i "s,/lib/rustlib/,/lib$LIBDIRSUFFIX/rustlib/,g" $PKG/usr/bin/rust-lldb
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Eh, none of this is all that big. Might as well leave it around as a
|
||||||
|
# reference.
|
||||||
|
#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/components
|
||||||
|
#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/install.log
|
||||||
|
#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/manifest-*
|
||||||
|
#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/rust-installer-version
|
||||||
|
#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/uninstall.sh
|
||||||
|
# Make sure the paths are correct, though:
|
||||||
|
sed -i "s,/tmp/package-rust/,/,g" $PKG/usr/lib$LIBDIRSUFFIX/rustlib/install.log $PKG/usr/lib$LIBDIRSUFFIX/rustlib/manifest-*
|
||||||
|
# And a little compression doesn't hurt either:
|
||||||
|
gzip -9 $PKG/usr/lib$LIBDIRSUFFIX/rustlib/manifest-*
|
||||||
|
|
||||||
|
# Move bash completions to the system location:
|
||||||
|
if [ -d $PKG/etc/bash_completion.d ]; then
|
||||||
|
mkdir -p $PKG/usr/share/bash-completion
|
||||||
|
mv $PKG/etc/bash_completion.d $PKG/usr/share/bash-completion/completions
|
||||||
|
rmdir $PKG/etc 2> /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Correct permissions on shared libraries:
|
||||||
|
find $PKG/usr/lib$LIBDIRSUFFIX -name "*.so" -exec chmod 755 "{}" \+
|
||||||
|
|
||||||
|
# Evidently there are a lot of duplicated libraries in this tree, so let's
|
||||||
|
# try to save some space:
|
||||||
|
( cd $PKG/usr/lib${LIBDIRSUFFIX}/rustlib/*-linux-gnu/lib && for file in *.so ; do if cmp -s $file ../../../$file ; then ln -sf ../../../$file .; fi; done )
|
||||||
|
|
||||||
|
# Strip ELF objects:
|
||||||
|
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
|
||||||
|
|
||||||
|
# Get rid of possible .old files in these locations:
|
||||||
|
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.old
|
||||||
|
rm -f $PKG/usr/bin/*.old
|
||||||
|
|
||||||
|
# Commented out (for now) since we disable rpaths in config.toml:
|
||||||
|
## Remove any compiled-in RPATHs:
|
||||||
|
#find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||||
|
# | cut -f 1 -d : | while read elfobject ; do
|
||||||
|
# patchelf --remove-rpath $elfobject || exit 1
|
||||||
|
#done
|
||||||
|
|
||||||
|
# Compress man pages:
|
||||||
|
find $PKG/usr/man -type f -exec gzip -9 {} \+
|
||||||
|
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||||
|
|
||||||
|
# Add some documentation:
|
||||||
|
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
cp -a *.md COPYRIGHT* COPYING* LICENSE* $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
# Include licenses from third party vendors:
|
||||||
|
mkdir $PKG/usr/doc/$PKGNAM-$VERSION/vendor
|
||||||
|
( cd vendor
|
||||||
|
tar cf - $(find . -maxdepth 2 | grep -e README -e LICENSE -e COPYING -e CHANGELOG -e PERFORMANCE -e UPGRADE ) | ( cd $PKG/usr/doc/$PKGNAM-$VERSION/vendor ; tar xf - )
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
35
testing/source/rust/rust.url
Normal file
35
testing/source/rust/rust.url
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# Source code (repacked to .tar.lz):
|
||||||
|
VERSION=1.81.0
|
||||||
|
rm -f rustc-${VERSION}-src.tar.*
|
||||||
|
lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz
|
||||||
|
lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz.asc
|
||||||
|
if gpg --verify rustc-${VERSION}-src.tar.gz.asc ; then
|
||||||
|
rm -f rustc-${VERSION}-src.tar.gz.asc
|
||||||
|
gzip -d rustc-*tar.gz
|
||||||
|
plzip -9 -v rustc-*tar
|
||||||
|
else
|
||||||
|
echo "FATAL ERROR: Not recompressing since GPG signature failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Please note that the bootstrap binary packages listed below might not be kept
|
||||||
|
# updated for later versions. The Rust compiler as shipped with Slackware
|
||||||
|
# should be able to compile the next released version of Rust.
|
||||||
|
#
|
||||||
|
# To find the expected date/versions for bootstrap binaries to be able to
|
||||||
|
# update the settings below, look at src/stage0 in the Rust sources.
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
BOOTSTRAP_DATE=2024-08-08
|
||||||
|
BOOTSTRAP_VERSION=1.80.1
|
||||||
|
BOOTSTRAP_CARGO=$BOOTSTRAP_VERSION
|
||||||
|
|
||||||
|
# i686 bootstrap:
|
||||||
|
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/cargo-${BOOTSTRAP_CARGO}-i686-unknown-linux-gnu.tar.xz
|
||||||
|
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rust-std-${BOOTSTRAP_VERSION}-i686-unknown-linux-gnu.tar.xz
|
||||||
|
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rustc-${BOOTSTRAP_VERSION}-i686-unknown-linux-gnu.tar.xz
|
||||||
|
|
||||||
|
# x86_64 bootstrap:
|
||||||
|
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/cargo-${BOOTSTRAP_CARGO}-x86_64-unknown-linux-gnu.tar.xz
|
||||||
|
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rust-std-${BOOTSTRAP_VERSION}-x86_64-unknown-linux-gnu.tar.xz
|
||||||
|
lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rustc-${BOOTSTRAP_VERSION}-x86_64-unknown-linux-gnu.tar.xz
|
19
testing/source/rust/slack-desc
Normal file
19
testing/source/rust/slack-desc
Normal file
|
@ -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------------------------------------------------------|
|
||||||
|
rust: rust (a safe, concurrent, practical language)
|
||||||
|
rust:
|
||||||
|
rust: Rust is a curly-brace, block-structured expression language.
|
||||||
|
rust: Its design is oriented toward concerns of "programming in the large",
|
||||||
|
rust: that is, of creating and maintaining boundaries - both abstract and
|
||||||
|
rust: operational - that preserve large-system integrity, availability,
|
||||||
|
rust: and concurrency.
|
||||||
|
rust:
|
||||||
|
rust: Homepage: https://rust-lang.org
|
||||||
|
rust:
|
||||||
|
rust:
|
Loading…
Reference in a new issue