diff --git a/app-arch/gzip/ChangeLog b/app-arch/gzip/ChangeLog index 29abdf7..6547084 100644 --- a/app-arch/gzip/ChangeLog +++ b/app-arch/gzip/ChangeLog @@ -1,7 +1,14 @@ # ChangeLog for app-arch/gzip -# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*gzip-1.5 (17 Oct 2012) + + 17 Oct 2012; Mario Fetka gzip-1.4.ebuild, + +files/gzip-1.4-rsyncable.patch, +gzip-1.5.ebuild, + +files/gzip-1.5-rsyncable.patch, -files/patch-gzip-rsyncable.diff: + Update ebuilds and rsyncable patches + *gzip-1.4 (24 Jun 2011) 24 Jun 2011; Mario Fetka diff --git a/app-arch/gzip/Manifest b/app-arch/gzip/Manifest index 1f01395..afaa54d 100644 --- a/app-arch/gzip/Manifest +++ b/app-arch/gzip/Manifest @@ -1,7 +1,10 @@ -AUX gzip-1.3.8-install-symlinks.patch 280 RMD160 31a85a5adbc91fd664f3c5f3635483b5b39a6f0e SHA1 4019708174e1cf3b80df3413c478148d10e9d8c2 SHA256 f8b8c8548ae32975ba8e5bbc79add0f951954e1b4a21de55575274de177925d1 -AUX gzip-1.4-assembler.patch 1703 RMD160 807f1428cdf9342f912422ce0b0afec628d0ec6b SHA1 16311f87fb8e13881b04a38447ee7e820f000731 SHA256 4d05f0c6df2fcca0dcc6f72f4545ea89e0cdcb92d1f6b9e9e2bd1942da46cf81 -AUX patch-gzip-rsyncable.diff 10256 RMD160 3f4990c15adfd8ac339fc5172d2dd3429af0526c SHA1 d01ba51a6d539daf18a38222c146512c61e76b56 SHA256 8487d91ad4c843aa6248d0d0697cb7bff7f08accb8451711f4078355f6a5ff6e -DIST gzip-1.4.tar.gz 907411 RMD160 a74f782960387e3f05373acc258becb564eda82d SHA1 1d398dac6a7920a7de6e2685fe472a840eb2ce6e SHA256 d166cfd3da380da1bd535633e8890bfb5664f9e68870a611d1dc01a3e9f711ee -EBUILD gzip-1.4.ebuild 1306 RMD160 46b319508c67b12a0c053dd390ac324a1cade374 SHA1 c92de77d6be97dc947f0aaaa51326b0de3388261 SHA256 d2155fc82b27169677be174beedafadbd08be96315cd4f86c96efa5ebdbaa501 -MISC ChangeLog 361 RMD160 e2d06aa14e55655fbce94abd7ab93d5ba5400e74 SHA1 f84943a30a5f2e39fd54d94f5df80276c5d65379 SHA256 da3a15979556f07a5423abf08818ecd5e507f168d324f7322301680a30c69037 -MISC metadata.xml 258 RMD160 fb52cbd38f7a8c9d7fee81f2db5dde7e3b17e045 SHA1 27fbcb42e87ac32af5f2a864ffc330b23b7b9f70 SHA256 3e8d2c98025402bd29168f46db0e4ed14ae2d64ee8e75508d87b136d06ba044c +AUX gzip-1.3.8-install-symlinks.patch 280 SHA256 f8b8c8548ae32975ba8e5bbc79add0f951954e1b4a21de55575274de177925d1 SHA512 b804a4d4ef9294a8f241b75a06ee6464d932330824dc95f2fa1f67bb6f22f4d66287e4f47dcafce4e59e68fa3d11ac61cdbca55ab0939747d8a17464d2aa29c1 WHIRLPOOL 13a5806a61a565a5a1de4d07b7aa252743016e559fe72752f2e7130d414eba0c6167608f3485f2fadf21a592cd15aa36c8e58682ca5309aa28ea874a8b7bdcb5 +AUX gzip-1.4-assembler.patch 1703 SHA256 4d05f0c6df2fcca0dcc6f72f4545ea89e0cdcb92d1f6b9e9e2bd1942da46cf81 SHA512 8a501a03263b2cf2e4c87d0f8736bfe598ecf3f32c0e76b508d88504888405fb75ce97614a2c138a49d18f516fe3dd6d9440b8d04c8f67f7b4c1833d5cb25413 WHIRLPOOL f40b81cb1ed1b3566fa3e27503ae5d8dc3fa28b15b72c1278da894190ddbf1fbeca4d158bb78d913b02edd6c9ad83f149149a40633b451cb0395194eb844a4e3 +AUX gzip-1.4-rsyncable.patch 10256 SHA256 8487d91ad4c843aa6248d0d0697cb7bff7f08accb8451711f4078355f6a5ff6e SHA512 4bf2020665e7bbe409f301146ccd021aeda7106c0307640a0731b900e6a5871ffe3410258cd35127395730579389abe8b5c999ee11685d28fc45b2a4b826e1d2 WHIRLPOOL 8db82783c9ee06038f7ce3e0e0cff0b678b0110f4e8275a6e94fae7bf243b62657e2f65c2594b7eeb65e8f9f487b71523eee014fd350289ce0b8f42618fc1afe +AUX gzip-1.5-rsyncable.patch 10912 SHA256 c9024df8719d42b0b0f133f829865ccab2d5b58a0b5847a9425314d03fa8c9b6 SHA512 9d853058938eeb7ec1578b4ccd3dd1a062c79aac474f04567891b4b4a414171d92e6cbe41c348f9d0835fff56613e603e6aa05b03d312022e01902e5e5a8d0c7 WHIRLPOOL 8882f39fee56e7848922f55fefb902f110cc0202a4c1c833eec052541491419ae322b10840a1e0aa34fc1d3ff87ba12a29b1154bd17265760c68c005f60a04dc +DIST gzip-1.4.tar.gz 907411 SHA256 d166cfd3da380da1bd535633e8890bfb5664f9e68870a611d1dc01a3e9f711ee +DIST gzip-1.5.tar.xz 720956 SHA256 9ac20a3841a1246a8bedd800ea1fb93ef76521535d89cb59397d267026b6a173 SHA512 27b1b9c1ab75331b5368abb54541f3f251009a3bc6e49e42cda13bc088673d9f8c89c55caa63da60c1ea70fac2e6de24203b7aeaaaad4bc54302edbe275f46ea WHIRLPOOL c718e5e4e0e6f29de285380c25564997615b7213fa32604922436c3c6221bb9531d01518a6cc4e0a80b4694bb040768654d4bf07bb48290f90e61f13962e96ab +EBUILD gzip-1.4.ebuild 1358 SHA256 8f489d2726cb4a44fc3ad7a369f2ee0a0ba3476e5aa4052a2486cc1f8eaec26c SHA512 5d190ee0faedbf4ec25b88aaa00813b080dbedea82ab7f037383938f8737d7dc1dbd7de6bb17541b2174d5c6a73d2dff05a04efc51feb96948842c005b77e705 WHIRLPOOL 3c65eb219ec250b676979ad4976c4a18b1ec7069e3174be7d098c9aaded73526bab5536ecb499605d13c6033b15cb8582267139d10d57d521aaac901bb9eba09 +EBUILD gzip-1.5.ebuild 1272 SHA256 fc73bf16decd7c1bc20be86ee1117376dca3e6422c8d1515e3961857c54887bb SHA512 13debf71fadea7ad32479c80f38a5ee833b50faa4faf687a6ee9a24a1af7e456130bca2fc08c7be74da4c0f690de05df18039ae5e69eff487b77f9db3afa7a38 WHIRLPOOL 5eae5bbe9752804f4a86e9d2af0d84b1ab6d2b3ba8ad304cf11346fe1c04d445b151c8a5def5a7ee5a6984b4082446662eae3f136b511a44ddc7b531673f815a +MISC ChangeLog 616 SHA256 4ee7892dab8236d0c37c4b94c46a2a6a4333338a0ea74b9f31562ba26ea8575f SHA512 b10c692c1e1ebe2050f9f0343bdcc2c84a1ec9ee32be3a4b61feee18ef5c6a79c67da5eddae516e865a3b764b6b64b5b818ead09f62e3aa81ae8623f31c26631 WHIRLPOOL 149d001b5a739720bb8bbced980c80a62960fb1856a099cd1f7e9205c1b2fd66eb84dff3542dc8715237b26da7bab73bde6f197a977c978be2ee19629f3bc90a +MISC metadata.xml 258 SHA256 3e8d2c98025402bd29168f46db0e4ed14ae2d64ee8e75508d87b136d06ba044c SHA512 fe541f144f9f9f14e041cd9481c964cc55c38579475221a76599dd81b2bd3e902c6c4b043d7897fd50c36d4e4efe38e51cc736d018b95341fee0b58d919bc985 WHIRLPOOL 8edc342ed57308000e6131785fb4401a4cf013a3b55dd498c4cd0ee73e2d3302d8da1e1d5b86a8845ccfd059a0b2b46cc00fb7e736d241633e9e827d31256e93 diff --git a/app-arch/gzip/files/patch-gzip-rsyncable.diff b/app-arch/gzip/files/gzip-1.4-rsyncable.patch similarity index 100% rename from app-arch/gzip/files/patch-gzip-rsyncable.diff rename to app-arch/gzip/files/gzip-1.4-rsyncable.patch diff --git a/app-arch/gzip/files/gzip-1.5-rsyncable.patch b/app-arch/gzip/files/gzip-1.5-rsyncable.patch new file mode 100644 index 0000000..f8d84ce --- /dev/null +++ b/app-arch/gzip/files/gzip-1.5-rsyncable.patch @@ -0,0 +1,299 @@ +NOTE: this patch is for _gzip_! + +This is pending for actual inclusion in gzip. It is currently being +tried out in the default gzip for Debian Sarge, and may go into the +upstream gzip at somepoint in the not-too-distant future. + +--- gzip-1.5/deflate.c.orig 2012-04-24 18:25:28.000000000 +0200 ++++ gzip-1.5/deflate.c 2012-06-18 19:36:09.127690198 +0200 +@@ -131,6 +131,14 @@ + #endif + /* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ + ++#ifndef RSYNC_WIN ++# define RSYNC_WIN 4096 ++#endif ++/* Size of rsync window, must be < MAX_DIST */ ++ ++#define RSYNC_SUM_MATCH(sum) ((sum) % RSYNC_WIN == 0) ++/* Whether window sum matches magic value */ ++ + /* =========================================================================== + * Local data used by the "longest match" routines. + */ +@@ -212,6 +220,8 @@ + unsigned good_match; + /* Use a faster search when the previous match is longer than this */ + ++local ulg rsync_sum; /* rolling sum of rsync window */ ++local ulg rsync_chunk_end; /* next rsync sequence point */ + + /* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to +@@ -314,6 +324,10 @@ + #endif + /* prev will be initialized on the fly */ + ++ /* rsync params */ ++ rsync_chunk_end = 0xFFFFFFFFUL; ++ rsync_sum = 0; ++ + /* Set the default configuration parameters: + */ + max_lazy_match = configuration_table[pack_level].max_lazy; +@@ -550,6 +564,8 @@ + memcpy((char*)window, (char*)window+WSIZE, (unsigned)WSIZE); + match_start -= WSIZE; + strstart -= WSIZE; /* we now have strstart >= MAX_DIST: */ ++ if (rsync_chunk_end != 0xFFFFFFFFUL) ++ rsync_chunk_end -= WSIZE; + + block_start -= (long) WSIZE; + +@@ -579,13 +595,46 @@ + } + } + ++local void rsync_roll(start, num) ++ unsigned start; ++ unsigned num; ++{ ++ unsigned i; ++ ++ if (start < RSYNC_WIN) { ++ /* before window fills. */ ++ for (i = start; i < RSYNC_WIN; i++) { ++ if (i == start + num) return; ++ rsync_sum += (ulg)window[i]; ++ } ++ num -= (RSYNC_WIN - start); ++ start = RSYNC_WIN; ++ } ++ ++ /* buffer after window full */ ++ for (i = start; i < start+num; i++) { ++ /* New character in */ ++ rsync_sum += (ulg)window[i]; ++ /* Old character out */ ++ rsync_sum -= (ulg)window[i - RSYNC_WIN]; ++ if (rsync_chunk_end == 0xFFFFFFFFUL && RSYNC_SUM_MATCH(rsync_sum)) ++ rsync_chunk_end = i; ++ } ++} ++ ++/* =========================================================================== ++ * Set rsync_chunk_end if window sum matches magic value. ++ */ ++#define RSYNC_ROLL(s, n) \ ++ do { if (rsync) rsync_roll((s), (n)); } while(0) ++ + /* =========================================================================== + * Flush the current block, with given end-of-file flag. + * IN assertion: strstart is set to the end of the current match. + */ + #define FLUSH_BLOCK(eof) \ + flush_block(block_start >= 0L ? (char*)&window[(unsigned)block_start] : \ +- (char*)NULL, (long)strstart - block_start, (eof)) ++ (char*)NULL, (long)strstart - block_start, flush-1, (eof)) + + /* =========================================================================== + * Processes a new input file and return its compressed length. This +@@ -596,7 +645,7 @@ + local off_t deflate_fast() + { + IPos hash_head; /* head of the hash chain */ +- int flush; /* set if current block must be flushed */ ++ int flush; /* set if current block must be flushed, 2=>and padded */ + unsigned match_length = 0; /* length of best match */ + + prev_length = MIN_MATCH-1; +@@ -626,6 +675,7 @@ + + lookahead -= match_length; + ++ RSYNC_ROLL(strstart, match_length); + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ +@@ -654,9 +704,14 @@ + /* No match, output a literal byte */ + Tracevv((stderr,"%c",window[strstart])); + flush = ct_tally (0, window[strstart]); ++ RSYNC_ROLL(strstart, 1); + lookahead--; + strstart++; + } ++ if (rsync && strstart > rsync_chunk_end) { ++ rsync_chunk_end = 0xFFFFFFFFUL; ++ flush = 2; ++ } + if (flush) FLUSH_BLOCK(0), block_start = strstart; + + /* Make sure that we always have enough lookahead, except +@@ -730,6 +785,7 @@ + */ + lookahead -= prev_length-1; + prev_length -= 2; ++ RSYNC_ROLL(strstart, prev_length+1); + do { + strstart++; + INSERT_STRING(strstart, hash_head); +@@ -742,24 +798,39 @@ + match_available = 0; + match_length = MIN_MATCH-1; + strstart++; +- if (flush) FLUSH_BLOCK(0), block_start = strstart; + ++ if (rsync && strstart > rsync_chunk_end) { ++ rsync_chunk_end = 0xFFFFFFFFUL; ++ flush = 2; ++ } ++ if (flush) FLUSH_BLOCK(0), block_start = strstart; + } else if (match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + Tracevv((stderr,"%c",window[strstart-1])); +- if (ct_tally (0, window[strstart-1])) { +- FLUSH_BLOCK(0), block_start = strstart; +- } ++ flush = ct_tally (0, window[strstart-1]); ++ if (rsync && strstart > rsync_chunk_end) { ++ rsync_chunk_end = 0xFFFFFFFFUL; ++ flush = 2; ++ } ++ if (flush) FLUSH_BLOCK(0), block_start = strstart; ++ RSYNC_ROLL(strstart, 1); + strstart++; + lookahead--; + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ ++ if (rsync && strstart > rsync_chunk_end) { ++ /* Reset huffman tree */ ++ rsync_chunk_end = 0xFFFFFFFFUL; ++ flush = 2; ++ FLUSH_BLOCK(0), block_start = strstart; ++ } + match_available = 1; ++ RSYNC_ROLL(strstart, 1); + strstart++; + lookahead--; + } +--- gzip-1.5/gzip.c.orig 2012-04-24 18:25:28.000000000 +0200 ++++ gzip-1.5/gzip.c 2012-06-18 19:37:13.954354148 +0200 +@@ -213,6 +213,7 @@ + unsigned insize; /* valid bytes in inbuf */ + unsigned inptr; /* index of next byte to be processed in inbuf */ + unsigned outcnt; /* bytes in output buffer */ ++int rsync = 0; /* make ryncable chunks */ + + static int handled_sig[] = + { +@@ -270,6 +271,7 @@ + {"best", 0, 0, '9'}, /* compress better */ + {"lzw", 0, 0, 'Z'}, /* make output compatible with old compress */ + {"bits", 1, 0, 'b'}, /* max number of bits per code (implies -Z) */ ++ {"rsyncable", 0, 0, 'R'}, /* make rsync-friendly archive */ + + { 0, 0, 0, 0 } + }; +@@ -353,6 +355,7 @@ + " -Z, --lzw produce output compatible with old compress", + " -b, --bits=BITS max number of bits per code (implies -Z)", + #endif ++ " --rsyncable make rsync-friendly archive", + "", + "With no FILE, or when FILE is -, read standard input.", + "", +@@ -482,6 +485,9 @@ + recursive = 1; + #endif + break; ++ case 'R': ++ rsync = 1; ++ break; + case 'S': + #ifdef NO_MULTIPLE_DOTS + if (*optarg == '.') optarg++; +--- gzip-1.5/gzip.h.orig 2012-01-01 09:53:58.000000000 +0100 ++++ gzip-1.5/gzip.h 2012-06-18 19:36:31.987689240 +0200 +@@ -140,6 +140,7 @@ + extern unsigned insize; /* valid bytes in inbuf */ + extern unsigned inptr; /* index of next byte to be processed in inbuf */ + extern unsigned outcnt; /* bytes in output buffer */ ++extern int rsync; /* deflate into rsyncable chunks */ + + extern off_t bytes_in; /* number of input bytes */ + extern off_t bytes_out; /* number of output bytes */ +@@ -287,7 +288,7 @@ + /* in trees.c */ + extern void ct_init (ush *attr, int *method); + extern int ct_tally (int dist, int lc); +-extern off_t flush_block (char *buf, ulg stored_len, int eof); ++extern off_t flush_block (char *buf, ulg stored_len, int pad, int eof); + + /* in bits.c */ + extern void bi_init (file_t zipfile); +--- gzip-1.3.6/doc/gzip.texi 2002-09-29 23:57:29 -0700 ++++ rsyncable/doc/gzip.texi 2005-02-05 09:40:33 -0800 +@@ -334,6 +334,14 @@ + into the directory and compress all the files it finds there (or + decompress them in the case of @code{gunzip}). + ++@item --rsyncable ++While compressing, synchronize the output occasionally based on the ++input. This increases size by less than 1 percent most cases, but ++means that the @code{rsync} program can take advantage of similarities ++in the uncompressed input when syncronizing two files compressed with ++this flag. @code{gunzip} cannot tell the difference between a ++compressed file created with this option, and one created without it. ++ + @item --suffix @var{suf} + @itemx -S @var{suf} + Use suffix @samp{@var{suf}} instead of @samp{.gz}. Any suffix can be +--- gzip-1.3.5/trees.c 1999-10-05 22:00:00 -0700 ++++ rsyncable/trees.c 2005-02-05 09:40:33 -0800 +@@ -46,12 +46,13 @@ + * void ct_tally (int dist, int lc); + * Save the match info and tally the frequency counts. + * +- * off_t flush_block (char *buf, ulg stored_len, int eof) ++ * off_t flush_block (char *buf, ulg stored_len, int pad, int eof) + * Determine the best encoding for the current block: dynamic trees, + * static trees or store, and output the encoded block to the zip +- * file. Returns the total compressed length for the file so far. +- * +- */ ++ * file. If pad is set, pads the block to the next ++ * byte. Returns the total compressed length for the file so ++ * far. ++ * */ + + #include + #include +@@ -847,9 +848,10 @@ + * trees or store, and output the encoded block to the zip file. This function + * returns the total compressed length for the file so far. + */ +-off_t flush_block(buf, stored_len, eof) ++off_t flush_block(buf, stored_len, pad, eof) + char *buf; /* input block, or NULL if too old */ + ulg stored_len; /* length of input block */ ++ int pad; /* pad output to byte boundary */ + int eof; /* true if this is the last block for a file */ + { + ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ +@@ -941,6 +943,10 @@ + Assert (input_len == bytes_in, "bad input size"); + bi_windup(); + compressed_len += 7; /* align on byte boundary */ ++ } else if (pad && (compressed_len % 8) != 0) { ++ send_bits((STORED_BLOCK<<1)+eof, 3); /* send block type */ ++ compressed_len = (compressed_len + 3 + 7) & ~7L; ++ copy_block(buf, 0, 1); /* with header */ + } + + return compressed_len >> 3; diff --git a/app-arch/gzip/gzip-1.4.ebuild b/app-arch/gzip/gzip-1.4.ebuild index 7052892..1d99c98 100644 --- a/app-arch/gzip/gzip-1.4.ebuild +++ b/app-arch/gzip/gzip-1.4.ebuild @@ -1,18 +1,18 @@ -# Copyright 1999-2011 Gentoo Foundation +# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/gzip/gzip-1.4.ebuild,v 1.8 2011/04/03 11:15:56 ulm Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/gzip/gzip-1.4.ebuild,v 1.12 2012/07/06 17:58:32 vapier Exp $ inherit eutils flag-o-matic DESCRIPTION="Standard GNU compressor" HOMEPAGE="http://www.gnu.org/software/gzip/" -SRC_URI="ftp://alpha.gnu.org/gnu/gzip/${P}.tar.gz +SRC_URI="mirror://gnu-alpha/gzip/${P}.tar.gz mirror://gnu/gzip/${P}.tar.gz mirror://gentoo/${P}.tar.gz" -LICENSE="GPL-2" +LICENSE="GPL-3" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" IUSE="nls pic static" RDEPEND="" @@ -22,9 +22,10 @@ DEPEND="${RDEPEND} src_unpack() { unpack ${A} cd "${S}" - epatch "${FILESDIR}"/patch-gzip-rsyncable.diff + epatch "${FILESDIR}"/${PN}-1.4-rsyncable.patch epatch "${FILESDIR}"/${PN}-1.3.8-install-symlinks.patch epatch "${FILESDIR}"/${P}-assembler.patch #309079 + epatch "${FILESDIR}"/${P}-no-gets.patch } src_compile() { diff --git a/app-arch/gzip/gzip-1.5.ebuild b/app-arch/gzip/gzip-1.5.ebuild new file mode 100644 index 0000000..2bbb5ef --- /dev/null +++ b/app-arch/gzip/gzip-1.5.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/gzip/gzip-1.5.ebuild,v 1.8 2012/09/09 15:56:45 armin76 Exp $ + +inherit eutils flag-o-matic unpacker + +DESCRIPTION="Standard GNU compressor" +HOMEPAGE="http://www.gnu.org/software/gzip/" +SRC_URI="mirror://gnu-alpha/gzip/${P}.tar.xz + mirror://gnu/gzip/${P}.tar.xz + mirror://gentoo/${P}.tar.xz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" +IUSE="nls pic static" + +RDEPEND="" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext )" + +src_unpack() { + unpacker + cd "${S}" + epatch "${FILESDIR}"/${PN}-1.5-rsyncable.patch + epatch "${FILESDIR}"/${PN}-1.3.8-install-symlinks.patch +} + +src_compile() { + use static && append-flags -static + # avoid text relocation in gzip + use pic && export DEFS="NO_ASM" + econf || die + emake || die +} + +src_install() { + emake install DESTDIR="${D}" || die + dodoc ChangeLog NEWS README THANKS TODO + docinto txt + dodoc algorithm.doc gzip.doc + + # keep most things in /usr, just the fun stuff in / + dodir /bin + mv "${D}"/usr/bin/{gunzip,gzip,uncompress,zcat} "${D}"/bin/ || die + sed -e 's:/usr::' -i "${D}"/bin/gunzip || die +}