system/trrntzip: Updated for version v02

This commit is contained in:
Erik Hanson 2010-05-13 00:42:04 +02:00 committed by David Somero
parent d5372ffc27
commit 029b5ff2be
3 changed files with 77 additions and 5 deletions

View file

@ -1,7 +1,26 @@
#!/bin/sh #!/bin/sh
#
# Slackware build script for trrntzip # Slackware build script for trrntzip
# Written by Erik Hanson erik@slackbuilds.org #
# Copyright 2009 Erik W. Hanson, Minneapolis, 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.
set -eu set -eu
@ -19,6 +38,8 @@ if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686" SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686" SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
fi fi
rm -rf $PKG rm -rf $PKG
@ -30,11 +51,13 @@ cd $PRGNAM
chown -R root:root . chown -R root:root .
chmod -R u+w,go+r-w,a-s . chmod -R u+w,go+r-w,a-s .
# A small patch to fix a permissions issue:
patch -p1 < $CWD/trrntzip_permission_fix.diff
./autogen.sh ./autogen.sh
CFLAGS="$SLKCFLAGS" \ CFLAGS="$SLKCFLAGS" \
./configure \ ./configure \
--prefix=/usr \ --prefix=/usr
--disable-static
make make
make install-strip DESTDIR=$PKG make install-strip DESTDIR=$PKG
@ -46,4 +69,4 @@ cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/slack-desc > $PKG/install/slack-desc cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -2,7 +2,9 @@ PRGNAM="trrntzip"
VERSION="v02" VERSION="v02"
HOMEPAGE="http://sourceforge.net/projects/trrntzip/" HOMEPAGE="http://sourceforge.net/projects/trrntzip/"
DOWNLOAD="http://downloads.sourceforge.net/trrntzip/trrntzip_v02_src.tar.gz" DOWNLOAD="http://downloads.sourceforge.net/trrntzip/trrntzip_v02_src.tar.gz"
DOWNLOAD_x86_64=""
MD5SUM="2635a4042b3cf5611ffdffb4019ec8b7" MD5SUM="2635a4042b3cf5611ffdffb4019ec8b7"
MD5SUM_x86_64=""
MAINTAINER="Erik Hanson" MAINTAINER="Erik Hanson"
EMAIL="erik@slackbuilds.org" EMAIL="erik@slackbuilds.org"
APPROVED="David Somero" APPROVED="David Somero"

View file

@ -0,0 +1,47 @@
diff -Nru trrntzip/src/trrntzip.c trrntzip_v2patched/src/trrntzip.c
--- trrntzip/src/trrntzip.c 2005-05-02 10:38:40.000000000 -0300
+++ trrntzip_v2patched/src/trrntzip.c 2009-07-09 23:50:57.833279724 -0300
@@ -732,7 +732,15 @@
if (strstr (szTmpBuf, ".zip\0"))
{
- chmod (direntp->d_name, S_IRUSR);
+ //chmod (direntp->d_name, S_IRUSR);
+#ifndef S_ISVTX
+ // On windows we just set the file to read-only
+ chmod (direntp->d_name, S_IRUSR);
+#else
+ // On Unix systems we use the sticky bit
+ // We also retain all other flags
+ chmod (direntp->d_name, S_ISVTX | istat.st_mode);
+#endif
}
}
// Zip file is actually a dir
@@ -780,9 +788,22 @@
sprintf (szTmpBuf, "%s", direntp->d_name);
strlwr (szTmpBuf);
- if (strstr (szTmpBuf, ".zip\0") && !(istat.st_mode & S_IWUSR))
- {
- chmod (direntp->d_name, S_IWUSR);
+ //if (strstr (szTmpBuf, ".zip\0") && !(istat.st_mode & S_IWUSR))
+ //{
+ // chmod (direntp->d_name, S_IWUSR);
+ if (strstr (szTmpBuf, ".zip\0") &&
+
+#ifndef S_ISVTX
+ !(istat.st_mode & S_IWUSR))
+ {
+ // Remove the read only bit we set earlier on Windows systems
+ chmod (direntp->d_name, S_IWUSR);
+#else
+ istat.st_mode & S_ISVTX)
+ {
+ // Remove the sticky bit we set earlier on Unix systems
+ chmod (direntp->d_name, istat.st_mode - S_ISVTX);
+#endif
mig.cEncounteredZips++;
if (!mig.fProcessLog)