diff options
Diffstat (limited to 'slackware64/l/glib2')
-rw-r--r-- | slackware64/l/glib2/doinst.sh | 32 | ||||
-rwxr-xr-x | slackware64/l/glib2/glib2.SlackBuild | 177 | ||||
-rw-r--r-- | slackware64/l/glib2/glib2.slackware.localtime.diff | 37 | ||||
-rw-r--r-- | slackware64/l/glib2/libglib2.csh | 27 | ||||
-rw-r--r-- | slackware64/l/glib2/libglib2.sh | 26 | ||||
-rw-r--r-- | slackware64/l/glib2/slack-desc | 19 |
6 files changed, 318 insertions, 0 deletions
diff --git a/slackware64/l/glib2/doinst.sh b/slackware64/l/glib2/doinst.sh new file mode 100644 index 00000000..a14f9606 --- /dev/null +++ b/slackware64/l/glib2/doinst.sh @@ -0,0 +1,32 @@ +# Handle the incoming configuration files: +config() { + for infile in $1; do + NEW="$infile" + 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... + done +} + +# Prepare the new configuration files +for file in etc/profile.d/libglib2.csh.new etc/profile.d/libglib2.sh.new ; do + if test -e $(dirname $file)/$(basename $file .new) ; then + if [ ! -x $(dirname $file)/$(basename $file .new) ]; then + chmod 644 $file + else + chmod 755 $file + fi + fi + config $file +done + +# Try to run these. If they fail, no biggie. +chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas/ 1> /dev/null 2> /dev/null +chroot . /usr/bin/gio-querymodules @LIBDIR@/gio/modules/ 1> /dev/null 2> /dev/null + diff --git a/slackware64/l/glib2/glib2.SlackBuild b/slackware64/l/glib2/glib2.SlackBuild new file mode 100755 index 00000000..0c0783ed --- /dev/null +++ b/slackware64/l/glib2/glib2.SlackBuild @@ -0,0 +1,177 @@ +#!/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=disabled \ + -Dfam=true \ + -Dman=true \ + -Dgtk_doc=true \ + -Dinstalled_tests=false \ + .. || exit 1 + "${NINJA:=ninja}" $NUMJOBS || exit 1 + DESTDIR=$PKG $NINJA install || exit 1 +cd .. + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +# Since meson isn't listening to options: +rm -rf $PKG/usr/libexec/installed-tests +rmdir $PKG/usr/libexec + +# 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/slackware64/l/glib2/glib2.slackware.localtime.diff b/slackware64/l/glib2/glib2.slackware.localtime.diff new file mode 100644 index 00000000..235632d1 --- /dev/null +++ b/slackware64/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/slackware64/l/glib2/libglib2.csh b/slackware64/l/glib2/libglib2.csh new file mode 100644 index 00000000..a1b67561 --- /dev/null +++ b/slackware64/l/glib2/libglib2.csh @@ -0,0 +1,27 @@ +#!/bin/csh +# +# Description: This script sets the environment variables G_FILENAME_ENCODING +# and G_BROKEN_FILENAMES for the glib-2.0 library. +# +# G_FILENAME_ENCODING +# This environment variable can be set to a comma-separated list of +# character set names. GLib assumes that filenames are encoded in the +# first character set from that list rather than in UTF-8. The special +# token "@locale" can be used to specify the character set for the +# current locale. +# +# G_BROKEN_FILENAMES +# If this environment variable is set, GLib assumes that filenames are +# in the locale encoding rather than in UTF-8. + +# If the LANG you have set contains any form of "UTF", we will guess you are +# using a UTF-8 locale. Hopefully we're correct. +echo $LANG | grep -iq UTF +if ($status == 0) then + setenv G_FILENAME_ENCODING "@locale" +endif + +# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority +# over G_BROKEN_FILENAMES: +setenv G_BROKEN_FILENAMES 1 + diff --git a/slackware64/l/glib2/libglib2.sh b/slackware64/l/glib2/libglib2.sh new file mode 100644 index 00000000..9b9fdc69 --- /dev/null +++ b/slackware64/l/glib2/libglib2.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Description: This script sets the environment variables G_FILENAME_ENCODING +# and G_BROKEN_FILENAMES for the glib-2.0 library. +# +# G_FILENAME_ENCODING +# This environment variable can be set to a comma-separated list of +# character set names. GLib assumes that filenames are encoded in the +# first character set from that list rather than in UTF-8. The special +# token "@locale" can be used to specify the character set for the +# current locale. +# +# G_BROKEN_FILENAMES +# If this environment variable is set, GLib assumes that filenames are +# in the locale encoding rather than in UTF-8. + +# If the LANG you have set contains any form of "UTF", we will guess you are +# using a UTF-8 locale. Hopefully we're correct. +if echo $LANG | grep -iq UTF ; then + export G_FILENAME_ENCODING="@locale" +fi + +# It doesn't hurt to export this since G_FILENAME_ENCODING takes priority +# over G_BROKEN_FILENAMES: +export G_BROKEN_FILENAMES=1 + diff --git a/slackware64/l/glib2/slack-desc b/slackware64/l/glib2/slack-desc new file mode 100644 index 00000000..39a8f437 --- /dev/null +++ b/slackware64/l/glib2/slack-desc @@ -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------------------------------------------------------| +glib2: glib2 (library of C routines) +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: |