Bug 1235404

Summary: Review Request: pristine-tar - Regenerate pristine tarballs from version control systems
Product: [Fedora] Fedora Reporter: Evgeni Golov <egolov>
Component: Package ReviewAssignee: Orion Poplawski <orion>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: egolov, orion, package-review
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-25 11:35:10 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 177841    

Description Evgeni Golov 2015-06-24 17:34:51 UTC
Spec URL: http://pinky.die-welt.net/~evgeni/rpm/pristine-tar.spec
SRPM URL: http://pinky.die-welt.net/~evgeni/rpm/pristine-tar-1.33-1.fc21.src.rpm
Description:
pristine-tar can regenerate a pristine upstream tarball using only a small
binary delta file and a revision control checkout of the upstream branch.

The package also includes a pristine-gz command, which can regenerate a
pristine .gz file, a pristine-bz2 for .bz2 files, and a pristine-xz for .xz
files.

The delta file is designed to be checked into revision control along-side
the upstream branch, thus allowing Debian packages to be built entirely
using sources in revision control, without the need to keep copies of
upstream tarballs.

Fedora Account System Username: evgeni

Koji builds for f21 and f22:
 http://koji.fedoraproject.org/koji/taskinfo?taskID=10199183
 http://koji.fedoraproject.org/koji/taskinfo?taskID=10199187

rpmlint:
pristine-tar.src: W: spelling-error %description -l en_US gz -> g, z, gs
pristine-tar.src: W: spelling-error %description -l en_US xz -> xx, x, z
pristine-tar.x86_64: W: spelling-error %description -l en_US gz -> g, z, gs
pristine-tar.x86_64: W: spelling-error %description -l en_US xz -> xx, x, z
(yeah, I do want to spell gz like that ;))

I am a newbie at packaging (for Fedora), so I need a sponsor and a patient one ;-)

Comment 1 Orion Poplawski 2015-07-13 17:25:11 UTC
This seems like fairly old code.  Is it of particular use to you or something else?  I'm also concerned that it appears to bundle gzip and bzip2 code.

Comment 2 Evgeni Golov 2015-07-14 07:35:19 UTC
Yes, it is quite old code, but it is heavily used for maintaining Debian packages in Git. I am currently discussing with a few Debian people to revive the upstream maintaineship inside of Debian.

It is of use for me (and hopefully others) who want to be able to maintain Debian packages on a Fedora system (crude setup, I know).

As for the bundled code, yes it is used. I can dig up the exact reason for using it (instead of bzip2-libs) later, if you want to.

Reminds me to upload a slightly refreshed version with xdelta3 compatibility.

Comment 3 Orion Poplawski 2015-09-20 16:05:55 UTC
Yes, I would need to know the bundling reasons.

Comment 4 Orion Poplawski 2015-10-28 04:16:46 UTC
Bundling has been relaxed substantially in Fedora.  Do you still want to pursue this review?

Comment 5 Evgeni Golov 2015-12-22 15:14:36 UTC
Hi Orion,

sorry for the long delay -- work has been keeping me busy and a working pristine-tar was not top of the priorities :)

The bundled bzip2 and gzip code is needed to be able to recreate byte-identical archives created with some (old) versions of these tools. Would this be OK for bundling in Fedora?

If I read https://fedoraproject.org/wiki/Bundled_Software_policy correctly, I'd "just" have to add proper provides, right?

Regards
Evgeni

Comment 6 Orion Poplawski 2015-12-22 15:45:23 UTC
Yes, now you just need to add the provides.

Comment 7 Evgeni Golov 2015-12-23 09:47:44 UTC
Ok, cool.

I have now added the following to the spec:
# zgz/gzip/*
Provides:       bundled(gzip)  = 1.3.12
# zgz/old-bzip2/*
Provides:       bundled(bzip2) = 0.9.5
# pit/suse-bzip2/*
Provides:       bundled(bzip2) = 1.0.6

Is it correct to list bzip2 as bzip2, and not as bzip2-libs or libbz2? https://fedoraproject.org/wiki/Bundled_Software_policy only says "<libname>" which is not really exact :)

Comment 8 Evgeni Golov 2015-12-23 09:49:46 UTC
rpmlint says it's an error to have the same provides twice, though:
pristine-tar.x86_64: E: useless-provides bundled(bzip2)
This package provides 2 times the same capacity. It should only provide it
once.

Comment 9 Orion Poplawski 2016-11-24 04:57:38 UTC
Sorry for the delay here.  Do you want to continue?

For bzip2 I would do:

Provides:       bundled(bzip2-old) = 0.9.5
Provides:       bundled(bzip2) = 1.0.6

Comment 10 Evgeni Golov 2017-09-25 11:35:10 UTC
I must admit I lost time and interest in pristine-tar in Fedora, so I am closing this as WONTFIX.

Thanks Orion for the reviews!