From f5b681c53a1a2c12274ee462432e5e9d358d1ce2 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Wed, 15 Dec 2010 22:40:10 +0000 Subject: Lots and lots of tweaks to make it behave in KDE4 --- p7zip/build/p7zip.SlackBuild | 84 +++++++++++++++++++++++++++++++++----------- 1 file changed, 63 insertions(+), 21 deletions(-) (limited to 'p7zip/build') diff --git a/p7zip/build/p7zip.SlackBuild b/p7zip/build/p7zip.SlackBuild index 1441849b..94b5ecef 100755 --- a/p7zip/build/p7zip.SlackBuild +++ b/p7zip/build/p7zip.SlackBuild @@ -87,12 +87,15 @@ fi case "$ARCH" in i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686" SLKLDFLAGS=""; LIBDIRSUFFIX="" + ARCHSUFFIX="x86_ppc_alpha_gcc_4.X" ;; x86_64) SLKCFLAGS="-O2 -fPIC" SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64" + ARCHSUFFIX="amd64" ;; *) SLKCFLAGS="-O2" SLKLDFLAGS=""; LIBDIRSUFFIX="" + ARCHSUFFIX="x86_ppc_alpha_gcc_4.X" ;; esac @@ -160,7 +163,17 @@ mv DOCS docs mv contrib/gzip-like_CLI_wrapper_for_7z/README README.p7zip_wrapper # First, build the commandline tools: -make all3 \ +if [ "$GUI" = "YES" ]; then + TARGETS=all4 +else + TARGETS=all3 +fi + +cp -f makefile.linux_${ARCHSUFFIX} makefile.machine +#sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#g" \ +# CPP/7zip/UI/GUI/makefile.depend +sed -i -e "s#/lib/#/lib${LIBDIRSUFFIX}/#g" $(grep -rl /lib/ .) +make $TARGETS \ OPTFLAGS="$SLKCFLAGS" \ DEST_HOME=/usr \ DEST_SHARE=/usr/lib${LIBDIRSUFFIX}/p7zip \ @@ -180,35 +193,37 @@ install -m 0755 contrib/gzip-like_CLI_wrapper_for_7z/p7zip $PKG/usr/bin/ install -m 0644 contrib/gzip-like_CLI_wrapper_for_7z/man1/p7zip.1 $PKG/usr/man/man1/ if [ "$GUI" = "YES" ]; then - # Next, the gui (requires wxGTK): - sed -i -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#g" \ - CPP/7zip/UI/GUI/makefile.depend - make 7zG \ - OPTFLAGS="$SLKCFLAGS" \ - DEST_HOME=/usr \ - DEST_SHARE=/usr/lib$LIBDIRSUFFIX/p7zip \ - DEST_SHARE_DOC=/usr/doc/${PRGNAM}-${VERSION} \ - 2>&1 | tee -a $OUTPUT/make-${PRGNAM}.log - # Install the gui program plus support files: cp -a GUI/p7zipForFilemanager $PKG/usr/bin/p7zipForFilemanager - sed -e "s#/usr/lib${LIBDIRSUFFIX}/p7zip/7z#/usr/lib${LIBDIRSUFFIX}/p7zip/7zG#" $PKG/usr/bin/7z > $PKG/usr/bin/7zG - chmod 755 $PKG/usr/bin/7zG + cp -a GUI/Lang $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/ + cp -a GUI/help $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/ + cp -a bin/Client7z $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/ + cp -a bin/7zFM $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/ + cp -a bin/7zG $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/ - cp -a bin/7zG $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/7zG - cp -a GUI/Lang $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/Lang - cp -a GUI/help $PKG/usr/lib${LIBDIRSUFFIX}/p7zip/help + # The binaries can not be called through symlinks. + # We have to create wrapper shell scripts: + sed -e "s#/usr/lib${LIBDIRSUFFIX}/p7zip/7z#/usr/lib${LIBDIRSUFFIX}/p7zip/7zG#" $PKG/usr/bin/7z > $PKG/usr/bin/7zG + sed -e "s#/usr/lib${LIBDIRSUFFIX}/p7zip/7z#/usr/lib${LIBDIRSUFFIX}/p7zip/Client7z#" $PKG/usr/bin/7z > $PKG/usr/bin/Client7z + # We need to treat this with care so that the menu entry works but + # the dolphin "open with..." menu too: + cat < $PKG/usr/bin/7zFM +#!/bin/sh +[ -z "$1" ] && ARGS=$HOME || ARGS="$@" +"/usr/lib64/p7zip/7zFM" "$ARGS" +EOT + chmod 755 $PKG/usr/bin/{7zFM,7zG,Client7z} - # Add a menu entry: + # Add a menu entry for the file manager: mkdir -p $PKG/usr/share/applications cat < $PKG/usr/share/applications/p7zip.desktop [Desktop Entry] Version=1.0 Encoding=UTF-8 -Name=p7zip -MimeType=application/x-gzip;application/x-lha;application/x-tar;application/x-tgz;application/x-tbz;application/x-tbz2;application/x-zip;application/zip;application/x-bzip;application/x-rar;application/x-tarz;application/x-archive;application/x-bzip2;application/x-jar;application/x-deb;application/x-ace;application/x-7z;application/x-arc;application/x-arj;application/x-compress;application/x-cpio; +Name=P7ZIP File Manager +MimeType=application/x-gzip;application/x-tar;application/x-compressed-tar;application/x-bzip-compressed-tar;application/zip;application/x-bzip;application/x-rar;application/x-tarz;application/x-bzip2;application/x-java-archive;application/x-deb;application/x-7z-compressed;application/x-compress;application/x-zip-compressed;application/x-lzma;application/x-servicepack;application/x-xz-compressed-tar;application/x-lzma-compressed-tar;application/x-cd-image; GenericName=Archiving Tool -Exec=7zG %F +Exec=7zFM \$F Icon=p7zip Type=Application Terminal=false @@ -224,11 +239,38 @@ EOT cp -a GUI/p7zip_${i}.png $PKG/usr/share/icons/hicolor/${i}x${i}/apps/p7zip.png done - # Add KDE4 service menus: + # Add KDE4 service menus, and make them actually KDE4-compliant: mkdir -p $PKG/usr/share/kde4/services/ServiceMenus install -m 644 GUI/kde/*.desktop $PKG/usr/share/kde4/services/ServiceMenus/ + sed \ + -e "s#ServiceTypes#ServiceTypes=KonqPopupMenu/Plugin\nMimeType#" \ + -e "s#application/x-7z#application/x-7z-compressed,application/x-7z-compressed-tar#" \ + -e "/MimeType=/s#,#;#g" + $PKG/usr/share/kde4/services/ServiceMenus/*.desktop +fi + +# Add a post-install script: +mkdir -p $PKG/install +cat < $PKG/install/doinst.sh +# Update the desktop database: +if [ -x usr/bin/update-desktop-database ]; then + chroot . /usr/bin/update-desktop-database usr/share/applications > /dev/null 2>&1 +fi + +# Update hicolor theme cache: +if [ -d usr/share/icons/hicolor ]; then + if [ -x /usr/bin/gtk-update-icon-cache ]; then + chroot . /usr/bin/gtk-update-icon-cache -f -t usr/share/icons/hicolor 1> /dev/null 2> /dev/null + fi fi +# Update the mime database: +if [ -x usr/bin/update-mime-database ]; then + chroot . /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1 +fi + +EOT + # Add documentation: mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true -- cgit v1.2.3-65-gdbad