Gene Heskett wrote: > Yes, I'd build an rpm or several, but fedora in particular seems to > want to discourage that at all costs by hiding the src.rpm's from > the unwashed. Enabling the src repos doesn't result in my being > able to see them in yumex. Anybody know why or is this just more > "company policy"? There's no policy at all to hide the SRPMS from you. If yumex doesn't show them to you it is either an unimplemented feature or not something that fits in with its interface (I've never seen or used yumex). If you've enabled the source repos you can use yumdownloader with the --source option to grab SRPMS for packages in the repos you've got installed. > I believe the last time I was able to successfully rebuild an rpm > from its src.rpm was back in RH7.3, I have never been able to get it > to work since. It seems my system always has something it doesn't > need, or doesn't have something it needs. If you attempt to rebuild an SRPM and you get failed dependencies, you can pass the list of them to yum and install them. There's a tool called yum-builddep that can do this automatically, though I think it's broken at the moment on FC6 (but that could just be my setup). > A couple of times the rpm version has been updated, but the src.rpm > hadn't been adjusted to match, so the build fails. Generally > speaking, a ./configure sorts that stuff quite well. If you have the proper development headers and libraries to build the package, then rpm should see them the same as configure would. Where differences can occur is where configure may be set to happily ignore some missing libraries and just disable functionality, the SRPM is set to require those libraries so that any build will provide the full functionality. For optional deps, you could edit the specfile and remove the dependency. > And there needs to be someplace on the net a decent helpfile on > writing the spec file. The rpmdevtools package provides a script to create a specfile, fedora-newrpmspec. It will create a basic specfile that's formatted as the Fedora Extras guidelines suggest. You then just fill in a few pieces and build away. There are numerous guides to rpm on the net. A very good guide is the rpm-guide, on the Fedora Wiki: http://fedora.redhat.com/docs/drafts/rpm-guide-en/ Another (also still in draft form) is: http://fedoraproject.org/wiki/Docs/Drafts/BuildingPackagesGuide The packaging guidelines for Fedora are here: http://fedoraproject.org/wiki/Packaging/Guidelines > Given the state of scripting languages today, there is no excuse > whatsoever for there not being a utility that can take the tarballs > config.status file once ./configure has been run, and extract whats > needed for the spec file from it. That would be the icing on the > cake for checkinstall IMNSHO. There are far too many broken tarballs out there for that. If you build software often you'll find that some of it will try to overwrite files that you don't want it to. If you build as root you won't know this until it's too late. If you build rpms and do it as a non-root user you will find this out during the packaging process and then you you can patch the tarball. Another reason to use rpm is that you can reliably uninstall it. Not all tarballs have a properly defined uninstall target in their Makefiles. So you'll have lots of fun tracking down all the stuff they may have strewn across your file system when you want to remove it. > That (the invisibility to rpm's database) is the only disadvantage > I'm aware of. As far as the systems ability to use the program in > question is concerned, I've built far more stable code with > ./configure, make, make install as a general rule than I've been > able to see from rpms downloaded and installed as binary packages. If you're downloading binary rpms that weren't built for the same OS and version, then you're not likely to get stablity. That won't surprise anyone that builds packages. Try the same thing with a tarball. Do a configure && make on FC5 and then tar up the dir. Move the new tarball to FC6 (or FC4 or Ubuntu or...), untar it and try sudo make install and see how stable the binary is. Source code is good for many reasons. :) > Like I said, you pulled my trigger.. Now, how about some URL's I > can print and study so I can build an rpm without running into some > missing includes that aren't findable with yumex or some such? Check the few above and poke around the links for contributor and packaging on the FE wiki: http://fedoraproject.org/wiki/Extras Building an rpm is definitely one more step, but the work pays off well in my opinion. -- Todd OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp ====================================================================== Ted Kennedy has killed more people with his car than I have with my gun.
Attachment:
pgpvI77COvPDI.pgp
Description: PGP signature