diff options
author | Peter Volkov <pva@gentoo.org> | 2011-06-20 08:11:49 +0000 |
---|---|---|
committer | Peter Volkov <pva@gentoo.org> | 2011-06-20 08:11:49 +0000 |
commit | 53710a86101badacd8c8c8230b99aa649905e36e (patch) | |
tree | 738346f89e8b93a62d45a140e5fbf1f115359dd0 /app-arch/dump | |
parent | Stable on amd64 wrt bug #372303 (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | app-arch/dump/dump-0.4.44-r1.ebuild | 64 | ||||
-rw-r--r-- | app-arch/dump/files/dump-0.4.44-fix-pointers-aliasing.patch | 126 | ||||
-rw-r--r-- | app-arch/dump/files/dump-0.4.44-rl_completion_matches-detection.patch | 24 |
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 + |