summaryrefslogtreecommitdiffstats
path: root/p7zip
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2010-12-15 22:40:10 +0000
committer Eric Hameleers <alien@slackware.com>2010-12-15 22:40:10 +0000
commitf5b681c53a1a2c12274ee462432e5e9d358d1ce2 (patch)
tree8176a3f750f94f79ded93b4ab88e2728db2703e5 /p7zip
parent84f4126117d3ba3a8079b8684c7f6a57d108efc3 (diff)
downloadasb-f5b681c53a1a2c12274ee462432e5e9d358d1ce2.tar.gz
asb-f5b681c53a1a2c12274ee462432e5e9d358d1ce2.tar.xz
Lots and lots of tweaks to make it behave in KDE4
Diffstat (limited to 'p7zip')
-rwxr-xr-xp7zip/build/p7zip.SlackBuild84
1 files changed, 63 insertions, 21 deletions
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 <<EOT > $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 <<EOT > $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 <<EOT > $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