From a6fda97e2cc82e0714105c80f15faa70c67f5e6b Mon Sep 17 00:00:00 2001 From: rhatto Date: Mon, 1 Oct 2007 04:19:06 +0000 Subject: added rsync git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@1392 370017ae-e619-0410-ac65-c121f96126d4 --- patches/rsync/rsync-2.6.9.diff | 61 +++++++++++++++++++++ patches/rsync/rsync.SlackBuild | 121 +++++++++++++++++++++++++++++++++++++++++ patches/rsync/slack-desc | 19 +++++++ 3 files changed, 201 insertions(+) create mode 100644 patches/rsync/rsync-2.6.9.diff create mode 100755 patches/rsync/rsync.SlackBuild create mode 100644 patches/rsync/slack-desc (limited to 'patches/rsync') diff --git a/patches/rsync/rsync-2.6.9.diff b/patches/rsync/rsync-2.6.9.diff new file mode 100644 index 00000000..26805ef4 --- /dev/null +++ b/patches/rsync/rsync-2.6.9.diff @@ -0,0 +1,61 @@ +--- rsync-2.6.9.orig/sender.c ++++ rsync-2.6.9/sender.c +@@ -123,6 +123,7 @@ + char fname[MAXPATHLEN]; + struct file_struct *file; + unsigned int offset; ++ size_t l = 0; + + if (ndx < 0 || ndx >= the_file_list->count) + return; +@@ -133,6 +134,20 @@ + file->dir.root, "/", NULL); + } else + offset = 0; ++ ++ l = offset + 1; ++ if (file) { ++ if (file->dirname) ++ l += strlen(file->dirname); ++ if (file->basename) ++ l += strlen(file->basename); ++ } ++ ++ if (l >= sizeof(fname)) { ++ rprintf(FERROR, "Overlong pathname\n"); ++ exit_cleanup(RERR_FILESELECT); ++ } ++ + f_name(file, fname + offset); + if (remove_source_files) { + if (do_unlink(fname) == 0) { +@@ -224,6 +239,7 @@ + enum logcode log_code = log_before_transfer ? FLOG : FINFO; + int f_xfer = write_batch < 0 ? batch_fd : f_out; + int i, j; ++ size_t l = 0; + + if (verbose > 2) + rprintf(FINFO, "send_files starting\n"); +@@ -259,6 +275,20 @@ + fname[offset++] = '/'; + } else + offset = 0; ++ ++ l = offset + 1; ++ if (file) { ++ if (file->dirname) ++ l += strlen(file->dirname); ++ if (file->basename) ++ l += strlen(file->basename); ++ } ++ ++ if (l >= sizeof(fname)) { ++ rprintf(FERROR, "Overlong pathname\n"); ++ exit_cleanup(RERR_FILESELECT); ++ } ++ + fname2 = f_name(file, fname + offset); + + if (verbose > 2) + diff --git a/patches/rsync/rsync.SlackBuild b/patches/rsync/rsync.SlackBuild new file mode 100755 index 00000000..bf636386 --- /dev/null +++ b/patches/rsync/rsync.SlackBuild @@ -0,0 +1,121 @@ +#!/bin/bash +# +# got it from ftp://ftp.slackware.com/pub/slackware/slackware-12.0/source/n/rsync/rsync.SlackBuild +# changes by rhatto at riseup.net +# +# patch for 2.6.9 thanks to debian :) +# + +if [ -s "slack-required" ]; then + echo Recomended and required packages for building cairo are: + cat slack-required | sed -e 's/^/\t/' + if [ "$INTERACT" != "no" ]; then + echo If you dont have those installed, press Ctrl-C. Otherwise, hit ENTER. + read crap +# else +# echo Sleeping 3 seconds... +# sleep 3 + fi +fi + +CWD="`pwd`" + +if [ -f ~/.slackbuildrc ]; then + source ~/.slackbuildrc +elif [ -f /etc/slackbuildrc ]; then + source /etc/slackbuildrc +fi + +# default settings +PACKAGE="rsync" +ARCH=${ARCH:=i486} +VERSION=${VERSION:=2.6.9} +BUILD=${BUILD:=1rha} +SRC_DIR=${SRC:=$CWD} +TMP=${TMP:=/tmp} +REPOS=${REPOS:=$TMP} + +if [ "$ARCH" = "i386" ]; then + SLKCFLAGS="-O2 -march=i386 -mcpu=i686" +elif [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" +elif [ "$ARCH" = "s390" ]; then + SLKCFLAGS="-O2" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2" +fi + +# ------- error codes for createpkg -------------- +ERROR_WGET=31; ERROR_MAKE=32; ERROR_INSTALL=33 +ERROR_MD5=34; ERROR_CONF=35; ERROR_HELP=36 +ERROR_TAR=37; ERROR_MKPKG=38; ERROR_GPG=39 +ERROR_PATCH=40 + +RTOOL="wget" +PACKAGE_EXT="gz" +SRC="$PACKAGE-$VERSION.tar.$PACKAGE_EXT" +URL="http://rsync.samba.org/ftp/rsync/$SRC" + +SRC_DIR="$SRC_DIR/$PACKAGE" +mkdir -p $SRC_DIR + +if [ "$RTOOL" == "wget" ] && [ ! -f "$SRC_DIR/$SRC" ]; then + wget "$URL" -O "$SRC_DIR/$SRC" || exit $ERROR_WGET +fi + +TMP="$TMP/$PACKAGE" +PKG=$TMP/pagage-$PACKAGE +rm -rf $TMP +mkdir -p $PKG + +# Explode the package framework: +#cd $PKG +#explodepkg $CWD/_rsync.tar.gz + +cd $TMP +tar xzvf $SRC_DIR/rsync-$VERSION.tar.gz || exit $ERROR_TAR +cd rsync-$VERSION + +if [ -f "$CWD/$PACKAGE-$VERSION.diff" ]; then + patch -p1 < $CWD/$PACKAGE-$VERSION.diff || exit $ERROR_PATCH +fi + +chown -R root:root . +find . -perm 666 -exec chmod 644 {} \; +find . -perm 664 -exec chmod 644 {} \; +find . -perm 600 -exec chmod 644 {} \; +find . -perm 444 -exec chmod 644 {} \; +find . -perm 400 -exec chmod 644 {} \; +find . -perm 440 -exec chmod 644 {} \; +find . -perm 777 -exec chmod 755 {} \; +find . -perm 775 -exec chmod 755 {} \; +find . -perm 511 -exec chmod 755 {} \; +find . -perm 711 -exec chmod 755 {} \; +find . -perm 555 -exec chmod 755 {} \; + +CFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr || exit $ERROR_CONF +make -j4 || exit $ERROR_MAKE +mkdir -p $PKG/usr/bin +cat rsync > $PKG/usr/bin/rsync +chmod 755 $PKG/usr/bin/rsync +mkdir -p $PKG/usr/man/man1 +cat rsync.1 | gzip -9c > $PKG/usr/man/man1/rsync.1.gz +mkdir -p $PKG/usr/man/man5 +cat rsyncd.conf.5 | gzip -9c > $PKG/usr/man/man5/rsyncd.conf.5.gz +mkdir -p $PKG/usr/doc/rsync-$VERSION +cp -a README NEWS COPYING tech_report.tex $PKG/usr/doc/rsync-$VERSION +( cd $PKG + find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null +) +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +makepkg -c y -l y $REPOS/$PACKAGE-$VERSION-$ARCH-$BUILD.tgz || exit $ERROR_MKPKG + +if [ "$CLEANUP" == "yes" ]; then + rm -rf $TMP +fi + diff --git a/patches/rsync/slack-desc b/patches/rsync/slack-desc new file mode 100644 index 00000000..839716c8 --- /dev/null +++ b/patches/rsync/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +rsync: rsync +rsync: +rsync: rsync is a replacement for rcp that has many more features. It +rsync: uses the "rsync algorithm" which provides a very fast method for +rsync: bringing remote files into sync. It does this by sending just the +rsync: differences in the files across the link, without requiring that both +rsync: sets of files are present at one of the ends of the link beforehand. +rsync: +rsync: rsync was written by Andrew Tridgell and Paul Mackerras. +rsync: +rsync: -- cgit v1.2.3