Bug 662259

Summary: Review Request: git-annex - Manage files with git, without checking their contents in
Product: [Fedora] Fedora Reporter: Ben Boeckel <fedora>
Component: Package ReviewAssignee: Jens Petersen <petersen>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: high    
Version: rawhideCC: amcnabb, db48x, fedora-package-review, haskell-devel, joey, lakshminaras2002, marcandre.lureau, meyering, notting, quantum.analyst, wjhns174
Target Milestone: ---Flags: petersen: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-10 20:49:12 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: 634037, 670007, 713361, 784802, 812702, 815583    
Bug Blocks: 634048    
Attachments:
Description Flags
git-annex.spec-1.patch
none
git-annex.spec-2.patch
none
git-annex.spec-3.patch none

Description Ben Boeckel 2010-12-11 03:26:04 UTC
Spec URL: http://benboeckel.net/packaging/git-annex/git-annex.spec
SRPM URL: http://benboeckel.net/packaging/git-annex/git-annex-0.11-1.fc14.src.rpm
Description:
git-annex allows managing files with git, without checking the file contents
into git. While that may seem paradoxical, it is useful when dealing with files
larger than git can currently easily handle, whether due to limitations in
memory, checksumming time, or disk space.

Even without file content tracking, being able to manage files with git, move
files around and delete files with versioned directory trees, and use branches
and distributed clones, are all very handy reasons to use git. And annexed
files can co-exist in the same git repository with regularly versioned files,
which is convenient for maintaining documents, Makefiles, etc that are
associated with annexed files but that benefit from full revision control.

When a file is annexed, its content is moved into a key-value store, and a
symlink is made that points to the content. These symlinks are checked into git
and versioned like regular files. You can move them around, delete them, and so
on. Pushing to another git repository will make git-annex there aware of the
annexed file, and it can be used to retrieve its content from the key-value
store.

% lintmock fedora-14-x86_64
git-annex.src: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.src: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.src: W: spelling-error %description -l en_US symlink -> sym link, sym-link, symbolic
git-annex.src: W: spelling-error %description -l en_US symlinks -> sym links, sym-links, slinks
git-annex.src: W: invalid-url Source0: git-annex-0.11.tar.bz2
git-annex.x86_64: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.x86_64: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.x86_64: W: spelling-error %description -l en_US symlink -> sym link, sym-link, symbolic
git-annex.x86_64: W: spelling-error %description -l en_US symlinks -> sym links, sym-links, slinks
git-annex.x86_64: W: spurious-executable-perm /usr/share/man/man1/git-annex.1.gz
git-annex-debuginfo.x86_64: E: debuginfo-without-sources
3 packages and 0 specfiles checked; 1 errors, 10 warnings.

Comment 1 Andrew McNabb 2011-01-26 18:40:46 UTC
Here are a few issues from the rpmlint output:

> git-annex.src: W: invalid-url Source0: git-annex-0.11.tar.bz2

The Source0 needs to be a full URL, not just a filename.  I can't seem to find a tarball on the git-annex website.  Can you work with upstream to get them to publish a tarball for each new version?

> git-annex.x86_64: W: spurious-executable-perm /usr/share/man/man1/git-annex.1.gz

This should be fixed.

> git-annex-debuginfo.x86_64: E: debuginfo-without-sources

Have you tried to fix this error?

A few other issues:

1) The %description seems a little long.  Most packages seem to have one or maybe two brief paragraphs.

2) This is a dumb preference, but I would slightly change the summary to "Manage files with git, without checking in their contents".

3) It looks like there have been a few version updates since the last time the spec file was updated.

4) Have you sent the patches to the Makefile upstream?  By the way, it looks like the documentation is correctly installed by the Makefile in a newer version of git-annex.

5) Two of the dependencies are unavailable on Fedora 14.  I can't really do anything more on this review until the ghc-pcre-light package is in.

