Thanks again, Jeff. I get an error when I attempt to run rpmdeps. It complains of a missing magic file (see error below). I can't say this surprises me, but I am hoping there is a simple fix, instead of recompiling/installing from ports with different options…
[root@bsdsandbox2 /home/vmiller]# find /lib | /usr/local/lib/rpm/bin/rpmdeps --provides error: magic_load(ms, /usr/local/share/file/magic) failed: could not find any magic files! Assertion failed: (mg != NULL), function rpmfcClassify, file rpmfc.c, line 1132. Abort trap: 6 (core dumped) I think the magic file it needs is /usr/share/misc/magic Thoughts? == Vincent (Rick) Miller Systems Engineer vmil...@verisign.com t: 703-948-4395 21345 Ridgetop Cir Dulles, VA 20166 VerisignInc.com From: Jeff Johnson <n3...@mac.com<mailto:n3...@mac.com>> Reply-To: <rpm-users@rpm5.org<mailto:rpm-users@rpm5.org>> Date: Thu, 21 Jul 2011 07:36:17 -0400 To: <rpm-users@rpm5.org<mailto:rpm-users@rpm5.org>> Subject: Re: RPM Stub Package On Jul 21, 2011, at 6:59 AM, Miller, Vincent (Rick) wrote: Hi, I've got RPM installed via FreeBSD ports. The next step is to create the stub package which contains all the files that are already installed. The vpkg-provides.sh script does not specifically support FreeBSD. I've considered modifying it to support it. Good. You won't need "… all the files .." generally (but you can do that if you wish). RPM uses a database to find Provides: that match Requires:. The stub package is a means to do a database import of certain items. You will almost certainly need Provides: /bin/sh Most other dependencies that are needed are library so names. You can see what will be needed using /usr/lib/rpm/bin/rpmdeps. E.g. here are the provides from /lib/* libraries: find /lib | /usr/lib/rpm/bin/rpmdeps --provides Note that there is a --requires option, and rpmdeps can take files either from stdin, or form the CLI argv list. Building the stub package is little more than capturing output from rpmdeps into a *.spec file used for markup Provides: libc.so.6 which when installed will satisfy dependencies of other packages. (aside) The vpkg generated stub pkg will also generate md5 digests, and has the ability to verify those digests using a %verifyscript, which isn't strictly needed for stubbing out a dependencies, but may be useful. There's other means to verify digests on a file using a probe dependency. E.g. Requires: digest(/path/to/file) = 123456789…. can be added to any @rpm5.org package, and will verify the content digest on that file path. How much of the script will need to be modified to support FreeBSD? Obviously, the case() setting OS defaults would be the first modification necessary, but is there more beyond this that should be modified? Its hard to guess before hand because the hard task isn't modifying the script, but rather identifying all the dependencies will be needed. Simpler than the vpkg script is to supply Provides: dependencies from a file (1 per line please): mkdir -p /etc/rpm/sysinfo echo "/bin/sh" >> /etc/rpm/sysinfo/Providename and edit in whatever dependencies you need as found. Its more tedious than hard. But it might help to see what needs to be done before attempting to automate with a script. hth 73 de Jeff == Vincent (Rick) Miller Systems Engineer vmil...@verisign.com<x-msg://1866/vmil...@verisign.com> t: 703-948-4395 21345 Ridgetop Cir Dulles, VA 20166 VerisignInc.com<http://VerisignInc.com>