]> Pileus Git - ~andy/sunrise/commitdiff
app-arch/zpaq: Version bump. Support for ZPAQ's self-optimization.
authorMichał Górny <mgorny@gentoo.org>
Mon, 8 Feb 2010 20:44:37 +0000 (20:44 +0000)
committerMichał Górny <mgorny@gentoo.org>
Mon, 8 Feb 2010 20:44:37 +0000 (20:44 +0000)
svn path=/sunrise/; revision=10003

app-arch/zpaq/ChangeLog
app-arch/zpaq/Manifest
app-arch/zpaq/files/zpaqmake.in [new file with mode: 0644]
app-arch/zpaq/metadata.xml
app-arch/zpaq/zpaq-1.09.ebuild [deleted file]
app-arch/zpaq/zpaq-1.10.ebuild [new file with mode: 0644]

index cec00f4ee8de3d237446ab99d1b316fae5cfac1c..e1d4a226d786eee6afac9c1cd1c8808b60d6f4e1 100644 (file)
@@ -1,7 +1,11 @@
 # ChangeLog for app-arch/zpaq
-# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  08 Feb 2010; Michał Górny (sedzimir) <gentoo@mgorny.alt.pl>
+  -zpaq-1.09.ebuild, +zpaq-1.10.ebuild, +files/zpaqmake.in, metadata.xml:
+  Version bump. Support for ZPAQ's self-optimization.
+
   01 Nov 2009; Michał Górny (sedzimir) <gentoo@mgorny.alt.pl>
   zpaq-1.09.ebuild:
   Install LZP preprocessor in libexec, small fixes.
index f90c73f6654aa4ed62727dec79631ebb6556a95e..7fe4d6ed227c1cb1c410eb908d3781bc07d34ed8 100644 (file)
@@ -1,4 +1,5 @@
-DIST zpaq109.zip 94431 RMD160 5176503996b530f58d4a468f9b954567109f3788 SHA1 7c175595a0187a10c08ddc06f1857622db06978c SHA256 97a25847ecb01f12c21c4b9edae305b0622bb48625cc1a3d5b2cfb9e66591576
-EBUILD zpaq-1.09.ebuild 1629 RMD160 7db80fd17f40c70135d1b65739e84b33eba4f755 SHA1 42d20f35196de3e2852e02cfb7355ce2463b055d SHA256 66c5222ae32a82855beb77406d8bf279fa5444421a54e43afab1e74d6fa445a8
-MISC ChangeLog 818 RMD160 41294c86e29f5c1be1d9eb8335f42275457e9232 SHA1 055b4d8758482015e6761f10fc725d3dc52f1f87 SHA256 00663a6b64504a2689cc82eb1cfa7f000b444f4ecf2b8b2a1787953a23b35261
-MISC metadata.xml 171 RMD160 ed284df01c230fc7990a6b5888b39166d23f29ba SHA1 f3d64a69044b710e23fb874b3ee4cd338858c8b4 SHA256 a7b30fbacd0e4c312c07a3efac112a3794c81d134442d8104325734d03425adf
+AUX zpaqmake.in 198 RMD160 cbc092ba9badb34ab5f37d9492126bfafecc9174 SHA1 59b1208001bea49b2ce578b4767855e02aee78ad SHA256 d548855b7d357a0659f6272e759d291d0afca7816495ac31e2be53836b9826a3
+DIST zpaq110.zip 94403 RMD160 bc9d5c549cfecdea62f30aaa31ea66a642913e7a SHA1 266a5146fc42ccd2c0631701be4529a2740cd23f SHA256 af2564b2ebc7ecb370cd0ed24e30a92bc8ca4ad256c63174b1a83fade88245e8
+EBUILD zpaq-1.10.ebuild 2596 RMD160 a715f91e6bcd6d9330154195bb3bdc7777740a9d SHA1 f72e753b53a0e3ef37dec120768d5672e8634566 SHA256 2e6681b2f9af9ea30cd1100df7338be389c3d350232ea08d0afb848acbd92b02
+MISC ChangeLog 1011 RMD160 049f08047d75d6ae86a7841646d3f0aae9c68bf7 SHA1 6bf54f9ca6d37ae4fde84bcefc1ecb3cb88def2b SHA256 2bb699d3b942321d11de5e81b743f730269a6d51586eb3d72eead5549d7460e5
+MISC metadata.xml 304 RMD160 739c9d04e648fdd762da968fce83dba7da1b8a71 SHA1 6f1bc945c848487545a5c0b3ce46a3b69ca877ef SHA256 7aef31d94c7145199f824eefcaf2e5c2d5a437d7fffe63f49c38a1dda5b7b2ec
diff --git a/app-arch/zpaq/files/zpaqmake.in b/app-arch/zpaq/files/zpaqmake.in
new file mode 100644 (file)
index 0000000..9740bcc
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# based on zpaqmake.bat from zpaq
+
+exec "${CXX:-%CXX%}" ${CXXFLAGS-%CXXFLAGS%} -DNDEBUG -DOPT \
+       "$1".cpp -I/usr/include/zpaq /usr/%LIBDIR%/zpaq/zpaq.o \
+       -o "$1".exe ${LDFLAGS-%LDFLAGS%}
index 6f1d493c5450d5be10b91186ecc1fe80d7e62ee6..d97740bebd9942b662098489db35b08c12b02bf0 100644 (file)
@@ -2,4 +2,8 @@
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
        <herd>maintainer-wanted</herd>
+       <use>
+               <flag name='optimization'>Install additional files required to support
+                       ZPAQ's optimized compression mode.</flag>
+       </use>
 </pkgmetadata>