Comment 2 Ben Boeckel 2011-01-26 23:27:00 UTC
(In reply to comment #1)
> Here are a few issues from the rpmlint output:
> 
> > git-annex.src: W: invalid-url Source0: git-annex-0.11.tar.bz2
> 
> The Source0 needs to be a full URL, not just a filename.  I can't seem to find
> a tarball on the git-annex website.  Can you work with upstream to get them to
> publish a tarball for each new version?

I'll contact him about it. It was generated from a tag in the repository (see instructions above the URL: tag).

> > git-annex.x86_64: W: spurious-executable-perm /usr/share/man/man1/git-annex.1.gz

Oops.

> This should be fixed.
> 
> > git-annex-debuginfo.x86_64: E: debuginfo-without-sources
> 
> Have you tried to fix this error?

The -debuginfo package actually needs disabled since Haskell doesn't support it.

> A few other issues:
> 
> 1) The %description seems a little long.  Most packages seem to have one or
> maybe two brief paragraphs.

Taken from the website for the most part. I'll look at trimming it down.

> 2) This is a dumb preference, but I would slightly change the summary to
> "Manage files with git, without checking in their contents".

Yeah, also taken from the website. Your wording is better. Will appear in the next version.

> 3) It looks like there have been a few version updates since the last time the
> spec file was updated.

Will appear in the next update. (I don't keep all the RR's I have 100% up-to-date, just the ones that have attention since there are sometimes a dozen updates between be initially submitting and getting a reviewer).

> 4) Have you sent the patches to the Makefile upstream?  By the way, it looks
> like the documentation is correctly installed by the Makefile in a newer
> version of git-annex.

They've been sent and applied in some way. I think the author changed around some of them. I'll look at it more closely when I update it.

> 5) Two of the dependencies are unavailable on Fedora 14.  I can't really do
> anything more on this review until the ghc-pcre-light package is in.

Hence the Blocks: field above :) . I have a local repository which I build against and has pretty much every package in the review list in it. My server has had issues since a power outage 2 or 3 weeks ago and I still haven't had a chance to look into it.

Comment 3 Jens Petersen 2011-01-28 11:07:24 UTC
As earlier discussed on Fedora haskell-devel list,
dropping libraries for now from the toplevel of Haskell-pkg-reviews,
so we, the Haskell SIG, can focus more on getting Haskell apps into Fedora.

To get you library back under the tracker please submit a bin or binlib
package that depends on this library and make this bug block that package
review.  It is a good idea to submit full stacks of packages and then
to add the toplevel program to the tracker.

Comment 4 Ben Boeckel 2011-01-28 15:39:59 UTC
This is a top-level package. Doesn't use cabal, but it is Haskell and a binary.

Comment 5 Jens Petersen 2011-02-01 02:59:57 UTC
Sorry thanks for catching that, Ben.

Comment 6 Jens Petersen 2011-08-17 07:23:26 UTC
I assume Andrew is not intending to review this?

Comment 7 Andrew McNabb 2011-08-17 14:47:22 UTC
I originally started to, but as I got into it, all of the Haskell-specific stuff creeped me out.

Comment 8 Ben Boeckel 2011-08-17 15:29:37 UTC
git-annex is on Hackage now with a cabal build system, so I'll update to use it rather than the Makefile stuff sometime this week hopefully.

Comment 9 Jens Petersen 2011-08-19 07:04:17 UTC
(In reply to comment #7)
> I originally started to, but as I got into it, all of the Haskell-specific
> stuff creeped me out.

That's ok - I was just asking yes/no? :)

Anyway not as many weird macros in non-library Cabal packages. :)

I just note in passing that the Fonts packaging macros also
generate %files sections automagically for example.
I haven't received any comments so far from the packaging list
on the revised Haskell Guidelines.

Comment 10 Wes Hardaker 2011-10-10 14:57:05 UTC
FYI, thanks for working on this.  I just build the package from the src.rpm and it was much easier than using cabal.  I tried for a few hours to get cabal to build it like the source asks you to do, but it just wouldn't work.  The src.rpm, however, worked nicely.

I think there may be a package missing in the build-requirements list as I think I had to install something to get it to work, but I lost track of what I did time-wise so couldn't tell you which package.

