Compare commits
23 Commits
8a76b8766e
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7edbacb772 | ||
|
|
26722242dc | ||
|
|
210dcebc45 | ||
|
|
1b56f4ab44 | ||
|
|
e8b0196b15 | ||
|
|
824969261a | ||
|
|
e952c09449 | ||
|
|
9e57bffe86 | ||
|
|
3ca0a7444c | ||
|
|
928bdbfe77 | ||
|
|
5421db052e | ||
|
|
fd04e2bd69 | ||
|
|
c047d512c6 | ||
|
|
892e0d1c81 | ||
|
|
8840bab14b | ||
|
|
dc4e15353f | ||
|
|
cec480a492 | ||
|
|
ba7d7037ac | ||
|
|
1c4f3585af | ||
|
|
b9b11a2f2e | ||
|
|
5b12aa880f | ||
|
|
108eeaf36d | ||
|
|
8185851a04 |
@@ -1,31 +0,0 @@
|
|||||||
From 8a370430c7d855a63d15337e9781933f6e55707f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrey Semenov <semenov.ao@greendatasoft.ru>
|
|
||||||
Date: Thu, 19 Sep 2024 17:32:37 +0500
|
|
||||||
Subject: [PATCH] fix: write to lConn even if any error met and some bytes was
|
|
||||||
read
|
|
||||||
|
|
||||||
---
|
|
||||||
proxy/handler/https.go | 3 +--
|
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/proxy/handler/https.go b/proxy/handler/https.go
|
|
||||||
index f709925..bc320fd 100644
|
|
||||||
--- a/proxy/handler/https.go
|
|
||||||
+++ b/proxy/handler/https.go
|
|
||||||
@@ -2,7 +2,6 @@ package handler
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
- "errors"
|
|
||||||
"io"
|
|
||||||
"net"
|
|
||||||
"regexp"
|
|
||||||
@@ -134,7 +133,7 @@ func (h *HttpsHandler) communicate(ctx context.Context, from *net.TCPConn, to *n
|
|
||||||
|
|
||||||
bytesRead, err := ReadBytes(ctx, from, buf)
|
|
||||||
if err != nil {
|
|
||||||
- if errors.Is(err, io.EOF) && len(bytesRead) > 0 {
|
|
||||||
+ if len(bytesRead) > 0 {
|
|
||||||
h.write(logger, td, to, bytesRead)
|
|
||||||
}
|
|
||||||
logger.Debug().Msgf("error reading from %s: %s", fd, err)
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
Axel accelerates the HTTP/FTP downloading process by using multiple
|
|
||||||
connections for one file. It can use multiple mirrors for a download.
|
|
||||||
Axel has no dependencies and is lightweight, so it might be useful as a
|
|
||||||
wget clone on byte-critical systems. Axel is the perfect utility for
|
|
||||||
those connections to wherever you are downloading from that may have a
|
|
||||||
limit on ftp stream speeds, http sessions that burst and slow down, or
|
|
||||||
servers with a slow connection.
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
PRGNAM="SpoofDPI"
|
|
||||||
VERSION="0.12.0"
|
|
||||||
HOMEPAGE="https://github.com/xvzc/SpoofDPI"
|
|
||||||
DOWNLOAD="https://github.com/xvzc/SpoofDPI/archive/refs/tags/v0.12.0/SpoofDPI-0.12.0.tar.gz"
|
|
||||||
MD5SUM="d43ae5a52c3adf6825bc94775ee88f7f"
|
|
||||||
DOWNLOAD_x86_64=""
|
|
||||||
MD5SUM_x86_64=""
|
|
||||||
REQUIRES=""
|
|
||||||
BUILDREQUIRES="google-go-lang"
|
|
||||||
MAINTAINER="Sergei Fedosoff"
|
|
||||||
EMAIL="eleksir@gmail.com"
|
|
||||||
@@ -1,125 +0,0 @@
|
|||||||
From a12a13eb4b347899b18cf8df57cc423e55313e2a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrey Semenov <semenov.ao@greendatasoft.ru>
|
|
||||||
Date: Thu, 19 Sep 2024 17:21:03 +0500
|
|
||||||
Subject: [PATCH] fix: write to lConn even if io.EOF met and some bytes was
|
|
||||||
read
|
|
||||||
|
|
||||||
---
|
|
||||||
proxy/handler/https.go | 58 ++++++++++++++++++++++++++++++++----------
|
|
||||||
1 file changed, 45 insertions(+), 13 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/proxy/handler/https.go b/proxy/handler/https.go
|
|
||||||
index 857fead..f709925 100644
|
|
||||||
--- a/proxy/handler/https.go
|
|
||||||
+++ b/proxy/handler/https.go
|
|
||||||
@@ -2,10 +2,14 @@ package handler
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
+ "errors"
|
|
||||||
+ "io"
|
|
||||||
"net"
|
|
||||||
"regexp"
|
|
||||||
"strconv"
|
|
||||||
+ "sync"
|
|
||||||
|
|
||||||
+ "github.com/rs/zerolog"
|
|
||||||
"github.com/xvzc/SpoofDPI/packet"
|
|
||||||
"github.com/xvzc/SpoofDPI/util"
|
|
||||||
"github.com/xvzc/SpoofDPI/util/log"
|
|
||||||
@@ -74,36 +78,53 @@ func (h *HttpsHandler) Serve(ctx context.Context, lConn *net.TCPConn, initPkt *p
|
|
||||||
logger.Debug().Msgf("client sent hello %d bytes", len(clientHello))
|
|
||||||
|
|
||||||
// Generate a go routine that reads from the server
|
|
||||||
- go h.communicate(ctx, rConn, lConn, initPkt.Domain(), lConn.RemoteAddr().String())
|
|
||||||
- go h.communicate(ctx, lConn, rConn, lConn.RemoteAddr().String(), initPkt.Domain())
|
|
||||||
+ closeWg := sync.WaitGroup{}
|
|
||||||
+ closeWg.Add(2)
|
|
||||||
+ done := make(chan struct{})
|
|
||||||
+ doneOnce := sync.Once{}
|
|
||||||
+ closeDoneFunc := func() {
|
|
||||||
+ close(done)
|
|
||||||
+ }
|
|
||||||
+ go func() {
|
|
||||||
+ defer closeWg.Done()
|
|
||||||
+ h.communicate(ctx, rConn, lConn, initPkt.Domain(), lConn.RemoteAddr().String())
|
|
||||||
+ }()
|
|
||||||
+ go func() {
|
|
||||||
+ defer closeWg.Done()
|
|
||||||
+ h.communicate(ctx, lConn, rConn, lConn.RemoteAddr().String(), initPkt.Domain())
|
|
||||||
+ }()
|
|
||||||
+ go func(wg *sync.WaitGroup) {
|
|
||||||
+ wg.Wait()
|
|
||||||
+ doneOnce.Do(closeDoneFunc)
|
|
||||||
+ }(&closeWg)
|
|
||||||
|
|
||||||
if h.exploit {
|
|
||||||
logger.Debug().Msgf("writing chunked client hello to %s", initPkt.Domain())
|
|
||||||
chunks := splitInChunks(ctx, clientHello, h.windowsize)
|
|
||||||
if _, err := writeChunks(rConn, chunks); err != nil {
|
|
||||||
logger.Debug().Msgf("error writing chunked client hello to %s: %s", initPkt.Domain(), err)
|
|
||||||
- return
|
|
||||||
+ doneOnce.Do(closeDoneFunc)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
logger.Debug().Msgf("writing plain client hello to %s", initPkt.Domain())
|
|
||||||
if _, err := rConn.Write(clientHello); err != nil {
|
|
||||||
logger.Debug().Msgf("error writing plain client hello to %s: %s", initPkt.Domain(), err)
|
|
||||||
- return
|
|
||||||
+ doneOnce.Do(closeDoneFunc)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ // wait while conn handling routines stop, then close both connections
|
|
||||||
+ // current routine will sleep until conn handling routines works
|
|
||||||
+ <-done
|
|
||||||
+ _ = lConn.Close()
|
|
||||||
+ _ = rConn.Close()
|
|
||||||
+
|
|
||||||
+ logger.Debug().Msgf("closing proxy connection: %s -> %s", lConn.RemoteAddr(), initPkt.Domain())
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *HttpsHandler) communicate(ctx context.Context, from *net.TCPConn, to *net.TCPConn, fd string, td string) {
|
|
||||||
ctx = util.GetCtxWithScope(ctx, h.protocol)
|
|
||||||
logger := log.GetCtxLogger(ctx)
|
|
||||||
|
|
||||||
- defer func() {
|
|
||||||
- from.Close()
|
|
||||||
- to.Close()
|
|
||||||
-
|
|
||||||
- logger.Debug().Msgf("closing proxy connection: %s -> %s", fd, td)
|
|
||||||
- }()
|
|
||||||
-
|
|
||||||
buf := make([]byte, h.bufferSize)
|
|
||||||
for {
|
|
||||||
err := setConnectionTimeout(from, h.timeout)
|
|
||||||
@@ -113,17 +134,28 @@ func (h *HttpsHandler) communicate(ctx context.Context, from *net.TCPConn, to *n
|
|
||||||
|
|
||||||
bytesRead, err := ReadBytes(ctx, from, buf)
|
|
||||||
if err != nil {
|
|
||||||
+ if errors.Is(err, io.EOF) && len(bytesRead) > 0 {
|
|
||||||
+ h.write(logger, td, to, bytesRead)
|
|
||||||
+ }
|
|
||||||
logger.Debug().Msgf("error reading from %s: %s", fd, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
- if _, err := to.Write(bytesRead); err != nil {
|
|
||||||
- logger.Debug().Msgf("error writing to %s", td)
|
|
||||||
+ if !h.write(logger, td, to, bytesRead) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+func (h *HttpsHandler) write(logger zerolog.Logger, connName string, to io.Writer, bytes []byte) (ok bool) {
|
|
||||||
+ ok = true
|
|
||||||
+ if _, err := to.Write(bytes); err != nil {
|
|
||||||
+ logger.Debug().Msgf("error writing to %s", connName)
|
|
||||||
+ ok = false
|
|
||||||
+ }
|
|
||||||
+ return
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
func splitInChunks(ctx context.Context, bytes []byte, size int) [][]byte {
|
|
||||||
logger := log.GetCtxLogger(ctx)
|
|
||||||
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright 2024 Sergei Fedosoff <eleksir@gmail.com>
|
|
||||||
#
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are
|
|
||||||
# met:
|
|
||||||
#
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "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 COPYRIGHT
|
|
||||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
|
|
||||||
source /etc/defaults/spoofdpi
|
|
||||||
PIDFILE="/run/spoofdpi.pid"
|
|
||||||
|
|
||||||
_start() {
|
|
||||||
# make sure bitlbee isn't running yet
|
|
||||||
if [ ! -f $PIDFILE ]; then
|
|
||||||
/usr/sbin/daemonize -p $PIDFILE -- /usr/sbin/spoofdpi $OPTIONS
|
|
||||||
else
|
|
||||||
echo "spoofdpi is already active and running under PID: $(cat $PIDFILE)"
|
|
||||||
echo "if you think this is wrong, remove the offending PID file"
|
|
||||||
echo "and restart spoof"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_stop() {
|
|
||||||
echo -n "Stopping spoofdpi..."
|
|
||||||
|
|
||||||
if [ -r $PIDFILE ]; then
|
|
||||||
kill $(cat $PIDFILE)
|
|
||||||
|
|
||||||
for i in 1 2 3; do
|
|
||||||
if [ -f $PIDFILE ]; then
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -r $PIDFILE ]; then
|
|
||||||
kill -9 $(cat $PIDFILE) 2>/dev/null
|
|
||||||
rm $PIDFILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "done"
|
|
||||||
else
|
|
||||||
echo "Unable to find $PIDFILE and stop spoofdpi"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Let's see how we are being called.
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
_start
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
_stop
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
_stop
|
|
||||||
sleep 3
|
|
||||||
_start
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $(basename $0) {start|stop|restart}"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# Options for running SpoofDPI daemon
|
|
||||||
OPTIONS="-addr 127.0.0.1 -port 8080 -no-banner -system-proxy false"
|
|
||||||
11
ccid/README
Normal file
11
ccid/README
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
libccid provides a PC/SC IFD handler implementation for the USB
|
||||||
|
smart card drivers compliant to the Chip Card Interface Device (CCID)
|
||||||
|
protocol.
|
||||||
|
|
||||||
|
This package is needed to communicate with the CCID smartcard readers
|
||||||
|
through the PC/SC Lite resource manager (pcscd). It also supports
|
||||||
|
various Gemplus serial smart card readers.
|
||||||
|
|
||||||
|
You will need to edit the pcsc-lite config files to be able to use
|
||||||
|
serial smart card readers. The INSTALL file in the documentation
|
||||||
|
directory has all the details.
|
||||||
123
ccid/ccid.SlackBuild
Normal file
123
ccid/ccid.SlackBuild
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for ccid
|
||||||
|
|
||||||
|
# Copyright 2008 Andrew Psaltis <ampsaltis@gmail.com>
|
||||||
|
# Copyright 2014-2015 LukenShiro, Italy
|
||||||
|
# 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@slackbuilds.org>
|
||||||
|
# 11 August 2008 -- Updated to version 1.3.8 (by Andrew Psaltis)
|
||||||
|
|
||||||
|
# Modified by Daniel R. <danielrodriguez.es@gmail.com>
|
||||||
|
# 05 October 2009 -- Updated to version 1.3.11
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PRGNAM=ccid
|
||||||
|
VERSION=${VERSION:-1.4.36}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
TAG=${TAG:-_EXs}
|
||||||
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) 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 "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
|
PKG=$TMP/package-$PRGNAM
|
||||||
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
DOCFILES="AUTHORS COPYING INSTALL README.md"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $PKG $TMP/$PRGNAM-$VERSION
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
tar xf $CWD/$PRGNAM-$VERSION.tar.bz2
|
||||||
|
cd $PRGNAM-$VERSION
|
||||||
|
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 {} \;
|
||||||
|
|
||||||
|
# --enable-udev flag is no longer supported
|
||||||
|
CFLAGS="$SLKCFLAGS -rdynamic" \
|
||||||
|
CXXFLAGS="$SLKCFLAGS -rdynamic" \
|
||||||
|
LDFLAGS="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-O2 -Wl,-s" \
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--docdir=/usr/doc/$PRGNAM-$VERSION \
|
||||||
|
--enable-twinserial \
|
||||||
|
--enable-static=no \
|
||||||
|
--enable-composite-as-multislot \
|
||||||
|
--build=$ARCH-slackware-linux
|
||||||
|
|
||||||
|
make -j$(nproc)
|
||||||
|
make install DESTDIR=$PKG
|
||||||
|
|
||||||
|
# Install the udev rules since this is not done automatically.
|
||||||
|
install -Dpm 0644 src/92_pcscd_ccid.rules $PKG/lib/udev/rules.d/92_pcscd_ccid.rules
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cp -a $DOCFILES $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
install -Dpm 0644 $CWD/$PRGNAM.SlackBuild $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
|
||||||
|
|
||||||
|
install -Dpm 0644 $CWD/slack-desc $PKG/install/slack-desc
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
ccid/ccid.info
Normal file
10
ccid/ccid.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="ccid"
|
||||||
|
VERSION="1.4.36"
|
||||||
|
HOMEPAGE="https://ccid.apdu.fr/"
|
||||||
|
DOWNLOAD="https://ccid.apdu.fr/files/ccid-1.4.36.tar.bz2"
|
||||||
|
MD5SUM="3108dad76c08648bc253d9286630b0d1"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES="pcsc-lite"
|
||||||
|
MAINTAINER="LukenShiro"
|
||||||
|
EMAIL="lukenshiro@ngi.it"
|
||||||
19
ccid/slack-desc
Normal file
19
ccid/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------------------------------------------------------|
|
||||||
|
ccid: ccid (PC/SC driver for USB CCID smart card readers)
|
||||||
|
ccid:
|
||||||
|
ccid: libccid provides a PC/SC IFD handler implementation for the USB smart
|
||||||
|
ccid: card drivers compliant to the Card Chip Interface Device (CCID)
|
||||||
|
ccid: protocol.
|
||||||
|
ccid: This package is needed to communicate with the CCID smartcard readers
|
||||||
|
ccid: through the PC/SC Lite resource manager (pcscd). It also supports
|
||||||
|
ccid: the GemPC Twin via serial port, and the GemPC PCMCIA and PCI-Express
|
||||||
|
ccid: cards.
|
||||||
|
ccid:
|
||||||
|
ccid: More info at: https://github.com/LudovicRousseau/CCID
|
||||||
2
gengetopt/README
Normal file
2
gengetopt/README
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Gengetopt is a tool to write command line option parsing code for C
|
||||||
|
programs.
|
||||||
114
gengetopt/gengetopt.SlackBuild
Normal file
114
gengetopt/gengetopt.SlackBuild
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for gengetopt
|
||||||
|
|
||||||
|
# Copyright 2015-2016 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
|
||||||
|
# Copyright 2025 Sergei Fedosoff <eleksir@gmail.com>
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
PRGNAM=gengetopt
|
||||||
|
VERSION=${VERSION:-2.23}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
TAG=${TAG:-_EXs}
|
||||||
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) 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 "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
|
PKG=$TMP/package-$PRGNAM
|
||||||
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PRGNAM-$VERSION
|
||||||
|
tar xf $CWD/$PRGNAM-$VERSION.tar.xz
|
||||||
|
cd $PRGNAM-$VERSION
|
||||||
|
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 CFLAGS="$SLKCFLAGS -rdynamic"
|
||||||
|
export CXXFLAGS="$CFLAGS"
|
||||||
|
export LDFLAGS="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-s "
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--build=$ARCH-slackware-linux
|
||||||
|
|
||||||
|
make -j$(nproc)
|
||||||
|
make install DESTDIR=$PKG
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
mv $PKG/usr/share/info $PKG/usr
|
||||||
|
rm -f $PKG/usr/info/dir
|
||||||
|
gzip -9 $PKG/usr/info/*.info*
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cp -a AUTHORS COPYING INSTALL LICENSE NEWS README THANKS $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
install -Dpm 0644 $CWD/$PRGNAM.SlackBuild $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
|
install -Dpm 0644 $CWD/slack-desc $PKG/install/slack-desc
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
gengetopt/gengetopt.info
Normal file
10
gengetopt/gengetopt.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="gengetopt"
|
||||||
|
VERSION="2.23"
|
||||||
|
HOMEPAGE="https://www.gnu.org/software/gengetopt"
|
||||||
|
DOWNLOAD="ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-2.23.tar.xz"
|
||||||
|
MD5SUM="ea165d618640dbdecb42ae4491337965"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES=""
|
||||||
|
MAINTAINER="Willy Sudiarto Raharjo"
|
||||||
|
EMAIL="willysr@slackbuilds.org"
|
||||||
@@ -6,14 +6,14 @@
|
|||||||
# customary to leave one space after the ':' except on otherwise blank lines.
|
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||||
|
|
||||||
|-----handy-ruler------------------------------------------------------|
|
|-----handy-ruler------------------------------------------------------|
|
||||||
SpoofDPI: SpoofDPI
|
gengetopt: gengetopt (Command Line Parser)
|
||||||
SpoofDPI:
|
gengetopt:
|
||||||
SpoofDPI: A simple and fast software designed to bypass Deep Packet Inspection.
|
gengetopt: Gengetopt is a tool to write command line option parsing code for
|
||||||
SpoofDPI:
|
gengetopt: C programs.
|
||||||
SpoofDPI:
|
gengetopt:
|
||||||
SpoofDPI:
|
gengetopt:
|
||||||
SpoofDPI:
|
gengetopt:
|
||||||
SpoofDPI: Homepage: https://github.com/xvzc/SpoofDPI
|
gengetopt:
|
||||||
SpoofDPI:
|
gengetopt: Project URL: https://www.gnu.org/software/gengetopt
|
||||||
SpoofDPI:
|
gengetopt:
|
||||||
SpoofDPI:
|
gengetopt:
|
||||||
99
google-go-lang/google-go-lang.SlackBuild
Normal file → Executable file
99
google-go-lang/google-go-lang.SlackBuild
Normal file → Executable file
@@ -29,11 +29,14 @@
|
|||||||
# SOFTWARE.
|
# SOFTWARE.
|
||||||
|
|
||||||
PRGNAM=google-go-lang
|
PRGNAM=google-go-lang
|
||||||
VERSION=${VERSION:-1.23.4}
|
VERSION=${VERSION:-1.25.1}
|
||||||
|
BOOTSTRAP0_VERSION=1.4-bootstrap-20171003
|
||||||
BOOTSTRAP1_VERSION=1.18.10
|
BOOTSTRAP1_VERSION=1.18.10
|
||||||
BOOTSTRAP2_VERSION=1.21.13
|
BOOTSTRAP2_VERSION=1.21.13
|
||||||
BOOTSTRAP3_VERSION=1.22.10
|
BOOTSTRAP3_VERSION=1.22.10
|
||||||
BOOTSTRAP4_VERSION=$VERSION
|
BOOTSTRAP4_VERSION=1.23.8
|
||||||
|
BOOTSTRAP5_VERSION=1.24.7
|
||||||
|
BOOTSTRAP6_VERSION=$VERSION
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_EXs}
|
TAG=${TAG:-_EXs}
|
||||||
|
|
||||||
@@ -65,13 +68,16 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
CWD=$(pwd)
|
CWD=$(pwd)
|
||||||
TMP=${TMP:-/tmp/SBo}
|
TMP=${TMP:-/tmp/EXs}
|
||||||
PKG=$TMP/package-$PRGNAM
|
PKG=$TMP/package-$PRGNAM
|
||||||
OUTPUT=${OUTPUT:-/tmp}
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
BOOTSTRAP0_DIR="${TMP}/bootstrap-go${BOOTSTRAP0_VERSION}"
|
||||||
BOOTSTRAP1_DIR="${TMP}/bootstrap-go${BOOTSTRAP1_VERSION}"
|
BOOTSTRAP1_DIR="${TMP}/bootstrap-go${BOOTSTRAP1_VERSION}"
|
||||||
BOOTSTRAP2_DIR="${TMP}/bootstrap-go${BOOTSTRAP2_VERSION}"
|
BOOTSTRAP2_DIR="${TMP}/bootstrap-go${BOOTSTRAP2_VERSION}"
|
||||||
BOOTSTRAP3_DIR="${TMP}/bootstrap-go${BOOTSTRAP3_VERSION}"
|
BOOTSTRAP3_DIR="${TMP}/bootstrap-go${BOOTSTRAP3_VERSION}"
|
||||||
BOOTSTRAP4_DIR="${TMP}/bootstrap-go${BOOTSTRAP4_VERSION}"
|
BOOTSTRAP4_DIR="${TMP}/bootstrap-go${BOOTSTRAP4_VERSION}"
|
||||||
|
BOOTSTRAP5_DIR="${TMP}/bootstrap-go${BOOTSTRAP5_VERSION}"
|
||||||
|
BOOTSTRAP6_DIR="${TMP}/bootstrap-go${BOOTSTRAP6_VERSION}"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -90,11 +96,13 @@ find -L . \
|
|||||||
|
|
||||||
ORIG_PATH="${PATH}"
|
ORIG_PATH="${PATH}"
|
||||||
|
|
||||||
|
export MAKEFLAGS="-j $(nproc)"
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Building 1-st bootstrap compiler, ${BOOTSTRAP1_VERSION}"
|
echo "Building 0-th bootstrap compiler, ${BOOTSTRAP0_VERSION}"
|
||||||
mkdir -p "${BOOTSTRAP1_DIR}"
|
mkdir -p "${BOOTSTRAP0_DIR}"
|
||||||
pushd "${BOOTSTRAP1_DIR}"
|
pushd "${BOOTSTRAP0_DIR}"
|
||||||
tar xf $CWD/go${BOOTSTRAP1_VERSION}.src.tar.gz
|
tar xf $CWD/go${BOOTSTRAP0_VERSION}.tar.gz
|
||||||
pushd go
|
pushd go
|
||||||
chown -R root:root .
|
chown -R root:root .
|
||||||
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
||||||
@@ -108,6 +116,25 @@ pushd "${BOOTSTRAP1_DIR}"
|
|||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Building 1-st bootstrap compiler, ${BOOTSTRAP1_VERSION}"
|
||||||
|
mkdir -p "${BOOTSTRAP1_DIR}"
|
||||||
|
pushd "${BOOTSTRAP1_DIR}"
|
||||||
|
tar xf $CWD/go${BOOTSTRAP1_VERSION}.src.tar.gz
|
||||||
|
pushd go
|
||||||
|
chown -R root:root .
|
||||||
|
export PATH="${BOOTSTRAP0_DIR}/go/bin:${ORIG_PATH}"
|
||||||
|
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
||||||
|
export GOROOT_BOOTSTRAP="$BOOTSTRAP0_DIR/go"
|
||||||
|
export GOROOT="$(pwd)"
|
||||||
|
export GOROOT_FINAL="${BOOTSTRAP1_DIR}/go"
|
||||||
|
pushd src
|
||||||
|
LC_ALL=C ./make.bash
|
||||||
|
$GOROOT/bin/go install -buildmode=exe std
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
|
||||||
# Time to build 2-nd bootstrap compiler
|
# Time to build 2-nd bootstrap compiler
|
||||||
echo ""
|
echo ""
|
||||||
echo "Building 2-nd bootstrap compiler, ${BOOTSTRAP2_VERSION}"
|
echo "Building 2-nd bootstrap compiler, ${BOOTSTRAP2_VERSION}"
|
||||||
@@ -123,7 +150,7 @@ pushd "$BOOTSTRAP2_DIR"
|
|||||||
export GOROOT_FINAL="${BOOTSTRAP2_DIR}/go"
|
export GOROOT_FINAL="${BOOTSTRAP2_DIR}/go"
|
||||||
pushd src
|
pushd src
|
||||||
LC_ALL=C ./make.bash
|
LC_ALL=C ./make.bash
|
||||||
$GOROOT/bin/go install std
|
$GOROOT/bin/go install -buildmode=exe std
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
@@ -143,14 +170,14 @@ pushd "$BOOTSTRAP3_DIR"
|
|||||||
export GOROOT_FINAL="${BOOTSTRAP3_DIR}/go"
|
export GOROOT_FINAL="${BOOTSTRAP3_DIR}/go"
|
||||||
pushd src
|
pushd src
|
||||||
LC_ALL=C ./make.bash
|
LC_ALL=C ./make.bash
|
||||||
$GOROOT/bin/go install std
|
$GOROOT/bin/go install -buildmode=exe std
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# Time to build 4-th bootstrap compiler
|
# Time to build 4-th bootstrap compiler
|
||||||
echo ""
|
echo ""
|
||||||
echo "Building 4-th bootstrap compiler, ${BOOTSTRAP3_VERSION}"
|
echo "Building 4-th bootstrap compiler, ${BOOTSTRAP4_VERSION}"
|
||||||
mkdir -p "${BOOTSTRAP4_DIR}"
|
mkdir -p "${BOOTSTRAP4_DIR}"
|
||||||
pushd "$BOOTSTRAP4_DIR"
|
pushd "$BOOTSTRAP4_DIR"
|
||||||
tar xf "${CWD}/go${BOOTSTRAP4_VERSION}.src.tar.gz"
|
tar xf "${CWD}/go${BOOTSTRAP4_VERSION}.src.tar.gz"
|
||||||
@@ -163,7 +190,47 @@ pushd "$BOOTSTRAP4_DIR"
|
|||||||
export GOROOT_FINAL="${BOOTSTRAP4_DIR}/go"
|
export GOROOT_FINAL="${BOOTSTRAP4_DIR}/go"
|
||||||
pushd src
|
pushd src
|
||||||
LC_ALL=C ./make.bash
|
LC_ALL=C ./make.bash
|
||||||
$GOROOT/bin/go install std
|
$GOROOT/bin/go install -buildmode=exe std
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Time to build 5-th bootstrap compiler
|
||||||
|
echo ""
|
||||||
|
echo "Building 5-th bootstrap compiler, ${BOOTSTRAP5_VERSION}"
|
||||||
|
mkdir -p "${BOOTSTRAP5_DIR}"
|
||||||
|
pushd "$BOOTSTRAP5_DIR"
|
||||||
|
tar xf "${CWD}/go${BOOTSTRAP5_VERSION}.src.tar.gz"
|
||||||
|
pushd go
|
||||||
|
chown -R root:root .
|
||||||
|
export PATH="${BOOTSTRAP4_DIR}/go/bin:${ORIG_PATH}"
|
||||||
|
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
||||||
|
export GOROOT_BOOTSTRAP="$BOOTSTRAP4_DIR/go"
|
||||||
|
export GOROOT="$(pwd)"
|
||||||
|
export GOROOT_FINAL="${BOOTSTRAP5_DIR}/go"
|
||||||
|
pushd src
|
||||||
|
LC_ALL=C ./make.bash
|
||||||
|
$GOROOT/bin/go install -buildmode=exe std
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Time to build 6-th bootstrap compiler
|
||||||
|
echo ""
|
||||||
|
echo "Building 6-th bootstrap compiler, ${BOOTSTRAP6_VERSION}"
|
||||||
|
mkdir -p "${BOOTSTRAP6_DIR}"
|
||||||
|
pushd "$BOOTSTRAP6_DIR"
|
||||||
|
tar xf "${CWD}/go${BOOTSTRAP6_VERSION}.src.tar.gz"
|
||||||
|
pushd go
|
||||||
|
chown -R root:root .
|
||||||
|
export PATH="${BOOTSTRAP5_DIR}/go/bin:${ORIG_PATH}"
|
||||||
|
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
||||||
|
export GOROOT_BOOTSTRAP="$BOOTSTRAP5_DIR/go"
|
||||||
|
export GOROOT="$(pwd)"
|
||||||
|
export GOROOT_FINAL="${BOOTSTRAP6_DIR}/go"
|
||||||
|
pushd src
|
||||||
|
LC_ALL=C ./make.bash
|
||||||
|
$GOROOT/bin/go install -buildmode=exe std
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
popd
|
popd
|
||||||
@@ -171,15 +238,15 @@ popd
|
|||||||
|
|
||||||
# Time to build target compiler
|
# Time to build target compiler
|
||||||
echo ""
|
echo ""
|
||||||
echo "Building target compiler, ${BOOTSTRAP4_VERSION}"
|
echo "Building target compiler, ${BOOTSTRAP6_VERSION}"
|
||||||
export PATH="${BOOTSTRAP4_DIR}/go/bin:${PATH}"
|
export PATH="${BOOTSTRAP6_DIR}/go/bin:${PATH}"
|
||||||
cd "$PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go"
|
cd "$PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go"
|
||||||
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
|
||||||
export GOROOT_BOOTSTRAP="$BOOTSTRAP4_DIR/go"
|
export GOROOT_BOOTSTRAP="$BOOTSTRAP6_DIR/go"
|
||||||
export GOROOT="$(pwd)"
|
export GOROOT="$(pwd)"
|
||||||
export GOROOT_FINAL="/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go"
|
export GOROOT_FINAL="/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go"
|
||||||
export GO_LDFLAGS="-s -w"
|
export GO_LDFLAGS="-s -w"
|
||||||
export GO_GCFLAGS="-trimpath"
|
export GO_GCFLAGS="-trimpath -buildvcs=false"
|
||||||
|
|
||||||
cd src
|
cd src
|
||||||
|
|
||||||
@@ -192,7 +259,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# As of go1.5, golang supports shared libraries, so generate them for use.
|
# As of go1.5, golang supports shared libraries, so generate them for use.
|
||||||
$GOROOT/bin/go install -buildmode=shared std
|
$GOROOT/bin/go install -ldflags="-s -w" -a -gcflags=all=-l -trimpath std
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
PRGNAM="google-go-lang"
|
PRGNAM="google-go-lang"
|
||||||
VERSION="1.23.4"
|
VERSION="1.25.1"
|
||||||
HOMEPAGE="https://go.dev/"
|
HOMEPAGE="https://go.dev/"
|
||||||
DOWNLOAD="https://go.dev/dl/go1.18.10.src.tar.gz https://go.dev/dl/go1.21.13.src.tar.gz https://go.dev/dl/go1.22.10.src.tar.gz https://go.dev/dl/go1.23.4.src.tar.gz"
|
DOWNLOAD="https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz https://go.dev/dl/go1.18.10.src.tar.gz https://go.dev/dl/go1.21.13.src.tar.gz https://go.dev/dl/go1.22.10.src.tar.gz https://go.dev/dl/go1.23.8.src.tar.gz https://go.dev/dl/go1.24.7.src.tar.gz https://go.dev/dl/go1.25.1.src.tar.gz"
|
||||||
MD5SUM="002b4daec72ab396dc023a5ec445a68a 3454362fc56df5020920e43fee2776ab 49b9eb43b62c1bdd9b5af72f61860e2d b62bddca6359237a49a7857cf5cd0510"
|
MD5SUM="dbf727a4b0e365bf88d97cbfde590016 002b4daec72ab396dc023a5ec445a68a 3454362fc56df5020920e43fee2776ab 49b9eb43b62c1bdd9b5af72f61860e2d e72f3d3ecc20466d7721b1892142d900 52eea261435dcd9fe447ce092f156519 86ac635cc05683ae97c77bbeae5bd884"
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
REQUIRES=""
|
REQUIRES=""
|
||||||
|
|||||||
11
haproxy/README
Normal file
11
haproxy/README
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
HAProxy is a free, very fast and reliable solution offering high
|
||||||
|
availability, load balancing, and proxying for TCP and HTTP-based
|
||||||
|
applications. It is particularly suited for very high traffic web sites.
|
||||||
|
|
||||||
|
Note that a default configuration file is no longer provided at
|
||||||
|
/etc/haproxy/haproxy.cfg. See /usr/doc/haproxy-*/examples
|
||||||
|
for some sample configuration files. The directory also contains
|
||||||
|
example files for logging.
|
||||||
|
|
||||||
|
The script supports optional variables for Lua, PCRE and QUIC.
|
||||||
|
See README.SLACKWARE for more information.
|
||||||
94
haproxy/README.SLACKWARE
Normal file
94
haproxy/README.SLACKWARE
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
--------
|
||||||
|
Compiling, optional dependencies and variables
|
||||||
|
--------
|
||||||
|
|
||||||
|
This SlackBuild script supports additional variables.
|
||||||
|
|
||||||
|
1) Lua support
|
||||||
|
|
||||||
|
Lua is an optional dependency. Pass LUA=yes to this script
|
||||||
|
to enable Lua support.
|
||||||
|
|
||||||
|
2) Custom Perl Compatible Regular Expressions
|
||||||
|
|
||||||
|
Perl Compatible Regular Expressions version 2 without JIT
|
||||||
|
support is enabled by default. You can change this by passing
|
||||||
|
PCRE= to this script.
|
||||||
|
|
||||||
|
Currently supported settings are listed in the Makefile.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
* Use PCRE=PCRE2_JIT to use libpcre2 with JIT support.
|
||||||
|
* Use PCRE=PCRE to use libpcre version 1.
|
||||||
|
|
||||||
|
You can also use the variables as they're written in the
|
||||||
|
Makefile, such as PCRE=USE_PCRE_JIT or PCRE=USE_PCRE=1.
|
||||||
|
The script will parse them correctly.
|
||||||
|
|
||||||
|
3) QUIC support (experimental)
|
||||||
|
|
||||||
|
Starting with version 2.6.0, HAProxy supports HTTP/3 over QUIC.
|
||||||
|
The QUIC support is currently experimental and requires QUICTLS.
|
||||||
|
OpenSSL package shipped with Slackware 15.0 is not compatible
|
||||||
|
with QUIC.
|
||||||
|
|
||||||
|
Pass QUIC=yes to this script to enable HTTP/3 support.
|
||||||
|
|
||||||
|
Check out these links for more information:
|
||||||
|
* https://github.com/quictls/
|
||||||
|
* https://www.haproxy.com/blog/announcing-haproxy-2-6/
|
||||||
|
|
||||||
|
--------
|
||||||
|
Logging
|
||||||
|
--------
|
||||||
|
|
||||||
|
If you want to enable logging, please first refer to HAProxy manual
|
||||||
|
on how to enable logging and how to select which events to log.
|
||||||
|
|
||||||
|
HAProxy log forwarding works fine with Slackware's sysklogd.
|
||||||
|
|
||||||
|
There are example files located in /usr/doc/haproxy-*/examples
|
||||||
|
The files are called syslog.example and logrotate.example.
|
||||||
|
|
||||||
|
You might want to add something like this to your haproxy.cfg file:
|
||||||
|
|
||||||
|
global
|
||||||
|
log /dev/log local0
|
||||||
|
|
||||||
|
Note that rotating logs does not require restarting HAProxy.
|
||||||
|
Instead, logrotate script should send a HUP signal to syslogger
|
||||||
|
when rotating. Example script is included in syslog.example.
|
||||||
|
Rotating has been tested with sysklogd (Slackware default) and
|
||||||
|
syslog-ng.
|
||||||
|
|
||||||
|
--------
|
||||||
|
Automatic starting/stopping upon system start/shutdown
|
||||||
|
--------
|
||||||
|
|
||||||
|
To start HAProxy automatically when system is booted,
|
||||||
|
add the following lines to /etc/rc.d/rc.local:
|
||||||
|
|
||||||
|
if [ -x /etc/rc.d/rc.haproxy ]; then
|
||||||
|
/etc/rc.d/rc.haproxy start
|
||||||
|
fi
|
||||||
|
|
||||||
|
To stop HAProxy on system shutdown, add following lines
|
||||||
|
to /etc/rc.d/rc.local_shutdown
|
||||||
|
|
||||||
|
if [ -x /etc/rc.d/rc.haproxy ]; then
|
||||||
|
/etc/rc.d/rc.haproxy stop
|
||||||
|
fi
|
||||||
|
|
||||||
|
--------
|
||||||
|
Privileges
|
||||||
|
--------
|
||||||
|
|
||||||
|
Like with the most rc scripts /etc/rc.d/rc.haproxy should be
|
||||||
|
run as root. You can easily drop process privileges by specifying
|
||||||
|
another user (and group) in the main configuration file.
|
||||||
|
|
||||||
|
Add something like this to haproxy.cfg:
|
||||||
|
|
||||||
|
global
|
||||||
|
user nobody
|
||||||
|
group nogroup
|
||||||
@@ -4,7 +4,7 @@ config() {
|
|||||||
# If there's no config file by that name, mv it over:
|
# If there's no config file by that name, mv it over:
|
||||||
if [ ! -r $OLD ]; then
|
if [ ! -r $OLD ]; then
|
||||||
mv $NEW $OLD
|
mv $NEW $OLD
|
||||||
elif [ "$(cat $OLD|md5sum)" = "$(cat $NEW|md5sum)" ]; then
|
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
|
||||||
# toss the redundant copy
|
# toss the redundant copy
|
||||||
rm $NEW
|
rm $NEW
|
||||||
fi
|
fi
|
||||||
@@ -22,5 +22,4 @@ preserve_perms() {
|
|||||||
config $NEW
|
config $NEW
|
||||||
}
|
}
|
||||||
|
|
||||||
config etc/default/spoofdpi.new
|
preserve_perms etc/rc.d/rc.haproxy.new
|
||||||
preserve_perms etc/rc.d/rc.spoofdpi.new
|
|
||||||
169
haproxy/haproxy.SlackBuild
Normal file
169
haproxy/haproxy.SlackBuild
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for haproxy
|
||||||
|
|
||||||
|
# Copyright 2018 T3slider <t3slider@gmail.com>
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Copyright 2025 Badchay <badchay@protonmail.com>
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Copyright 2025 Sergei Fedosoff <eleksir@gmail.com>
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
PRGNAM=haproxy
|
||||||
|
VERSION=${VERSION:-3.2.4}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
TAG=${TAG:-_EXs}
|
||||||
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) 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 "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
|
PKG=$TMP/package-$PRGNAM
|
||||||
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This should work with Slackware-provided kernels, but you may wish to
|
||||||
|
# use 'generic' instead
|
||||||
|
TARGET=${TARGET:-linux-glibc}
|
||||||
|
|
||||||
|
# Include lua support? (Requires lua)
|
||||||
|
LUA=${LUA:-no}
|
||||||
|
# Perl Compatible Regular Expressions version 2 is enabled by default.
|
||||||
|
# You might want to use libpcre1 and/or JIT-enabled version instead.
|
||||||
|
PCRE=${PCRE:-PCRE2}
|
||||||
|
# Include QUIC (HTTP/3) support?
|
||||||
|
# This requires QUICTLS or wolfSSL.
|
||||||
|
QUIC=${QUIC:-no}
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PRGNAM-$VERSION
|
||||||
|
tar xf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||||
|
cd $PRGNAM-$VERSION
|
||||||
|
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 {} \;
|
||||||
|
|
||||||
|
LUAOPT=""
|
||||||
|
if [ "$LUA" == "yes" ]; then
|
||||||
|
LUAOPT="USE_LUA=1"
|
||||||
|
else
|
||||||
|
LUAOPT="USE_LUA="
|
||||||
|
fi
|
||||||
|
|
||||||
|
PCREOPT=""
|
||||||
|
if [ "$PCRE" != "PCRE2" ]; then
|
||||||
|
PCREOPT=$(echo $PCRE | sed -e 's/USE_//' -e 's/=1//')
|
||||||
|
else
|
||||||
|
PCREOPT="PCRE2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
QUICOPT=""
|
||||||
|
if [ "$QUIC" == "yes" ]; then
|
||||||
|
LUAOPT="USE_QUIC=1"
|
||||||
|
else
|
||||||
|
LUAOPT="USE_QUIC="
|
||||||
|
fi
|
||||||
|
|
||||||
|
make -j$(nproc) \
|
||||||
|
TARGET=$TARGET \
|
||||||
|
USE_$PCREOPT=1 \
|
||||||
|
$QUICOPT \
|
||||||
|
USE_OPENSSL=1 \
|
||||||
|
USE_ENGINE=1 \
|
||||||
|
USE_ZLIB=1 \
|
||||||
|
USE_NS=1 \
|
||||||
|
USE_PROMEX=1 \
|
||||||
|
$LUAOPT \
|
||||||
|
EXTRA=""
|
||||||
|
make install \
|
||||||
|
PREFIX=/usr \
|
||||||
|
MANDIR=/usr/man \
|
||||||
|
DOCDIR=/usr/doc/$PRGNAM-$VERSION \
|
||||||
|
EXTRA="" \
|
||||||
|
DESTDIR=$PKG
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
install -D -m 0644 $CWD/rc.$PRGNAM $PKG/etc/rc.d/rc.$PRGNAM.new
|
||||||
|
|
||||||
|
cp -a CONTRIBUTING LICENSE MAINTAINERS README.md BRANCHES SUBVERS VERDATE VERSION examples \
|
||||||
|
$PKG/usr/doc/$PRGNAM-$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
|
||||||
|
head -n 1000 CHANGELOG > $PKG/usr/doc/$PRGNAM-$VERSION/CHANGELOG
|
||||||
|
touch -r CHANGELOG $PKG/usr/doc/$PRGNAM-$VERSION/CHANGELOG
|
||||||
|
fi
|
||||||
|
|
||||||
|
cp $CWD/{syslog.example,logrotate.example} $PKG/usr/doc/$PRGNAM-$VERSION/examples/
|
||||||
|
|
||||||
|
mkdir -p $PKG/etc/haproxy
|
||||||
|
mv $PKG/usr/doc/$PRGNAM-$VERSION/examples/errorfiles $PKG/etc/haproxy/errors
|
||||||
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
haproxy/haproxy.info
Normal file
10
haproxy/haproxy.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="haproxy"
|
||||||
|
VERSION="3.2.4"
|
||||||
|
HOMEPAGE="https://www.haproxy.org/"
|
||||||
|
DOWNLOAD="https://www.haproxy.org/download/3.2/src/haproxy-3.2.4.tar.gz"
|
||||||
|
MD5SUM="35a9600a063df8d85fd845dc330cb111"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES=""
|
||||||
|
MAINTAINER="Badchay"
|
||||||
|
EMAIL="badchay@protonmail.com"
|
||||||
9
haproxy/logrotate.example
Normal file
9
haproxy/logrotate.example
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
/var/log/haproxy {
|
||||||
|
notifempty
|
||||||
|
weekly
|
||||||
|
missingok
|
||||||
|
rotate 4
|
||||||
|
postrotate
|
||||||
|
/bin/kill -HUP $(cat /run/syslogd.pid 2>/dev/null) 2>/dev/null || true
|
||||||
|
endscript
|
||||||
|
}
|
||||||
99
haproxy/rc.haproxy
Normal file
99
haproxy/rc.haproxy
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Slackware initialization script for HAProxy.
|
||||||
|
#
|
||||||
|
# This script was made by T3slider.
|
||||||
|
# Slight modifications by Badchay.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
HAPROXY=/usr/sbin/haproxy
|
||||||
|
CONFIG=/etc/haproxy/haproxy.cfg
|
||||||
|
PIDFILE=/run/haproxy.pid
|
||||||
|
|
||||||
|
if [[ ! -f $CONFIG && "$1" == "start" ]]; then
|
||||||
|
echo "No configuration file found. Cannot continue."
|
||||||
|
echo "The script looks for the configuration file placed in $CONFIG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
start() {
|
||||||
|
if [ -r $PIDFILE ]; then
|
||||||
|
echo 'HAProxy is already running!'
|
||||||
|
return
|
||||||
|
else
|
||||||
|
echo "Starting HAProxy..."
|
||||||
|
$HAPROXY -f $CONFIG -D -p $PIDFILE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
if [ ! -r $PIDFILE ]; then
|
||||||
|
echo 'HAProxy is not running!'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "Soft-stopping HAProxy..."
|
||||||
|
kill -USR1 $(cat $PIDFILE)
|
||||||
|
# Even with the right permissions the PID file will not be removed...
|
||||||
|
rm -f $PIDFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
force_stop() {
|
||||||
|
if [ ! -r $PIDFILE ]; then
|
||||||
|
echo 'HAProxy is not running!'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "Hard-stopping HAProxy..."
|
||||||
|
kill $(cat $PIDFILE)
|
||||||
|
# Even with the right permissions the PID file will not be removed...
|
||||||
|
rm -f $PIDFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if [ ! -r $PIDFILE ]; then
|
||||||
|
echo "HAProxy is not running."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
PID=$(cat $PIDFILE)
|
||||||
|
if [ -z "$PID" ]; then
|
||||||
|
echo 'PID file is empty! HAProxy does not appear to be running, but there is a stale PID file.'
|
||||||
|
elif kill -0 $PID; then
|
||||||
|
echo "HAProxy is running."
|
||||||
|
else
|
||||||
|
echo "HAProxy is not running, but there is a stale PID file."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
checkconfig() {
|
||||||
|
$HAPROXY -c -q -V -f $CONFIG
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
'start')
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
stop
|
||||||
|
;;
|
||||||
|
'force_stop')
|
||||||
|
force_stop
|
||||||
|
;;
|
||||||
|
'restart')
|
||||||
|
stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
'force_restart')
|
||||||
|
force_stop
|
||||||
|
start
|
||||||
|
;;
|
||||||
|
'status')
|
||||||
|
status
|
||||||
|
;;
|
||||||
|
'checkconfig')
|
||||||
|
checkconfig
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {start|stop|force_stop|restart|force_restart|status|checkconfig}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
19
haproxy/slack-desc
Normal file
19
haproxy/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------------------------------------------------------|
|
||||||
|
haproxy: haproxy (The Reliable, High Performance TCP/HTTP Load Balancer)
|
||||||
|
haproxy:
|
||||||
|
haproxy: HAProxy is a free, very fast and reliable reverse-proxy offering high
|
||||||
|
haproxy: availability, load balancing, and proxying for TCP and HTTP-based
|
||||||
|
haproxy: applications. It is particularly suited for very high traffic
|
||||||
|
haproxy: web sites and powers a significant portion of the world's most
|
||||||
|
haproxy: visited ones.
|
||||||
|
haproxy:
|
||||||
|
haproxy:
|
||||||
|
haproxy: Check out more information on https://www.haproxy.org/
|
||||||
|
haproxy:
|
||||||
20
haproxy/syslog.example
Normal file
20
haproxy/syslog.example
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Note: If you enable local0 logging. You'll probably want to add
|
||||||
|
# something like local0.none to your /etc/syslogd.conf
|
||||||
|
#
|
||||||
|
# Otherwise the logs will be sent to your /var/log/messages file
|
||||||
|
# as well as the logfile specified below.
|
||||||
|
#
|
||||||
|
# An example would be to change the default line
|
||||||
|
#
|
||||||
|
# authpriv.none;cron.none;mail.none;news.none -/var/log/messages
|
||||||
|
# to
|
||||||
|
# authpriv.none;cron.none;mail.none;news.none;local0.none -/var/log/messages
|
||||||
|
#
|
||||||
|
# Move this file to /etc/syslog.d/ with .conf extension
|
||||||
|
# so syslog will load it automatically.
|
||||||
|
#
|
||||||
|
# Also remember to restart sysklogd
|
||||||
|
# sh /etc/rc.d/rc.syslog restart
|
||||||
|
#
|
||||||
|
|
||||||
|
local0.* -/var/log/haproxy
|
||||||
134
htop/htop.SlackBuild
Normal file
134
htop/htop.SlackBuild
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2011, 2016, 2018, 2020, 2025 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=htop
|
||||||
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) export ARCH=i686 ;;
|
||||||
|
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-$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" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
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 {} \+
|
||||||
|
|
||||||
|
if [ ! -r configure ]; then
|
||||||
|
if [ -x ./autogen.sh ]; then
|
||||||
|
NOCONFIGURE=1 ./autogen.sh
|
||||||
|
else
|
||||||
|
autoreconf -vif
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
CFLAGS="$SLKCFLAGS" \
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--docdir=/usr/doc/$PKGNAM-$VERSION \
|
||||||
|
--build=$ARCH-slackware-linux || exit 1
|
||||||
|
|
||||||
|
make $NUMJOBS || make || exit 1
|
||||||
|
make install DESTDIR=$PKG || exit 1
|
||||||
|
|
||||||
|
find $PKG | xargs file | grep -e "executable" -e "shared object" \
|
||||||
|
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
|
||||||
|
# Compress and link manpages, if any:
|
||||||
|
if [ -d $PKG/usr/man ]; then
|
||||||
|
( cd $PKG/usr/man
|
||||||
|
for manpagedir in $(find . -type d -name "man*") ; do
|
||||||
|
( cd $manpagedir
|
||||||
|
for eachpage in $( find . -type l -maxdepth 1) ; do
|
||||||
|
ln -s $( readlink $eachpage ).gz $eachpage.gz
|
||||||
|
rm $eachpage
|
||||||
|
done
|
||||||
|
gzip -9 *.?
|
||||||
|
)
|
||||||
|
done
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install documentation:
|
||||||
|
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
|
||||||
|
cp -a \
|
||||||
|
AUTHORS* COPYING* NEWS* README* TODO* \
|
||||||
|
$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/*-$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/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
|
||||||
|
|
||||||
1
htop/htop.url
Normal file
1
htop/htop.url
Normal file
@@ -0,0 +1 @@
|
|||||||
|
https://github.com/htop-dev/htop
|
||||||
19
htop/slack-desc
Normal file
19
htop/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------------------------------------------------------|
|
||||||
|
htop: htop (ncurses-based interactive process viewer)
|
||||||
|
htop:
|
||||||
|
htop: htop is a free (GPL) ncurses-based process viewer that is similar to
|
||||||
|
htop: the well-known "top" program, but allows to scroll the list vertically
|
||||||
|
htop: and horizontally to see all processes and their full command lines.
|
||||||
|
htop: Tasks related to processes (killing, renicing) can be done without
|
||||||
|
htop: entering their PIDs.
|
||||||
|
htop:
|
||||||
|
htop: htop is developed by Hisham Muhammad.
|
||||||
|
htop: Homepage: http://hisham.hm/htop/
|
||||||
|
htop:
|
||||||
25
i3/2746e0319b03a8a5a02b57a69b1fb47e0a9c22f1.patch
Normal file
25
i3/2746e0319b03a8a5a02b57a69b1fb47e0a9c22f1.patch
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
From 2746e0319b03a8a5a02b57a69b1fb47e0a9c22f1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Stapelberg <michael@stapelberg.de>
|
||||||
|
Date: Wed, 6 Nov 2024 19:17:37 +0100
|
||||||
|
Subject: [PATCH] i3bar: work around weird clang compiler behavior
|
||||||
|
|
||||||
|
clang used to not warn (= error, with -Werror) about this line. Oh well.
|
||||||
|
---
|
||||||
|
i3bar/src/xcb.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/i3bar/src/xcb.c b/i3bar/src/xcb.c
|
||||||
|
index 4211123d44..f975826abf 100644
|
||||||
|
--- a/i3bar/src/xcb.c
|
||||||
|
+++ b/i3bar/src/xcb.c
|
||||||
|
@@ -1515,7 +1515,9 @@ static void send_tray_clientmessage(void) {
|
||||||
|
static void init_tray(void) {
|
||||||
|
DLOG("Initializing system tray functionality\n");
|
||||||
|
/* request the tray manager atom for the X11 display we are running on */
|
||||||
|
- char atomname[strlen("_NET_SYSTEM_TRAY_S") + 11];
|
||||||
|
+ /* The following line cannot use strlen as that makes compilation fail with
|
||||||
|
+ * some versions of clang (-Wgnu-folding-constant): */
|
||||||
|
+ char atomname[18 /* strlen("_NET_SYSTEM_TRAY_S") */ + 11];
|
||||||
|
snprintf(atomname, strlen("_NET_SYSTEM_TRAY_S") + 11, "_NET_SYSTEM_TRAY_S%d", screen);
|
||||||
|
xcb_intern_atom_cookie_t tray_cookie;
|
||||||
|
if (tray_reply == NULL) {
|
||||||
30
i3/853b0d9161a5f99c8491751590229a449e4076b6.patch
Normal file
30
i3/853b0d9161a5f99c8491751590229a449e4076b6.patch
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
From 853b0d9161a5f99c8491751590229a449e4076b6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Stapelberg <stapelberg@users.noreply.github.com>
|
||||||
|
Date: Mon, 30 Dec 2024 08:29:29 +0100
|
||||||
|
Subject: [PATCH] i3bar: fix clang compilation error by using const size_t
|
||||||
|
(#6349)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Thanks to Shouη (@Shoun2137 on GitHub) for the suggestion.
|
||||||
|
---
|
||||||
|
i3bar/src/xcb.c | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/i3bar/src/xcb.c b/i3bar/src/xcb.c
|
||||||
|
index f975826abf..146db172e3 100644
|
||||||
|
--- a/i3bar/src/xcb.c
|
||||||
|
+++ b/i3bar/src/xcb.c
|
||||||
|
@@ -1517,8 +1517,9 @@ static void init_tray(void) {
|
||||||
|
/* request the tray manager atom for the X11 display we are running on */
|
||||||
|
/* The following line cannot use strlen as that makes compilation fail with
|
||||||
|
* some versions of clang (-Wgnu-folding-constant): */
|
||||||
|
- char atomname[18 /* strlen("_NET_SYSTEM_TRAY_S") */ + 11];
|
||||||
|
- snprintf(atomname, strlen("_NET_SYSTEM_TRAY_S") + 11, "_NET_SYSTEM_TRAY_S%d", screen);
|
||||||
|
+ const size_t systray_len = strlen("_NET_SYSTEM_TRAY_S") + 11;
|
||||||
|
+ char atomname[systray_len];
|
||||||
|
+ snprintf(atomname, systray_len, "_NET_SYSTEM_TRAY_S%d", screen);
|
||||||
|
xcb_intern_atom_cookie_t tray_cookie;
|
||||||
|
if (tray_reply == NULL) {
|
||||||
|
tray_cookie = xcb_intern_atom(xcb_connection, 0, strlen(atomname), atomname);
|
||||||
311
i3/cfa4cf16bea809c7c715a86c428757e577c85254.patch
Normal file
311
i3/cfa4cf16bea809c7c715a86c428757e577c85254.patch
Normal file
@@ -0,0 +1,311 @@
|
|||||||
|
From cfa4cf16bea809c7c715a86c428757e577c85254 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sergey Vlasov <sigprof@gmail.com>
|
||||||
|
Date: Tue, 22 Apr 2025 00:26:17 +0300
|
||||||
|
Subject: [PATCH] Set `_NET_FRAME_EXTENTS` according to the actual decoration
|
||||||
|
size (#5944)
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Inspired by #5384, but instead of just using the border width, this PR
|
||||||
|
reports the actual frame extents for the window, which may also include
|
||||||
|
the title bar (for floating windows and tiled windows in plain split
|
||||||
|
containers, but not for tiled windows in stacked/tabbed containers).
|
||||||
|
|
||||||
|
The existing `con_border_style_rect()` function should already handle
|
||||||
|
all configuration options which can affect the decoration sizes (if it
|
||||||
|
does not, that would also show up in other places); its result just
|
||||||
|
needs to be converted into the format used by the `_NET_FRAME_EXTENTS`
|
||||||
|
property.
|
||||||
|
|
||||||
|
This PR fixes #4292 probably in the best way possible (the reported
|
||||||
|
`_NET_FRAME_EXTENTS` values should always match the actual sizes of
|
||||||
|
window frame elements which are actually drawn into the X11 frame window
|
||||||
|
into which the client window is reparented). The only really problematic
|
||||||
|
case is with the stacked/tabbed containers, for which the title bar is
|
||||||
|
actually drawn into a completely separate window, therefore the title
|
||||||
|
bar size cannot be reported in `_NET_FRAME_EXTENTS` (actually I tried to
|
||||||
|
calculate the size of those decorations and add it to the top decoration
|
||||||
|
size, but that did not change the behavior of `picom`).
|
||||||
|
|
||||||
|
<details><summary>Large screenshots here (3840×2160)</summary>
|
||||||
|
|
||||||
|
Example of configuration with `hide_edge_borders smart` — a single
|
||||||
|
window does not have borders, so only the top frame size is non-zero:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
but multiple windows have borders:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Changing border width works too (although with `border normal 8` you can
|
||||||
|
see that the top border overlaps the title text, because on the i3 side
|
||||||
|
that border does not really exists, and `picom` just draws it over; also
|
||||||
|
the pixel sizes reported by `xprop` and `xwininfo` are not identical to
|
||||||
|
what is specified in i3, because I use 168 dpi on this system, therefore
|
||||||
|
4 px in the i3 config = 7 dpx):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Handling of tabbed containers is less perfect though. Here is a single
|
||||||
|
tabbed container with `hide_edge_borders smart`, so it does not really
|
||||||
|
have a border — note that all frame extents are zero, and the titlebar
|
||||||
|
is rounded separately (although it could easily be excluded from
|
||||||
|
rounding, that does not really help much):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Once the border actually appears, you may notice that the top part of
|
||||||
|
the `picom` border actually gets drawn over the top part of the window,
|
||||||
|
partially obscuring the top line in this terminal (`picom` does not mind
|
||||||
|
that the top frame size is reported as 0):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Some examples of floating windows (no major problems there):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Options like `hide_edge_borders both` work too when gaps are removed
|
||||||
|
(although the resulting behavior with `picom` is probably not very
|
||||||
|
useful — the rounded border gets drawn only if all of the left, bottom
|
||||||
|
and right borders are present):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The same with `border pixel 8` (note that windows with only the top
|
||||||
|
border hidden still get the rounded border treatment by `picom`, but the
|
||||||
|
border overlaps the top part of the window):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
---------
|
||||||
|
|
||||||
|
Signed-off-by: Sergey Vlasov <sigprof@gmail.com>
|
||||||
|
Co-authored-by: Orestis Floros <orestisflo@gmail.com>
|
||||||
|
---
|
||||||
|
.../changes/5-set-_NET_FRAME_EXTENTS | 1 +
|
||||||
|
src/x.c | 18 ++
|
||||||
|
testcases/t/323-net-frame-extents.t | 173 ++++++++++++++++++
|
||||||
|
3 files changed, 192 insertions(+)
|
||||||
|
create mode 100644 release-notes/changes/5-set-_NET_FRAME_EXTENTS
|
||||||
|
create mode 100644 testcases/t/323-net-frame-extents.t
|
||||||
|
|
||||||
|
diff --git a/release-notes/changes/5-set-_NET_FRAME_EXTENTS b/release-notes/changes/5-set-_NET_FRAME_EXTENTS
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..0d40253a75
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/release-notes/changes/5-set-_NET_FRAME_EXTENTS
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+Set _NET_FRAME_EXTENTS according to the actual decoration size
|
||||||
|
diff --git a/src/x.c b/src/x.c
|
||||||
|
index e28c3d03b2..499c6e2330 100644
|
||||||
|
--- a/src/x.c
|
||||||
|
+++ b/src/x.c
|
||||||
|
@@ -1126,6 +1126,24 @@ void x_push_node(Con *con) {
|
||||||
|
|
||||||
|
set_shape_state(con, need_reshape);
|
||||||
|
|
||||||
|
+ /* Set _NET_FRAME_EXTENTS according to the actual decoration size. */
|
||||||
|
+ if (con != NULL && con->window != NULL) {
|
||||||
|
+ Rect bsr = con_border_style_rect(con);
|
||||||
|
+ Rect r = {
|
||||||
|
+ bsr.x, /* left */
|
||||||
|
+ 0 - bsr.width - bsr.x, /* right */
|
||||||
|
+ bsr.y, /* top */
|
||||||
|
+ 0 - bsr.height - bsr.y /* bottom */
|
||||||
|
+ };
|
||||||
|
+ xcb_change_property(
|
||||||
|
+ conn,
|
||||||
|
+ XCB_PROP_MODE_REPLACE,
|
||||||
|
+ con->window->id,
|
||||||
|
+ A__NET_FRAME_EXTENTS,
|
||||||
|
+ XCB_ATOM_CARDINAL, 32, 4,
|
||||||
|
+ &r);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* Map if map state changed, also ensure that the child window
|
||||||
|
* is changed if we are mapped and there is a new, unmapped child window.
|
||||||
|
* Unmaps are handled in x_push_node_unmaps(). */
|
||||||
|
diff --git a/testcases/t/323-net-frame-extents.t b/testcases/t/323-net-frame-extents.t
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000..7098f21d5f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/testcases/t/323-net-frame-extents.t
|
||||||
|
@@ -0,0 +1,173 @@
|
||||||
|
+#!perl
|
||||||
|
+# vim:ts=4:sw=4:expandtab
|
||||||
|
+#
|
||||||
|
+# Please read the following documents before working on tests:
|
||||||
|
+# • https://build.i3wm.org/docs/testsuite.html
|
||||||
|
+# (or docs/testsuite)
|
||||||
|
+#
|
||||||
|
+# • https://build.i3wm.org/docs/lib-i3test.html
|
||||||
|
+# (alternatively: perldoc ./testcases/lib/i3test.pm)
|
||||||
|
+#
|
||||||
|
+# • https://build.i3wm.org/docs/ipc.html
|
||||||
|
+# (or docs/ipc)
|
||||||
|
+#
|
||||||
|
+# • https://i3wm.org/downloads/modern_perl_a4.pdf
|
||||||
|
+# (unless you are already familiar with Perl)
|
||||||
|
+#
|
||||||
|
+# Verify _NET_FRAME_EXTENTS is set correctly
|
||||||
|
+# Ticket: #4292
|
||||||
|
+# Bug still in: 4.24-8-g44b67d11
|
||||||
|
+use i3test i3_autostart => 0;
|
||||||
|
+use X11::XCB qw(:all);
|
||||||
|
+
|
||||||
|
+my $pid = launch_with_config('-default');
|
||||||
|
+
|
||||||
|
+sub net_frame_extents {
|
||||||
|
+ my ($window) = @_;
|
||||||
|
+
|
||||||
|
+ my $cookie = $x->get_property(
|
||||||
|
+ 0,
|
||||||
|
+ $window->{id},
|
||||||
|
+ $x->atom(name => '_NET_FRAME_EXTENTS')->id,
|
||||||
|
+ GET_PROPERTY_TYPE_ANY,
|
||||||
|
+ 0,
|
||||||
|
+ 4
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+ my $reply = $x->get_property_reply($cookie->{sequence});
|
||||||
|
+ my $len = $reply->{length};
|
||||||
|
+ return [] if $len == 0;
|
||||||
|
+
|
||||||
|
+ return unpack("L$len", $reply->{value});
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+sub is_net_frame_extents {
|
||||||
|
+ my ($window, $expect, $msg) = @_;
|
||||||
|
+ $msg //= "";
|
||||||
|
+ $msg = "frame extents $msg";
|
||||||
|
+ $msg =~ s/\s+$//;
|
||||||
|
+ my @extents = net_frame_extents($window);
|
||||||
|
+ is_deeply(\@extents, $expect, "$msg: got: @extents want: @$expect");
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+subtest 'basic border styles' => sub {
|
||||||
|
+ my $w = open_window;
|
||||||
|
+ cmd 'border normal 3';
|
||||||
|
+ is_net_frame_extents($w, [3, 3, 18, 3], "normal border with 3px width");
|
||||||
|
+
|
||||||
|
+ cmd 'border pixel 1';
|
||||||
|
+ is_net_frame_extents($w, [1, 1, 1, 1], "pixel border with 1px width");
|
||||||
|
+
|
||||||
|
+ cmd 'border pixel 5';
|
||||||
|
+ is_net_frame_extents($w, [5, 5, 5, 5], "pixel border with 5px width");
|
||||||
|
+
|
||||||
|
+ open_window;
|
||||||
|
+ is_net_frame_extents($w, [5, 5, 5, 5], "other window does not affect");
|
||||||
|
+ cmd 'kill';
|
||||||
|
+
|
||||||
|
+ cmd 'border normal 0';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 18, 0], "normal border with 0px width");
|
||||||
|
+
|
||||||
|
+ cmd 'border none';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 0, 0], "no border");
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+subtest 'multiple windows in different layouts' => sub {
|
||||||
|
+ fresh_workspace;
|
||||||
|
+
|
||||||
|
+ my $w1 = open_window;
|
||||||
|
+ my $w2 = open_window;
|
||||||
|
+ my $w3 = open_window;
|
||||||
|
+
|
||||||
|
+ cmd 'border normal 2';
|
||||||
|
+ is_net_frame_extents($w1, [2, 2, 18, 2], "window 1 in splith layout with normal border");
|
||||||
|
+ is_net_frame_extents($w2, [2, 2, 18, 2], "window 2 in splith layout with normal border");
|
||||||
|
+ is_net_frame_extents($w3, [2, 2, 18, 2], "window 3 in splith layout with normal border");
|
||||||
|
+
|
||||||
|
+ cmd 'layout stacking';
|
||||||
|
+ is_net_frame_extents($w1, [2, 2, 0, 2], "window 1 in stacking layout");
|
||||||
|
+ is_net_frame_extents($w2, [2, 2, 0, 2], "window 2 in stacking layout");
|
||||||
|
+ is_net_frame_extents($w3, [2, 2, 0, 2], "window 3 in stacking layout");
|
||||||
|
+
|
||||||
|
+ cmd 'layout tabbed';
|
||||||
|
+ is_net_frame_extents($w1, [2, 2, 0, 2], "window 1 in tabbed layout");
|
||||||
|
+ is_net_frame_extents($w2, [2, 2, 0, 2], "window 2 in tabbed layout");
|
||||||
|
+ is_net_frame_extents($w3, [2, 2, 0, 2], "window 3 in tabbed layout");
|
||||||
|
+
|
||||||
|
+ cmd 'layout splitv';
|
||||||
|
+ is_net_frame_extents($w1, [2, 2, 18, 2], "window 1 in splitv layout");
|
||||||
|
+ is_net_frame_extents($w2, [2, 2, 18, 2], "window 2 in splitv layout");
|
||||||
|
+ is_net_frame_extents($w3, [2, 2, 18, 2], "window 3 in splitv layout");
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+sub launch_with_hide_edge_borders {
|
||||||
|
+ my ($value) = @_;
|
||||||
|
+ my $config = <<EOT;
|
||||||
|
+# i3 config file (v4)
|
||||||
|
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
|
||||||
|
+hide_edge_borders $value
|
||||||
|
+EOT
|
||||||
|
+
|
||||||
|
+ kill_all_windows;
|
||||||
|
+ exit_gracefully($pid);
|
||||||
|
+ $pid = launch_with_config($config);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+subtest 'hide_edge_borders' => sub {
|
||||||
|
+ launch_with_hide_edge_borders('none');
|
||||||
|
+ my $w = open_window;
|
||||||
|
+ cmd 'border normal 3';
|
||||||
|
+ is_net_frame_extents($w, [3, 3, 18, 3], "window with normal borders (hide_edge_borders none)");
|
||||||
|
+
|
||||||
|
+ launch_with_hide_edge_borders('vertical');
|
||||||
|
+ $w = open_window;
|
||||||
|
+ cmd 'border normal 3';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 18, 3], "window with hidden vertical borders");
|
||||||
|
+
|
||||||
|
+ launch_with_hide_edge_borders('horizontal');
|
||||||
|
+ $w = open_window;
|
||||||
|
+ cmd 'border normal 3';
|
||||||
|
+ is_net_frame_extents($w, [3, 3, 18, 0], "window with hidden horizontal borders");
|
||||||
|
+ cmd 'border pixel 3';
|
||||||
|
+ is_net_frame_extents($w, [3, 3, 0, 0], "window with hidden horizontal borders");
|
||||||
|
+
|
||||||
|
+ launch_with_hide_edge_borders('both');
|
||||||
|
+ $w = open_window;
|
||||||
|
+ cmd 'border normal 3';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 18, 0], "window with all edge borders hidden");
|
||||||
|
+ cmd 'border pixel 3';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 0, 0], "window with all edge borders hidden");
|
||||||
|
+
|
||||||
|
+ launch_with_hide_edge_borders('smart');
|
||||||
|
+ $w = open_window;
|
||||||
|
+ cmd 'border normal 3';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 18, 0], "window with smart borders (single window)");
|
||||||
|
+ cmd 'border pixel 3';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 0, 0], "window with smart borders (single window)");
|
||||||
|
+
|
||||||
|
+ my $w2 = open_window;
|
||||||
|
+ cmd 'border normal 5';
|
||||||
|
+ is_net_frame_extents($w, [3, 3, 3, 3], "first window with smart borders (multiple windows)");
|
||||||
|
+ is_net_frame_extents($w2, [5, 5, 18, 5], "second window with smart borders (multiple windows)");
|
||||||
|
+
|
||||||
|
+ exit_gracefully($pid);
|
||||||
|
+ launch_with_config('-default');
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+subtest 'floating windows' => sub {
|
||||||
|
+ fresh_workspace;
|
||||||
|
+ my $w = open_window;
|
||||||
|
+ cmd 'border normal 4';
|
||||||
|
+ is_net_frame_extents($w, [4, 4, 18, 4], "tiling window with normal border");
|
||||||
|
+
|
||||||
|
+ cmd 'floating enable';
|
||||||
|
+ is_net_frame_extents($w, [4, 4, 18, 4], "floating window with normal border");
|
||||||
|
+
|
||||||
|
+ cmd 'border pixel 2';
|
||||||
|
+ is_net_frame_extents($w, [2, 2, 2, 2], "floating window with pixel border");
|
||||||
|
+
|
||||||
|
+ cmd 'border none';
|
||||||
|
+ is_net_frame_extents($w, [0, 0, 0, 0], "floating window with no border");
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+done_testing;
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
PRGNAM=i3
|
PRGNAM=i3
|
||||||
VERSION=${VERSION:-4.24}
|
VERSION=${VERSION:-4.24}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-2}
|
||||||
TAG=${TAG:-_EXs}
|
TAG=${TAG:-_EXs}
|
||||||
|
|
||||||
if [ -z "$ARCH" ]; then
|
if [ -z "$ARCH" ]; then
|
||||||
@@ -74,6 +74,10 @@ find -L . \
|
|||||||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
|
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
|
||||||
|
|
||||||
|
patch -p1 --verbose -i ${CWD}/cfa4cf16bea809c7c715a86c428757e577c85254.patch
|
||||||
|
patch -p1 --verbose -i ${CWD}/2746e0319b03a8a5a02b57a69b1fb47e0a9c22f1.patch
|
||||||
|
patch -p1 --verbose -i ${CWD}/853b0d9161a5f99c8491751590229a449e4076b6.patch
|
||||||
|
|
||||||
# Configure, build, and install:
|
# Configure, build, and install:
|
||||||
export CFLAGS="-g3 $SLKCFLAGS -flto -rdynamic"
|
export CFLAGS="-g3 $SLKCFLAGS -flto -rdynamic"
|
||||||
export CXXFLAGS="-g3 $SLKCFLAGS -flto -rdynamic"
|
export CXXFLAGS="-g3 $SLKCFLAGS -flto -rdynamic"
|
||||||
|
|||||||
@@ -24,8 +24,8 @@
|
|||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=keepassxc
|
PRGNAM=keepassxc
|
||||||
VERSION=${VERSION:-2.7.9}
|
VERSION=${VERSION:-2.7.10}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-2}
|
||||||
TAG=${TAG:-_EXs}
|
TAG=${TAG:-_EXs}
|
||||||
|
|
||||||
if [ -z "$ARCH" ]; then
|
if [ -z "$ARCH" ]; then
|
||||||
@@ -74,8 +74,8 @@ mkdir -p build
|
|||||||
cd build
|
cd build
|
||||||
export CFLAGS="$SLKCFLAGS"
|
export CFLAGS="$SLKCFLAGS"
|
||||||
export CXXFLAGS="$CFLAGS -fvectorize -fno-rtti"
|
export CXXFLAGS="$CFLAGS -fvectorize -fno-rtti"
|
||||||
export LDFLAGS="-ltermcap -flto -rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-s "
|
export LDFLAGS="-ltermcap -rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-s -Wl,-O2 "
|
||||||
cmake \
|
cmake -GNinja \
|
||||||
-DCMAKE_C_FLAGS:STRING="$CFLAGS" \
|
-DCMAKE_C_FLAGS:STRING="$CFLAGS" \
|
||||||
-DCMAKE_CXX_FLAGS:STRING="$CFLAGS" \
|
-DCMAKE_CXX_FLAGS:STRING="$CFLAGS" \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
@@ -96,8 +96,8 @@ cd build
|
|||||||
-DWITH_APP_BUNDLE=OFF \
|
-DWITH_APP_BUNDLE=OFF \
|
||||||
..
|
..
|
||||||
|
|
||||||
make -j$(nproc)
|
ninja -j$(nproc)
|
||||||
make install DESTDIR=$PKG
|
DESTDIR=$PKG ninja install
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
PRGNAM="keepassxc"
|
PRGNAM="keepassxc"
|
||||||
VERSION="2.7.9"
|
VERSION="2.7.10"
|
||||||
HOMEPAGE="https://github.com/keepassxreboot/keepassxc"
|
HOMEPAGE="https://github.com/keepassxreboot/keepassxc"
|
||||||
DOWNLOAD="https://github.com/keepassxreboot/keepassxc/releases/download/2.7.9/keepassxc-2.7.9-src.tar.xz"
|
DOWNLOAD="https://github.com/keepassxreboot/keepassxc/releases/download/2.7.10/keepassxc-2.7.10-src.tar.xz"
|
||||||
MD5SUM="1d135d224a4f6d4767caa9d8c254767e"
|
MD5SUM="31dfc525fe84bc1985bb011482b8b327"
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
REQUIRES="argon2 libsodium qrencode qt5 Botan libminizip"
|
REQUIRES="argon2 libsodium qrencode qt5 Botan libminizip"
|
||||||
|
|||||||
248
kernel/build-all-kernels.sh
Executable file
248
kernel/build-all-kernels.sh
Executable file
@@ -0,0 +1,248 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright 2018, 2021, 2022, 2023, 2024 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.
|
||||||
|
|
||||||
|
# This script uses the SlackBuild scripts present here to build a
|
||||||
|
# complete set of kernel packages for the currently running architecture.
|
||||||
|
# It needs to be run once on 64-bit (uname -m = x86_64) and once on IA32
|
||||||
|
# (uname -m = i586 or i686).
|
||||||
|
|
||||||
|
# In spite of this being named "build-all-kernels.sh", you don't have to build
|
||||||
|
# all the packages or all the kernels that there are configs for. Set the
|
||||||
|
# variables below to tune this for your needs.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
|
||||||
|
if [ -z "$VERSION" ]; then
|
||||||
|
# Get the filename of the newest kernel tarball:
|
||||||
|
KERNEL_SOURCE_FILE="$(/bin/ls -t linux-*.tar.?z | head -n 1 )"
|
||||||
|
if echo $KERNEL_SOURCE_FILE | grep -q rc ; then # need to get rc versions a bit differently
|
||||||
|
VERSION=$(/bin/ls -t linux-*.tar.?z | head -n 1 | rev | cut -f 3- -d . | cut -f 1,2 -d - | rev)
|
||||||
|
else # normal release version
|
||||||
|
VERSION=$(/bin/ls -t linux-*.tar.?z | head -n 1 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
|
||||||
|
# If you don't want to build the kernel source package, set this to anything
|
||||||
|
# other than "yes":
|
||||||
|
BUILD_KERNEL_SOURCE_PACKAGE=${BUILD_KERNEL_SOURCE_PACKAGE:-yes}
|
||||||
|
|
||||||
|
# If you don't want to build the kernel package(s), set this to "no".
|
||||||
|
# If you only want to build one kernel package, set this to the name of the
|
||||||
|
# kernel (i.e. "generic").
|
||||||
|
# To build kernel packages for every available config, set to "yes".
|
||||||
|
BUILD_KERNEL_PACKAGE=${BUILD_KERNEL_PACKAGE:-yes}
|
||||||
|
|
||||||
|
# Build the kernel-headers package?
|
||||||
|
BUILD_KERNEL_HEADERS_PACKAGE=${BUILD_KERNEL_HEADERS_PACKAGE:-yes}
|
||||||
|
|
||||||
|
# Where should we find the kernel config files?
|
||||||
|
KERNEL_CONFIGDIR=${KERNEL_CONFIGDIR:-./kernel-configs}
|
||||||
|
|
||||||
|
# Make KERNEL_CONFIGDIR an absolute path:
|
||||||
|
KERNEL_CONFIGDIR=$(realpath $KERNEL_CONFIGDIR)
|
||||||
|
export KERNEL_CONFIGDIR
|
||||||
|
|
||||||
|
# By default, install the packages as we build them.
|
||||||
|
INSTALL_PACKAGES=${INSTALL_PACKAGES:-YES}
|
||||||
|
|
||||||
|
# By default, have the kernel package(s) generate an initrd upon installation:
|
||||||
|
AUTO_GENERATE_INITRD=${AUTO_GENERATE_INITRD:-YES}
|
||||||
|
export AUTO_GENERATE_INITRD
|
||||||
|
|
||||||
|
# By default, update the initrd. But if both INSTALL_PACKAGES and
|
||||||
|
# AUTO_GENERATE_INITRD are YES, then installing the kernel-generic package
|
||||||
|
# will generate the initrd, so no need to do this twice.
|
||||||
|
if [ "$INSTALL_PACKAGES" = "YES" -a "$AUTO_GENERATE_INITRD" = "YES" ]; then
|
||||||
|
UPDATE_INITRD=${UPDATE_INITRD:-NO}
|
||||||
|
else
|
||||||
|
UPDATE_INITRD=${UPDATE_INITRD:-YES}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clean kernels before building them. Not doing so quit working some time
|
||||||
|
# after 4.19.x.
|
||||||
|
export KERNEL_CLEAN=YES
|
||||||
|
|
||||||
|
# Set this to true if you'd like to write the .config back to its source
|
||||||
|
# after running "make oldconfig". This ensures that the config file is the
|
||||||
|
# exact one used to build, and is sorted properly.
|
||||||
|
REGEN_CONFIG=${REGEN_CONFIG:-true}
|
||||||
|
export REGEN_CONFIG
|
||||||
|
|
||||||
|
# We'll figure this out if you build the kernel-source package, otherwise
|
||||||
|
# you better set it if it'll be needed to match the .config filename.
|
||||||
|
LOCALVERSION=${LOCALVERSION:-}
|
||||||
|
|
||||||
|
# A list of recipes for build may be passed in the $RECIPES variable, otherwise
|
||||||
|
# we have defaults based on uname -m:
|
||||||
|
if [ -z "$RECIPES" ]; then
|
||||||
|
if uname -m | grep -wq x86_64 ; then
|
||||||
|
RECIPES="x86_64"
|
||||||
|
elif uname -m | grep -wq i.86 ; then
|
||||||
|
RECIPES="IA32"
|
||||||
|
else
|
||||||
|
echo "Error: no build recipes available for $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Main build loop:
|
||||||
|
for recipe in $RECIPES ; do
|
||||||
|
|
||||||
|
# Build recipes are defined here. These will select the appropriate .config
|
||||||
|
# files and package naming scheme, and define the output location.
|
||||||
|
if [ "$recipe" = "x86_64" ]; then
|
||||||
|
# Recipe for x86_64:
|
||||||
|
export CONFIG_SUFFIX=".x64"
|
||||||
|
OUTPUT=${OUTPUT:-${TMP}/output-x86_64-${VERSION}}
|
||||||
|
elif [ "$recipe" = "IA32" ]; then
|
||||||
|
# Recipe for IA32:
|
||||||
|
export CONFIG_SUFFIX=".ia32"
|
||||||
|
OUTPUT=${OUTPUT:-${TMP}/output-ia32-${VERSION}}
|
||||||
|
else
|
||||||
|
echo "Error: recipe ${recipe} not implemented"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mkdir -p $OUTPUT
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "*************************************************"
|
||||||
|
echo "* Building kernels for recipe ${recipe}..."
|
||||||
|
echo "*************************************************"
|
||||||
|
echo
|
||||||
|
|
||||||
|
if [ "$BUILD_KERNEL_SOURCE_PACKAGE" = "yes" ]; then
|
||||||
|
# Build kernel-source package.
|
||||||
|
# Does a generic config file exist?
|
||||||
|
# A generic config is defined here as one that does not use a LOCALVERSION.
|
||||||
|
# If we don't see that, we'll look for this version plus any LOCALVERSION.
|
||||||
|
# If that doesn't match, we take the newest config with the proper $CONFIG_SUFFIX.
|
||||||
|
if [ -r $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} ]; then
|
||||||
|
KERNEL_CONFIG="config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
elif [ -r "$(/bin/ls -t $KERNEL_CONFIGDIR/config-${VERSION}*${CONFIG_SUFFIX} 2> /dev/null | head -n 1)" ]; then
|
||||||
|
KERNEL_CONFIG="$(basename $(/bin/ls $KERNEL_CONFIGDIR/config-${VERSION}*${CONFIG_SUFFIX} 2> /dev/null | head -n 1))"
|
||||||
|
elif [ -r "$(/bin/ls -t $KERNEL_CONFIGDIR/config-*${CONFIG_SUFFIX} 2> /dev/null | head -n 1)" ]; then
|
||||||
|
KERNEL_CONFIG="$(basename $(/bin/ls $KERNEL_CONFIGDIR/config-*${CONFIG_SUFFIX} 2> /dev/null | head -n 1))"
|
||||||
|
else
|
||||||
|
echo "ERROR: no suitable config file found for ${CONFIG_SUFFIX}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
export KERNEL_CONFIG
|
||||||
|
# Build:
|
||||||
|
KERNEL_SOURCE_PACKAGE_NAME=$(PRINT_PACKAGE_NAME=YES VERSION=$VERSION BUILD=$BUILD ./kernel-source.SlackBuild)
|
||||||
|
VERSION=$VERSION BUILD=$BUILD ./kernel-source.SlackBuild
|
||||||
|
mv ${TMP}/${KERNEL_SOURCE_PACKAGE_NAME} $OUTPUT || exit 1
|
||||||
|
if [ "${INSTALL_PACKAGES}" = "YES" ]; then
|
||||||
|
installpkg ${OUTPUT}/${KERNEL_SOURCE_PACKAGE_NAME} || exit 1
|
||||||
|
fi
|
||||||
|
else # otherwise, still stage the sources in $TMP/package-kernel-source:
|
||||||
|
echo "Not building kernel-source package."
|
||||||
|
sleep 2
|
||||||
|
ONLY_STAGE_KERNEL_SOURCE=yes VERSION=$VERSION BUILD=$BUILD ./kernel-source.SlackBuild
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build kernel+modules package(s) for every config file with a matching $CONFIG_SUFFIX:
|
||||||
|
for configfile in $KERNEL_CONFIGDIR/config-*${CONFIG_SUFFIX} ; do
|
||||||
|
|
||||||
|
# Set the LOCALVERSION from this .config:
|
||||||
|
LOCALVERSION=$(cat $configfile | grep "^CONFIG_LOCALVERSION=" | cut -f 2 -d = | tr -d \")
|
||||||
|
|
||||||
|
# Set the name for this kernel.
|
||||||
|
# If there's no LOCALVERSION, the name is "generic".
|
||||||
|
# Otherwise, it is the LOCALVERSION minus any leading dash.
|
||||||
|
if [ -z "$LOCALVERSION" ]; then
|
||||||
|
KERNEL_NAME=generic
|
||||||
|
else
|
||||||
|
KERNEL_NAME=$LOCALVERSION
|
||||||
|
# If there's a leading dash, remove it:
|
||||||
|
if [ "$(echo $KERNEL_NAME | cut -b 1)" = "-" ]; then
|
||||||
|
KERNEL_NAME="$(echo $KERNEL_NAME | cut -b 2-)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
export KERNEL_NAME
|
||||||
|
|
||||||
|
# Are we building this kernel?
|
||||||
|
if [ ! "$BUILD_KERNEL_PACKAGE" = "yes" ]; then
|
||||||
|
if [ ! "$BUILD_KERNEL_PACKAGE" = "$KERNEL_NAME" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We will build in the just-built kernel tree. First, let's put back the
|
||||||
|
# symlinks:
|
||||||
|
( cd $TMP/package-kernel-source
|
||||||
|
sh install/doinst.sh 2> /dev/null
|
||||||
|
)
|
||||||
|
|
||||||
|
# The initial release of any new kernel branch (e.g. 6.14.0) has a quirk -
|
||||||
|
# The tarball will be labeled linux-6.14.tar.xz, but the kernel's version
|
||||||
|
# in the Makefile will be 6.14.0. If we are regenerating kernel config
|
||||||
|
# files, then we need to make sure that we're still using the proper
|
||||||
|
# version number at this point:
|
||||||
|
if [ ! -r "$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}" -a -r "$KERNEL_CONFIGDIR/config-${VERSION}.0${LOCALVERSION}${CONFIG_SUFFIX}" ]; then
|
||||||
|
VERSION=${VERSION}.0
|
||||||
|
fi
|
||||||
|
|
||||||
|
KERNEL_GENERIC_PACKAGE_NAME=$(PRINT_PACKAGE_NAME=YES KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux KERNEL_CONFIG=$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} CONFIG_SUFFIX=${CONFIG_SUFFIX} KERNEL_OUTPUT_DIRECTORY=$OUTPUT/kernels/${KERNEL_NAME}.s BUILD=$BUILD ./kernel-generic.SlackBuild)
|
||||||
|
|
||||||
|
KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux KERNEL_CONFIG=$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} CONFIG_SUFFIX=${CONFIG_SUFFIX} KERNEL_OUTPUT_DIRECTORY=$OUTPUT/kernels/${KERNEL_NAME}.s BUILD=$BUILD ./kernel-generic.SlackBuild
|
||||||
|
|
||||||
|
if [ -r ${TMP}/${KERNEL_GENERIC_PACKAGE_NAME} ]; then
|
||||||
|
mv ${TMP}/${KERNEL_GENERIC_PACKAGE_NAME} $OUTPUT
|
||||||
|
else
|
||||||
|
echo "kernel-${KERNEL_NAME} build failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "${INSTALL_PACKAGES}" = "YES" ]; then
|
||||||
|
installpkg ${OUTPUT}/${KERNEL_GENERIC_PACKAGE_NAME} || exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done # building kernel+modules package(s).
|
||||||
|
|
||||||
|
if [ "$BUILD_KERNEL_HEADERS_PACKAGE" = "yes" ]; then
|
||||||
|
# Build kernel-headers:
|
||||||
|
KERNEL_HEADERS_PACKAGE_NAME=$(PRINT_PACKAGE_NAME=YES KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux BUILD=$BUILD ./kernel-headers.SlackBuild)
|
||||||
|
KERNEL_SOURCE=$TMP/package-kernel-source/usr/src/linux BUILD=$BUILD ./kernel-headers.SlackBuild
|
||||||
|
if [ -r ${TMP}/${KERNEL_HEADERS_PACKAGE_NAME} ]; then
|
||||||
|
mv ${TMP}/${KERNEL_HEADERS_PACKAGE_NAME} $OUTPUT
|
||||||
|
else
|
||||||
|
echo "kernel-headers build failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "${INSTALL_PACKAGES}" = "YES" ]; then
|
||||||
|
upgradepkg --reinstall --install-new ${OUTPUT}/${KERNEL_HEADERS_PACKAGE_NAME} || exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update initrd:
|
||||||
|
if [ "${UPDATE_INITRD}" = "YES" ]; then
|
||||||
|
echo "Updating initrd with geninitrd..."
|
||||||
|
/usr/sbin/geninitrd
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "${recipe} kernel packages done!"
|
||||||
|
echo
|
||||||
|
|
||||||
|
done
|
||||||
15
kernel/doinst.sh/doinst.sh-kernel
Normal file
15
kernel/doinst.sh/doinst.sh-kernel
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Only run this if we aren't in the installer.
|
||||||
|
# We'll do these things after the install.
|
||||||
|
# First we'll check for an old version of setup.01.mkinitrd. If we find one,
|
||||||
|
# let's skip all this. We could be upgrading from 15.0...
|
||||||
|
if [ -r var/lib/pkgtools/setup/setup.01.mkinitrd ]; then
|
||||||
|
if ! grep -wq vmlinuz-generic-smp var/lib/pkgtools/setup/setup.01.mkinitrd 2> /dev/null ; then
|
||||||
|
if [ -z "$INSIDE_INSTALLER" ]; then
|
||||||
|
# Generate the initrd and remove orphaned initrds.
|
||||||
|
# Options (including disabling this) may be found in /etc/default/geninitrd.
|
||||||
|
if [ -x usr/sbin/geninitrd ]; then
|
||||||
|
usr/sbin/geninitrd
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
11300
kernel/kernel-configs/config-6.12.33.ia32
Normal file
11300
kernel/kernel-configs/config-6.12.33.ia32
Normal file
File diff suppressed because it is too large
Load Diff
11417
kernel/kernel-configs/config-6.12.33.x64
Normal file
11417
kernel/kernel-configs/config-6.12.33.x64
Normal file
File diff suppressed because it is too large
Load Diff
217
kernel/kernel-generic.SlackBuild
Executable file
217
kernel/kernel-generic.SlackBuild
Executable file
@@ -0,0 +1,217 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright 2018, 2020, 2024 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.
|
||||||
|
|
||||||
|
# To use this script, point it to a Linux kernel source tree and a .config
|
||||||
|
# file by setting the appropriate environment variables:
|
||||||
|
#
|
||||||
|
# KERNEL_SOURCE=/usr/src/linux KERNEL_CONFIG=./kernel-configs/config-6.9.9-generic.x64 ./kernel-generic.SlackBuild
|
||||||
|
#
|
||||||
|
# It can also build the huge (or any other) kernel:
|
||||||
|
#
|
||||||
|
# KERNEL_NAME=huge KERNEL_SOURCE=/usr/src/linux KERNEL_CONFIG=./kernel-configs/config-6.9.9.x64 ./kernel-generic.SlackBuild
|
||||||
|
#
|
||||||
|
# By default, it will call the package "kernel-generic" and use the source and
|
||||||
|
# .config already in /usr/src/linux (if possible).
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
KERNEL_NAME=${KERNEL_NAME:-generic}
|
||||||
|
KERNEL_SOURCE=${KERNEL_SOURCE:-/usr/src/linux}
|
||||||
|
KERNEL_CONFIG=${KERNEL_CONFIG:-/usr/src/linux/.config}
|
||||||
|
CONFIG_SUFFIX=${CONFIG_SUFFIX:-}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
|
||||||
|
# The CONFIG_DEBUG_INFO_BTF_MODULES option adds a huge amount of debugging
|
||||||
|
# data to the modules which we don't actually need. We'll strip debugging
|
||||||
|
# information from kernel modules by default. If you are building a debug
|
||||||
|
# kernel and wish to retain this data, export the variable below set to "0".
|
||||||
|
STRIP_DEBUG=${STRIP_DEBUG:-1}
|
||||||
|
|
||||||
|
# Let's export the variable with the name needed by the kernel's Makefiles,
|
||||||
|
# just for good measure.
|
||||||
|
if [ "$STRIP_DEBUG" = "1" ]; then
|
||||||
|
export INSTALL_MOD_STRIP=$STRIP_DEBUG
|
||||||
|
else
|
||||||
|
unset STRIP_DEBUG
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set this to true if you'd like to write the .config back to its source
|
||||||
|
# after running "make oldconfig". This ensures that the config file is the
|
||||||
|
# exact one used to build, and is sorted properly.
|
||||||
|
REGEN_CONFIG=${REGEN_CONFIG:-false}
|
||||||
|
|
||||||
|
# By default, have the kernel package(s) generate an initrd upon installation:
|
||||||
|
AUTO_GENERATE_INITRD=${AUTO_GENERATE_INITRD:-YES}
|
||||||
|
|
||||||
|
if [ ! -r "${KERNEL_CONFIG}" ]; then
|
||||||
|
echo "Error: the KERNEL_CONFIG environment variable needs to be set to the"
|
||||||
|
echo ".config file to be used to build this kernel. Example:"
|
||||||
|
echo "KERNEL_NAME=generic KERNEL_SOURCE=/usr/src/linux KERNEL_CONFIG=./kernel-configs/config-6.9.9.x64 ./kernel-generic.SlackBuild"
|
||||||
|
echo "Tried to look for: ${KERNEL_CONFIG}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ ! -d "${KERNEL_SOURCE}" ]; then
|
||||||
|
echo "Error: kernel source directory ${KERNEL_SOURCE} does not exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Get the kernel version from the kernel Makefile:
|
||||||
|
VERSION=$(grep "^VERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)
|
||||||
|
# Set LOCALVERSION to the value found inside the .config:
|
||||||
|
LOCALVERSION="$(cat ${KERNEL_SOURCE}/.config 2> /dev/null | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
|
||||||
|
# The default kernel arch is x86 for all 32-bit and 64-bit x86:
|
||||||
|
if [ -z "${KERNEL_ARCH}" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
i?86) KERNEL_ARCH=x86 ;;
|
||||||
|
x86_64) KERNEL_ARCH=x86 ;;
|
||||||
|
# Use uname -m for all other archs:
|
||||||
|
*) KERNEL_ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
# If this variable is set to an output directory, we will also put copies of
|
||||||
|
# System.map.gz, bzImage, and config in there:
|
||||||
|
KERNEL_OUTPUT_DIRECTORY=${KERNEL_OUTPUT_DIRECTORY:-}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# We will need to copy the config and run make olddefconfig and make
|
||||||
|
# prepare in order to generate kernel/bounds.s, where we can find
|
||||||
|
# the true $PACKAGE_ARCH. Use olddefconfig (not oldconfig) to prevent
|
||||||
|
# stalling if user input would be required.
|
||||||
|
if [ ! "${KERNEL_CONFIG}" = "${KERNEL_SOURCE}/.config" ]; then
|
||||||
|
cp -a ${KERNEL_CONFIG} ${KERNEL_SOURCE}/.config
|
||||||
|
fi
|
||||||
|
cd ${KERNEL_SOURCE}
|
||||||
|
make olddefconfig 1> /dev/null 2> /dev/null
|
||||||
|
make prepare 1> /dev/null 2> /dev/null
|
||||||
|
PACKAGE_ARCH=$(cat kernel/bounds.s | grep -w "\-march=.*" | tr " " "\n" | grep -w "\-march=.*" | cut -f 2 -d = | tr - _)
|
||||||
|
# Set LOCALVERSION to the value found inside the .config:
|
||||||
|
LOCALVERSION="$(cat .config 2> /dev/null | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
|
||||||
|
echo "kernel-${KERNEL_NAME}-$(echo ${VERSION} | tr - _)$(echo ${LOCALVERSION} | tr - _)-${PACKAGE_ARCH}-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-kernel-${KERNEL_NAME}
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
|
||||||
|
# Set the variable $KERNEL_CLEAN to anything to run "make clean" before the
|
||||||
|
# build. Default is to start compiling in the tree as we found it.
|
||||||
|
if [ ! -z "${KERNEL_CLEAN}" ]; then
|
||||||
|
( cd ${KERNEL_SOURCE}
|
||||||
|
echo "Cleaning kernel source (make clean)..."
|
||||||
|
make clean
|
||||||
|
# Make sure header files aren't missing...
|
||||||
|
make prepare
|
||||||
|
# Don't package the kernel in the sources:
|
||||||
|
find . -name "*Image" -exec rm "{}" \+
|
||||||
|
# No need for these:
|
||||||
|
rm -f .config.old .version
|
||||||
|
find . -name "*.cmd" -exec rm -f "{}" \+
|
||||||
|
rm .*.d
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy the .config into the kernel source directory (unless it's there already)
|
||||||
|
if [ ! "${KERNEL_CONFIG}" = "${KERNEL_SOURCE}/.config" ]; then
|
||||||
|
echo "Copying the .config file to the kernel source tree:"
|
||||||
|
cp -a --verbose ${KERNEL_CONFIG} ${KERNEL_SOURCE}/.config
|
||||||
|
fi
|
||||||
|
|
||||||
|
( cd ${KERNEL_SOURCE}
|
||||||
|
echo "Running make oldconfig..."
|
||||||
|
make oldconfig || exit 1
|
||||||
|
|
||||||
|
# Write back the .config if requested:
|
||||||
|
if [ ! "$REGEN_CONFIG" = "false" ]; then
|
||||||
|
echo "Rewriting .config as: $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
cp -a .config $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running a preliminary make (needed to create modules.builtin.modinfo)..."
|
||||||
|
make $NUMJOBS || exit 1
|
||||||
|
echo "Building kernel modules..."
|
||||||
|
make $NUMJOBS modules || exit 1
|
||||||
|
echo "Installing kernel modules to $PKG..."
|
||||||
|
make INSTALL_MOD_PATH=$PKG INSTALL_MOD_STRIP=$STRIP_DEBUG modules_install || exit 1
|
||||||
|
# Fix build and source symlinks if they are pointing into $TMP:
|
||||||
|
( cd $PKG/lib/modules/${VERSION}${LOCALVERSION}
|
||||||
|
for symlink in build source ; do
|
||||||
|
target=$(readlink $symlink)
|
||||||
|
if echo $target | grep -q "^$TMP/package-kernel-source/" ; then
|
||||||
|
rm -f $symlink
|
||||||
|
ln -sf $(echo $target | sed "s|$TMP/package-kernel-source/|/|g") $symlink
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)
|
||||||
|
# Make modules.dep:
|
||||||
|
depmod -b $PKG -a ${VERSION}${LOCALVERSION}
|
||||||
|
echo "Building kernel..."
|
||||||
|
make $NUMJOBS bzImage || make bzImage || exit 1
|
||||||
|
# Output files to a directory, if requested:
|
||||||
|
if [ ! -z "${KERNEL_OUTPUT_DIRECTORY}" ]; then
|
||||||
|
echo "Copying files to ${KERNEL_OUTPUT_DIRECTORY}..."
|
||||||
|
mkdir -p ${KERNEL_OUTPUT_DIRECTORY}
|
||||||
|
rm -f ${KERNEL_OUTPUT_DIRECTORY}/*
|
||||||
|
cp -a --verbose System.map ${KERNEL_OUTPUT_DIRECTORY}
|
||||||
|
cp -a --verbose .config ${KERNEL_OUTPUT_DIRECTORY}/config
|
||||||
|
cp -a --verbose arch/${KERNEL_ARCH}/boot/bzImage ${KERNEL_OUTPUT_DIRECTORY}
|
||||||
|
gzip -9 ${KERNEL_OUTPUT_DIRECTORY}/System.map
|
||||||
|
fi
|
||||||
|
echo "Preparing the package in $PKG..."
|
||||||
|
mkdir -p $PKG/boot
|
||||||
|
cp -a --verbose System.map $PKG/boot/System.map-${VERSION}${LOCALVERSION}
|
||||||
|
cp -a --verbose .config $PKG/boot/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}
|
||||||
|
cp -a --verbose arch/${KERNEL_ARCH}/boot/bzImage $PKG/boot/vmlinuz-${VERSION}${LOCALVERSION}
|
||||||
|
# Make symlinks:
|
||||||
|
ln -sf System.map-${VERSION}${LOCALVERSION} $PKG/boot/System.map
|
||||||
|
ln -sf config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} $PKG/boot/config
|
||||||
|
ln -sf vmlinuz-${VERSION}${LOCALVERSION} $PKG/boot/vmlinuz-${KERNEL_NAME}
|
||||||
|
ln -sf vmlinuz-${VERSION}${LOCALVERSION} $PKG/boot/vmlinuz
|
||||||
|
) || exit 1
|
||||||
|
|
||||||
|
# Fetch the kernel architecture from the source tree:
|
||||||
|
cd ${KERNEL_SOURCE}
|
||||||
|
PACKAGE_ARCH=$(cat kernel/bounds.s | grep -w "\-march=.*" | tr " " "\n" | grep -w "\-march=.*" | cut -f 2 -d = | tr - _)
|
||||||
|
|
||||||
|
mkdir $PKG/install
|
||||||
|
if [ -r $CWD/slack-desc/slack-desc.kernel-${KERNEL_NAME} ]; then
|
||||||
|
cat $CWD/slack-desc/slack-desc.kernel-${KERNEL_NAME} > $PKG/install/slack-desc
|
||||||
|
else
|
||||||
|
cat $CWD/slack-desc/slack-desc.kernel-template | sed "s/%PACKAGE_NAME%/kernel-${KERNEL_NAME}/g" > $PKG/install/slack-desc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$AUTO_GENERATE_INITRD" = "YES" ]; then
|
||||||
|
echo "export KERNEL=/boot/vmlinuz-${VERSION}${LOCALVERSION}" > $PKG/install/doinst.sh
|
||||||
|
echo "export KERNEL_DOINST=true" >> $PKG/install/doinst.sh
|
||||||
|
cat $CWD/doinst.sh/doinst.sh-kernel >> $PKG/install/doinst.sh
|
||||||
|
else
|
||||||
|
touch $PKG/install/doinst.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make the package:
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n --prepend $TMP/kernel-$(echo ${KERNEL_NAME} | tr - _)-$(echo ${VERSION} | tr - _)$(echo ${LOCALVERSION} | tr - _)-${PACKAGE_ARCH}-$BUILD.txz
|
||||||
91
kernel/kernel-headers.SlackBuild
Executable file
91
kernel/kernel-headers.SlackBuild
Executable file
@@ -0,0 +1,91 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright 2018, 2024 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.
|
||||||
|
|
||||||
|
# To use this script, point it to a Linux kernel source tree, and it will make
|
||||||
|
# the kernel-headers package using the .config to get all needed package
|
||||||
|
# version information:
|
||||||
|
#
|
||||||
|
# KERNEL_SOURCE=/usr/src/linux ./kernel-headers.SlackBuild
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PKGNAM=${PKGNAM:-kernel-headers}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
KERNEL_SOURCE=${KERNEL_SOURCE:-/usr/src/linux}
|
||||||
|
if [ -z "${HEADERS_ARCH}" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
i?86) HEADERS_ARCH=x86 ;;
|
||||||
|
x86_64) HEADERS_ARCH=x86 ;;
|
||||||
|
# Use uname -m for all other archs:
|
||||||
|
*) HEADERS_ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if [ ! -d "${KERNEL_SOURCE}" ]; then
|
||||||
|
echo "Error: kernel source directory ${KERNEL_SOURCE} does not exist."
|
||||||
|
exit 1
|
||||||
|
elif [ ! -r ${KERNEL_SOURCE}/.config ]; then
|
||||||
|
echo "Error: a .config was not found in ${KERNEL_SOURCE}."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Get the kernel version from the kernel Makefile:
|
||||||
|
VERSION=$(grep "^VERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " ${KERNEL_SOURCE}/Makefile | rev | cut -f 1 -d ' ' | rev)
|
||||||
|
# Set LOCALVERSION to the value found inside the .config:
|
||||||
|
LOCALVERSION="$(cat ${KERNEL_SOURCE}/.config 2> /dev/null | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# The LOCALVERSION never makes it into the headers, so no point including it:
|
||||||
|
echo "kernel-headers-$(echo ${VERSION} | tr - _)-${HEADERS_ARCH}-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
mkdir -p $PKG/usr
|
||||||
|
|
||||||
|
# Generate the kernel headers and clean them up:
|
||||||
|
( cd ${KERNEL_SOURCE}
|
||||||
|
echo "Generating headers from the Linux kernel source tree in ${KERNEL_SOURCE}:"
|
||||||
|
make headers_install ARCH=${HEADERS_ARCH} INSTALL_HDR_PATH=$PKG/usr
|
||||||
|
cd $PKG/usr/include
|
||||||
|
# You won't want these files. The ones in libdrm work better.
|
||||||
|
rm -rf drm
|
||||||
|
# This next part seems pretty much cosmetic, but since we've been doing this
|
||||||
|
# for a long time (and others also do), we'll stick with it:
|
||||||
|
mv asm asm-${HEADERS_ARCH}
|
||||||
|
ln -sf asm-${HEADERS_ARCH} asm
|
||||||
|
# Remove unneeded dotfiles:
|
||||||
|
find . -name ".??*" -exec rm -f {} \+
|
||||||
|
)
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc/slack-desc.kernel-headers > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
# Make the package:
|
||||||
|
cd $PKG
|
||||||
|
# The LOCALVERSION never makes it into the headers, so no point including it:
|
||||||
|
/sbin/makepkg -l y -c n $TMP/kernel-headers-$(echo ${VERSION} | tr - _)-${HEADERS_ARCH}-$BUILD.txz
|
||||||
305
kernel/kernel-source.SlackBuild
Executable file
305
kernel/kernel-source.SlackBuild
Executable file
@@ -0,0 +1,305 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Copyright 2018, 2020, 2021, 2023, 2024, 2025 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=${PKGNAM:-kernel-source}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
||||||
|
TMP=${TMP:-/tmp}
|
||||||
|
PKG=$TMP/package-$PKGNAM
|
||||||
|
|
||||||
|
# If a $VERSION is not passed to this script, use the newest linux-*.tar.?z
|
||||||
|
# found in this directory:
|
||||||
|
VERSION=${VERSION:-$(/bin/ls -t linux-*.tar.?z | head -n 1 | rev | cut -f 3- -d . | rev | cut -f2- -d -)}
|
||||||
|
if ! /bin/ls linux-*.tar.?z 1> /dev/null 2> /dev/null ; then
|
||||||
|
echo "Error: kernel source not found. (/bin/ls linux-*.tar.?z)"
|
||||||
|
else
|
||||||
|
USINGVER="Using kernel source linux-${VERSION}.tar.?z."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This function will revert or apply patches that are present here.
|
||||||
|
# Directories that are currently supported:
|
||||||
|
# patches-revert-${VERSION} (revert patches from this directory if kernel version matches)
|
||||||
|
# patches-revert-${ARCH} (revert patches from this directory if $ARCH matches)
|
||||||
|
# patches-${VERSION} (apply patches from this directory if kernel version matches)
|
||||||
|
# patches-${ARCH} (apply patches from this directory if $ARCH matches)
|
||||||
|
# All the applied/reverted patches will be copied to the root of the kernel source tree.
|
||||||
|
apply_patches() {
|
||||||
|
# First do patches-revert:
|
||||||
|
if [ -d $CWD/patches-revert-${VERSION} ]; then
|
||||||
|
if [ "$1" = "VERBOSE" ]; then
|
||||||
|
echo "Reverting kernel patches in $CWD/patches-revert-${VERSION} and copying patches to $PKG/usr/src/linux-${VERSION}..."
|
||||||
|
zcat $CWD/patches-revert-${VERSION}/*.gz | patch -p1 -R --backup --suffix=.orig || exit 1
|
||||||
|
else
|
||||||
|
zcat $CWD/patches-revert-${VERSION}/*.gz | patch -p1 -R --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
|
||||||
|
fi
|
||||||
|
cp -a $CWD/patches-revert-${VERSION}/*.gz .
|
||||||
|
fi
|
||||||
|
if [ -d $CWD/patches-revert-${ARCH} ]; then
|
||||||
|
if [ "$1" = "VERBOSE" ]; then
|
||||||
|
echo "Reverting kernel patches in $CWD/patches-revert-${ARCH} and copying patches to $PKG/usr/src/linux-${VERSION}..."
|
||||||
|
zcat $CWD/patches-revert-${ARCH}/*.gz | patch -p1 -R --backup --suffix=.orig || exit 1
|
||||||
|
else
|
||||||
|
zcat $CWD/patches-revert-${ARCH}/*.gz | patch -p1 -R --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
|
||||||
|
fi
|
||||||
|
cp -a $CWD/patches-revert-${ARCH}/*.gz .
|
||||||
|
fi
|
||||||
|
# Then apply patches:
|
||||||
|
if [ -d $CWD/patches-${VERSION} ]; then
|
||||||
|
if [ "$1" = "VERBOSE" ]; then
|
||||||
|
echo "Applying kernel patches in $CWD/patches-${VERSION} and copying patches to $PKG/usr/src/linux-${VERSION}..."
|
||||||
|
zcat $CWD/patches-${VERSION}/*.gz | patch -p1 --backup --suffix=.orig || exit 1
|
||||||
|
else
|
||||||
|
zcat $CWD/patches-${VERSION}/*.gz | patch -p1 --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
|
||||||
|
fi
|
||||||
|
cp -a $CWD/patches-${VERSION}/*.gz .
|
||||||
|
fi
|
||||||
|
if [ -d $CWD/patches-${ARCH} ]; then
|
||||||
|
if [ "$1" = "VERBOSE" ]; then
|
||||||
|
echo "Applying kernel patches in $CWD/patches-${ARCH} and copying patches to $PKG/usr/src/linux-${VERSION}..."
|
||||||
|
zcat $CWD/patches-${ARCH}/*.gz | patch -p1 --backup --suffix=.orig || exit 1
|
||||||
|
else
|
||||||
|
zcat $CWD/patches-${ARCH}/*.gz | patch -p1 --backup --suffix=.orig 1> /dev/null 2> /dev/null || exit 1
|
||||||
|
fi
|
||||||
|
cp -a $CWD/patches-${ARCH}/*.gz .
|
||||||
|
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
|
||||||
|
# We will have to extract and patch the kernel sources to find out the kernel version:
|
||||||
|
TEMPDIR=$(mktemp -d)
|
||||||
|
cd $TEMPDIR
|
||||||
|
tar xf $CWD/linux-${VERSION}.tar.?z || exit 1
|
||||||
|
cd linux-*
|
||||||
|
apply_patches
|
||||||
|
PACKAGE_VERSION=$(grep "^VERSION = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " Makefile | rev | cut -f 1 -d ' ' | rev)
|
||||||
|
cd $CWD
|
||||||
|
rm -rf $TEMPDIR
|
||||||
|
# No $LOCALVERSION
|
||||||
|
echo "kernel-source-$(echo ${PACKAGE_VERSION} | tr - _)-noarch-$BUILD.txz"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo $USINGVER
|
||||||
|
|
||||||
|
# If we were not given a KERNEL_NAME, use generic:
|
||||||
|
KERNEL_NAME=${KERNEL_NAME:-generic}
|
||||||
|
|
||||||
|
# By default, we'll try to find a kernel config file. Otherwise, you can pass
|
||||||
|
# KERNEL_CONFIG=some_kernel_config_file to this script. If KERNEL_CONFIG starts
|
||||||
|
# with a '/', we'll assume it's a full absolute path to the kernel config file.
|
||||||
|
# Otherwise we'll look for it in $KERNEL_CONFIGDIR (defined below).
|
||||||
|
|
||||||
|
# Where should we find the kernel config files?
|
||||||
|
KERNEL_CONFIGDIR=${KERNEL_CONFIGDIR:-./kernel-configs}
|
||||||
|
|
||||||
|
# Make KERNEL_CONFIGDIR an absolute path:
|
||||||
|
KERNEL_CONFIGDIR=$(realpath $KERNEL_CONFIGDIR)
|
||||||
|
|
||||||
|
# Automatically determine the architecture we're building on:
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$(uname -m)" in
|
||||||
|
# Use uname -m for all archs:
|
||||||
|
*) ARCH=$(uname -m) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If KERNEL_CONFIG (name of kernel .config file in $KERNEL_CONFIGDIR to use)
|
||||||
|
# has not been passed to this script, then we will select one. We will prefer
|
||||||
|
# to use a .config that matches KERNEL_NAME and with a version number exactly
|
||||||
|
# matching the kernel sources. But if there's no exact version match, we will
|
||||||
|
# start with the newest .config we can find that's of the appropriate type.
|
||||||
|
if [ -z "${KERNEL_CONFIG}" ]; then # figure out the best matching .config
|
||||||
|
if [ "$ARCH" = "x86_64" ]; then
|
||||||
|
CONFIG_SUFFIX=".x64"
|
||||||
|
elif [ "$ARCH" = "i586" ]; then
|
||||||
|
CONFIG_SUFFIX=".ia32"
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
CONFIG_SUFFIX=".ia32"
|
||||||
|
fi
|
||||||
|
if [ -r "$KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}" ]; then
|
||||||
|
# Exact match!
|
||||||
|
KERNEL_CONFIG="config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
else # no exact match, so find newest with the same LOCALVERSION:
|
||||||
|
FIND_MATCH="$(/bin/ls -t $KERNEL_CONFIGDIR/config-*${LOCALVERSION}${CONFIG_SUFFIX} 2> /dev/null | head -n 1)"
|
||||||
|
if [ -r "${FIND_MATCH}" ]; then
|
||||||
|
KERNEL_CONFIG="$(basename ${FIND_MATCH})"
|
||||||
|
unset FIND_MATCH
|
||||||
|
else
|
||||||
|
# We'll try to fall back on a defconfig if there's one for this $ARCH:
|
||||||
|
if [ "$ARCH" = "x86_64" ]; then
|
||||||
|
echo "WARNING:"
|
||||||
|
echo "Tried and did not find:"
|
||||||
|
echo " $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
echo "Also could not match this fallback:"
|
||||||
|
echo " $KERNEL_CONFIGDIR/config-*-${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
KERNEL_CONFIGDIR=$PKG/usr/src/linux/arch/x86/configs
|
||||||
|
KERNEL_CONFIG=x86_64_defconfig
|
||||||
|
KERNEL_NAME=defconfig
|
||||||
|
echo "Falling back on $KERNEL_CONFIGDIR/$KERNEL_CONFIG because we couldn't find anything better."
|
||||||
|
sleep 2
|
||||||
|
elif uname -m | grep -q i.86 ; then
|
||||||
|
echo "WARNING:"
|
||||||
|
echo "Tried and did not find:"
|
||||||
|
echo " $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
echo "Also could not match this fallback:"
|
||||||
|
echo " $KERNEL_CONFIGDIR/config-*-${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
KERNEL_CONFIGDIR=$PKG/usr/src/linux/arch/x86/configs
|
||||||
|
KERNEL_CONFIG=i386_defconfig
|
||||||
|
KERNEL_NAME=defconfig
|
||||||
|
echo "Falling back on $KERNEL_CONFIGDIR/$KERNEL_CONFIG because we couldn't find anything better."
|
||||||
|
sleep 2
|
||||||
|
else
|
||||||
|
echo "Error: no matching .config file could be found for this kernel. Tried:"
|
||||||
|
echo " $KERNEL_CONFIGDIR/config-${VERSION}${LOCALVERSION}${CONFIG_SUFFIX} (not found)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else # We were given a name to use:
|
||||||
|
if [ "$(echo ${KERNEL_CONFIG} | cut -b 1)" = "/" ]; then # absolute path, split this:
|
||||||
|
KERNEL_CONFIGDIR=$(dirname ${KERNEL_CONFIG})
|
||||||
|
KERNEL_CONFIG=$(basename ${KERNEL_CONFIG})
|
||||||
|
fi
|
||||||
|
if [ ! -r "$KERNEL_CONFIGDIR/${KERNEL_CONFIG}" ]; then
|
||||||
|
echo "Error: specified kernel .config $KERNEL_CONFIGDIR/${KERNEL_CONFIG} was not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Set LOCALVERSION to the value found inside the .config:
|
||||||
|
LOCALVERSION="$(cat $KERNEL_CONFIGDIR/${KERNEL_CONFIG} | grep CONFIG_LOCALVERSION= | cut -f 2 -d = | tr -d \")"
|
||||||
|
|
||||||
|
echo "Using kernel config: $KERNEL_CONFIGDIR/${KERNEL_CONFIG}"
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG
|
||||||
|
mkdir -p $PKG/usr/src
|
||||||
|
|
||||||
|
echo "Untarring $CWD/linux-${VERSION}.tar.?z in $PKG/usr/src..."
|
||||||
|
( cd $PKG/usr/src
|
||||||
|
tar xf $CWD/linux-${VERSION}.tar.?z || exit 1
|
||||||
|
echo "Making /usr/src/linux symlink..."
|
||||||
|
ln -sf linux-* linux
|
||||||
|
cd linux-*
|
||||||
|
apply_patches VERBOSE
|
||||||
|
echo "Copying $KERNEL_CONFIGDIR/${KERNEL_CONFIG} to .config..."
|
||||||
|
cp -a $KERNEL_CONFIGDIR/${KERNEL_CONFIG} .config
|
||||||
|
echo "Fixing permissions/ownership..."
|
||||||
|
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 {} \+
|
||||||
|
) || exit 1
|
||||||
|
|
||||||
|
# Kernel is now ready to configure. We will also build this kernel so that
|
||||||
|
# the installed kernel source package is fully configured, and building an
|
||||||
|
# out-of-tree module (such as the NVIDIA driver) won't require the user
|
||||||
|
# to build the kernel sources first.
|
||||||
|
( cd $PKG/usr/src/linux-*
|
||||||
|
echo "Making oldconfig..."
|
||||||
|
make oldconfig
|
||||||
|
|
||||||
|
# Use the version number found in the Makefile in the package name. This is not
|
||||||
|
# always the same as the version in the source tarball's filename. For example,
|
||||||
|
# linux-4.14.tar.?z will have 4.14.0 as the version in the Makefile:
|
||||||
|
PACKAGE_VERSION=$(grep "^VERSION = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " Makefile | rev | cut -f 1 -d ' ' | rev)
|
||||||
|
|
||||||
|
if [ ! -r $KERNEL_CONFIGDIR/config-${PACKAGE_VERSION}${LOCALVERSION}${CONFIG_SUFFIX} ]; then
|
||||||
|
# If you care about saving the original unregenerated unrenamed config
|
||||||
|
# file, set SAVE_ORIGINAL_KERNEL_CONFIG to something. This might cause
|
||||||
|
# your kernels to be built twice...
|
||||||
|
if [ -z "$SAVE_ORIGINAL_KERNEL_CONFIG" ]; then
|
||||||
|
echo "Removing original .config $KERNEL_CONFIGDIR/${KERNEL_CONFIG}"
|
||||||
|
rm -v -f $KERNEL_CONFIGDIR/${KERNEL_CONFIG}
|
||||||
|
fi
|
||||||
|
echo "Saving new .config as: $KERNEL_CONFIGDIR/config-${PACKAGE_VERSION}${LOCALVERSION}${CONFIG_SUFFIX}"
|
||||||
|
cp -a .config $KERNEL_CONFIGDIR/config-${PACKAGE_VERSION}${LOCALVERSION}${CONFIG_SUFFIX}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If we see ONLY_STAGE_KERNEL_SOURCE=yes, then we don't want to build this.
|
||||||
|
# We're just setting it up for use by the other SlackBuilds.
|
||||||
|
if [ "$ONLY_STAGE_KERNEL_SOURCE" = "yes" ]; then
|
||||||
|
echo "Done staging the kernel-source."
|
||||||
|
sleep 2
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Building kernel and modules (needed before clean for building NVIDIA to work)..."
|
||||||
|
make ${NUMJOBS} || exit 1
|
||||||
|
make ${NUMJOBS} modules || exit 1
|
||||||
|
echo "Cleaning up..."
|
||||||
|
make clean
|
||||||
|
# Make sure header files aren't missing...
|
||||||
|
make prepare
|
||||||
|
# Don't package the kernel in the sources:
|
||||||
|
find . -name "*Image" -exec rm "{}" \+
|
||||||
|
# No need for these:
|
||||||
|
rm -f .config.old .version
|
||||||
|
find . -name "*.cmd" -exec rm -f "{}" \+
|
||||||
|
rm .*.d
|
||||||
|
# Still some dotfiles laying around... probably fine though
|
||||||
|
# Get rid of any ELF (non-eBPF) binaries that are not executable:
|
||||||
|
find . -type f -perm 0644 ! -name "*.c" ! -name "*.h" ! -name "*.S" ! -name "*.dts*" ! -name "Makefile*" ! -name Kbuild ! -name "*config" ! -name ".git*" ! -name "*.rst" ! -name "*.txt" | xargs file | grep ELF | grep -v eBPF | grep stripped | cut -f 1 -d : | while read elf_binary ; do
|
||||||
|
rm -f -v $elf_binary
|
||||||
|
done
|
||||||
|
# Strip any remaining binaries:
|
||||||
|
find . -type f ! -name "*.c" ! -name "*.h" ! -name "*.S" ! -name "*.dts*" ! -name "Makefile*" ! -name Kbuild ! -name "*config" ! -name ".git*" ! -name "*.rst" ! -name "*.txt" | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
||||||
|
) || exit 1
|
||||||
|
|
||||||
|
# Just staging the sources? Then leave.
|
||||||
|
if [ "$ONLY_STAGE_KERNEL_SOURCE" = "yes" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $PKG/usr/src/linux-*
|
||||||
|
# Use the version number found in the Makefile in the package name. This is not
|
||||||
|
# always the same as the version in the source tarball's filename. For example,
|
||||||
|
# linux-4.14.tar.?z will have 4.14.0 as the version in the Makefile:
|
||||||
|
PACKAGE_VERSION=$(grep "^VERSION = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^PATCHLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev).$(grep "^SUBLEVEL = " Makefile | rev | cut -f 1 -d ' ' | rev)$(grep "^EXTRAVERSION = " Makefile | rev | cut -f 1 -d ' ' | rev)
|
||||||
|
|
||||||
|
## Let's not do this because out-of-tree modules might not like it.
|
||||||
|
## The .config we built with is irrelevant, but set KEEPCONFIG to anything
|
||||||
|
## if you want to keep it:
|
||||||
|
#if [ -z "$KEEPCONFIG" ]; then
|
||||||
|
# rm .config*
|
||||||
|
#fi
|
||||||
|
|
||||||
|
# Make sure the directory and symlink are properly named:
|
||||||
|
cd ..
|
||||||
|
rm -f linux
|
||||||
|
# LOCALVERSION is part of the .config, not really the sources. We're not going
|
||||||
|
# to include it in the directory name.
|
||||||
|
mv linux-* linux-${PACKAGE_VERSION} 2> /dev/null
|
||||||
|
ln -sf linux-* linux
|
||||||
|
|
||||||
|
mkdir $PKG/install
|
||||||
|
cat $CWD/slack-desc/slack-desc.kernel-source > $PKG/install/slack-desc
|
||||||
|
|
||||||
|
# Make the package: (also no $LOCALVERSION here)
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $TMP/kernel-source-$(echo ${PACKAGE_VERSION} | tr - _)-noarch-$BUILD.txz
|
||||||
19
kernel/linux-6.12.33.tar.sign
Normal file
19
kernel/linux-6.12.33.tar.sign
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Comment: This signature is for the .tar version of the archive
|
||||||
|
Comment: git archive --format tar --prefix=linux-6.12.33/ v6.12.33
|
||||||
|
Comment: git version 2.49.0
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmhIE+MACgkQONu9yGCS
|
||||||
|
aT5NWg//ULkP7maUd86t8Tvi7wsTzorHJYfQAL5LKMrBmq2AB6ZhQL+eGxReI99u
|
||||||
|
cUqJx/ryqOKkF0DB77iAdIfCy2C2l11Myms9D3+ZG7tVi2mlWlj2iHk+bLNJAcVm
|
||||||
|
5lCnio7l135VHDaCu5AQMVfTjg3V1VSU33Gjedjzm6xY20HEAo4p8Ci1f9wGtvIz
|
||||||
|
hLGSsGE5tjDPeWQ8ziDUaS127VCPeIOJrHjNaqWxkTGnq43PrWhlNOWAF3wBqG/x
|
||||||
|
bF80G3ksscRp/GLHmurw4L8KfyTdZRLNaMk1f5qolNlyMts8Men5LBNqu2KP1YRt
|
||||||
|
tNHh9vv+XVapwk40QLI15gYx6Qz3VGbnNFwPuJXB+19GYzm26mtKztpsJAfD5Owm
|
||||||
|
cyujAAHBCs56wbRp1vqJ8ELPcZCDBFpNGDtk0NkklGOznRG3vXA3/STxlotvZWld
|
||||||
|
9x3B0rDpJIG3KuYcY/3IYyr6N81xWfB4dlO1u2Vug9h3cxOX7y4VM3NBdzz/aTmr
|
||||||
|
eyjyIO1uAoRT1ROHjIkaG23KIKLKwCIaSrsZjPlj4KD8Wf2ywRpNT3B9NJjsAZKp
|
||||||
|
cdjI96rjw4dvr1uFBVj2G194sl3zPnbMtPTGi94jOeft6+UpbQ7DMQhOXwD6yZQk
|
||||||
|
M+eIujWRaxbvtqpTAMciY6CdEUolMy3Sc52SQJTU7eWnW9JvEEE=
|
||||||
|
=nAO1
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
Binary file not shown.
5
kernel/patches-revert-i686/README
Normal file
5
kernel/patches-revert-i686/README
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
We need to revert this patch which causes boot failure with 32-bit PAE on
|
||||||
|
*some* machines, such as: LENOVO 20QV000GUS Intel i7-9850H
|
||||||
|
|
||||||
|
Non-PAE is not affected, but we'll let this get reverted there too since
|
||||||
|
it's not part of the code path anyway.
|
||||||
19
kernel/slack-desc/slack-desc.kernel-generic
Normal file
19
kernel/slack-desc/slack-desc.kernel-generic
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------------------------------------------------------|
|
||||||
|
kernel-generic: kernel-generic (general purpose Linux kernel/modules)
|
||||||
|
kernel-generic:
|
||||||
|
kernel-generic: This is a Linux kernel with built-in support for SATA, NVMe, and most
|
||||||
|
kernel-generic: commonly used filesystems, as well as a large collection of loadable
|
||||||
|
kernel-generic: kernel modules.
|
||||||
|
kernel-generic:
|
||||||
|
kernel-generic: It is recommended to use an initrd with this kernel for best results.
|
||||||
|
kernel-generic: For more information about creating an initrd, see the README.initrd
|
||||||
|
kernel-generic: file in the /boot directory.
|
||||||
|
kernel-generic:
|
||||||
|
kernel-generic:
|
||||||
19
kernel/slack-desc/slack-desc.kernel-headers
Normal file
19
kernel/slack-desc/slack-desc.kernel-headers
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------------------------------------------------------|
|
||||||
|
kernel-headers: kernel-headers (Linux kernel include files)
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers: These are the include files from the Linux kernel.
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers: You'll need these to compile most system software for Linux.
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers:
|
||||||
|
kernel-headers:
|
||||||
19
kernel/slack-desc/slack-desc.kernel-source
Normal file
19
kernel/slack-desc/slack-desc.kernel-source
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------------------------------------------------------|
|
||||||
|
kernel-source: kernel-source (Linux kernel source)
|
||||||
|
kernel-source:
|
||||||
|
kernel-source: Source code for Linus Torvalds' Linux kernel.
|
||||||
|
kernel-source:
|
||||||
|
kernel-source: This is the complete and unmodified source code for the Linux kernel.
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
19
kernel/slack-desc/slack-desc.kernel-source.vanilla
Normal file
19
kernel/slack-desc/slack-desc.kernel-source.vanilla
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------------------------------------------------------|
|
||||||
|
kernel-source: kernel-source (Linux kernel source)
|
||||||
|
kernel-source:
|
||||||
|
kernel-source: Source code for Linus Torvalds' Linux kernel.
|
||||||
|
kernel-source:
|
||||||
|
kernel-source: This is the complete and unmodified source code for the Linux kernel.
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
|
kernel-source:
|
||||||
19
kernel/slack-desc/slack-desc.kernel-template
Normal file
19
kernel/slack-desc/slack-desc.kernel-template
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------------------------------------------------------|
|
||||||
|
%PACKAGE_NAME%: %PACKAGE_NAME% (Linux kernel/modules)
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%: This is the %PACKAGE_NAME% Linux kernel and modules.
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
|
%PACKAGE_NAME%:
|
||||||
10
kvirc/README
Normal file
10
kvirc/README
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
KVIrc is the K-Visual IRC Client. It's a free portable Internet
|
||||||
|
Relay Chat client based on the excellent Qt GUI toolkit. KVIrc is
|
||||||
|
being written by Szymon Stefanek and The KVIrc Development Team with
|
||||||
|
the contribution of many IRC addicted developers around the world.
|
||||||
|
It has a full GUI based configuration, floatable windows, built-in
|
||||||
|
help browser, addons and themes support (configurable from GUI
|
||||||
|
or scripting), transparency support, dran'n'drop toolbar editing,
|
||||||
|
activity notifier as well as proxy support, SSL and IPv6 sockets
|
||||||
|
support, a modular arch which loads modules only when necessary and a
|
||||||
|
huge API for writing extensions
|
||||||
14
kvirc/doinst.sh
Normal file
14
kvirc/doinst.sh
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
if [ -x /usr/bin/update-desktop-database ]; then
|
||||||
|
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x /usr/bin/update-mime-database ]; then
|
||||||
|
/usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
|
||||||
|
if [ -x /usr/bin/gtk-update-icon-cache ]; then
|
||||||
|
/usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
75
SpoofDPI/SpoofDPI.SlackBuild → kvirc/kvirc.SlackBuild
Normal file → Executable file
75
SpoofDPI/SpoofDPI.SlackBuild → kvirc/kvirc.SlackBuild
Normal file → Executable file
@@ -1,9 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Slackware build script for SpoofDPI
|
# Slackware build script for KVIrc
|
||||||
|
|
||||||
# Copyright 2024 Sergei Fedosoff <eleksir@gmail.com>
|
# Copyright 2011 Elvio "HelLViS69" Basello <hellvis69@slackware.it>
|
||||||
#
|
# Copyright 2018 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
|
||||||
|
# Copyright 2025 Sergei Fedosoff <eleksir@gmail.com>
|
||||||
# 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
|
||||||
@@ -23,11 +24,14 @@
|
|||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
# 20220301 bkw: Modified by SlackBuilds.org: fix build on 15.0.
|
||||||
|
|
||||||
cd $(dirname $0) ; CWD=$(pwd)
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
PRGNAM=SpoofDPI
|
PRGNAM=kvirc
|
||||||
VERSION=${VERSION:-0.12.0}
|
SRCNAM=KVIrc
|
||||||
BUILD=${BUILD:-2}
|
VERSION=${VERSION:-5.2.8}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_EXs}
|
TAG=${TAG:-_EXs}
|
||||||
PKGTYPE=${PKGTYPE:-tgz}
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
@@ -44,7 +48,7 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TMP=${TMP:-/tmp/EXs}
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
PKG=$TMP/package-$PRGNAM
|
PKG=$TMP/package-$PRGNAM
|
||||||
OUTPUT=${OUTPUT:-/tmp}
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
@@ -67,29 +71,50 @@ set -e
|
|||||||
rm -rf $PKG
|
rm -rf $PKG
|
||||||
mkdir -p $TMP $PKG $OUTPUT
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
cd $TMP
|
cd $TMP
|
||||||
rm -rf $PRGNAM-$VERSION
|
rm -rf $SRCNAM-$VERSION
|
||||||
tar xf $CWD/$PRGNAM-$VERSION.tar.gz
|
tar xf $CWD/$SRCNAM-$VERSION.tar.?z*
|
||||||
cd $PRGNAM-$VERSION
|
cd $SRCNAM-$VERSION
|
||||||
chown -R root:root .
|
chown -R root:root .
|
||||||
find -L . \
|
find -L . \
|
||||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||||
-exec chmod 755 {} \+ -o \
|
-o -perm 511 \) -exec chmod 755 {} \+ -o \
|
||||||
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
|
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||||
-exec chmod 644 {} \+
|
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
|
||||||
|
|
||||||
patch -p1 -i $CWD/a12a13eb4b347899b18cf8df57cc423e55313e2a.patch
|
# use our *FLAGS
|
||||||
patch -p1 -i $CWD/8a370430c7d855a63d15337e9781933f6e55707f.patch
|
sed -i "s|\"-O3|\"$SLKCFLAGS|" CMakeLists.txt
|
||||||
|
|
||||||
CGO_ENABLED=0 go build -ldflags '-w -s -extldflags "-static"' -trimpath -tags timetzdata -o spoofdpi ./cmd/spoofdpi
|
# 20220301 bkw: older qt5 didn't need this, but Slackware 15.0's does:
|
||||||
|
sed -i '1i#include <QPainterPath>' src/modules/iograph/libkviiograph.cpp
|
||||||
|
|
||||||
install -Dpm 0755 spoofdpi $PKG/usr/sbin/spoofdpi
|
mkdir build
|
||||||
install -Dpm 0644 $CWD/rc.spoofdpi $PKG/etc/rc.d/rc.spoofdpi.new
|
#cd build
|
||||||
install -Dpm 0644 $CWD/spoofdpi.sysconfig $PKG/etc/default/spoofdpi.new
|
cmake -GNinja \
|
||||||
install -Ddm 0755 $PKG/usr/doc/$PRGNAM-$VERSION
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
install -Dpm 0644 LICENSE README.md $PKG/usr/doc/$PRGNAM-$VERSION
|
-DMANDIR=/usr/man \
|
||||||
install -Dpm 0644 $CWD/$PRGNAM.SlackBuild $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
install -Dpm 0644 $CWD/slack-desc $PKG/install/slack-desc
|
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
||||||
install -Dpm 0644 $CWD/doinst.sh $PKG/install/doinst.sh
|
-DWANT_PERL=ON \
|
||||||
|
-DWANT_AUDIOFILE=ON \
|
||||||
|
-DWANT_VERBOSE=ON \
|
||||||
|
-DWANT_STRIP=ON \
|
||||||
|
-DWANT_KDE=OFF \
|
||||||
|
-DWANT_PHONON=OFF \
|
||||||
|
-DWANT_QTWEBENGINE=OFF \
|
||||||
|
-B build
|
||||||
|
ninja -j$(nproc) -C build
|
||||||
|
DESTDIR=$PKG ninja -C build install
|
||||||
|
#cd ..
|
||||||
|
|
||||||
|
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cp -a COPYING README.md RELEASES doc/*LICENSE* $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||||
|
|
||||||
cd $PKG
|
cd $PKG
|
||||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
kvirc/kvirc.info
Normal file
10
kvirc/kvirc.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="KVIrc"
|
||||||
|
VERSION="5.2.8"
|
||||||
|
HOMEPAGE="https://kvirc.net"
|
||||||
|
DOWNLOAD="https://github.com/kvirc/KVIrc/archive/refs/tags/5.2.8/KVIrc-5.2.8.tar.gz"
|
||||||
|
MD5SUM="cadd5844d06adb071491eb03acfcbe37"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES=""
|
||||||
|
MAINTAINER="Sergei Fedosoff"
|
||||||
|
EMAIL="eleksir@gmail.com"
|
||||||
19
kvirc/slack-desc
Normal file
19
kvirc/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------------------------------------------------------|
|
||||||
|
kvirc: kvirc (The K-Visual IRC Client)
|
||||||
|
kvirc:
|
||||||
|
kvirc: KVIrc is a free portable Internet Relay Chat client based
|
||||||
|
kvirc: on the excellent Qt GUI toolkit. KVIrc is being written by
|
||||||
|
kvirc: Szymon Stefanek and The KVIrc Development Team with the
|
||||||
|
kvirc: contribution of many IRC addicted developers around the
|
||||||
|
kvirc: world
|
||||||
|
kvirc:
|
||||||
|
kvirc: Homepage: http://kvirc.net
|
||||||
|
kvirc:
|
||||||
|
kvirc:
|
||||||
23
opensc/README
Normal file
23
opensc/README
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
SmartCard utilities/libraries for PKCS#11/15 compatible cards
|
||||||
|
|
||||||
|
This package provides a set of libraries and utilities to access
|
||||||
|
smart cards. Its main focus is on cards that support cryptographic
|
||||||
|
operations, and facilitate their use in security applications such
|
||||||
|
as mail encryption, authentication, and digital signature. OpenSC
|
||||||
|
implements the PKCS#11 API so applications supporting this API such
|
||||||
|
as Mozilla Firefox and Thunderbird can use it. OpenSC implements the
|
||||||
|
PKCS#15 standard and aims to be compatible with every software that
|
||||||
|
does so, too.
|
||||||
|
|
||||||
|
You may need to edit /etc/opensc.conf in order to use a particular
|
||||||
|
backend and smartcard.
|
||||||
|
|
||||||
|
Beware! Smartcards have usually a limited number of times you may try a
|
||||||
|
wrong PIN/PUK combination before they become inoperable/permanently
|
||||||
|
blocked. You have been warned!
|
||||||
|
|
||||||
|
Since version 0.12.0, only one reader subsystem can be used and
|
||||||
|
compiled in at the same time. The PCSC-LITE subsystem is used by
|
||||||
|
default and it is suitable for most smartcards. If you need the
|
||||||
|
OPENCT subsystem instead, you have to pass "OPENCT=1" to the script
|
||||||
|
when building and have the optional dependency openct installed.
|
||||||
18
opensc/doinst.sh
Normal file
18
opensc/doinst.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
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...
|
||||||
|
}
|
||||||
|
|
||||||
|
config etc/opensc.conf.new
|
||||||
|
|
||||||
|
if [ -x /usr/bin/update-desktop-database ]; then
|
||||||
|
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
|
||||||
|
fi
|
||||||
134
opensc/opensc.SlackBuild
Normal file
134
opensc/opensc.SlackBuild
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for opensc
|
||||||
|
|
||||||
|
# Copyright 2008-2015 LukenShiro, Italy
|
||||||
|
# Copyright 2018-2023 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
|
||||||
|
# Copyright 2025 Sergei Fedosoff <eleksir@gmail.com>
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# 20220301 bkw: Modified by SlackBuilds.org, BUILD=2:
|
||||||
|
# - add update-desktop-database to doinst.sh.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PRGNAM=opensc
|
||||||
|
VERSION=${VERSION:-0.26.1}
|
||||||
|
BUILD=${BUILD:-2}
|
||||||
|
TAG=${TAG:-_EXs}
|
||||||
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) ARCH=$( uname -m ) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
|
PKG=$TMP/package-$PRGNAM
|
||||||
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
|
DOCFILES="README COPYING NEWS"
|
||||||
|
XSL_STYLESHEETS_VER=$(export LS_OPTIONS='' ; ls -1 /usr/share/xml/docbook/ | grep xsl-stylesheets- | cut -d- -f3)
|
||||||
|
|
||||||
|
# opensc now supports only one reader subsystem (pcsc-lite or openct)
|
||||||
|
OPENCT=${OPENCT:-0} # pcsc-lite is the default, openct disabled
|
||||||
|
|
||||||
|
case "$OPENCT" in
|
||||||
|
0) RDRSUBSYS_flags="--enable-pcsc --disable-openct" ;;
|
||||||
|
*) RDRSUBSYS_flags="--disable-pcsc --enable-openct" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PRGNAM-$VERSION
|
||||||
|
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||||
|
cd $PRGNAM-$VERSION
|
||||||
|
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 {} \+
|
||||||
|
|
||||||
|
# --enable-nsplugin and --with-pinentry= are no longer supported.
|
||||||
|
export CFLAGS="-g $SLKCFLAGS -rdynamic"
|
||||||
|
export CXXFLAGS="-g $SLKCFLAGS -rdynamic"
|
||||||
|
export LDFLAGS="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-O2"
|
||||||
|
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--docdir=/usr/doc/$PRGNAM-$VERSION \
|
||||||
|
--datarootdir=/usr/share \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--enable-doc \
|
||||||
|
--with-xsl-stylesheetsdir=/usr/share/xml/docbook/xsl-stylesheets-${XSL_STYLESHEETS_VER} \
|
||||||
|
$RDRSUBSYS_flags \
|
||||||
|
--enable-sm \
|
||||||
|
--enable-piv-sm \
|
||||||
|
--enable-pcsc \
|
||||||
|
--enable-static=no \
|
||||||
|
--build=$ARCH-slackware-linux
|
||||||
|
|
||||||
|
make -j$(nproc)
|
||||||
|
make install-strip DESTDIR=$PKG
|
||||||
|
gzip -9 $PKG/usr/man/man*/*
|
||||||
|
rm -f $PKG/usr/lib*/*.la
|
||||||
|
|
||||||
|
# Don't clobber the config file
|
||||||
|
mv $PKG/etc/opensc.conf $PKG/etc/opensc.conf.new
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/
|
||||||
|
cp -a $DOCFILES $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
|
mkdir -p $PKG/install
|
||||||
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||||
|
cat $CWD/doinst.sh > $PKG/install/doinst.sh
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
opensc/opensc.info
Normal file
10
opensc/opensc.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="opensc"
|
||||||
|
VERSION="0.26.1"
|
||||||
|
HOMEPAGE="https://github.com/OpenSC/OpenSC/wiki/"
|
||||||
|
DOWNLOAD="https://github.com/OpenSC/OpenSC/releases/download/0.26.1/opensc-0.26.1.tar.gz"
|
||||||
|
MD5SUM="dc3d9ff5131a66d756300fb5cf0d87c2"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES="pcsc-lite"
|
||||||
|
MAINTAINER="Matteo Bernardini"
|
||||||
|
EMAIL="ponce@slackbuilds.org"
|
||||||
19
opensc/slack-desc
Normal file
19
opensc/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------------------------------------------------------|
|
||||||
|
opensc: opensc (SmartCard utilities/libraries for PKCS#11/15 compatible cards)
|
||||||
|
opensc:
|
||||||
|
opensc: It provides a set of libraries and utilities to access smart
|
||||||
|
opensc: cards. Its main focus is on cards that support cryptographic
|
||||||
|
opensc: operations, and facilitate their use in security applications such
|
||||||
|
opensc: as mail encryption, authentication, and digital signature. OpenSC
|
||||||
|
opensc: implements the PKCS#11 API so applications supporting this API such
|
||||||
|
opensc: as Mozilla Firefox and Thunderbird can use it. OpenSC implements
|
||||||
|
opensc: the PKCS#15 standard and aims to be compatible with every software
|
||||||
|
opensc: that does so, too.
|
||||||
|
opensc: Homepage: http://www.opensc-project.org/opensc/
|
||||||
19
pcsc-lite/README
Normal file
19
pcsc-lite/README
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
PC/SC-lite is a middleware to access a smart card using SCard API
|
||||||
|
(PC/SC) Its purpose is to provide a Windows(R) SCard interface in a
|
||||||
|
very small form factor for communicating to smart cards and readers.
|
||||||
|
|
||||||
|
Compiling with "DEBUGATR=1 ./pcsc-lite.SlackBuild" enables ATR parsing
|
||||||
|
debug output messages.
|
||||||
|
|
||||||
|
On-demand power on (auto power off) feature for an inserted card is
|
||||||
|
disabled, now. If you want it re-enabled, so the card is powered off
|
||||||
|
after a few seconds of inactivity (upstream's default since version
|
||||||
|
1.6.5) you can compile with "AUTOPOFF=1 ./pcsc-lite.SlackBuild".
|
||||||
|
|
||||||
|
pcsc-lite no longer uses (deprecated) libhal for smart-card reader's
|
||||||
|
detection. By default libudev is used now.
|
||||||
|
|
||||||
|
You need to add a user pcscd (257) and a group pcscd (257).
|
||||||
|
|
||||||
|
Please see README.SLACKWARE in pcsc-lite's documentation directory
|
||||||
|
for notes.
|
||||||
32
pcsc-lite/README.SLACKWARE
Normal file
32
pcsc-lite/README.SLACKWARE
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
You must have a "pcscd" user and a "pcscd" group to run this script.
|
||||||
|
To create the user and group you can run these two commands
|
||||||
|
(uid/gid are set accordingly to http://slackbuilds.org/uid_gid.txt):
|
||||||
|
# groupadd -g 257 pcscd
|
||||||
|
# useradd -u 257 -g pcscd -d /var/run/pcscd -s /bin/false pcscd
|
||||||
|
|
||||||
|
To start PC/SC-lite daemon, run "/etc/rc.d/rc.pcscd start". This is most
|
||||||
|
easily accomplished by adding the following to /etc/rc.d/rc.local:
|
||||||
|
if [ -x /etc/rc.d/rc.pcscd ]; then
|
||||||
|
/etc/rc.d/rc.pcscd start
|
||||||
|
fi
|
||||||
|
For pcmcia readers, this daemon should be started after rc.pcmcia.
|
||||||
|
|
||||||
|
Beware!
|
||||||
|
- PC/SC-lite daemon is meant as _alternative_ to openct: running rc.openctd
|
||||||
|
and rc.pcscd at the same time can and will lead to unforseeable problems
|
||||||
|
(specially with usb devices that can be managed by both of them, one daemon
|
||||||
|
can claim one device, making it unavailable for other daemon).
|
||||||
|
|
||||||
|
Smartcard reader's drivers are not included and must be compiled and installed
|
||||||
|
separately. See DRIVERS file in pcsc-lite's doc directory for more information
|
||||||
|
on getting and installing specific drivers. pcsc-lite is compiled with the
|
||||||
|
--enable-usbdropdir=<libdir>/pcsc/drivers flag -- this directory will be the
|
||||||
|
destination for usb readers' drivers (e.g. ccid, cardman, ...).
|
||||||
|
|
||||||
|
Since version 1.6.0, serial support is not really maintained. Upstream
|
||||||
|
developer deems serial readers as rare, so he no longer provides reader.conf
|
||||||
|
file: if it's still required, you will have to manually create it in
|
||||||
|
/etc/reader.conf.d (please see 'man 5 reader.conf' for details).
|
||||||
|
|
||||||
|
Since version 1.6.0, events are sent through the socket, so you have to
|
||||||
|
manually remove unused /var/run/pcscd/pcscd.events/ directory.
|
||||||
26
pcsc-lite/doinst.sh
Normal file
26
pcsc-lite/doinst.sh
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
preserve_perms etc/rc.d/rc.pcscd.new
|
||||||
|
|
||||||
180
pcsc-lite/pcsc-lite.SlackBuild
Normal file
180
pcsc-lite/pcsc-lite.SlackBuild
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for pcsc-lite
|
||||||
|
|
||||||
|
# Copyright 2007-2015 LukenShiro, Italy
|
||||||
|
# Copyright 2020-2023 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
|
||||||
|
# Copyright 2025 Sergei Fedosoff <eleksir@gmail.com>
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# 20230801 bkw: Modified by SlackBuilds.org, BUILD=2:
|
||||||
|
# - handle user and group detection better.
|
||||||
|
# - get rid of generic GNU INSTALL from doc dir.
|
||||||
|
|
||||||
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
|
PRGNAM=pcsc-lite
|
||||||
|
VERSION=${VERSION:-1.9.9}
|
||||||
|
BUILD=${BUILD:-4}
|
||||||
|
TAG=${TAG:-_EXs}
|
||||||
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) ARCH=$( uname -m ) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
|
PKG=$TMP/package-$PRGNAM
|
||||||
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
|
# Bail out if user or group isn't valid on your system
|
||||||
|
# For slackbuilds.org, assigned pcscd uid/gid are 257/257
|
||||||
|
# See http://slackbuilds.org/uid_gid.txt
|
||||||
|
# 20230801 bkw: grepping /etc/passwd and /etc/group may fail if e.g. NIS
|
||||||
|
# or LDAP is in use; always use getent. Also, print both messages (for user
|
||||||
|
# and group) if either doesn't exist.
|
||||||
|
if ! getent group pcscd &>/dev/null || ! getent passwd pcscd &>/dev/null; then
|
||||||
|
echo " You must have a \"pcscd\" user and group to run this script."
|
||||||
|
echo " # groupadd -g 257 pcscd"
|
||||||
|
echo " # useradd -u 257 -g pcscd -d /var/run/pcscd -s /bin/false pcscd"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Debug is off by default
|
||||||
|
DEBUGATR=${DEBUGATR:-0}
|
||||||
|
# Inserted card's automatic poweroff (on-demand power on)
|
||||||
|
AUTOPOFF=${AUTOPOFF:-0} # disabled by default
|
||||||
|
|
||||||
|
# README and README.DAEMON are not useful and partly outdated.
|
||||||
|
DOCFILES="SECURITY ChangeLog* COPYING HELP NEWS TODO AUTHORS"
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PRGNAM-$VERSION
|
||||||
|
tar xf $CWD/$PRGNAM-$VERSION.tar.bz2
|
||||||
|
cd $PRGNAM-$VERSION
|
||||||
|
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 {} +
|
||||||
|
|
||||||
|
# ATR (answer to reset) debug parsing output
|
||||||
|
case "$DEBUGATR" in
|
||||||
|
0) DEBUGATR_FLAG="dis" ;;
|
||||||
|
*) DEBUGATR_FLAG="en" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# disabling/enabling card's automatic power off
|
||||||
|
case "$AUTOPOFF" in
|
||||||
|
0) sed -i "s|^\/\* #define DISABLE_ON_DEMAND_POWER_ON \*\/|#define DISABLE_ON_DEMAND_POWER_ON|" \
|
||||||
|
src/pcscd.h.in
|
||||||
|
;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --enable-runpid=/var/run/pcscd.pid, and
|
||||||
|
# --enable-muscledropdir="<libdir>/pcsc/services" are not supported anymore;
|
||||||
|
# pid directory changed to /var/run/pcscd for consistency
|
||||||
|
# libhal support is gone
|
||||||
|
# API docs not included anymore
|
||||||
|
export CFLAGS="$SLKCFLAGS -rdynamic"
|
||||||
|
export CXXFLAGS="$CFLAGS"
|
||||||
|
export LDFLAGS="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-s "
|
||||||
|
./configure \
|
||||||
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--enable-ipcdir=/var/run/pcscd \
|
||||||
|
--mandir=/usr/man \
|
||||||
|
--docdir=/usr/doc/$PRGNAM-$VERSION \
|
||||||
|
--enable-usbdropdir="/usr/lib${LIBDIRSUFFIX}/pcsc/drivers" \
|
||||||
|
--enable-confdir=/etc/reader.conf.d \
|
||||||
|
--${DEBUGATR_FLAG}able-debugatr \
|
||||||
|
--enable-libusb \
|
||||||
|
--disable-libudev \
|
||||||
|
--disable-libsystemd \
|
||||||
|
--build=$ARCH-slackware-linux
|
||||||
|
|
||||||
|
make -j$(nproc)
|
||||||
|
make install DESTDIR=$PKG
|
||||||
|
|
||||||
|
# formaticc manpage is not automatically installed
|
||||||
|
install -Dpm 0644 doc/formaticc.1 $PKG/usr/man/man1/
|
||||||
|
|
||||||
|
# PC/SC-lite slackware-compliant daemon
|
||||||
|
install -Dpm 0755 $CWD/rc.pcscd $PKG/etc/rc.d/rc.pcscd.new
|
||||||
|
|
||||||
|
# Correct manpages in reader.conf.5 and pcscd.8
|
||||||
|
sed -i "s|@confdir@|/etc/reader.conf.d|g" $PKG/usr/man/man5/reader.conf.5 || exit 1
|
||||||
|
sed -i "s|@sysconfdir_exp@/init.d/pcscd|/etc/rc.d/rc.pcscd|g" $PKG/usr/man/man8/pcscd.8 || exit 1
|
||||||
|
sed -i "s|@sysconfdir_exp@|/etc/reader.conf.d|g" $PKG/usr/man/man8/pcscd.8 || exit 1
|
||||||
|
|
||||||
|
# Create the directory for drivers and such (not included with this package)
|
||||||
|
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/pcsc/{drivers,services}
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/
|
||||||
|
cp -a $DOCFILES $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
|
||||||
|
# remove README.DAEMON, automatically installed by doc/Makefile.
|
||||||
|
rm -f $PKG/usr/doc/$PRGNAM-$VERSION/README.DAEMON
|
||||||
|
|
||||||
|
rm -f $PKG/usr/lib*/*.la
|
||||||
|
|
||||||
|
install -Dpm 0644 $CWD/slack-desc $PKG/install/slack-desc
|
||||||
|
install -Dpm 0644 $CWD/doinst.sh $PKG/install/doinst.sh
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
pcsc-lite/pcsc-lite.info
Normal file
10
pcsc-lite/pcsc-lite.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="pcsc-lite"
|
||||||
|
VERSION="1.9.9"
|
||||||
|
HOMEPAGE="https://pcsclite.apdu.fr/"
|
||||||
|
DOWNLOAD="https://pcsclite.apdu.fr/files/pcsc-lite-1.9.9.tar.bz2"
|
||||||
|
MD5SUM="23db832115db702e902baccf21da13aa"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES=""
|
||||||
|
MAINTAINER="Matteo Bernardini"
|
||||||
|
EMAIL="ponce@slackbuilds.org"
|
||||||
66
pcsc-lite/rc.pcscd
Normal file
66
pcsc-lite/rc.pcscd
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Start/Stop/Restart the PC/SC-lite smart card daemon.
|
||||||
|
#
|
||||||
|
# pcscd should be started after pcmcia and shut down
|
||||||
|
# before it for smooth experience with PCMCIA readers.
|
||||||
|
#
|
||||||
|
|
||||||
|
PIDFILE=/var/run/pcscd/pcscd.pid
|
||||||
|
PCSCD_OPTS=""
|
||||||
|
|
||||||
|
# Start
|
||||||
|
pcscd_start() {
|
||||||
|
if [ -x /usr/sbin/pcscd ]; then
|
||||||
|
if [ -e "$PIDFILE" ]; then
|
||||||
|
echo "PC/SC-lite daemon already started!"
|
||||||
|
else
|
||||||
|
echo "Starting PC/SC-lite smart card daemon..."
|
||||||
|
/usr/sbin/pcscd $PCSCD_OPTS
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop
|
||||||
|
pcscd_stop() {
|
||||||
|
echo "Stopping PC/SC-lite smart card daemon..."
|
||||||
|
if [ -e "$PIDFILE" ]; then
|
||||||
|
kill $(cat $PIDFILE)
|
||||||
|
rm -f $PIDFILE 2>&1 >/dev/null
|
||||||
|
fi
|
||||||
|
# Just in case:
|
||||||
|
killall pcscd 2>&1 >/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Restart
|
||||||
|
pcscd_restart() {
|
||||||
|
pcscd_stop
|
||||||
|
sleep 3
|
||||||
|
pcscd_start
|
||||||
|
}
|
||||||
|
|
||||||
|
# Status
|
||||||
|
pcscd_status() {
|
||||||
|
if [ -e "$PIDFILE" ]; then
|
||||||
|
echo "pcscd is running."
|
||||||
|
else
|
||||||
|
echo "pcscd is stopped."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
'start')
|
||||||
|
pcscd_start
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
pcscd_stop
|
||||||
|
;;
|
||||||
|
'restart')
|
||||||
|
pcscd_restart
|
||||||
|
;;
|
||||||
|
'status')
|
||||||
|
pcscd_status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "usage: $0 start|stop|restart|status"
|
||||||
|
esac
|
||||||
19
pcsc-lite/slack-desc
Normal file
19
pcsc-lite/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------------------------------------------------------|
|
||||||
|
pcsc-lite: pcsc-lite (Middleware to access a smart card using SCard API)
|
||||||
|
pcsc-lite:
|
||||||
|
pcsc-lite: Middleware to access a smart card using SCard API (PC/SC)
|
||||||
|
pcsc-lite: Its purpose is to provide a Windows(R) SCard interface in a
|
||||||
|
pcsc-lite: very small form factor for communicating to smart cards and
|
||||||
|
pcsc-lite: readers.
|
||||||
|
pcsc-lite:
|
||||||
|
pcsc-lite: Homepage: https://pcsclite.apdu.fr/
|
||||||
|
pcsc-lite:
|
||||||
|
pcsc-lite:
|
||||||
|
pcsc-lite:
|
||||||
@@ -59,7 +59,7 @@ rm -rf $PKG
|
|||||||
mkdir -p $TMP $PKG $OUTPUT
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
cd $TMP
|
cd $TMP
|
||||||
rm -rf $PRGNAM-$VERSION
|
rm -rf $PRGNAM-$VERSION
|
||||||
tar xf $CWD/$VERSION.tar.gz
|
tar xf $CWD/$PRGNAM-snapshots-$VERSION.tar.gz
|
||||||
cd $PRGNAM-snapshots-$VERSION
|
cd $PRGNAM-snapshots-$VERSION
|
||||||
chown -R root:root .
|
chown -R root:root .
|
||||||
find -L . \
|
find -L . \
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
PRGNAM="psi-plus"
|
PRGNAM="psi-plus"
|
||||||
VERSION="1.5.2064"
|
VERSION="1.5.2064"
|
||||||
HOMEPAGE="http://psi-im.org/"
|
HOMEPAGE="http://psi-im.org/"
|
||||||
DOWNLOAD="https://github.com/psi-plus/psi-plus-snapshots/archive/refs/tags/1.5.2064.tar.gz"
|
DOWNLOAD="https://github.com/psi-plus/psi-plus-snapshots/archive/refs/tags/1.5.2064/psi-plus-snapshots-1.5.2064.tar.gz"
|
||||||
MD5SUM="d16d95d4de325623321dfb609115234c"
|
MD5SUM="d16d95d4de325623321dfb609115234c"
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
cd $(dirname $0) ; CWD=$(pwd)
|
cd $(dirname $0) ; CWD=$(pwd)
|
||||||
|
|
||||||
PRGNAM=weechat
|
PRGNAM=weechat
|
||||||
VERSION=${VERSION:-4.2.2}
|
VERSION=${VERSION:-4.6.3}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_EXs}
|
TAG=${TAG:-_EXs}
|
||||||
PKGTYPE=${PKGTYPE:-tgz}
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
@@ -85,6 +85,7 @@ cd build
|
|||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
-DENABLE_LUA=OFF \
|
-DENABLE_LUA=OFF \
|
||||||
-DENABLE_JAVASCRIPT=OFF \
|
-DENABLE_JAVASCRIPT=OFF \
|
||||||
|
-DENABLE_CJSON=OFF \
|
||||||
-DENABLE_PHP=OFF \
|
-DENABLE_PHP=OFF \
|
||||||
-DENABLE_DOC=OFF \
|
-DENABLE_DOC=OFF \
|
||||||
-DENABLE_MAN=ON \
|
-DENABLE_MAN=ON \
|
||||||
@@ -106,7 +107,7 @@ mkdir -p $PKG/usr/share/pixmaps
|
|||||||
ln -s ../icons/hicolor/32x32/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
|
ln -s ../icons/hicolor/32x32/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
|
||||||
|
|
||||||
mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION"
|
mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION"
|
||||||
cp -a COPYING *.adoc "$PKG/usr/doc/$PRGNAM-$VERSION"
|
cp -a COPYING AUTHORS.md CHANGELOG.md README.md UPGRADING.md "$PKG/usr/doc/$PRGNAM-$VERSION"
|
||||||
cat $CWD/$PRGNAM.SlackBuild > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild"
|
cat $CWD/$PRGNAM.SlackBuild > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild"
|
||||||
|
|
||||||
mkdir -p $PKG/install
|
mkdir -p $PKG/install
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
PRGNAM="weechat"
|
PRGNAM="weechat"
|
||||||
VERSION="4.2.2"
|
VERSION="4.6.3"
|
||||||
HOMEPAGE="https://www.weechat.org"
|
HOMEPAGE="https://www.weechat.org"
|
||||||
DOWNLOAD=" https://weechat.org/files/src/weechat-4.2.2.tar.xz"
|
DOWNLOAD="https://weechat.org/files/src/weechat-4.6.3.tar.xz"
|
||||||
MD5SUM="ca733ed70de755fa298ff45a5b6e61b7"
|
MD5SUM="96dc2d0d883cf61f504144552f30dd31"
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
REQUIRES=""
|
REQUIRES=""
|
||||||
|
|||||||
6
yubico-piv-tool/README
Normal file
6
yubico-piv-tool/README
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
The Yubico PIV tool is used for interacting with the Personal Identity
|
||||||
|
Verification (PIV) application on a YubiKey.
|
||||||
|
|
||||||
|
With it you may generate keys on the device, importing keys and
|
||||||
|
certificates, and create certificate requests, and other operations. A
|
||||||
|
shared library and a command-line tool is included.
|
||||||
19
yubico-piv-tool/slack-desc
Normal file
19
yubico-piv-tool/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------------------------------------------------------|
|
||||||
|
yubico-piv-tool: yubico-piv-tool (tool for interacting with YubiKey PIV)
|
||||||
|
yubico-piv-tool:
|
||||||
|
yubico-piv-tool: The Yubico PIV tool is used for interacting with the Personal
|
||||||
|
yubico-piv-tool: Identity Verification (PIV) application on a YubiKey.
|
||||||
|
yubico-piv-tool:
|
||||||
|
yubico-piv-tool: With it you may generate keys on the device, importing keys
|
||||||
|
yubico-piv-tool: and certificates, and create certificate requests, and other
|
||||||
|
yubico-piv-tool: operations.
|
||||||
|
yubico-piv-tool:
|
||||||
|
yubico-piv-tool: A shared library and a command-line tool is included.
|
||||||
|
yubico-piv-tool:
|
||||||
4
yubico-piv-tool/slack-required
Normal file
4
yubico-piv-tool/slack-required
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
gengetopt
|
||||||
|
pcsc-lite
|
||||||
|
opensc
|
||||||
|
ccid
|
||||||
117
yubico-piv-tool/yubico-piv-tool.SlackBuild
Normal file
117
yubico-piv-tool/yubico-piv-tool.SlackBuild
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Slackware build script for yubico-piv-tool
|
||||||
|
|
||||||
|
# Copyright 2024 pyllyukko
|
||||||
|
# Copyright 2025 Sergei Fedosoff <eleksir@gmail.com>
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
PRGNAM=yubico-piv-tool
|
||||||
|
VERSION=${VERSION:-2.7.2}
|
||||||
|
BUILD=${BUILD:-1}
|
||||||
|
TAG=${TAG:-_EXs}
|
||||||
|
PKGTYPE=${PKGTYPE:-tgz}
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
case "$( uname -m )" in
|
||||||
|
i?86) ARCH=i586 ;;
|
||||||
|
arm*) ARCH=arm ;;
|
||||||
|
*) ARCH=$( uname -m ) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||||
|
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMP=${TMP:-/tmp/$TAG}
|
||||||
|
PKG=$TMP/package-$PRGNAM
|
||||||
|
OUTPUT=${OUTPUT:-/tmp}
|
||||||
|
|
||||||
|
if [ "$ARCH" = "i586" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "i686" ]; then
|
||||||
|
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
elif [ "$ARCH" = "x86_64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
elif [ "$ARCH" = "aarch64" ]; then
|
||||||
|
SLKCFLAGS="-O2 -fPIC"
|
||||||
|
LIBDIRSUFFIX="64"
|
||||||
|
else
|
||||||
|
SLKCFLAGS="-O2"
|
||||||
|
LIBDIRSUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf $PKG
|
||||||
|
mkdir -p $TMP $PKG $OUTPUT
|
||||||
|
cd $TMP
|
||||||
|
rm -rf $PRGNAM-$VERSION
|
||||||
|
tar xf $CWD/$PRGNAM-$VERSION.tar.gz
|
||||||
|
cd $PRGNAM-$VERSION
|
||||||
|
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 CFLAGS="$SLKCFLAGS -rdynamic"
|
||||||
|
export CXXFLAGS="$CFLAGS"
|
||||||
|
export LDFLAGS="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-s "
|
||||||
|
|
||||||
|
mkdir -p build
|
||||||
|
cd build
|
||||||
|
cmake \
|
||||||
|
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS -rdynamic" \
|
||||||
|
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -rdynamic" \
|
||||||
|
-DCMAKE_EXE_LINKER_FLAGS:STRING="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-O2" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
|
-DLIB_SUFFIX=${LIBDIRSUFFIX} \
|
||||||
|
-DYKPIV_INSTALL_MAN_DIR=/usr/man \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release ..
|
||||||
|
make -j$(nproc)
|
||||||
|
make install/strip DESTDIR=$PKG
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cp -a \
|
||||||
|
COPYING NEWS \
|
||||||
|
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||||
|
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||||
|
|
||||||
|
install -Dpm 0644 $CWD/slack-desc $PKG/install/slack-desc
|
||||||
|
install -Dpm 0644 $CWD/slack-required $PKG/install/slack-required
|
||||||
|
|
||||||
|
cd $PKG
|
||||||
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
||||||
10
yubico-piv-tool/yubico-piv-tool.info
Normal file
10
yubico-piv-tool/yubico-piv-tool.info
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
PRGNAM="yubico-piv-tool"
|
||||||
|
VERSION="2.7.2"
|
||||||
|
HOMEPAGE="https://developers.yubico.com/yubico-piv-tool/"
|
||||||
|
DOWNLOAD="https://developers.yubico.com/yubico-piv-tool/Releases/yubico-piv-tool-2.7.2.tar.gz"
|
||||||
|
MD5SUM="b50e3e3026ed4097c15f684cb99d13da"
|
||||||
|
DOWNLOAD_x86_64=""
|
||||||
|
MD5SUM_x86_64=""
|
||||||
|
REQUIRES="gengetopt pcsc-lite"
|
||||||
|
MAINTAINER="pyllyukko"
|
||||||
|
EMAIL="pyllyukko@maimed.org"
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
PRGNAM=znc
|
PRGNAM=znc
|
||||||
VERSION=${VERSION:-1.9.0}
|
VERSION=${VERSION:-1.10.1}
|
||||||
BUILD=${BUILD:-1}
|
BUILD=${BUILD:-1}
|
||||||
TAG=${TAG:-_EXs}
|
TAG=${TAG:-_EXs}
|
||||||
|
|
||||||
@@ -83,11 +83,13 @@ find -L . \
|
|||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
|
# Since 1.10.0 we need to select wt5 explicitly, as it binds to qt6 by default.
|
||||||
|
export ZNC_QT_VER=5
|
||||||
cmake -GNinja \
|
cmake -GNinja \
|
||||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||||
-DCMAKE_C_FLAGS:STRING="-g $SLKCFLAGS -rdynamic" \
|
-DCMAKE_C_FLAGS:STRING="-g $SLKCFLAGS" \
|
||||||
-DCMAKE_CXX_FLAGS:STRING="-g $SLKCFLAGS -rdynamic" \
|
-DCMAKE_CXX_FLAGS:STRING="-g $SLKCFLAGS" \
|
||||||
-DCMAKE_EXE_LINKER_FLAGS:STRING="-flto -rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-O2" \
|
-DCMAKE_EXE_LINKER_FLAGS:STRING="-rdynamic -Wl,--export-dynamic -Wl,-E -Wl,--no-as-needed -Wl,-O2" \
|
||||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||||
-DMANDIR=/usr/man \
|
-DMANDIR=/usr/man \
|
||||||
-DLIBDIR=/usr/lib${LIBDIRSUFFIX} \
|
-DLIBDIR=/usr/lib${LIBDIRSUFFIX} \
|
||||||
@@ -96,7 +98,7 @@ cmake -GNinja \
|
|||||||
-DWANT_ICU=ON \
|
-DWANT_ICU=ON \
|
||||||
-DWANT_IPV6=ON \
|
-DWANT_IPV6=ON \
|
||||||
-DWANT_OPENSSL=ON \
|
-DWANT_OPENSSL=ON \
|
||||||
-DWANT_PERL=ON \
|
-DWANT_PERL=OFF \
|
||||||
-DWANT_PYTHON=ON \
|
-DWANT_PYTHON=ON \
|
||||||
-DWANT_SWIG=ON \
|
-DWANT_SWIG=ON \
|
||||||
-DWANT_TCL=ON \
|
-DWANT_TCL=ON \
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
PRGNAM="znc"
|
PRGNAM="znc"
|
||||||
VERSION="1.9.0"
|
VERSION="1.10.1"
|
||||||
HOMEPAGE="https://wiki.znc.in/ZNC"
|
HOMEPAGE="https://wiki.znc.in/ZNC"
|
||||||
DOWNLOAD="https://znc.in/releases/archive/znc-1.9.0.tar.gz"
|
DOWNLOAD="https://znc.in/releases/znc-1.10.1.tar.gz"
|
||||||
MD5SUM="28c948af16e4b9307760d9fa951abf74"
|
MD5SUM="6b2ffec8c6507ddcaff854457022a832"
|
||||||
DOWNLOAD_x86_64=""
|
DOWNLOAD_x86_64=""
|
||||||
MD5SUM_x86_64=""
|
MD5SUM_x86_64=""
|
||||||
REQUIRES=""
|
REQUIRES=""
|
||||||
|
|||||||
Reference in New Issue
Block a user