threads / discuss / 1460

Cannot build git RPM

Subject: Cannot build git RPM

## tl;dr

16 messages between Aug 9, 2005 and Aug 10, 2005.

replies: 15people: 7as markdown or json

Wolfgang Denk· Aug 9, 2005, 10:40 UTC · lore
Hello,
it is not possible to build RPMs from the current git code:
RPM build errors:
    Installed (but unpackaged) file(s) found:
   /usr/share/git-core/templates/description
   /usr/share/git-core/templates/hooks/post-update
   /usr/share/git-core/templates/hooks/update
   /usr/share/git-core/templates/info/exclude
make: *** [rpm] Error 1
Best regards,
Wolfgang Denk
-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Computers are not intelligent.  They only think they are.
Wolfgang Denk· Aug 9, 2005, 11:07 UTC · re: Wolfgang Denk · lore

Re: Cannot install git RPM

I wrote:
Show 9 quoted lines
> it is not possible to build RPMs from the current git code:
> 
> RPM build errors:
>     Installed (but unpackaged) file(s) found:
>    /usr/share/git-core/templates/description
>    /usr/share/git-core/templates/hooks/post-update
>    /usr/share/git-core/templates/hooks/update
>    /usr/share/git-core/templates/info/exclude
> make: *** [rpm] Error 1
A simple fix is of course:

-> diff -u git-core.spec.in.ORIG git-core.spec.in --- git-core.spec.in.ORIG 2005-08-09 10:26:50.845877000 +0200 +++ git-core.spec.in 2005-08-09 12:42:06.872310918 +0200

@@ -40,6 +40,7 @@
 %{!?_without_docs: %doc Documentation/*.html }
 %{!?_without_docs: %{_mandir}/man1/*.1.gz}
 %{!?_without_docs: %{_mandir}/man7/*.7.gz}
+/usr/share/git-core/templates/*
 
 %changelog
 * Thu Jul 14 2005 Eric Biederman <ebiederm@xmission.com>


But the resulting RPM cannot be installed either,  at  least  not  in
standard Fedora Core 2/3/4 installations:

error: Failed dependencies:
        perl(Email::Valid) is needed by git-core-0.99.3-1
        perl(Mail::Sendmail) is needed by git-core-0.99.3-1


Seems git is depending on more and more stuff which is not  available
in standard distros. This makes it not easier for new users...

Is there at least some  documentation  which  external  packages  are
needed, and where to find these?

Best regards,

Wolfgang Denk
-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"There are three principal ways to lose money: wine, women,  and  en-
gineers.  While  the first two are more pleasant, the third is by far
the more certain."                      -- Baron Rothschild, ca. 1800
Junio C Hamano· Aug 9, 2005, 12:51 UTC · re: Wolfgang Denk · lore

Re: Cannot install git RPM

Wolfgang Denk <wd@denx.de> writes:
Show 10 quoted lines
> A simple fix is of course:
>
> -> diff -u git-core.spec.in.ORIG git-core.spec.in
> --- git-core.spec.in.ORIG       2005-08-09 10:26:50.845877000 +0200
> +++ git-core.spec.in    2005-08-09 12:42:06.872310918 +0200
> @@ -40,6 +40,7 @@
>  %{!?_without_docs: %doc Documentation/*.html }
>  %{!?_without_docs: %{_mandir}/man1/*.1.gz}
>  %{!?_without_docs: %{_mandir}/man7/*.7.gz}
> +/usr/share/git-core/templates/*
Something like that using %{_datadir} is in the RC branch.
Show 5 quoted lines
> But the resulting RPM cannot be installed either,  at  least  not  in
> standard Fedora Core 2/3/4 installations:
> ...
> Is there at least some  documentation  which  external  packages  are
> needed, and where to find these?

Patches welcome. Sorry but I need a lot of help when it comes to binary packaging.

Junio C Hamano· Aug 9, 2005, 17:13 UTC · re: Junio C Hamano · lore

Re: Cannot install git RPM

Junio C Hamano <junkio@cox.net> writes:
Show 5 quoted lines
>> But the resulting RPM cannot be installed either,  at  least  not  in
>> standard Fedora Core 2/3/4 installations:
>> ...
>> Is there at least some  documentation  which  external  packages  are
>> needed, and where to find these?
The problematic one is git-send-email-script.  

I have to admit that it was a mistake to take that patch; I was trying to be _too_ inclusive. The script does not even read from nor write into a git repository, and the only relevance to git is that it is useful for people to patchbomb the list with git generated patches. In other words, the program may be useful, but its usefulness does not have much to do with git, so it does not belong to git.

My short-term plan is to downgrade it to "contrib" status, and not touch it from the main Makefile. It will be in the 0.99.4 sources but will not be installed nor made into binary package. I hope Ryan does not mind this decision.

After we audit the set of tools we currently ship, along with some other scripts/programs, either we remove it altogether from our source tree, or create a contrib/ subdirectory and move it there.

Ryan Anderson· Aug 10, 2005, 00:30 UTC · re: Junio C Hamano · lore

Re: Cannot install git RPM

On Tue, Aug 09, 2005 at 10:13:32AM -0700, Junio C Hamano wrote:
Show 9 quoted lines
> Junio C Hamano <junkio@cox.net> writes:
> 
> >> But the resulting RPM cannot be installed either,  at  least  not  in
> >> standard Fedora Core 2/3/4 installations:
> >> ...
> >> Is there at least some  documentation  which  external  packages  are
> >> needed, and where to find these?
> 
> The problematic one is git-send-email-script.  

Yup. I'll take the blame for that one - I forget how inclusive the Debian packaging is compared to the other distributions.

Show 7 quoted lines
> I have to admit that it was a mistake to take that patch; I was
> trying to be _too_ inclusive.  The script does not even read
> from nor write into a git repository, and the only relevance to
> git is that it is useful for people to patchbomb the list with
> git generated patches.  In other words, the program may be
> useful, but its usefulness does not have much to do with git, so
> it does not belong to git.

Well, here I think I disagree. I think it's a valid, possibly vital, part of the suggested workflow for maintainers of projects. Admittedly, the emails can be sent by hand in many cases - but for the "clean up the history" goal of exporting things out as patches, the email step is important.

> My short-term plan is to downgrade it to "contrib" status, and
> not touch it from the main Makefile.  It will be in the 0.99.4
> sources but will not be installed nor made into binary package.
> I hope Ryan does not mind this decision.

Not at all. I agree that the RPM dependency problem is a good reason to not install it by default. What I will do is make this the beginning of my directory structure reorganization. I'll probably also convert the Debian package to a multi-package system, so we have a demonstration of splitting these two items up.

-- 
Ryan Anderson
  sometimes Pug Majere
Wolfgang Denk· Aug 10, 2005, 07:46 UTC · re: Ryan Anderson · lore

Re: Cannot install git RPM

In message <20050810003012.GB22778@mythryan2.michonline.com> you wrote:
Show 5 quoted lines
>
> > The problematic one is git-send-email-script.  
> 
> Yup.  I'll take the blame for that one - I forget how inclusive the
> Debian packaging is compared to the other distributions.

Actually this may be more of a problem with Fedora Core / RedHat dependency generation and checking.

As far as the RPM *build* is concerned this looks pretty harmless to me:

	BuildRequires:  zlib-devel, openssl-devel, curl-devel  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
	...
	Prereq:         sh-utils, diffutils, rsync, rcs, mktemp >= 1.5

But the RPM itself seems to contain additional information about required packages:

	# rpm -q --requires -p /usr/local/RPMS/i386/git-core-0.99.3-1.i386.rpm
	/bin/sh  
	/usr/bin/env  
	/usr/bin/perl  
	diffutils  
	libc.so.6  
	libc.so.6(GLIBC_2.0)  
	libc.so.6(GLIBC_2.1)  
	libc.so.6(GLIBC_2.1.3)  
	libc.so.6(GLIBC_2.2.3)  
	libc.so.6(GLIBC_2.3)  
	libcrypto.so.4  
	libcurl.so.2  
	libssl.so.4  
	libz.so.1  
	mktemp >= 1.5
	perl(Data::Dumper)  
	perl(Email::Valid)  
	perl(File::Basename)  
	perl(File::Path)  
	perl(File::Spec)  
	perl(File::Temp)  
	perl(Getopt::Long)  
	perl(Getopt::Std)  
	perl(IO::Pipe)  
	perl(IO::Socket)  
	perl(Mail::Sendmail)  
	perl(POSIX)  
	perl(Term::ReadLine)  
	perl(Time::Local)  
	perl(strict)  
	perl(warnings)  
	rcs  
	rpmlib(CompressedFileNames) <= 3.0.4-1
	rpmlib(PayloadFilesHavePrefix) <= 4.0-1
	rpmlib(VersionedDependencies) <= 3.0.3-1
	rsync  
	sh-utils  

It's then the "perl(Email::Valid)" and "perl(Mail::Sendmail)" depen- dencies which cause problems. I installed all perl packages and modules I was able to find in the standard FC places, but this did not solve the problem. Maybe this is actually a bug in Fedora Core ?

Best regards,
Wolfgang Denk
-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"The question of whether a computer can think is no more  interesting
than the question of whether a submarine can swim"
                                                - Edsgar W.  Dijkstra
Chris Wright· Aug 10, 2005, 16:23 UTC · re: Wolfgang Denk · lore

Re: Cannot install git RPM

* Wolfgang Denk (wd@denx.de) wrote:
> It's then the "perl(Email::Valid)" and "perl(Mail::Sendmail)"  depen-
> dencies  which  cause  problems.  I  installed  all perl packages and
> modules I was able to find in the standard FC places,  but  this  did
> not solve the problem. Maybe this is actually a bug in Fedora Core ?

No, you probably missed the earlier thread on this. It's not a bug, those are real dependencies which rpm automagically discovers (along with things like shared library dependencies). The issue is the git-send-email-script uses Mail/Sendmail.pm and Email/Valid.pm which aren't part of standard install. Your choices are to grab the relevant packages, do an install with --nodeps (and know that git-send-email-script will not work), make a subpackage for that script so it can have its own dependencies, or move that script to elsewhere so it's not scanned for depenedency info.

thanks, -chris

Sam Ravnborg· Aug 10, 2005, 16:32 UTC · re: Chris Wright · lore

Re: Cannot install git RPM

On Wed, Aug 10, 2005 at 09:23:07AM -0700, Chris Wright wrote:
Show 11 quoted lines
> * Wolfgang Denk (wd@denx.de) wrote:
> > It's then the "perl(Email::Valid)" and "perl(Mail::Sendmail)"  depen-
> > dencies  which  cause  problems.  I  installed  all perl packages and
> > modules I was able to find in the standard FC places,  but  this  did
> > not solve the problem. Maybe this is actually a bug in Fedora Core ?
> 
> No, you probably missed the earlier thread on this.  It's not a bug,
> those are real dependencies which rpm automagically discovers (along
> with things like shared library dependencies).  The issue is the
> git-send-email-script uses Mail/Sendmail.pm and Email/Valid.pm which
> aren't part of standard install.

Not knowing perl at all I wonder if some more widespread used packages can replace the above two? I recall having trouble locating them myself when I first tried Greg's send-a-lot-of-mails script.

	Sam
Chris Wright· Aug 10, 2005, 16:32 UTC · re: Sam Ravnborg · lore

Re: Cannot install git RPM

* Sam Ravnborg (sam@ravnborg.org) wrote:
> Not knowing perl at all I wonder if some more widespread used packages
> can replace the above two?
> I recall having trouble locating them myself when I first tried Greg's
> send-a-lot-of-mails script.

I'm not too sure, but I too abandoned (well, rewrote in sh) some email scripts from Greg due to that dependency ;-)

thanks, -chris

Wolfgang Denk· Aug 10, 2005, 19:44 UTC · re: Sam Ravnborg · lore

Re: Cannot install git RPM

In message <20050810163202.GA11131@mars.ravnborg.org> you wrote:
>
> Not knowing perl at all I wonder if some more widespread used packages
> can replace the above two?

Installation of the required modules from the CPAN is trivial. It should be documented somewhere, though.

Best regards,
Wolfgang Denk
-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"UNIX was not designed to stop you from doing stupid things,  because
that would also stop you from doing clever things."       - Doug Gwyn
Junio C Hamano· Aug 10, 2005, 20:13 UTC · re: Wolfgang Denk · lore

Re: Cannot install git RPM

Wolfgang Denk <wd@denx.de> writes replying to Sam Ravnborg:
Show 7 quoted lines
> In message <20050810163202.GA11131@mars.ravnborg.org> you wrote:
>>
>> Not knowing perl at all I wonder if some more widespread used packages
>> can replace the above two?
>
> Installation of the required modules from the  CPAN  is  trivial.  It
> should be documented somewhere, though.

I would appreciate a patch for RPM building after 0.99.4, but the tentative solution for 0.99.4 (and current "master" branch since last night) is to ship the problematic program as part of the sources under "contrib" status, but not install nor include in the resulting binary package.

The dependency list for the RPM built from the tip of "rc" branch now reads like this (thanks Chris for teaching me how to get this information). This will hopefully be the one that becomes the official 0.99.4.

$ rpm -qp ~/rpms/RPMS/i386/git-core-0.99.4-1.i386.rpm --requires /bin/sh /usr/bin/env /usr/bin/perl diffutils libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.2.3) libc.so.6(GLIBC_2.3) libcrypto.so.4 libcurl.so.3 libssl.so.4 libz.so.1 mktemp >= 1.5 perl(File::Basename) perl(File::Path) perl(File::Spec) perl(File::Temp) perl(Getopt::Std) perl(IO::Pipe) perl(IO::Socket) perl(POSIX) perl(Time::Local) perl(strict) perl(warnings) rcs rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rsync sh-utils

Wolfgang Denk· Aug 10, 2005, 19:44 UTC · re: Chris Wright · lore

Re: Cannot install git RPM

In message <20050810162307.GE8041@shell0.pdx.osdl.net> you wrote:
Show 11 quoted lines
> * Wolfgang Denk (wd@denx.de) wrote:
> > It's then the "perl(Email::Valid)" and "perl(Mail::Sendmail)"  depen-
> > dencies  which  cause  problems.  I  installed  all perl packages and
> > modules I was able to find in the standard FC places,  but  this  did
> > not solve the problem. Maybe this is actually a bug in Fedora Core ?
> 
> No, you probably missed the earlier thread on this.  It's not a bug,
> those are real dependencies which rpm automagically discovers (along
> with things like shared library dependencies).  The issue is the
> git-send-email-script uses Mail/Sendmail.pm and Email/Valid.pm which
> aren't part of standard install.  Your choices are to grab the relevant
They are not only not part of a standard installation, but:
o I was not able to find any perl modules in the  whole  Fedora  Core
  distribution that satisfied these dependencies.
o Manually  installing  Email::Valid  and  Mail::Sendmail  (plus  the
  required  prerequisites)  from  CPAN  worked  find,  but  RPM still
  complains.
> packages, do an install with --nodeps (and know that
That's what I did.
> git-send-email-script will not work), make a subpackage for that script
But it will work, as the required Perl modules are installed.

My problem is that I cannot satisfy the dependencies in a way which gets visible to RPM. And this is where I feel this is a bug in Fedora Core. But probably I'm just too dumb.

Best regards,
Wolfgang Denk
-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
A mouse is an elephant built by the Japanese.
Chris Wright· Aug 10, 2005, 19:57 UTC · re: Wolfgang Denk · lore

Re: Cannot install git RPM

* Wolfgang Denk (wd@denx.de) wrote:
> My problem is that I cannot satisfy the dependencies in a  way  which
> gets visible to RPM. And this is where I feel this is a bug in Fedora
> Core. But probably I'm just too dumb.
No, it's just lack of good support.  Try rpm.pbone.net, they are there.
Clemens Koller· Aug 9, 2005, 13:23 UTC · re: Wolfgang Denk · lore

Re: Cannot install git RPM

Hello, Wolfgang!
Show 13 quoted lines
> But the resulting RPM cannot be installed either,  at  least  not  in
> standard Fedora Core 2/3/4 installations:
> 
> error: Failed dependencies:
>         perl(Email::Valid) is needed by git-core-0.99.3-1
>         perl(Mail::Sendmail) is needed by git-core-0.99.3-1
> 
> 
> Seems git is depending on more and more stuff which is not  available
> in standard distros. This makes it not easier for new users...
> 
> Is there at least some  documentation  which  external  packages  are
> needed, and where to find these?

Over here - using a non-standard ELDK/LFS mixture, git depends at least on: zlib () libcurl (http://curl.haxx.se/download/curl-7.14.0.tar.bz2) openssl () diff () diffstat (ftp://invisible-island.net/diffstat/diffstat-1.39.tgz) which (http://www.xs4all.nl/~carlo17/which/which-2.16.tar.gz) rsync (http://samba.anu.edu.au/ftp/rsync/rsync-2.6.5.tar.gz) perl ()

() -> ask Google. The versions given in brackets seem to work fine for me. - YMMV

Greets,

Clemens Koller _______________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Str. 45/1 81379 Muenchen Germany

http://www.anagramm.de
Phone: +49-89-741518-50
Fax: +49-89-741518-19
Linus Torvalds· Aug 9, 2005, 15:00 UTC · re: Clemens Koller · lore

Re: Cannot install git RPM

On Tue, 9 Aug 2005, Clemens Koller wrote:
> 
> Over here - using a non-standard ELDK/LFS mixture, git depends at least on:
>...
> diffstat (ftp://invisible-island.net/diffstat/diffstat-1.39.tgz)

Hmm.. This should not be true. Any "diffstat"s should be converted to use "git-apply --stat" instead.

I don't find any diffstat users, so maybe you just remember it from "the old days", and didn't realize that it's not needed any more.

[ That said, anybody who wants to install git might as well install 
  diffstat, it's a useful program in general, and works on more than just 
  unified diffs ]
		Linus
Clemens Koller· Aug 9, 2005, 15:36 UTC · re: Linus Torvalds · lore

Re: Cannot install git RPM

Hi, Linus!
Linus Torvalds wrote:
Show 13 quoted lines
> 
> On Tue, 9 Aug 2005, Clemens Koller wrote:
> 
>>Over here - using a non-standard ELDK/LFS mixture, git depends at least on:
>>...
>>diffstat (ftp://invisible-island.net/diffstat/diffstat-1.39.tgz)
> 
> 
> Hmm.. This should not be true. Any "diffstat"s should be converted to use
> "git-apply --stat" instead.
> 
> I don't find any diffstat users, so maybe you just remember it from "the 
> old days", and didn't realize that it's not needed any more.

Okay, just FYI: As far as my installation history remembers it was needed at least up to: http://www.kernel.org/pub/linux/kernel/people/jgarzik/git-20050622.tar.bz2 Which is _NOT_ recommended for new installations! (Can somebody please remove/mark that old stuff to avoid using it?!)

Instead use: http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz

> [ That said, anybody who wants to install git might as well install 
>   diffstat, it's a useful program in general, and works on more than just 
>   unified diffs ]
true.
Greets,

Clemens Koller _______________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Str. 45/1 81379 Muenchen Germany

http://www.anagramm.de
Phone: +49-89-741518-50
Fax: +49-89-741518-19

← back to recent threads