Comment 11 Jens Petersen 2011-10-17 01:39:37 UTC
As Wes mentioned, git-annex is now in hackage with more deps...

I may try package it all unless someone else can help to do it.

Comment 12 Wes Hardaker 2011-10-17 19:32:10 UTC
I'd certainly like it if someone would package and maintain it (I'm swamped and am not a haskell expert myself).  I would like to use it, but am not really motivated to put trust in it when it's so painful to build from scratch.

Comment 13 Jens Petersen 2012-01-16 10:16:56 UTC
I'd like to see this packaged too.

Currently a good version to start with might be 3.20111211.
But it still needs hS3 (-> Crypto, hxt (->...)), monad-control (-> base-unicode-symbols), and SHA.

Latest releases have further deps on lifted-base and transformers-base.

Anyway there is some work to be done to get this all ready.

Comment 14 Joey Hess 2012-04-13 16:38:39 UTC
Hi, I'm the author of git-annex, and appreciate your work on getting it into Fedora, since based on user feedback, this is currently one of the harder Linux distributions for users to install it to.

I'd really like to make this happen. It seems that the main issue is build dependencies. But there are some ways to work around that. git-annex's git repository has several branches that avoid most of the newer build dependencies. For building with ghc older than 7.4, there is the ghc-7.0 branch. For building without S3 (and its long chain of dependencies noted above), there is a no-s3 branch. It's also possible to avoid monad-control (which also avoids lifted-base), although currently the only branch I have that does do is the debian-stable branch. There's also a no-bloom branch omitting another recent build dependency. These all remove some features (and dropping monal-control removes some robustness in one case), but still leave a quite capable program.

I would be quite willing to put together a branch that omits any build dependencies necessary for Fedora, and maintain it for the lifetime of the Fedora release. (Not sure if I can commit to the lifetime of a Red Hat release :)
Just get in touch with me.

Comment 15 Ben Boeckel 2012-04-13 16:55:55 UTC
Fewer dependency versions sound good just for getting it into Fedora. I'll see if I can find the time to update to a snapshot with existing deps. We can tack more deps in once they're packaged.

Comment 16 Jens Petersen 2012-04-14 04:09:10 UTC
Thank you, Joe, for reaching out to us. :-)

We now have lifted-base (and monad-control) in Fedora at least. :)

I think we are gradually getting closer to being able to package the main hackage.
Seems now we are still missing packages:

- bloomfilter
- hS3 -> Crypto, hxt*
- IfElse
- SHA

So yes it is probably a good idea initially to package merging the no-S3 branch,
since hxt is quite a few packages.  Of course it would be nice to have
S3 support in Fedora later.

Ben: do you have time to try for that?

Joe: I assume adding an S3 flag to git-annex.cabal is not practical?

Comment 17 Ben Boeckel 2012-04-14 04:24:39 UTC
SHA is needed in the yesod and gitit stacks anyways (though yesod has *lots* to get through yet until SHA is an issue, gitit less so), so that could be bumped up my list. IfElse and bloomfilter look easy. Sunday is probably the earliest I'll get to this.

Comment 18 Narasimhan 2012-04-14 09:50:11 UTC
Bloomfilter package.
https://bugzilla.redhat.com/show_bug.cgi?id=670007

Comment 19 Joey Hess 2012-04-14 18:33:47 UTC
An S3 flag in git-annex.cabal was a good idea. That is done in git, so without the S3 library it will auto-disable S3 support now.

Glad to see bloomfilter is getting packaged. Nice thing to have available in general. :)

SHA is fairly core, I could make a branch without it, but it would lose support for encrypting content. If packaging SHA turns out to be a problem, let me know
and I'll work something out. IIRC it's a fairly simple library to build.

I could easily spin a branch without IfElse (about a 4 line patch), or it should be trivial to package.

Comment 20 Jens Petersen 2012-04-16 01:45:48 UTC
Various people have been asking for this for a while so setting priority to High.

Comment 21 Jens Petersen 2012-04-16 02:31:45 UTC
OK I submitted a package for SHA, so only IfElse (or patch for it) needed now.

Comment 22 Joey Hess 2012-04-16 20:37:37 UTC
I have added a no-ifelse branch to git. You might find it easiest to pull it out into a srpm patch. I will be releasing the next git-annex version in 2 days (blocked on the Debian side!) with the automatic S3 disabling or you can use git.

Comment 23 Jens Petersen 2012-04-17 10:07:16 UTC
Thanks!  The no-ifelse patch looks pretty simple. :)

https://github.com/joeyh/git-annex/commits/no-ifelse

Comment 24 Ben Boeckel 2012-04-24 01:03:27 UTC
Newest release needs edit-distance.

Comment 25 Ben Boeckel 2012-04-24 01:07:19 UTC
Spec URL: http://benboeckel.net/packaging/git-annex/git-annex.spec
SRPM URL: http://benboeckel.net/packaging/git-annex/git-annex-3.20120418-1.fc18.src.rpm

% lintmock fedora-rawhide-x86_64
git-annex.src: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.src: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.src: W: spelling-error %description -l en_US symlink -> slinky
git-annex.src: W: spelling-error %description -l en_US symlinks -> slinks
git-annex.src: W: strange-permission git-annex-3.20120418.tar.gz 0640L
git-annex.src: W: strange-permission git-annex.spec 0640L
git-annex.src: W: strange-permission git-annex-no-ifelse.patch 0640L
git-annex.x86_64: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.x86_64: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.x86_64: W: spelling-error %description -l en_US symlink -> slinky
git-annex.x86_64: W: spelling-error %description -l en_US symlinks -> slinks
git-annex.x86_64: W: no-manual-page-for-binary git-annex
2 packages and 0 specfiles checked; 0 errors, 12 warnings.

Comment 26 Jens Petersen 2012-05-22 01:04:15 UTC
Builds in koji rawhide:

http://koji.fedoraproject.org/koji/taskinfo?taskID=4093104

Comment 27 Jens Petersen 2012-05-22 09:24:38 UTC
I think the manpages should be generated and included and probably the docs too.
The html docs are actually larger than the binary so maybe it is sensible to subpackage them if they are to be packaged.

Doesn't git-annex need git at runtime?  If so then there should be
a Requires added for git.

Comment 28 Jens Petersen 2012-05-22 09:28:28 UTC
Joey, BTW any chance of backporting the S3 Cabal flag to your ghc-7.0.4 branch?
I guess ghc-7.0.4 will still be around for a while.

Comment 29 Jens Petersen 2012-05-22 09:41:52 UTC
Created attachment 585977 [details]
git-annex.spec-1.patch

This patch adds git-annex-shell symlink, builds docs, and installs the manpages.

