2018-05-28 21:12:29 +02:00
|
|
|
#!/bin/bash
|
2024-01-09 21:49:08 +01:00
|
|
|
# Copyright 2009, 2010, 2011, 2015, 2017, 2024 Patrick J. Volkerding, Sebeka, MN, USA
|
2009-08-26 17:00:38 +02:00
|
|
|
# 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.
|
|
|
|
|
2018-05-28 21:12:29 +02:00
|
|
|
cd $(dirname $0) ; CWD=$(pwd)
|
2009-08-26 17:00:38 +02:00
|
|
|
|
2010-05-19 10:58:23 +02:00
|
|
|
PKGNAM=btrfs-progs
|
2023-03-04 20:55:53 +01:00
|
|
|
BUILD=${BUILD:-1}
|
2010-05-19 10:58:23 +02:00
|
|
|
|
2018-09-21 20:51:07 +02:00
|
|
|
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
|
2010-05-19 10:58:23 +02:00
|
|
|
|
2012-09-26 03:10:42 +02:00
|
|
|
# Download the btrfs-progs Git head if there's no tarball:
|
2010-05-19 10:58:23 +02:00
|
|
|
if ! /bin/ls $CWD/btrfs-progs*tar* 1> /dev/null 2> /dev/null ; then
|
2012-09-26 03:10:42 +02:00
|
|
|
git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git
|
|
|
|
rm -r btrfs-progs/.git
|
|
|
|
tar cf btrfs-progs-$(date +%Y%m%d).tar btrfs-progs
|
2010-05-19 10:58:23 +02:00
|
|
|
xz -9 btrfs-progs-$(date +%Y%m%d).tar
|
2012-09-26 03:10:42 +02:00
|
|
|
rm -r $CWD/btrfs-progs
|
2010-05-19 10:58:23 +02:00
|
|
|
fi
|
|
|
|
|
2016-06-30 22:26:57 +02:00
|
|
|
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
|
2010-05-19 10:58:23 +02:00
|
|
|
|
|
|
|
# Automatically determine the architecture we're building on:
|
|
|
|
if [ -z "$ARCH" ]; then
|
|
|
|
case "$( uname -m )" in
|
2024-07-30 20:39:31 +02:00
|
|
|
i?86) export ARCH=i686 ;;
|
2010-05-19 10:58:23 +02:00
|
|
|
arm*) export ARCH=arm ;;
|
|
|
|
# Unless $ARCH is already set, use uname -m for all other archs:
|
|
|
|
*) export ARCH=$( uname -m ) ;;
|
|
|
|
esac
|
|
|
|
fi
|
2009-08-26 17:00:38 +02:00
|
|
|
|
2018-05-28 21:12:29 +02:00
|
|
|
# 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
|
2019-01-22 02:38:43 +01:00
|
|
|
echo "$PKGNAM-$(echo $VERSION | tr -d v)-$ARCH-$BUILD.txz"
|
2018-05-28 21:12:29 +02:00
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2024-07-30 20:39:31 +02:00
|
|
|
if [ "$ARCH" = "i686" ]; then
|
|
|
|
SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
|
2018-05-28 21:12:29 +02:00
|
|
|
LIBDIRSUFFIX=""
|
|
|
|
elif [ "$ARCH" = "x86_64" ]; then
|
2024-07-30 20:39:31 +02:00
|
|
|
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
|
2018-05-28 21:12:29 +02:00
|
|
|
LIBDIRSUFFIX="64"
|
|
|
|
else
|
|
|
|
SLKCFLAGS="-O2"
|
|
|
|
LIBDIRSUFFIX=""
|
|
|
|
fi
|
|
|
|
|
2009-08-26 17:00:38 +02:00
|
|
|
if [ "$TMP" = "" ]; then
|
|
|
|
TMP=/tmp
|
|
|
|
fi
|
|
|
|
PKG=$TMP/package-${PKGNAM}
|
|
|
|
rm -rf $PKG
|
|
|
|
mkdir -p $PKG
|
|
|
|
|
|
|
|
cd $TMP
|
2022-04-30 23:35:21 +02:00
|
|
|
rm -rf btrfs-progs-$VERSION
|
2018-05-28 21:12:29 +02:00
|
|
|
tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
|
2022-04-30 23:35:21 +02:00
|
|
|
cd btrfs-progs-$VERSION || exit 1
|
2009-08-26 17:00:38 +02:00
|
|
|
|
|
|
|
# Make sure ownerships and permissions are sane:
|
|
|
|
chown -R root:root .
|
2019-09-30 23:08:32 +02:00
|
|
|
find . -perm 666 -exec chmod 644 {} \+
|
|
|
|
find . -perm 664 -exec chmod 644 {} \+
|
|
|
|
find . -perm 600 -exec chmod 644 {} \+
|
|
|
|
find . -perm 444 -exec chmod 644 {} \+
|
|
|
|
find . -perm 400 -exec chmod 644 {} \+
|
|
|
|
find . -perm 440 -exec chmod 644 {} \+
|
|
|
|
find . -perm 777 -exec chmod 755 {} \+
|
|
|
|
find . -perm 775 -exec chmod 755 {} \+
|
|
|
|
find . -perm 511 -exec chmod 755 {} \+
|
|
|
|
find . -perm 711 -exec chmod 755 {} \+
|
|
|
|
find . -perm 555 -exec chmod 755 {} \+
|
2009-08-26 17:00:38 +02:00
|
|
|
|
2016-06-30 22:26:57 +02:00
|
|
|
# Configure:
|
|
|
|
CFLAGS="$SLKCFLAGS" \
|
|
|
|
./configure \
|
|
|
|
--prefix=/usr \
|
|
|
|
--bindir=/sbin \
|
|
|
|
--sysconfdir=/etc \
|
|
|
|
--libdir=/usr/lib${LIBDIRSUFFIX} \
|
|
|
|
--mandir=/usr/man \
|
|
|
|
--infodir=/usr/info \
|
2018-05-28 21:12:29 +02:00
|
|
|
--build=$ARCH-slackware-linux || exit 1
|
2016-06-30 22:26:57 +02:00
|
|
|
|
|
|
|
# Build and install:
|
2010-05-19 10:58:23 +02:00
|
|
|
make $NUMJOBS || make || exit 1
|
|
|
|
make install DESTDIR=$PKG || exit 1
|
2009-08-26 17:00:38 +02:00
|
|
|
|
2018-05-28 21:12:29 +02:00
|
|
|
# Don't ship static library:
|
|
|
|
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a
|
|
|
|
|
2024-01-09 21:49:08 +01:00
|
|
|
# Install the bash-completion file manually:
|
|
|
|
mkdir -p $PKG/usr/share/bash-completion/completions
|
|
|
|
cp -a btrfs-completion $PKG/usr/share/bash-completion/completions/btrfs
|
|
|
|
chown root:root $PKG/usr/share/bash-completion/completions/btrfs
|
|
|
|
chmod 644 $PKG/usr/share/bash-completion/completions/btrfs
|
|
|
|
|
2009-08-26 17:00:38 +02:00
|
|
|
# Strip binaries:
|
|
|
|
( cd $PKG
|
2010-05-19 10:58:23 +02:00
|
|
|
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
|
|
|
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
|
2009-08-26 17:00:38 +02:00
|
|
|
)
|
|
|
|
|
2016-06-30 22:26:57 +02:00
|
|
|
# Move manpages:
|
|
|
|
mv $PKG/usr/share/man $PKG/usr/man
|
|
|
|
rmdir $PKG/usr/share
|
2010-05-19 10:58:23 +02:00
|
|
|
|
2013-11-04 18:08:47 +01:00
|
|
|
# According to https://btrfs.wiki.kernel.org/index.php/FAQ#When_will_Btrfs_have_a_fsck_like_tool.3F
|
2016-06-30 22:26:57 +02:00
|
|
|
# it is safe and recommended to make fsck.btrfs a no-op by linking it to /bin/true:
|
2013-11-04 18:08:47 +01:00
|
|
|
ln -sf /bin/true $PKG/sbin/fsck.btrfs
|
2010-05-19 10:58:23 +02:00
|
|
|
|
2009-08-26 17:00:38 +02:00
|
|
|
# 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
|
2016-06-30 22:26:57 +02:00
|
|
|
for eachpage in $( find . -type l -maxdepth 1 | grep -v '\.gz$') ; do
|
2009-08-26 17:00:38 +02:00
|
|
|
ln -s $( readlink $eachpage ).gz $eachpage.gz
|
|
|
|
rm $eachpage
|
|
|
|
done
|
|
|
|
gzip -9 *.?
|
|
|
|
)
|
|
|
|
done
|
|
|
|
)
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Add a documentation directory:
|
2019-01-22 02:38:43 +01:00
|
|
|
mkdir -p $PKG/usr/doc/${PKGNAM}-$(echo $VERSION | tr -d v)
|
2009-08-26 17:00:38 +02:00
|
|
|
cp -a \
|
Thu Oct 26 19:55:16 UTC 2023
a/kernel-firmware-20231024_4ee0175-noarch-1.txz: Upgraded.
a/kernel-generic-6.1.60-x86_64-1.txz: Upgraded.
a/kernel-huge-6.1.60-x86_64-1.txz: Upgraded.
a/kernel-modules-6.1.60-x86_64-1.txz: Upgraded.
a/shadow-4.14.1-x86_64-1.txz: Upgraded.
d/kernel-headers-6.1.60-x86-1.txz: Upgraded.
k/kernel-source-6.1.60-noarch-1.txz: Upgraded.
Hey folks, if you've been following LQ you know I've talked before about
dropping the huge kernel and moving the distribution to use only the generic
kernel plus an initrd. After mulling this over for a few months, I think I
was looking at the problem in the wrong way. First of all, it's clear that
some Slackware users have been using the huge kernel all along, without an
initrd, and are (to say the least) unhappy about the prospect of a new
requirement to start using one. I've been recommending the generic kernel for
some time, and a major reason is that we've been using the same set of kernel
modules with two slightly different kernels. Because of this, there have
always been a few (generally seldom used) kernel modules that won't load into
the huge kernel. These are things that aren't built into the huge kernel, but
because of a difference in some kernel module dependency, they won't load.
The conclusion that I've come to here is that rather than drop the huge
kernel, or slap a LOCALVERSION on it and provide a whole duplicate tree of
kernel modules especially for the huge kernel, it would be better to make the
generic kernel more huge, and minimize the differences between the two kernel
configs.
That's what I've done here.
Shown below are the differences between the previous generic kernel config
and the one shipping in this update. You'll notice that most of the popular
filesystems are built in. At this point the main difference it that the huge
kernel has a couple of dozen SCSI drivers built into it. The modules for those
drivers won't load into the huge kernel, but they're fully built in so that
doesn't matter. If you find any other modules that will not load into the huge
kernel, please make a note about it on LQ and I'll see what can be done.
So, tl;dr - what does this change mean?
Unless your root device is on SCSI, if you were able to use the huge kernel
without an initrd previously, you should now be able to use the generic
kernel without an initrd. The kernel is a bit bigger, but we probably have
enough RAM these days that it won't make a difference.
Enjoy! :-)
-CIFS_SMB_DIRECT n
9P_FS m -> y
9P_FSCACHE n -> y
BTRFS_FS m -> y
CIFS m -> y
CRYPTO_CMAC m -> y
CRYPTO_CRC32 m -> y
CRYPTO_XXHASH m -> y
CRYPTO_ZSTD m -> y
EFIVAR_FS m -> y
EXFAT_FS m -> y
EXT2_FS m -> y
EXT3_FS m -> y
EXT4_FS m -> y
F2FS_FS m -> y
FAILOVER m -> y
FAT_FS m -> y
FSCACHE m -> y
FS_ENCRYPTION_ALGS m -> y
FS_MBCACHE m -> y
HW_RANDOM_VIRTIO m -> y
ISO9660_FS m -> y
JBD2 m -> y
JFS_FS m -> y
LZ4HC_COMPRESS m -> y
LZ4_COMPRESS m -> y
MSDOS_FS m -> y
NETFS_SUPPORT m -> y
NET_9P m -> y
NET_9P_FD m -> y
NET_9P_VIRTIO m -> y
NET_FAILOVER m -> y
NFSD m -> y
NLS_CODEPAGE_437 m -> y
NTFS3_FS m -> y
NTFS_FS m -> y
PSTORE_LZ4_COMPRESS n -> m
PSTORE_LZO_COMPRESS n -> m
PSTORE_ZSTD_COMPRESS n -> y
QFMT_V2 m -> y
QUOTA_TREE m -> y
REISERFS_FS m -> y
RPCSEC_GSS_KRB5 m -> y
SMBFS m -> y
SQUASHFS m -> y
UDF_FS m -> y
VFAT_FS m -> y
VIRTIO_BALLOON m -> y
VIRTIO_BLK m -> y
VIRTIO_CONSOLE m -> y
VIRTIO_INPUT m -> y
VIRTIO_MMIO m -> y
VIRTIO_NET m -> y
VIRTIO_PCI m -> y
VIRTIO_PCI_LIB m -> y
VIRTIO_PCI_LIB_LEGACY m -> y
VIRTIO_PMEM m -> y
XFS_FS m -> y
ZONEFS_FS n -> m
ZSTD_COMPRESS m -> y
+NFS_FSCACHE y
+PSTORE_LZ4_COMPRESS_DEFAULT n
+PSTORE_LZO_COMPRESS_DEFAULT n
+PSTORE_ZSTD_COMPRESS_DEFAULT n
kde/plasma-workspace-5.27.9.1-x86_64-1.txz: Upgraded.
l/glib2-2.78.1-x86_64-1.txz: Upgraded.
l/netpbm-11.04.03-x86_64-1.txz: Upgraded.
l/newt-0.52.24-x86_64-1.txz: Upgraded.
n/gpgme-1.23.0-x86_64-1.txz: Upgraded.
n/p11-kit-0.25.1-x86_64-1.txz: Upgraded.
n/php-8.2.12-x86_64-1.txz: Upgraded.
This is a bugfix release.
For more information, see:
https://www.php.net/ChangeLog-8.php#8.2.12
x/xorg-server-21.1.9-x86_64-1.txz: Upgraded.
This update fixes security issues:
OOB write in XIChangeDeviceProperty/RRChangeOutputProperty.
Use-after-free bug in DestroyWindow.
For more information, see:
https://lists.x.org/archives/xorg-announce/2023-October/003430.html
https://www.cve.org/CVERecord?id=CVE-2023-5367
https://www.cve.org/CVERecord?id=CVE-2023-5380
(* Security fix *)
x/xorg-server-xephyr-21.1.9-x86_64-1.txz: Upgraded.
x/xorg-server-xnest-21.1.9-x86_64-1.txz: Upgraded.
x/xorg-server-xvfb-21.1.9-x86_64-1.txz: Upgraded.
x/xorg-server-xwayland-23.2.2-x86_64-1.txz: Upgraded.
This update fixes a security issue:
OOB write in XIChangeDeviceProperty/RRChangeOutputProperty.
For more information, see:
https://lists.x.org/archives/xorg-announce/2023-October/003430.html
https://www.cve.org/CVERecord?id=CVE-2023-5367
(* Security fix *)
xap/mozilla-thunderbird-115.4.1-x86_64-1.txz: Upgraded.
This release contains security fixes and improvements.
For more information, see:
https://www.mozilla.org/en-US/thunderbird/115.4.1/releasenotes/
https://www.mozilla.org/en-US/security/advisories/mfsa2023-47/
https://www.cve.org/CVERecord?id=CVE-2023-5721
https://www.cve.org/CVERecord?id=CVE-2023-5732
https://www.cve.org/CVERecord?id=CVE-2023-5724
https://www.cve.org/CVERecord?id=CVE-2023-5725
https://www.cve.org/CVERecord?id=CVE-2023-5726
https://www.cve.org/CVERecord?id=CVE-2023-5727
https://www.cve.org/CVERecord?id=CVE-2023-5728
https://www.cve.org/CVERecord?id=CVE-2023-5730
(* Security fix *)
xfce/thunar-4.18.8-x86_64-1.txz: Upgraded.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
2023-10-26 21:55:16 +02:00
|
|
|
CHANGES COPYING* INSTALL README* \
|
2019-01-22 02:38:43 +01:00
|
|
|
$PKG/usr/doc/${PKGNAM}-$(echo $VERSION | tr -d v)
|
2009-08-26 17:00:38 +02:00
|
|
|
|
|
|
|
mkdir -p $PKG/install
|
|
|
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
|
|
|
|
|
|
cd $TMP/package-${PKGNAM}
|
2019-01-22 02:38:43 +01:00
|
|
|
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr -d v)-$ARCH-$BUILD.txz
|
2009-08-26 17:00:38 +02:00
|
|
|
|