From: ERSEK Laszlo <lacos@elte.hu> To: Jeroen Roovers <jer@gentoo.org> Subject: lbzip2 for Gentoo? Date: Wed, 25 Mar 2009 13:28:24 +0100 (CET) Sender: Ersek Laszlo <lacos@caesar.elte.hu> Hi, if I'm not wrong, you created the ebuild for pbzip2. I wrote another multithreaded bzip2 utility. I'd like to ask you to consider packaging it for Gentoo. For a comparison with pbzip2, please see http://lists.debian.org/debian-mentors/2009/02/msg00135.html For my stance on what goes into upstream, please see the beginning of http://lists.debian.org/debian-mentors/2009/02/msg00137.html The upstream repository for packagers is http://lacos.web.elte.hu/pub/lbzip2/ (Sort of a) homepage at http://phptest11.atw.hu Lbzip2 is already in debian's NEW queue (http://ftp-master.debian.org/new/lbzip2_0.14-1.html), meaning it will likely be placed in Debian unstable once the FTP masters reviewed it. I'm sorry for spamming you directly. However, I'm convinced lbzip2 has some features no other bzip2/bunzip2 filter has (see the comparison above). I was quietly waiting for the community to pick it up for some time -- almost nobody noticed. However, I could convince (with arguments) a Debian Developer to sponsor lbzip2, so I seem to be right both about lbzip2 being useful and about me having to spam people about it. Besides Debian, lbzip2 is already packaged / wrapped for the following systems (centrally or as a community effort): FreeBSD: http://www.freshports.org/archivers/lbzip2/ openSUSE: http://download.opensuse.org/repositories/Archiving/openSUSE_11.1/src/lbzip2-0.14-3.1.src.rpm http://download.opensuse.org/repositories/Archiving/openSUSE_11.1/i586/lbzip2-0.14-3.1.i586.rpm http://download.opensuse.org/repositories/Archiving/openSUSE_11.1/x86_64/lbzip2-0.14-3.1.x86_64.rpm SlackBuilds (for Slackware): http://slackbuilds.org/repository/12.2/system/lbzip2/ AUR (for archlinux): http://aur.archlinux.org/packages.php?ID=24718 T2 SDE: http://www.t2-project.org/packages/lbzip2.html invoca: http://www.invoca.ch/pub/packages/lbzip2/ Thank you, lacos
Created attachment 187037 [details] app-arch/lbzip2-0.14.ebuild src_test passes on amd64.
now in science overlay, thanks to jlec.
(In reply to comment #1) > Created an attachment (id=187037) [edit] > app-arch/lbzip2-0.14.ebuild > > src_test passes on amd64. > test_phase produces following error: test.sh: [2009-04-14 18:29:54 CEST] performance pbzip2_decompr_regf on scratch/pbzip2-compr test.sh: line 225: time: command not found test.sh: [2009-04-14 18:29:54 CEST] performance 7za_decompr_regf on scratch/pbzip2-compr test.sh: line 241: time: command not found test.sh: [2009-04-14 18:29:54 CEST] performance bzip2_decompr_pipe on scratch/pbzip2-compr test.sh: line 200: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance lbzip2_decompr_pipe on scratch/pbzip2-compr test.sh: line 213: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance pbzip2_decompr_pipe on scratch/pbzip2-compr test.sh: line 222: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance 7za_decompr_pipe on scratch/pbzip2-compr test.sh: line 237: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance decompression warmup scratch/7za-compr test.sh: [2009-04-14 18:29:54 CEST] performance bzip2_decompr_regf on scratch/7za-compr test.sh: line 202: time: command not found test.sh: [2009-04-14 18:29:54 CEST] performance lbzip2_decompr_regf on scratch/7za-compr test.sh: line 215: time: command not found test.sh: [2009-04-14 18:29:54 CEST] performance pbzip2_decompr_regf on scratch/7za-compr test.sh: line 225: time: command not found test.sh: [2009-04-14 18:29:54 CEST] performance 7za_decompr_regf on scratch/7za-compr test.sh: line 241: time: command not found test.sh: [2009-04-14 18:29:54 CEST] performance bzip2_decompr_pipe on scratch/7za-compr test.sh: line 200: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance lbzip2_decompr_pipe on scratch/7za-compr test.sh: line 213: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance pbzip2_decompr_pipe on scratch/7za-compr test.sh: line 222: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] performance 7za_decompr_pipe on scratch/7za-compr test.sh: line 237: time: command not found cat: write error: Broken pipe test.sh: [2009-04-14 18:29:54 CEST] counting bytes
(In reply to comment #3) > test_phase produces following error: > test.sh: [2009-04-14 18:29:54 CEST] performance pbzip2_decompr_regf on > scratch/pbzip2-compr > test.sh: line 225: time: command not found From the README: ------------------------------------------------------------------------------- Installation ============ Please enable SUSv2 conformance in your environment. (An easy way to do this on a GNU/Linux system, at least for the purposes of this document: (1) install the Debian Almquist Shell, (2) whenever "make" is mentioned, pass it the "SHELL=/path/to/dash" macro definition after any options but before any targets, (3) whenever "sh" is mentioned, use "dash".) ------------------------------------------------------------------------------- src_test() doesn't pass SHELL=/path/to/dash. Furthermore, you will need GNU time. I figured all GNU/Linux distros install it per default; perhaps I should have mentioned it as (4) in the section quoted above. I also suggest upgrading to lbzip2-0.15. Thanks, lacos
Created attachment 188344 [details] app-arch/lbzip2-0.15.ebuild I see nothing that would cause Bash's pretend-to-be-a-POSIX-sh and dash to act differently, and I don't really like adding app-shells/dash to the build dependencies, but as that's upstream's recommendation, in it goes. Also added sys-process/time to USE=test build-dependencies, and bumped the version. Again, passed src_test on amd64.
(In reply to comment #5) > I see nothing that would cause Bash's pretend-to-be-a-POSIX-sh and dash to act > differently, and I don't really like adding app-shells/dash to the build > dependencies, but as that's upstream's recommendation, in it goes. Try (in general) "time -p -- sleep 1". Argument "--" is not used anymore in "test.sh" as a delimiter indicating the end of options, but IIRC I tried to for a while. According to SUSv2, the time utiliy [1] supports the XBD specification, Utility Syntax Guidelines, and thus "--". Bash (at least the version I run, 3.2.39(1)-release) violates this, even with --posix. Dash, on the other hand, is written explicitly for POSIX conformance. I develop lbzip2 based on SUSv2, and on GNU/Linux, dash is the most conformant shell I know of. (Needing to install GNU time additionally fits nicely with this -- that's just part of the GNU/Linux-specific way to create a SUSv2-conformant environment.) I use bash for an interactive shell but I have to write my scripts in a SUSv2-portable way, and dash helps me catch my ingrained bashisms that sometimes creep in against my best efforts. (For more raving of mine on this, see [2], present in the original bug description, too.) > Also added sys-process/time to USE=test build-dependencies, and bumped the > version. Again, passed src_test on amd64. I forgot to emphasize: -O3 was changed to -O2 in Makefile (-> src_unpack()). See also [3]. I'm sorry for not stressing this before. It really should have been placed in the upstream changelog but it felt awkward, the changelog being written in a "higher level" style. It probably didn't matter for your build since you use Makefile.dev in src_compile(), and Makefile.dev contains no -O* option. If you only use Makefile.dev for building lbzip2, you can skip changing Makefile in src_unpack() completely. (Makefile.dev is standalone -- SUSv2 make doesn't mandate inclusion support.) Thanks! lacos [1] http://www.opengroup.org/onlinepubs/007908775/xcu/time.html [2] http://lists.debian.org/debian-mentors/2009/02/msg00137.html [3] http://packages.debian.org/changelogs/pool/main/l/lbzip2/current/changelog#versionversion0.15-1
> Also added sys-process/time to USE=test build-dependencies, and bumped the > version. Again, passed src_test on amd64. > Try emerge p7zip and test again
It should be optional, as I believe the test harness will still work even if it's not installed... I'll double-check that later... But I have had p7zip installed all along. Any particular issue with that?
Created attachment 188520 [details] app-arch/lbzip2-0.15.ebuild The reason for patching the Makefiles is to follow the user's CFLAGS settings and not force any specific -O*/-g*... obviously I wasn't paying enough attention to the last build, and didn't notice that the -O2 wasn't patched out. Hmm, didn't notice LDFLAGS=-s either. Portage strips binaries when installing, unless the system is configured with FEATURES=nostrip, and that preference should be followed rather than being hard-coded in the package, so I patched that out too.
The ebuild: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=blob;f=app-arch/lbzip2/lbzip2-0.15.ebuild;h=6b3cc7007c4f2789f6a18092c0f9b209d5a4a1f1;hb=HEAD the build dir http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=tree;f=app-arch/lbzip2;h=f7d5aebee1f0ed6578efb164e6c60659c3e53336;hb=HEAD
Sorry again with newer revisions: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=blob;f=app-arch/lbzip2/lbzip2-0.15.ebuild;h=b05e82fc7a8b4578f65a161209ada3a54f232072;hb=HEAD http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=tree;f=app-arch/lbzip2;hb=HEAD
Did the version bump to 0.16