diff --git a/app-arch/zpaq/zpaq-1.09.ebuild b/app-arch/zpaq/zpaq-1.09.ebuild
deleted file mode 100644 (file)
index 4b8b484..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-inherit toolchain-funcs
-
-MY_P="${PN}${PV/./}"
-DESCRIPTION="Unified compressor for PAQ algorithms"
-HOMEPAGE="http://mattmahoney.net/dc/#zpaq"
-SRC_URI="http://mattmahoney.net/dc/${MY_P}.zip"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND="app-arch/unzip"
-RDEPEND=""
-
-src_compile() {
-       # Upstream doesn't provide any Makefile
-
-       # -DOPT is broken (at least) on Linux
-       "$(tc-getCXX)" ${CXXFLAGS} -DNDEBUG zpaq.cpp -o zpaq || die 'compiling zpaq failed'
-       "$(tc-getCXX)" ${CXXFLAGS} lzppre.cpp -o lzppre || die 'compiling lzppre failed'
-
-       sed -e 's:^pcomp :&/usr/libexec/zpaq/:' -i *.cfg || die 'sed failed'
-}
-
-src_install() {
-       dobin zpaq || die 'dobin failed'
-
-       dodoc readme.txt || die 'dodoc failed'
-
-       # Preprocessors
-       exeinto /usr/libexec/zpaq
-       doexe lzppre || die 'doexe failed'
-
-       # These are more like compression profiles, so install them in /usr/share
-       insinto /usr/share/zpaq
-       doins *.cfg || die 'doins failed'
-}
-
-pkg_postinst() {
-       elog "Unlike conventional archivers, zpaq doesn't have any algorithm chain"
-       elog "compiled in by default. Instead, it provides many PAQ components to allow"
-       elog "user to create his own chain and supply it as configuration file."
-       elog
-       elog "We install few default configs in /usr/share/zpaq to start with. They can"
-       elog "be used like that:"
-       elog "  zpaq c/usr/share/zpaq/max.cfg out.zpaq files"
-       elog
-       elog "You may also want to install app-arch/zpaq-extras package which provides"
-       elog "few additional configs and preprocessors for use with zpaq."
-}
diff --git a/app-arch/zpaq/zpaq-1.10.ebuild b/app-arch/zpaq/zpaq-1.10.ebuild
new file mode 100644 (file)
index 0000000..db9d760
--- /dev/null
@@ -0,0 +1,98 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="2"
+
+inherit multilib toolchain-funcs
+
+MY_P="${PN}${PV/./}"
+DESCRIPTION="Unified compressor for PAQ algorithms"
+HOMEPAGE="http://mattmahoney.net/dc/#zpaq"
+SRC_URI="http://mattmahoney.net/dc/${MY_P}.zip"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="optimization"
+
+DEPEND="app-arch/unzip"
+RDEPEND=""
+
+src_prepare() {
+       # make it FHS-friendly
+       sed -e 's:^pcomp :&/usr/libexec/zpaq/:' -i *.cfg || die
+
+       if use optimization; then
+               sed \
+                       -e "s:%CXX%:$(tc-getCXX):" \
+                       -e "s:%CXXFLAGS%:${CXXFLAGS}:" \
+                       -e "s:%LIBDIR%:$(get_libdir):" \
+                       "${FILESDIR}"/zpaqmake.in > zpaqmake || die
+       fi
+}
+
+src_configure() {
+       tc-export CXX
+
+       if use optimization; then
+               # NOTE: zpaqmake is used in runtime by zpaq to compile profiles
+               # please do not complain about stripping, it's not for build time
+
+               local stripflag=' -Wl,--strip-all'
+               # check whether the default compiler supports -Wl,--strip-all
+               echo 'int main(void) {return 0;}' > striptest.c
+               "${CXX}" ${CXXFLAGS} striptest.c -o striptest \
+                       ${LDFLAGS} ${stripflag} || stripflag=
+               
+               sed -i -e "s:%LDFLAGS%:${LDFLAGS}${stripflag}:" zpaqmake || die
+       fi
+}
+
+src_compile() {
+       "${CXX}" ${CXXFLAGS} -DNDEBUG zpaq.cpp -o zpaq ${LDFLAGS} || die
+       "${CXX}" ${CXXFLAGS} lzppre.cpp -o lzppre ${LDFLAGS} || die
+
+       if use optimization; then
+               # provide precompiled stub
+               "${CXX}" -c ${CXXFLAGS} -DNDEBUG -DOPT zpaq.cpp -o zpaq.o || die
+       fi
+}
+
+src_install() {
+       dobin zpaq || die
+       dodoc readme.txt || die
+
+       if use optimization; then
+               dobin zpaqmake || die
+               insinto /usr/include/zpaq
+               doins zpaq.h || die
+               insinto /usr/$(get_libdir)/zpaq
+               doins zpaq.o || die
+       fi
+
+       # Preprocessors
+       exeinto /usr/libexec/zpaq
+       doexe lzppre || die
+
+       # These are more like compression profiles, so install them in /usr/share
+       insinto /usr/share/zpaq
+       doins *.cfg || die
+}
+
+pkg_postinst() {
+       elog "Unlike conventional archivers, zpaq doesn't have any algorithm chain"
+       elog "compiled in by default. Instead, it provides many PAQ components to allow"
+       elog "user to create his own chain and supply it as configuration file."
+       elog
+       elog "We install few default configs in /usr/share/zpaq to start with. They can"
+       elog "be used like that:"
+       if use optimization; then
+               elog "  zpaq oc/usr/share/zpaq/max.cfg out.zpaq files"
+       else
+               elog "  zpaq c/usr/share/zpaq/max.cfg out.zpaq files"
+       fi
+       elog
+       elog "You may also want to install app-arch/zpaq-extras package which provides"
+       elog "few additional configs and preprocessors for use with zpaq."
+}