Idea For Build Help

Dagmar d'Surreal dagmar at speakeasy.net
Sat Aug 31 13:57:29 PDT 2002


On Fri, 2002-08-30 at 08:40, Jens Gutzeit wrote:
> Am Fri, 30 Aug 2002 15:07:13 +0200 (MEST)
> "Dan Osterrath" <do3 at mail.inf.tu-dresden.de> schrieb:
> 
> > Well when ld fails with something like cound not find -lname, then it
> > always looks for libname.*. But how to find out which package contains
> > this library? It would be a good idea to have a website where anyone
> > can upload it's install-log files. So a database could be generated
> > that's like the famous rpmfind.org.
> 
> Argh, forgotten to ask:
> How can I create such a list which contains the files that have been
> installed? I could set up a website where people can upload there files
> and it gets written to a database.

Simplest way (although not entirely foolproof):

1. MAKE CERTAIN YOUR SYSTEM TIME IS CORRECT, or at least reasonably so.
  If your system time is set to some wacky date in the future or the
  past, you're liable to get a LOT of bad hits.

2. Untar the source of the package you're going to build.

3. cd into that directory, and type `touch ../timestamp`
  This basically gives you a "temporal bookmark".  You can name it
  whatever you like, so long as it doesn't get touched again until
  after you're done with it.

4. Then type

for filename in `find .`; do
  touch $filename
done

This is somewhat necessary because there are lots of software authors
out there who aren't particularly careful about the clock on their own
system, and some install scripts may be doing a cp that preserves the
file's ctime/mtime, which will screw things up for you.

5. Build and install normally.

6. Type

find /usr /lib /var /etc -newer ../timestamp > /tmp/filelist.txt

This will present you with a nice list of everything on the system
that's newer than the timestamp file that is now in /usr /lib yadda
yadda.  You will (usually) have to go through it and remove a few
oddball entries under /var but other than that once you strip out the
directory names (or specify -type f and cross your fingers) you can
usually pass this straight to tar and make a primitive little binary
package.

This of course assumes that you are _not_ building everything in
/usr/src, but rather somewhere under /home or some other place that
isn't going to be scanned by the find command.

(and yes, I am aware of installwatch.  This is more platform agnostic,
and simpler, so it's less likely to fail in a way that will elude the
person doing it.)

-- 
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe blfs-support' in the subject header of the message



More information about the blfs-support mailing list