summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Volkov <pva@gentoo.org>2011-06-20 08:11:49 +0000
committerPeter Volkov <pva@gentoo.org>2011-06-20 08:11:49 +0000
commit53710a86101badacd8c8c8230b99aa649905e36e (patch)
tree738346f89e8b93a62d45a140e5fbf1f115359dd0 /app-arch/dump
parentStable on amd64 wrt bug #372303 (diff)
downloadgentoo-2-53710a86101badacd8c8c8230b99aa649905e36e.tar.gz
gentoo-2-53710a86101badacd8c8c8230b99aa649905e36e.tar.bz2
gentoo-2-53710a86101badacd8c8c8230b99aa649905e36e.zip
Fix poor programming practices bug 370637 by Hans de Graaff.
(Portage version: 2.1.10.3/cvs/Linux x86_64)
Diffstat (limited to 'app-arch/dump')
-rw-r--r--app-arch/dump/ChangeLog9
-rw-r--r--app-arch/dump/dump-0.4.44-r1.ebuild64
-rw-r--r--app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch126
-rw-r--r--app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch24
4 files changed, 222 insertions, 1 deletions
diff --git a/app-arch/dump/ChangeLog b/app-arch/dump/ChangeLog
index e10b69d93777..d32b1ee9ecb3 100644
--- a/app-arch/dump/ChangeLog
+++ b/app-arch/dump/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-arch/dump
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/dump/ChangeLog,v 1.63 2011/06/16 09:54:35 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-arch/dump/ChangeLog,v 1.64 2011/06/20 08:11:49 pva Exp $
+
+*dump-0.4.44-r1 (20 Jun 2011)
+
+ 20 Jun 2011; Peter Volkov <pva@gentoo.org> +dump-0.4.44-r1.ebuild,
+ +files/dump-0.4.44-fix-pointers-aliasing.patch,
+ +files/dump-0.4.44-rl_completion_matches-detection.patch:
+ Fix poor programming practices bug 370637 by Hans de Graaff.
16 Jun 2011; Peter Volkov <pva@gentoo.org> dump-0.4.44.ebuild,
+files/dump-0.4.44-underlinking.patch:
diff --git a/app-arch/dump/dump-0.4.44-r1.ebuild b/app-arch/dump/dump-0.4.44-r1.ebuild
new file mode 100644
index 000000000000..475644ee2dfc
--- /dev/null
+++ b/app-arch/dump/dump-0.4.44-r1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-arch/dump/dump-0.4.44-r1.ebuild,v 1.1 2011/06/20 08:11:49 pva Exp $
+
+EAPI="4"
+inherit eutils autotools
+
+MY_P=${P/4./4b}
+S=${WORKDIR}/${MY_P}
+DESCRIPTION="Dump/restore ext2fs backup utilities"
+HOMEPAGE="http://dump.sourceforge.net/"
+SRC_URI="mirror://sourceforge/dump/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug ermt readline selinux static"
+
+RDEPEND=">=sys-fs/e2fsprogs-1.27
+ >=app-arch/bzip2-1.0.2
+ >=sys-libs/zlib-1.1.4
+ ermt? ( dev-libs/openssl )
+ readline? ( sys-libs/readline
+ sys-libs/ncurses
+ static? ( sys-libs/ncurses[static-libs] ) )"
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig
+ virtual/os-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-underlinking.patch"
+ epatch "${FILESDIR}/${P}-rl_completion_matches-detection.patch"
+ epatch "${FILESDIR}/${P}-fix-pointers-aliasing.patch"
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --with-dumpdatespath=/etc/dumpdates \
+ --with-{bin,man}owner=root \
+ --with-{bin,man}grp=root \
+ --enable-largefile \
+ $(use_enable selinux transselinux) \
+ $(use_enable ermt) \
+ $(use_enable static) \
+ $(use_enable readline) \
+ $(use_enable debug)
+}
+
+src_install() {
+ # built on old autotools, no DESTDIR support
+ einstall MANDIR="${D}"/usr/share/man/man8
+ mv "${ED}"/usr/sbin/{,dump-}rmt || die
+ mv "${ED}"/usr/share/man/man8/{,dump-}rmt.8 || die
+ use ermt && newsbin rmt/ermt dump-ermt
+
+ dodoc CHANGES KNOWNBUGS MAINTAINERS README REPORTING-BUGS THANKS TODO
+ dodoc -r examples/*
+}
+
+pkg_postinst() {
+ ewarn "app-arch/dump installs 'rmt' as 'dump-rmt'."
+ ewarn "This is to avoid conflicts with app-arch/tar 'rmt'."
+}
diff --git a/app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch b/app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch
new file mode 100644
index 000000000000..6e3290085470
--- /dev/null
+++ b/app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch
@@ -0,0 +1,126 @@
+https://sourceforge.net/tracker/?func=detail&aid=3322910&group_id=1306&atid=301306
+
+=== modified file 'dump/tape.c'
+--- dump/tape.c 2011-06-20 07:22:40 +0000
++++ dump/tape.c 2011-06-20 07:57:11 +0000
+@@ -1281,9 +1281,9 @@
+ compresult = 1;
+ #ifdef HAVE_ZLIB
+ if (zipflag == COMPRESS_ZLIB) {
+- compresult = compress2(comp_buf->buf,
++ compresult = compress2((Bytef *)comp_buf->buf,
+ &worklen,
+- (char *)slp->tblock[0],
++ (Bytef *)slp->tblock[0],
+ writesize,
+ compressed);
+ if (compresult == Z_OK)
+@@ -1313,8 +1313,9 @@
+ #ifdef HAVE_LZO
+ if (zipflag == COMPRESS_LZO) {
+ lzo_uint worklen2 = worklen;
+- compresult = lzo1x_1_compress((char *)slp->tblock[0],writesize,
+- comp_buf->buf,
++ compresult = lzo1x_1_compress((lzo_bytep)slp->tblock[0],
++ writesize,
++ (lzo_bytep)comp_buf->buf,
+ &worklen2,
+ LZO_WorkMem);
+ worklen = worklen2;
+
+=== modified file 'dump/traverse.c'
+--- dump/traverse.c 2011-06-20 07:22:40 +0000
++++ dump/traverse.c 2011-06-20 07:57:11 +0000
+@@ -782,13 +782,13 @@
+ for (i = p->next_block; i < blockcnt; i++) {
+ p->buf[p->cnt++] = 0;
+ if (p->cnt == p->max) {
+- blksout (p->buf, p->cnt, p->ino);
++ blksout ((blk_t *)p->buf, p->cnt, p->ino);
+ p->cnt = 0;
+ }
+ }
+ p->buf[p->cnt++] = *blocknr;
+ if (p->cnt == p->max) {
+- blksout (p->buf, p->cnt, p->ino);
++ blksout ((blk_t *)p->buf, p->cnt, p->ino);
+ p->cnt = 0;
+ }
+ p->next_block = blockcnt + 1;
+@@ -868,14 +868,15 @@
+ void
+ dumpino(struct dinode *dp, dump_ino_t ino, int metaonly)
+ {
++ fsizeT remaining;
++ char buf[TP_BSIZE];
++ struct new_bsd_inode nbi;
++ int i;
++#ifdef __linux__
++ struct block_context bc;
++#else
+ unsigned long cnt;
+- fsizeT size, remaining;
+- char buf[TP_BSIZE];
+- struct new_bsd_inode nbi;
+- int i;
+-#ifdef __linux__
+- struct block_context bc;
+-#else
++ fsizeT size;
+ int ind_level;
+ #endif
+ u_quad_t i_size;
+@@ -1001,13 +1002,13 @@
+ for (i = 0; i < (int)howmany(remaining, sblock->fs_fsize); i++) {
+ bc.buf[bc.cnt++] = 0;
+ if (bc.cnt == bc.max) {
+- blksout (bc.buf, bc.cnt, bc.ino);
++ blksout ((blk_t *)bc.buf, bc.cnt, bc.ino);
+ bc.cnt = 0;
+ }
+ }
+ }
+ if (bc.cnt > 0) {
+- blksout (bc.buf, bc.cnt, bc.ino);
++ blksout ((blk_t *)bc.buf, bc.cnt, bc.ino);
+ }
+ free(bc.buf);
+ dump_xattr(ino, dp);
+@@ -1016,7 +1017,7 @@
+ cnt = NDADDR * sblock->fs_frag;
+ else
+ cnt = howmany(i_size, sblock->fs_fsize);
+- blksout(&dp->di_db[0], cnt, ino);
++ blksout((blk_t *)&dp->di_db[0], cnt, ino);
+ if ((quad_t) (size = i_size - NDADDR * sblock->fs_bsize) <= 0) {
+ dump_xattr(ino, dp);
+ return;
+
+=== modified file 'restore/tape.c'
+--- restore/tape.c 2011-06-20 07:22:40 +0000
++++ restore/tape.c 2011-06-20 07:57:11 +0000
+@@ -2335,8 +2335,10 @@
+ #ifndef HAVE_ZLIB
+ errx(1,"This restore version doesn't support zlib decompression");
+ #else
+- cresult = uncompress(comprbuf, &worklen,
+- tpbin->buf, blocklen);
++ cresult = uncompress((Bytef *)comprbuf,
++ &worklen,
++ (Bytef *)tpbin->buf,
++ blocklen);
+ output = comprbuf;
+ switch (cresult) {
+ case Z_OK:
+@@ -2397,8 +2399,8 @@
+ errx(1,"This restore version doesn't support lzo decompression");
+ #else
+ lzo_uint worklen2 = worklen;
+- cresult = lzo1x_decompress(tpbin->buf, blocklen,
+- comprbuf, &worklen2, NULL);
++ cresult = lzo1x_decompress((lzo_bytep)tpbin->buf, blocklen,
++ (lzo_bytep)comprbuf, &worklen2, NULL);
+ worklen = worklen2;
+ output = comprbuf;
+ switch (cresult) {
+
diff --git a/app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch b/app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch
new file mode 100644
index 000000000000..6f968f549d7c
--- /dev/null
+++ b/app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch
@@ -0,0 +1,24 @@
+https://sourceforge.net/tracker/?func=detail&aid=3322906&group_id=1306&atid=301306
+
+=== modified file 'configure.in'
+--- configure.in 2011-06-20 07:22:40 +0000
++++ configure.in 2011-06-20 07:56:19 +0000
+@@ -516,7 +516,7 @@
+ dnl
+ dnl Check for rl_completion_matches
+ dnl
+-AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], "-ltermcap")
++AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], [$rdllib])
+ if test "$rlcm" = yes; then
+ AC_DEFINE([HAVE_READLINE_RLCM],1,[Define this if your readline libs have the rl_completion_matches library.])
+ fi
+@@ -524,7 +524,7 @@
+ dnl
+ dnl Check for rl_completion_append_character
+ dnl
+-AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], "-ltermcap")
++AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], [$rdllib])
+ if test "$rcac" = yes; then
+ AC_DEFINE([HAVE_READLINE_CAC],1,[Define this if your readline libs have the rl_completion_append_character variable.])
+ fi
+