Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 264002 - [science overlay] app-arch/lbzip2 (new package)
Summary: [science overlay] app-arch/lbzip2 (new package)
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Default Assignee for New Packages
URL: http://lacos.hu/
Whiteboard: InOverlay
Keywords: EBUILD, InVCS
Depends on:
Blocks:
 
Reported: 2009-03-27 21:12 UTC by Jeroen Roovers (RETIRED)
Modified: 2021-08-19 06:22 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
app-arch/lbzip2-0.14.ebuild (lbzip2-0.14.ebuild,1.08 KB, text/plain)
2009-04-02 02:52 UTC, Daniel Lin
Details
app-arch/lbzip2-0.15.ebuild (lbzip2-0.15.ebuild,1.18 KB, text/plain)
2009-04-14 20:32 UTC, Daniel Lin
Details
app-arch/lbzip2-0.15.ebuild (lbzip2-0.15.ebuild,1.22 KB, text/plain)
2009-04-16 01:55 UTC, Daniel Lin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jeroen Roovers (RETIRED) gentoo-dev 2009-03-27 21:12:23 UTC
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
Comment 1 Daniel Lin 2009-04-02 02:52:26 UTC
Created attachment 187037 [details]
app-arch/lbzip2-0.14.ebuild

src_test passes on amd64.
Comment 2 Sébastien Fabbro (RETIRED) gentoo-dev 2009-04-14 16:20:07 UTC
now in science overlay, thanks to jlec.
Comment 3 Justin Lecher (RETIRED) gentoo-dev 2009-04-14 16:35:10 UTC
(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
Comment 4 Laszlo Ersek 2009-04-14 18:04:37 UTC
(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
Comment 5 Daniel Lin 2009-04-14 20:32:57 UTC
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.
Comment 6 Laszlo Ersek 2009-04-15 00:59:30 UTC
(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
Comment 7 Justin Lecher (RETIRED) gentoo-dev 2009-04-15 06:59:45 UTC
> 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
Comment 8 Daniel Lin 2009-04-15 18:20:36 UTC
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?
Comment 9 Daniel Lin 2009-04-16 01:55:05 UTC
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.
Comment 12 Justin Lecher (RETIRED) gentoo-dev 2009-10-26 07:41:46 UTC
Did the version bump to 0.16