#!/bin/bash # . /etc/init.d/tc-functions NAME="gtk+" PKGNAME=gtk2 VER=2.24.8 PKGDIR=/mnt/sda3/"$PKGNAME"/package PKG="$PKGDIR"/pkg DEV="$PKGDIR"/dev DOC="$PKGDIR"/doc GIR="$PKGDIR"/gir LOC="$PKGDIR"/loc [ -d "$PKG" ] && rm -r "$PKG" [ -d "$DEV" ] && rm -r "$DEV" [ -d "$DOC" ] && rm -r "$DOC" [ -d "$LOC" ] && rm -r "$LOC" [ -d "$GIR" ] && rm -r "$GIR" TCEDIR="`cat /opt/.tce_dir`/optional" DEPS="compiletc.tcz \ bash.tcz \ squashfs-tools-4.x.tcz \ atk.tcz \ atk-dev.tcz \ glib2.tcz \ glib2-dev.tcz \ cairo.tcz \ cairo-dev.tcz \ libffi.tcz \ libffi-dev.tcz \ fontconfig.tcz \ fontconfig-dev.tcz \ cups.tcz \ cups-dev.tcz \ gettext.tcz \ libcups.tcz \ gdk-pixbuf2.tcz \ gdk-pixbuf2-dev.tcz \ Xorg-7.6-lib.tcz \ Xorg-7.6-dev.tcz \ shared-mime-info.tcz \ libxml2.tcz \ libxml2-dev.tcz \ pixman.tcz \ pixman-dev.tcz \ pango.tcz \ perl5.tcz \ pango-dev.tcz \ graphics-libs-1.tcz \ graphics-libs-1-dev.tcz" for I in `echo "$DEPS"`; do PKGNAME=`basename "$I" .tcz` if [ ! -f /usr/local/tce.installed/"$PKGNAME" ]; then if [ -f "$TCEDIR"/"$I" ]; then if su tc -c "tce-load -i "$I""; then echo "${YELLOW}"$I" loaded locally${NORMAL}" else echo "${RED}"$I" failed to load, exiting..${NORMAL}" exit 1 fi else if su tc -c "tce-load -iw "$I""; then echo "${YELLOW}"$I" loaded from repo${NORMAL}" else echo "${RED}"$I" failed to load, exiting..${NORMAL}" exit 1 fi fi fi done rm "$PKGDIR"/*.tcz{.md5.txt,.list,.zsync} > /dev/null 2>&1 mkdir -p "$PKGDIR"/{pkg/usr/local/tce.installed,loc,dev,doc/usr/local/share} cp -a gtk2 "$PKGDIR"/pkg/usr/local/tce.installed/ chown -R root:staff "$PKGDIR"/pkg/usr/local/tce.installed/ chmod -R 775 "$PKGDIR"/pkg/usr/local/tce.installed/ [ -d "$NAME"-"$VER" ] && rm -r "$NAME"-"$VER" tar xvf "$NAME"-"$VER".tar.xz cd "$NAME"-"$VER" zcat ../gtk+-2.24.x.icon-compat.diff.gz | patch -p1 --verbose || exit 1 zcat ../gtk+-2.24.x.icon-compat.am.diff.gz | patch -p1 --verbose || exit 1 patch -p1 < ../xid-collision-debug.patch || exit 1 ./configure --prefix=/usr/local #https://bugzilla.gnome.org/show_bug.cgi?id=655517 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool sleep 9 make make install DESTDIR="$PKG" mkdir -p "$GIR"/usr/local/lib/ mkdir -p "$GIR"/usr/local/share/ mv "$PKG"/usr/local/lib/girepository-1.0 "$GIR"/usr/local/lib/ mv "$PKG"/usr/local/share/gir-1.0 "$GIR"/usr/local/share/ rm "$PKG"/usr/local/bin/gtk-demo rm -r "$PKG"/usr/local/share/gtk-2.0 #"$PKG"/usr/local/bin/gtk-query-immodules-2.0 > "$PKG"/usr/local/etc/gtk-2.0/gtk.immodules #"$PKG"/usr/local/bin/gdk-pixbuf-query-loaders > "$PKG"/usr/local/etc/gtk-2.0/gdk-pixbuf.loaders mv "$PKG"/usr/local/share/gtk-doc/ "$PKGDIR"/doc/usr/local/share/ cd "$PKG" find . | xargs file | grep "executable" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | grep "not stripped" | cut -f 1 -d : | xargs strip -g 2> /dev/null for I in $(find `ls` -name *.h); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done for I in $(find `ls` -name *.a); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done for I in $(find `ls` -name *.la); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done for I in $(find `ls` -name *.pc); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done for I in $(find `ls` -name *.mo); do export DIR=`dirname "$I"`; [ -d ../loc/"$DIR" ] || mkdir -p ../loc/"$DIR"; mv "$I" ../loc/"$DIR"/; done for I in $(find `ls` -name *.m4); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done for I in $(find `ls` -name *.c); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done for I in $(find `ls` -name *Makefile*); do export DIR=`dirname "$I"`; [ -d ../dev/"$DIR" ] || mkdir -p ../dev/"$DIR"; mv "$I" ../dev/"$DIR"/; done find . -type d | sort -r | xargs rmdir cd "$PKGDIR" mksquashfs pkg/ gtk2.tcz -noappend mksquashfs doc/ gtk2-doc.tcz -noappend mksquashfs dev/ gtk2-dev.tcz -noappend mksquashfs loc/ gtk2-locale.tcz -noappend submitqc4