desktop/gnome-shell: Updated for version 41.9.

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Bob Funk 2022-11-18 06:03:28 +00:00 committed by Willy Sudiarto Raharjo
parent 5a16116195
commit 76ff721098
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
7 changed files with 123 additions and 5 deletions

View File

@ -0,0 +1,15 @@
# Force gnome-shell-41.9 to build with gsettings-desktop-schemas-40.0, even
# though it requires 41.0. We will provide the missing lockdown schema via
# a custom gschema.override file.
diff -Naur gnome-shell-41.9/meson.build gnome-shell-41.9-patched/meson.build
--- gnome-shell-41.9/meson.build 2022-11-07 22:12:51.545039805 -0600
+++ gnome-shell-41.9-patched/meson.build 2022-11-07 22:15:40.262049957 -0600
@@ -28,7 +28,7 @@
gtk_req = '>= 3.15.0'
mutter_req = '>= 41.0'
polkit_req = '>= 0.100'
-schemas_req = '>= 41.alpha'
+schemas_req = '>= 40.alpha'
startup_req = '>= 0.11'
ibus_req = '>= 1.5.19'
gnome_desktop_req = '>= 3.35.90'

View File

@ -3,3 +3,10 @@ desktop, like switching to windows and launching applications. GNOME
Shell takes advantage of the capabilities of modern graphics hardware Shell takes advantage of the capabilities of modern graphics hardware
and introduces innovative user interface concepts to provide a visually and introduces innovative user interface concepts to provide a visually
attractive and easy to use experience. attractive and easy to use experience.
Note: This build of gnome-shell includes it own gschema files from
gsettings-desktop-schemas-41.0, which allows gnome-shell-41 to run on
Slackware 15.0. These schema files are kept separate from Slackware's
copy, which are at version 40.0. gnome-shell is made aware of these
custom built schemas using a wrapper script.

View File

@ -13,3 +13,14 @@ if [ -e usr/share/glib-2.0/schemas ]; then
/usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas >/dev/null 2>&1 /usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas >/dev/null 2>&1
fi fi
fi fi
# Set the gnome-shell wrapper executable:
( cd usr/bin ; chmod 0755 gnome-shell )
# Compile our custom provided schemas from gsettings-desktop-schemas-41.0:
if [ -e usr/share/gnome-shell/gsettings-desktop-schemas/glib-2.0/schemas ]; then
if [ -x /usr/bin/glib-compile-schemas ]; then
/usr/bin/glib-compile-schemas usr/share/gnome-shell/gsettings-desktop-schemas/glib-2.0/schemas >/dev/null 2>&1
fi
fi

View File

@ -0,0 +1,11 @@
# The gnome-shell doinst.sh script compiles custom gsettings-schemas
# in the location /usr/share/gnome-shell/gsettings-desktop-schemas
#
# The compiled schemas will remain after package removal, so clean
# them up:
GSCHEMA_DIR="/usr/share/gnome-shell/gsettings-desktop-schemas"
if [ -e "$GSCHEMA_DIR" ]; then
rm -rf "$GSCHEMA_DIR"
fi

View File

@ -22,10 +22,18 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# NOTE: This SlackBuild also builds gsettings-desktop-schemas-41.0 and packages
# it along with gnome-shell. This allows gnome-shell-41 to work on
# Slackware-15.0, which comes with gsettings-desktop-schemas-40.0.
# TO make this work we patch gnome-shell to allow it to build against
# Slackware's gsettings-desktop-schemas-40.0. Then we install the 41.0 schemas
# in a alternate location, compile them, and show gnome-shell where they are
# using XDG_DATA_DIRS at runtime with a wrapper script.
cd $(dirname $0) ; CWD=$(pwd) cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=gnome-shell PRGNAM=gnome-shell
VERSION=${VERSION:-40.10} VERSION=${VERSION:-41.9}
BUILD=${BUILD:-1} BUILD=${BUILD:-1}
TAG=${TAG:-_SBo} TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz} PKGTYPE=${PKGTYPE:-tgz}
@ -67,6 +75,48 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT mkdir -p $TMP $PKG $OUTPUT
cd $TMP cd $TMP
rm -rf $PRGNAM-$VERSION rm -rf $PRGNAM-$VERSION
# Variables for gsettings-desktop-schemas build:
GDS_NAM="gsettings-desktop-schemas"
GDS_VER="41.0"
GDS_DATADIR="/usr/share/$PRGNAM/$GDS_NAM"
CLEANUP=cleanup
# Build gsettings-desktop-schemas-41.0:
rm -rf $GDS_NAM-$GDS_VER
tar xvf $CWD/$GDS_NAM-$GDS_VER.tar.xz
cd $GDS_NAM-$GDS_VER
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
mkdir build
cd build
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
meson .. \
--buildtype=release \
--infodir=info \
--includedir=$CLEANUP \
--libdir=$CLEANUP \
--datadir=$GDS_DATADIR \
--localedir=$CLEANUP \
--localstatedir=/var \
--mandir=man \
--prefix=/usr \
--sysconfdir=/etc \
-Dstrip=true
"${NINJA:=ninja}"
DESTDIR=$PKG $NINJA install
cd ../..
# Remove everything from gsettings-desktop-schemas except the gschema files:
rm -rf $PKG/usr/$CLEANUP $PKG$GDS_DATADIR/{GConf,gir-1.0,pkgconfig}
# Build gnome-shell:
tar xvf $CWD/$PRGNAM-$VERSION.tar.?z tar xvf $CWD/$PRGNAM-$VERSION.tar.?z
cd $PRGNAM-$VERSION cd $PRGNAM-$VERSION
chown -R root:root . chown -R root:root .
@ -76,6 +126,9 @@ find -L . -prune -name 'subprojects/gvc/.gitlab-ci' \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Patch meson.build to allow gsettings-desktop-schemas-40.0:
patch -Np1 -i $CWD/0001-build-with-gsettings-desktop-schemas-40.patch
mkdir build mkdir build
cd build cd build
CFLAGS="$SLKCFLAGS" \ CFLAGS="$SLKCFLAGS" \
@ -101,6 +154,10 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
find $PKG/usr/man -type f -exec gzip -9 {} \; find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
# Install the gnome-shell wrapper script:
mv $PKG/usr/bin/{gnome-shell,gnome-shell-bin}
cat $CWD/gnome-shell.wrap > $PKG/usr/bin/gnome-shell
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \ cp -a \
COPYING HACKING.md NEWS README.md \ COPYING HACKING.md NEWS README.md \
@ -110,6 +167,7 @@ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh cat $CWD/doinst.sh > $PKG/install/doinst.sh
cat $CWD/douninst.sh > $PKG/install/douninst.sh
cd $PKG cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE

View File

@ -1,10 +1,12 @@
PRGNAM="gnome-shell" PRGNAM="gnome-shell"
VERSION="40.10" VERSION="41.9"
HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-shell" HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-shell"
DOWNLOAD="https://download.gnome.org/sources/gnome-shell/40/gnome-shell-40.10.tar.xz" DOWNLOAD="https://download.gnome.org/sources/gnome-shell/41/gnome-shell-41.9.tar.xz \
MD5SUM="2625d20efa1bcacc4624c5fe9e474a88" https://download.gnome.org/sources/gsettings-desktop-schemas/41/gsettings-desktop-schemas-41.0.tar.xz"
MD5SUM="abf21a9bd1b626ed082d404b43145a8a \
1d39684b07b33d06de7be230a126ca56"
DOWNLOAD_x86_64="" DOWNLOAD_x86_64=""
MD5SUM_x86_64="" MD5SUM_x86_64=""
REQUIRES="evolution-data-server gnome-autoar gnome-bluetooth gnome-control-center mutter" REQUIRES="adobe-source-code-pro-font evolution-data-server gnome-autoar gnome-bluetooth gnome-control-center mutter"
MAINTAINER="Bob Funk" MAINTAINER="Bob Funk"
EMAIL="bobfunk11@gmail.com" EMAIL="bobfunk11@gmail.com"

View File

@ -0,0 +1,14 @@
#!/bin/bash
#
# gnome-shell wrapper script to include a non-standard gschemas directory.
#
SYS_DATADIR=/usr/share
ALT_DATADIR=$SYS_DATADIR/gnome-shell/gsettings-desktop-schemas
# Using XDG_DATA_DIRS, since gnome-shell searches these paths for schemas (in order):
if [ -e "$ALT_DATADIR" ]; then
export XDG_DATA_DIRS=$ALT_DATADIR:$SYS_DATADIR:$XDG_DATA_DIRS
fi
exec /usr/bin/gnome-shell-bin "$@"