slackware-current/source/d/ruby/ruby.SlackBuild

147 lines
4.7 KiB
Text
Raw Normal View History

#!/bin/bash
# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2018 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=ruby
if echo $PKGNAM-*.tar.?z | grep -q p ; then
# With patchlevel in tarball name:
VERSION=$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1,2 -d - | rev)
else
# Without patchlevel in tarball name:
VERSION=$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
fi
Fri Mar 31 18:01:09 UTC 2023 a/kernel-generic-6.1.22-x86_64-1.txz: Upgraded. a/kernel-huge-6.1.22-x86_64-1.txz: Upgraded. a/kernel-modules-6.1.22-x86_64-1.txz: Upgraded. a/mkinitrd-1.4.11-x86_64-32.txz: Rebuilt. Add /lib/firmware directory to _initrd-tree.tar.gz. Thanks to walecha. d/cmake-3.26.2-x86_64-1.txz: Upgraded. d/kernel-headers-6.1.22-x86-1.txz: Upgraded. d/llvm-16.0.0-x86_64-1.txz: Upgraded. Shared library .so-version bump. Thanks to Heinz Wiesinger for the assistance. Compiled with -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCLANG_LINK_CLANG_DYLIB=ON. I think we'll get 16.0.1 next week if we need to make any adjustments. d/ruby-3.2.2-x86_64-1.txz: Upgraded. This update fixes security issues: ReDoS vulnerability in URI. ReDoS vulnerability in Time. For more information, see: https://www.ruby-lang.org/en/news/2023/03/28/redos-in-uri-cve-2023-28755/ https://www.ruby-lang.org/en/news/2023/03/30/redos-in-time-cve-2023-28756/ https://www.cve.org/CVERecord?id=CVE-2023-28755 https://www.cve.org/CVERecord?id=CVE-2023-28756 (* Security fix *) k/kernel-source-6.1.22-noarch-1.txz: Upgraded. kde/kdevelop-22.12.3-x86_64-2.txz: Rebuilt. Recompiled against llvm-16.0.0. l/openexr-3.1.7-x86_64-1.txz: Upgraded. l/qt5-5.15.8_20230325_c1a3e988-x86_64-1.txz: Upgraded. Compiled against llvm-16.0.0. l/spirv-llvm-translator-16.0.0-x86_64-1.txz: Upgraded. Compiled against llvm-16.0.0. Thanks to Heinz Wiesinger for finding the fix for -DBUILD_SHARED_LIBS=ON. n/pssh-2.3.5-x86_64-1.txz: Upgraded. n/samba-4.18.1-x86_64-1.txz: Upgraded. This update fixes security issues: An incomplete access check on dnsHostName allows authenticated but otherwise unprivileged users to delete this attribute from any object in the directory. The Samba AD DC administration tool, when operating against a remote LDAP server, will by default send new or reset passwords over a signed-only connection. The fix in 4.6.16, 4.7.9, 4.8.4 and 4.9.7 for CVE-2018-10919 Confidential attribute disclosure via LDAP filters was insufficient and an attacker may be able to obtain confidential BitLocker recovery keys from a Samba AD DC. Installations with such secrets in their Samba AD should assume they have been obtained and need replacing. For more information, see: https://www.samba.org/samba/security/CVE-2023-0225.html https://www.samba.org/samba/security/CVE-2023-0922.html https://www.samba.org/samba/security/CVE-2023-0614.html https://www.cve.org/CVERecord?id=CVE-2023-0225 https://www.cve.org/CVERecord?id=CVE-2023-0922 https://www.cve.org/CVERecord?id=CVE-2023-0614 (* Security fix *) x/mesa-23.0.1-x86_64-2.txz: Rebuilt. Recompiled against llvm-16.0.0 and spirv-llvm-translator-16.0.0. xap/seamonkey-2.53.16-x86_64-1.txz: Upgraded. This update contains security fixes and improvements. For more information, see: https://www.seamonkey-project.org/releases/seamonkey2.53.16 (* Security fix *) isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. testing/packages/rust-1.68.2-x86_64-2.txz: Rebuilt. Use the bundled LLVM rather than the system LLVM. This version of Rust actually does compile with llvm-16.0.0, but since it bundles LLVM 15 let's let it use that for now. usb-and-pxe-installers/usbboot.img: Rebuilt.
2023-03-31 20:01:09 +02:00
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i586 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PKGNAM-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz"
exit 0
fi
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) "}
TMP=${TMP:-/tmp}
PKG=$TMP/package-ruby
if [ "$ARCH" = "i586" ]; then
# -O3 works around a compile failure due to a miniruby segfault
# when trying to build ruby with gcc-4.4 or newer. Evidently
# -O0 also works, but...
# other distributions also use -fno-strict-aliasing which helps stability
SLKCFLAGS="-march=i586 -mtune=i686 -O3 -fno-strict-aliasing"
OPTFLAGS=-O3
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
# Unknown if s390 also needs -O3. Check to see if it compiles with -O2.
SLKCFLAGS="-O3 -fno-strict-aliasing"
OPTFLAGS=-O3
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O3 -fPIC -fno-strict-aliasing"
OPTFLAGS=-O3
LIBDIRSUFFIX="64"
fi
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf ruby-$VERSION
tar xvf $CWD/ruby-$VERSION.tar.?z || exit 1
cd ruby-$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 {} \+
# Evidently certain things must be linked static.
# Seems suboptimal to me...
CFLAGS="$SLKCFLAGS" \
optflags=$OPTFLAGS \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--datadir=/usr/share \
--docdir=/usr/doc/ruby-$VERSION \
--enable-shared \
--enable-pthread \
--disable-install-capi \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/ruby-$VERSION
cp -a \
BSDL* CONTRIBUTING* COPYING* ChangeLog *GPL* LEGAL* NEWS* README* \
$PKG/usr/doc/ruby-$VERSION
# The entire ChangeLog is excessive for most users:
cat $PKG/usr/doc/ruby-$VERSION/ChangeLog | head -n 1000 > $PKG/usr/doc/ruby-$VERSION/CL
mv $PKG/usr/doc/ruby-$VERSION/CL $PKG/usr/doc/ruby-$VERSION/ChangeLog
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
find $PKG | xargs file | grep -e "current ar archive" \
| cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null
# Compress and if needed symlink the man pages:
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
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/ruby-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz