On Mon, 08 Aug 2005 10:38:44 -0700 Junio C Hamano wrote: > For RPM, from my lack of RPM expertise (and RPM capable > environment until recently), I have not updated the "Prereq:" > field in git-core.spec.in at all.
That "Prereq:" should be "Requires:" instead. "Prereq:" also enforces installation ordering between packages; it is required when the package has some installation scripts (%pre, %post) - in this case all packages which are needed to execute these scripts must be listed in "Prereq:". In case of git-core there are no such scripts (at least for now), so "Requires:" should be used - then the package manager will be free to install packages in any order as long as all dependencies will be satisfied in the end. > I would appreciate somebody to sanity check the list of > dependencies. The dependency list Debian side has is more > up-to-date and I am reasonably sure it is accurate. It lists > patch, diff, and rcs (for the "merge" command) as the > essential dependency (aside from the shared libraries like > libc), and libmail-sendmail-perl, rsync, curl, ssh, and > libemail-valid-perl as the recommended dependency. I do not > even know if RPM has the notion of such multi-tier > dependencies, but the latter list is meant to mean "you could > live without these, but to exercise this package fully you may > want them" (in our case of git-core, you could live without > the networking if you do not do multi-user, multi-repository). RPM does not have "Suggests" and "Recommends" like dpkg - all RPM dependencies are strict. Because of this limitation, a single RPM package is often split into several binary subpackages. > If RPM spec file has a way to say something like that, I would > like to see these packages (probably their names are different > between Debian and RPM) listed on the recommended dependency > list; otherwise I would want to see them added to the main > "Prereq:" list. Not only the names of packages are different between Debian and RPM - the names of similar RPM packages are different between different RPM-based distributions. :( E.g., in ALT Linux distributions /usr/bin/ssh is contained in the openssh-clients package; SuSE 9.3 seems to have it in the package named "openssh". There are lots of such differences. Most modern RPM-based distributions have some mechanism to find dependencies automatically (e.g., by scanning all Perl scripts in the package for "use" statements). But these mechanisms are incompatible between different distributions too. Different distributions also have different RPM packaging conventions, different RPM macros, etc etc... So the best thing you can really do is to provide an RPM package for some distribution you choose, which would then be used as a basis for packages on other distributions.
pgpeX0VOZP2hi.pgp
Description: PGP signature