slackware-current/source/a/btrfs-progs/btrfs-progs.SlackBuild

160 lines
5.1 KiB
Text
Raw Normal View History

#!/bin/bash
# Copyright 2009, 2010, 2011, 2015, 2017, 2024 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=btrfs-progs
BUILD=${BUILD:-1}
Fri Sep 21 18:51:07 UTC 2018 a/eudev-3.2.6-x86_64-1.txz: Upgraded. a/glibc-solibs-2.28-x86_64-2.txz: Upgraded. a/grub-2.02-x86_64-3.txz: Rebuilt. Patched to fix compatibility with recent xfsprogs. Thanks to Markus Wiesner. a/kernel-generic-4.14.71-x86_64-1.txz: Upgraded. a/kernel-huge-4.14.71-x86_64-1.txz: Upgraded. a/kernel-modules-4.14.71-x86_64-1.txz: Upgraded. ap/opus-tools-0.2-x86_64-1.txz: Upgraded. ap/sqlite-3.25.1-x86_64-1.txz: Upgraded. d/icecream-20180905_cdc6ff8-x86_64-1.txz: Upgraded. d/kernel-headers-4.14.71-x86-1.txz: Upgraded. d/llvm-7.0.0-x86_64-1.txz: Upgraded. Shared library .so-version bump. k/kernel-source-4.14.71-noarch-1.txz: Upgraded. l/ffmpeg-3.4.4-x86_64-2.txz: Rebuilt. Don't try to link with Samba since the latest version is not compatible. l/glibc-2.28-x86_64-2.txz: Upgraded. All packages have been patched where needed for glibc-2.28 and compile tested here. Thanks to nobodino for the help. l/glibc-i18n-2.28-x86_64-2.txz: Upgraded. l/glibc-profile-2.28-x86_64-2.txz: Upgraded. l/gst-plugins-base-1.14.3-x86_64-1.txz: Upgraded. l/gst-plugins-good-1.14.3-x86_64-1.txz: Upgraded. l/gst-plugins-libav-1.14.3-x86_64-1.txz: Upgraded. l/gstreamer-1.14.3-x86_64-1.txz: Upgraded. l/imagemagick-6.9.10_11-x86_64-1.txz: Upgraded. l/libopusenc-0.2-x86_64-1.txz: Added. l/librsvg-2.44.3-x86_64-1.txz: Upgraded. l/opus-1.3_rc2-x86_64-1.txz: Upgraded. l/opusfile-0.11-x86_64-1.txz: Upgraded. l/soprano-2.9.4-x86_64-3.txz: Rebuilt. Recompiled to drop virtuoso dependency. l/virtuoso-ose-6.1.8-x86_64-9.txz: Removed. Even KDE4 has migrated away from actually using this for anything. The last thing in Slackware that was dependent on it was Soprano, which has been recompiled to no longer use it. n/postfix-3.3.1-x86_64-2.txz: Rebuilt. Recompiled so that it quits whining about OpenSSL. Thanks to shastah. x/mesa-18.2.1-x86_64-1.txz: Upgraded. Compiled against llvm-7.0.0. x/xf86-video-vmware-13.3.0-x86_64-2.txz: Rebuilt. Recompiled against llvm-7.0.0. x/xterm-336-x86_64-1.txz: Upgraded. extra/pure-alsa-system/ffmpeg-3.4.4-x86_64-2_alsa.txz: Rebuilt. Don't try to link with Samba since the latest version is not compatible. extra/pure-alsa-system/gst-plugins-good-1.14.3-x86_64-1_alsa.txz: Upgraded. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
2018-09-21 20:51:07 +02:00
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
# Download the btrfs-progs Git head if there's no tarball:
if ! /bin/ls $CWD/btrfs-progs*tar* 1> /dev/null 2> /dev/null ; then
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
xz -9 btrfs-progs-$(date +%Y%m%d).tar
rm -r $CWD/btrfs-progs
fi
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
# 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-$(echo $VERSION | tr -d v)-$ARCH-$BUILD.txz"
exit 0
fi
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
if [ "$TMP" = "" ]; then
TMP=/tmp
fi
PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $PKG
cd $TMP
rm -rf btrfs-progs-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
cd btrfs-progs-$VERSION || exit 1
# Make sure ownerships and permissions are sane:
chown -R root:root .
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 {} \+
# Configure:
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--bindir=/sbin \
--sysconfdir=/etc \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--infodir=/usr/info \
--build=$ARCH-slackware-linux || exit 1
# Build and install:
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
# Don't ship static library:
rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a
# 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
# Strip binaries:
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)
# Move manpages:
mv $PKG/usr/share/man $PKG/usr/man
rmdir $PKG/usr/share
# According to https://btrfs.wiki.kernel.org/index.php/FAQ#When_will_Btrfs_have_a_fsck_like_tool.3F
# it is safe and recommended to make fsck.btrfs a no-op by linking it to /bin/true:
ln -sf /bin/true $PKG/sbin/fsck.btrfs
# 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 | grep -v '\.gz$') ; do
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
gzip -9 *.?
)
done
)
fi
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$(echo $VERSION | tr -d v)
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* \
$PKG/usr/doc/${PKGNAM}-$(echo $VERSION | tr -d v)
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $TMP/package-${PKGNAM}
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr -d v)-$ARCH-$BUILD.txz