Comment 30 Jens Petersen 2012-05-23 09:52:10 UTC
(In reply to comment #28)
> Joey, BTW any chance of backporting the S3 Cabal flag to your ghc-7.0.4
> branch?  I guess ghc-7.0.4 will still be around for a while.

Joey informed me that the current ghc-7.0.4 branch already has
the S3 flag backported.  So it should be possible to build git-annex
easily hopefully for F16 and F17.

Comment 31 Jens Petersen 2012-06-01 09:52:39 UTC
Created attachment 588376 [details]
git-annex.spec-2.patch

Here is an additional patch (ie should be applied after
the previous one) which subpackages the html docs.

Comment 32 Jens Petersen 2012-06-01 09:54:32 UTC
Congratulations to Joey.

Ben, can you update your submission so we can complete the review?

I hope only pending thing is the Requires for git.

Comment 33 Ben Boeckel 2012-06-02 14:21:38 UTC
Spec URL: http://benboeckel.net/packaging/git-annex/git-annex.spec
SRPM URL: http://benboeckel.net/packaging/git-annex/git-annex-3.20120522-1.fc18.src.rpm

% lintmock fedora-rawhide-x86_64
git-annex.src: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.src: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.src: W: spelling-error %description -l en_US symlink -> slinky
git-annex.src: W: spelling-error %description -l en_US symlinks -> slinks
git-annex.src: W: strange-permission git-annex-3.20120522.tar.gz 0640L
git-annex.src: W: strange-permission git-annex.spec 0640L
git-annex.src: W: strange-permission git-annex-no-ifelse.patch 0640L
git-annex.x86_64: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.x86_64: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.x86_64: W: spelling-error %description -l en_US symlink -> slinky
git-annex.x86_64: W: spelling-error %description -l en_US symlinks -> slinks
git-annex-docs.x86_64: W: non-standard-group documentation
3 packages and 0 specfiles checked; 0 errors, 12 warnings.

Comment 34 Jens Petersen 2012-06-12 03:55:35 UTC
(In reply to comment #33)
> git-annex-docs.x86_64: W: non-standard-group documentation

Please use "Documentation" not "documentation" to avoid this warning.
RPM groups always start with a capital letter.

Comment 35 Jens Petersen 2012-06-12 03:57:55 UTC
fedora-review output:

Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Package does not contain any libtool archives (.la)
[ ]: MUST Package does not contain kernel modules.
[ ]: MUST Package contains no static executables.
[ ]: MUST Rpath absent or only used for internal libs.
[ ]: MUST Package is not relocatable.


==== Generic ====
[ ]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[ ]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[ ]: MUST Package contains no bundled libraries.
[ ]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[ ]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[ ]: MUST Macros in Summary, %description expandable at SRPM build time.
[ ]: MUST Package requires other packages for directories it uses.
[ ]: MUST Package uses nothing in %doc for runtime.
[ ]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Fully versioned dependency in subpackages, if present.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[ ]: MUST Large documentation files are in a -doc subpackage, if required.
[ ]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.
[ ]: MUST License field in the package spec file matches the actual license.
[ ]: MUST License file installed when any subpackage combination is installed.
[ ]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[ ]: MUST Package does not generate any conflict.
[ ]: MUST Package obeys FHS, except libexecdir and /usr/target.
[ ]: MUST Package must own all directories that it creates.
[ ]: MUST Package does not own files or directories owned by other packages.
[ ]: MUST Package installs properly.
[ ]: MUST Requires correct, justified where necessary.
[!]: MUST Rpmlint output is silent.

rpmlint git-annex-3.20120522-1.fc18.src.rpm

git-annex.src: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.src: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.src: W: spelling-error %description -l en_US symlink -> slinky
git-annex.src: W: spelling-error %description -l en_US symlinks -> slinks
git-annex.src: W: strange-permission git-annex-3.20120522.tar.gz 0640L
git-annex.src: W: strange-permission git-annex.spec 0640L
git-annex.src: W: strange-permission git-annex-no-ifelse.patch 0640L
1 packages and 0 specfiles checked; 0 errors, 7 warnings.


rpmlint git-annex-3.20120522-1.fc18.i686.rpm

git-annex.i686: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.i686: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.i686: W: spelling-error %description -l en_US symlink -> slinky
git-annex.i686: W: spelling-error %description -l en_US symlinks -> slinks
1 packages and 0 specfiles checked; 0 errors, 4 warnings.


rpmlint git-annex-docs-3.20120522-1.fc18.i686.rpm

git-annex-docs.i686: W: non-standard-group documentation
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
/home/petersen/pkgreview/git-annex/2/662259/git-annex-3.20120522.tar.gz :
  MD5SUM this package     : 7807387d240e6343853718097e46ec15
  MD5SUM upstream package : 7807387d240e6343853718097e46ec15

[ ]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[ ]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[ ]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[x]: SHOULD Dist tag is present.
[ ]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[ ]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: SHOULD Package functions as described.
[ ]: SHOULD Latest version is packaged.
[ ]: SHOULD Package does not include license text files separate from
     upstream.
[ ]: SHOULD Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Patch0: git-annex-no-ifelse.patch (git-annex-no-ifelse.patch)
[x]: SHOULD SourceX is a working URL.
[ ]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[ ]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[ ]: SHOULD %check is present and all tests pass.
[ ]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues:
[!]: MUST Rpmlint output is silent.

rpmlint git-annex-3.20120522-1.fc18.src.rpm

git-annex.src: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.src: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.src: W: spelling-error %description -l en_US symlink -> slinky
git-annex.src: W: spelling-error %description -l en_US symlinks -> slinks
git-annex.src: W: strange-permission git-annex-3.20120522.tar.gz 0640L
git-annex.src: W: strange-permission git-annex.spec 0640L
git-annex.src: W: strange-permission git-annex-no-ifelse.patch 0640L
1 packages and 0 specfiles checked; 0 errors, 7 warnings.


rpmlint git-annex-3.20120522-1.fc18.i686.rpm

git-annex.i686: W: spelling-error %description -l en_US checksumming -> check summing, check-summing, checkmating
git-annex.i686: W: spelling-error %description -l en_US versioned -> version ed, version-ed, version
git-annex.i686: W: spelling-error %description -l en_US symlink -> slinky
git-annex.i686: W: spelling-error %description -l en_US symlinks -> slinks
1 packages and 0 specfiles checked; 0 errors, 4 warnings.


rpmlint git-annex-docs-3.20120522-1.fc18.i686.rpm

git-annex-docs.i686: W: non-standard-group documentation
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint


Generated by fedora-review 0.1.3
External plugins:

Comment 36 Jens Petersen 2012-06-12 04:00:28 UTC
Sorry for the delay in reviewing.

Here is my review by hand:

Here is the review:

 +:ok, NA: not applicable, !: need attention

MUST Items:
[!] MUST: rpmlint output [1]

Please fix the RPM group for the docs subpackage when importing.

[+] MUST: package named according to Package Naming Guidelines
[+] MUST: spec file name must match base package %{name} [2]
[+] MUST: meet Packaging Guidelines
[+] MUST: Fedora approved license and Licensing Guidelines
[+] MUST: License field in the package spec file must match actual license. [3]
[+] MUST: include license files in %doc if available in source [4]
[+] MUST: The spec file must be written in American English [5] and legible. [6]
[+] MUST: source md5sum matches upstream release (from upstream URL)

7807387d240e6343853718097e46ec15  git-annex-3.20120522.tar.gz

[+] MUST: successfully compile and build into binary rpms on a primary arch [7]

http://koji.fedoraproject.org/koji/taskinfo?taskID=4153193

[NA] MUST: if necessary use ExcludeArch for other archs [8]
[+] MUST: All build dependencies must be listed in BuildRequires
[NA] MUST: use %find_lang macro for .po translations [9]
[NA] MUST: packages which store shared library files in the dynamic linker's default paths, must call ldconfig in %post and %postun. [10]
[+] MUST: Packages must NOT bundle copies of system libraries. [11]
[NA] MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review [12]
[+] MUST: A package must own all directories that it creates. [13]
[+] MUST: A package must not contain any duplicate files in the %files listing. [14]

But I recommend removing the extra GPL file in the docs subpackage

[+] MUST: Permissions on files must be set properly. [15]
[+] MUST: consistently use macros [16]
[+] MUST: The package must contain code, or permissable content. [17]
[+] MUST: Large documentation files should go in a doc subpackage. [18]
[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application. [18]
[NA] MUST: Header files must be in a -devel package. [19]
[NA] MUST: Static libraries must be in a -static package. [20]
[NA] MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. [19]
[NA] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency [21]
[+] MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec. [20]
[NA] MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. [22]
[+] MUST: Packages must not own files or directories already owned by other packages. [23]
[+] MUST: All filenames in rpm packages must be valid UTF-8. [24]

SHOULD Items:
[+] SHOULD: The reviewer should test that the package builds in mock. [27]
[+] SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example.
[+] SHOULD: your package should contain man pages for binaries/scripts. If it doesn't, work with upstream to add them where they make sense.[32]

Package is APPROVED.

But fix the docs subpackage RPM group when importing.

The latest release is now 3.20120611.  It is probably going to be challenging to keep up with Joey but might be nice to update to the latest release if possible after importing the srpm.

Comment 37 Jens Petersen 2012-06-12 04:04:53 UTC
Created attachment 591068 [details]
git-annex.spec-3.patch

Patch for docs subpackage "Documentation" and duplicate GPL file.

Comment 38 Jens Petersen 2012-06-18 04:45:14 UTC
Ben, can you file the SCM request so we can get this built?

Comment 39 Ben Boeckel 2012-06-20 02:17:12 UTC
New Package SCM Request
=======================
Package Name: git-annex
Short Description: Manage files with git, without checking their contents into git
Owners: mathstuf
Branches: f17 f16
InitialCC: haskell-sig

Comment 40 Gwyn Ciesla 2012-06-20 12:10:08 UTC
Git done (by process-git-requests).

Comment 41 Jim Meyering 2012-06-21 11:03:10 UTC
nice!  perfect timing.
Just today I tried to build/install from source on x86_64/F17, following these instructions

  http://git-annex.branchable.com/install/Fedora/

and found that it failed.

Please let us know when there's a koji build.

Comment 42 Jim Meyering 2012-06-21 13:04:57 UTC
FWIW, I also tried to build on F17 using this:

  http://benboeckel.net/packaging/git-annex/git-annex-3.20120522-1.fc18.src.rpm

Thanks again, Ben!

So far to no avail:

  $ rpmbuild --rebuild git-annex-3.20120522-1.fc18.src.rpm
  ...
  [1 of 4] Compiling Utility.SafeCommand ( Utility/SafeCommand.hs, Utility/SafeCommand.o )
  [2 of 4] Compiling Build.TestConfig ( Build/TestConfig.hs, Build/TestConfig.o )
  [3 of 4] Compiling Build.Configure  ( Build/Configure.hs, Build/Configure.o )
  [4 of 4] Compiling Main             ( Setup.hs, Setup.o )
  Linking Setup ...
  + ./Setup configure --prefix=/usr --libdir=/usr/lib64 --docdir=/usr/share/doc/git-annex-3.20120522 '--libsubdir=$compiler/$pkgid' --ghc --enable-shared --enable-executable-dynamic
    ...
    checking sha224... sha224sum
    checking sha384... sha384sum
  Configuring git-annex-3.20120522...
  Setup: At least the following dependencies are missing:
  base ==4.5.*
  error: Bad exit status from /var/tmp/rpm-tmp.XdiDFF (%build)


  RPM build errors:
      user boeckb does not exist - using root
      group boeckb does not exist - using root
      user boeckb does not exist - using root
      group boeckb does not exist - using root
      user boeckb does not exist - using root
      group boeckb does not exist - using root
      Bad exit status from /var/tmp/rpm-tmp.XdiDFF (%build)

Comment 43 Jens Petersen 2012-06-22 00:56:18 UTC
Jim, the latest releases of git-annex need ghc-7.4.x to build (which is in rawhide) - there is a branch for ghc-7.0 which will be used for F17 and F16.

Hopefully the packages should be in koji and bodhi soon anyway...

Comment 44 Jens Petersen 2012-06-26 03:07:36 UTC
git-annex-3.20120615-1.fc18 is now built for F18 rawhide.

Comment 45 Jens Petersen 2012-06-26 07:38:18 UTC
For those who are impatient to build and try git-annex on
current Fedora releases with ghc-7.0.4, I prepared a src rpm package:

 http://petersen.fedorapeople.org/git-annex/git-annex-3.20120522-2.fc17.src.rpm

based off the ghc7.0 branch from github, which builds in koji:

 http://koji.fedoraproject.org/koji/taskinfo?taskID=4195689 (f17)
 http://koji.fedoraproject.org/koji/taskinfo?taskID=4195707 (f16)

So perhaps we could use this for the f17 and f16 branches?

[it fails on f15 since no ghc-bloomfilter there]

Comment 46 Jim Meyering 2012-06-30 09:12:49 UTC
Hi Jens,
Thanks for doing that.
I tried building on F17/x86_64 using your .src.rpm, but it failed with this:

  $ rpmbuild --rebuild git-annex-3.20120522-2.fc17.src.rpm
  ...
  Configuring git-annex-3.20120523...
  + '[' -x Setup ']'
  + ./Setup build
  Preprocessing executables for git-annex-3.20120523...
  dist/build/git-annex/git-annex-tmp/Utility/Touch_hsc_make: error while loading shared libraries: libffi.so.4: cannot open shared object file: No such file or directory
  running dist/build/git-annex/git-annex-tmp/Utility/Touch_hsc_make failed (exit code 127)
  command was: dist/build/git-annex/git-annex-tmp/Utility/Touch_hsc_make  >dist/build/git-annex/git-annex-tmp/Utility/Touch.hs
  error: Bad exit status from /var/tmp/rpm-tmp.SUjE2d (%build)


  RPM build errors:
      user petersen does not exist - using root
      group petersen does not exist - using root
      user petersen does not exist - using root
      group petersen does not exist - using root
      user petersen does not exist - using root
      group petersen does not exist - using root
      Bad exit status from /var/tmp/rpm-tmp.SUjE2d (%build)
  [Exit 1]

Is there a way to work around that?

Comment 47 Jens Petersen 2012-07-02 03:39:41 UTC
(In reply to comment #46)
>   dist/build/git-annex/git-annex-tmp/Utility/Touch_hsc_make: error while
> loading shared libraries: libffi.so.4: cannot open shared object file: No
> such file or directory
>   running dist/build/git-annex/git-annex-tmp/Utility/Touch_hsc_make failed
> (exit code 127)
>   command was: dist/build/git-annex/git-annex-tmp/Utility/Touch_hsc_make 
> >dist/build/git-annex/git-annex-tmp/Utility/Touch.hs

Hmm that is a bit weird.  Did you upgrade from F16?
Maybe you still have some f16 packages around like libffi*?
F17 has libffi.so.5

Anyway I planning to import the above srpm into git soon and build it
if Ben doesn't object - not sure if he is away right now...?

Maybe easier for you just to install the rpm from my scratch build above:
http://kojipkgs.fedoraproject.org//work/tasks/5690/4195690/git-annex-3.20120522-2.fc17.x86_64.rpm ?  But you may need to be quick before it gets garbage collected...

Comment 48 Fedora Update System 2012-07-02 09:07:26 UTC
git-annex-3.20120522-2.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/git-annex-3.20120522-2.fc17

Comment 49 Fedora Update System 2012-07-02 09:07:40 UTC
git-annex-3.20120522-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/git-annex-3.20120522-2.fc16

Comment 50 Fedora Update System 2012-07-02 22:30:48 UTC
git-annex-3.20120522-2.fc17 has been pushed to the Fedora 17 testing repository.

Comment 51 Fedora Update System 2012-07-10 20:49:12 UTC
git-annex-3.20120522-2.fc16 has been pushed to the Fedora 16 stable repository.

Comment 52 Fedora Update System 2012-07-10 20:52:49 UTC
git-annex-3.20120522-2.fc17 has been pushed to the Fedora 17 stable repository.

Comment 53 Jens Petersen 2012-12-07 05:08:39 UTC
I like to build this also for epel6.


Package Change Request
======================
Package Name: git-annex
New Branches: el6
Owners: mathstuf petersen
InitialCC: haskell-sig

Comment 54 Gwyn Ciesla 2012-12-07 13:14:43 UTC
Git done (by process-git-requests).

Comment 55 Fedora Update System 2012-12-11 06:38:59 UTC
git-annex-3.20120522-2.1.el6,ghc-bloomfilter-1.2.6.10-1.el6,ghc-edit-distance-0.2.1-1.el6,ghc-SHA-1.5.0.1-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/git-annex-3.20120522-2.1.el6,ghc-bloomfilter-1.2.6.10-1.el6,ghc-edit-distance-0.2.1-1.el6,ghc-SHA-1.5.0.1-1.el6

Comment 56 Fedora Update System 2012-12-27 20:06:44 UTC
git-annex-3.20120522-2.1.el6, ghc-bloomfilter-1.2.6.10-1.el6, ghc-edit-distance-0.2.1-1.el6, ghc-SHA-1.5.0.1-1.el6 has been pushed to the Fedora EPEL 6 stable repository.