diff options
Diffstat (limited to 'source/l/glib2')
-rwxr-xr-x | source/l/glib2/glib2.SlackBuild | 11 | ||||
-rwxr-xr-x | source/l/glib2/glib2.SlackBuild.meson | 172 | ||||
-rw-r--r-- | source/l/glib2/glib2.slackware.localtime.diff | 37 | ||||
-rw-r--r-- | source/l/glib2/slack-desc | 10 |
4 files changed, 222 insertions, 8 deletions
diff --git a/source/l/glib2/glib2.SlackBuild b/source/l/glib2/glib2.SlackBuild index be35aa0b..4998e415 100755 --- a/source/l/glib2/glib2.SlackBuild +++ b/source/l/glib2/glib2.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=glib2 VERSION=${VERSION:-$(echo glib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-2} +BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} @@ -77,8 +77,12 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# Silly upstream, using the bleeding edge. Reconf: -#autoreconf --force --install +# Get the local timezone link from /etc/localtime-copied-from: +zcat $CWD/glib2.slackware.localtime.diff.gz | patch -p1 --verbose || exit 1 + +if [ ! -r configure ]; then + NOCONFIGURE=1 ./autogen.sh +fi CFLAGS="$SLKCFLAGS" \ ./configure \ @@ -86,6 +90,7 @@ CFLAGS="$SLKCFLAGS" \ --libdir=/usr/lib${LIBDIRSUFFIX} \ --sysconfdir=/etc \ --mandir=/usr/man \ + --enable-gtk-doc \ --disable-libelf \ --build=$ARCH-slackware-linux || exit 1 diff --git a/source/l/glib2/glib2.SlackBuild.meson b/source/l/glib2/glib2.SlackBuild.meson new file mode 100755 index 00000000..6d035048 --- /dev/null +++ b/source/l/glib2/glib2.SlackBuild.meson @@ -0,0 +1,172 @@ +#!/bin/bash + +# Copyright 2008, 2009, 2010, 2011, 2015, 2017, 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=glib2 +VERSION=${VERSION:-$(echo glib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} +BUILD=${BUILD:-1} + +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 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-$VERSION-$ARCH-$BUILD.txz" + exit 0 +fi + +TMP=${TMP:-/tmp} +PKG=$TMP/package-glib2 + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf $PKG +mkdir -p $TMP $PKG/usr +cd $TMP +rm -rf glib-$VERSION +tar xvf $CWD/glib-$VERSION.tar.?z* || exit 1 +cd glib-$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 {} \; + +# Get the local timezone link from /etc/localtime-copied-from: +zcat $CWD/glib2.slackware.localtime.diff.gz | patch -p1 --verbose || exit 1 + +# Configure, build, and install: +export CFLAGS="$SLKCFLAGS" +export CXXFLAGS="$SLKCFLAGS" +mkdir meson-build +cd meson-build +meson setup \ + --prefix=/usr \ + --libdir=lib${LIBDIRSUFFIX} \ + --libexecdir=/usr/libexec \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --includedir=/usr/include \ + --datadir=/usr/share \ + --mandir=/usr/man \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --buildtype=release \ + -Dselinux=false \ + -Dfam=true \ + -Dman=true \ + -Dgtk_doc=true \ + .. || exit 1 + ninja || exit 1 + DESTDIR=$PKG ninja install || exit 1 +cd .. + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +# Install profile scripts: +mkdir -p $PKG/etc/profile.d/ +cp -a $CWD/libglib2.{csh,sh} $PKG/etc/profile.d/ +chown root:root $PKG/etc/profile.d/* +chmod 755 $PKG/etc/profile.d/* +mv $PKG/etc/profile.d/libglib2.csh $PKG/etc/profile.d/libglib2.csh.new +mv $PKG/etc/profile.d/libglib2.sh $PKG/etc/profile.d/libglib2.sh.new + +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 + +mkdir -p $PKG/usr/doc/glib-$VERSION +cp -a \ + AUTHORS COPYING* NEWS README* \ + $PKG/usr/doc/glib-$VERSION + rm -f $PKG/usr/doc/glib-$VERSION/README.{in,win32} + +# Make links to the documentation in /usr/share/gtk-doc/: +( cd $PKG/usr/doc/glib-$VERSION + for dir in $PKG/usr/share/gtk-doc/html/* ; do + ln -s /usr/share/gtk-doc/html/$(basename $dir) . + done +) + +# 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 + +# Trim down bloated NEWS file: +if [ -r NEWS ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat NEWS | head -n 1000 > $DOCSDIR/NEWS + touch -r NEWS $DOCSDIR/NEWS +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz | sed "s,@LIBDIR@,/usr/lib${LIBDIRSUFFIX}," > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n --prepend $TMP/glib2-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/glib2/glib2.slackware.localtime.diff b/source/l/glib2/glib2.slackware.localtime.diff new file mode 100644 index 00000000..235632d1 --- /dev/null +++ b/source/l/glib2/glib2.slackware.localtime.diff @@ -0,0 +1,37 @@ +From 4ac2d88f3153d8cdaa003601363e71f46820a187 Mon Sep 17 00:00:00 2001 +From: Patrick J. Volkerding <volkerdi@slackware.com> +Date: Tue, 20 Nov 2018 13:26:57 -0600 +Subject: [PATCH] Also look at /etc/localtime-copied-from + +In Slackware, /etc/localtime is a copy of the local timezone file, not a +symlink to it, but the latest glib expects a symlink (because that's been +demanded by systemd and guess-who). So, if we find that /etc/localtime is +not a symlink, consider /etc/localtime-copied-from next. On Slackware +systems this will be a symlink to the local timezone file under +/usr/share/zoneinfo. We still want to consider the possibility that +/etc/localtime *is* a symlink first though, since that's an acceptable +local system modification on Slackware. + +--- ./glib/gtimezone.c.orig 2018-09-21 09:23:53.000000000 -0500 ++++ ./glib/gtimezone.c 2018-11-20 13:11:31.601643410 -0600 +@@ -440,6 +440,20 @@ + + /* Resolve the actual timezone pointed to by /etc/localtime. */ + resolved_identifier = g_file_read_link (filename, &read_link_err); ++ ++ /* If we didn't get the timezone here (probably because ++ * /etc/localtime is not a symlink), then we will try again using ++ * /etc/localtime-copied-from, which on Slackware is a symlink to ++ * the local timezone file. */ ++ if (resolved_identifier == NULL) ++ { ++ filename = g_strdup ("/etc/localtime-copied-from"); ++ g_clear_error (&read_link_err); ++ resolved_identifier = g_file_read_link (filename, &read_link_err); ++ } ++ ++ /* Test that we got the resolved_identifier. If not, fall back on the ++ * last option (/var/db/zoneinfo file, as found on FreeBSD) */ + if (resolved_identifier == NULL) + { + gboolean not_a_symlink = g_error_matches (read_link_err, diff --git a/source/l/glib2/slack-desc b/source/l/glib2/slack-desc index 66ba8283..39a8f437 100644 --- a/source/l/glib2/slack-desc +++ b/source/l/glib2/slack-desc @@ -8,12 +8,12 @@ |-----handy-ruler------------------------------------------------------| glib2: glib2 (library of C routines) glib2: -glib2: GLib is a library which includes support routines for C such as lists, -glib2: trees, hashes, memory allocation, and many other things. -glib2: -glib2: -glib2: +glib2: GLib is the low-level core library that forms the basis for projects +glib2: such as GTK+ and GNOME. It provides data structure handling for C, +glib2: portability wrappers, and interfaces for such runtime functionality as +glib2: an event loop, threads, dynamic loading, and an object system. glib2: +glib2: Homepage: https://www.gtk.org glib2: glib2: glib2: |