[Slapt-get-user] Re: [Slapt-get-devel] slack-required in Official Slackware Packages

Jason Woodward woodwardj at jaos.org
Thu Sep 15 12:34:26 EDT 2005


Hi Stefano,

> First let me introduce myself:
> I'm Italian and I have some little problems with English so be patient :)
> I'm a great fan of Slackware and I like slapt-get very much.
> I also do some package building work as you can see at linuxpackages.net.
> But often I've found hard to handwrite all the dependencies of a package
> so I wrote a little tool called requiredbuilder that should help
> packages developers writing the slack-required file.

I use something similar, for example:

#!/bin/sh

for f in $(find ./usr/bin/ ./usr/sbin/ ./usr/lib/ ./usr/lib64/ ./usr/X11R6/bin ./usr/X11R6/lib
./usr/X11R6/lib64 -type f 2>/dev/null)
do
  if [ -x $f ]; then
    for lib in $(ldd $f 2>/dev/null|grep -v 'not found'|grep '=>'|awk '{print $3}'|sed "s/^\///")
    do
      grep -l $lib /var/log/packages/* 2>/dev/null
    done
  fi
done|sort|uniq|grep -v aaa|xargs -i basename {}|sed -re
"s/(.*{1,})\\-(.*[\\.\\-].*[\\.\\-].*)/\1 >= \2/"


> That said, I was thinking if using a tool like that I could write
> (almost) all the dependencies of all the official slackware packages,
> simply executing a full slackware installation and then tracking the
> dependencies of every file of every package installed, looking at
> /var/log/packages.
> So I have written a little bash script that takes the PACKAGES.TXT from
> the official slackware and then adds the PACKAGE REQUIRED line in the
> way I explained before.
> The script is still in alpha stage: it isn't even online :P
> 
> But I can use it to write a new PACKAGES.TXT file with slapt-get support
> and then use it to upgrade my system automatically with dependency
> support (I'll try this for the first time with slack 10.2, after I
> complete the downloads).
> 
> Now I have some questions:
> are you interested in this subject?
> What do you think about?
> If I put online a slackware 10.2 version with the PACKAGES.TXT changed
> but every .tgz untouched, does slapt-get work (with dependencies)?
> I really don't want to fork the distro or to cause any problems so I
> don't want to do that sort of things, I was just thinking...

Absolutely.  On top of filling that information in, you can provide a PACKAGE MIRROR entry for
the package's entry in PACKAGES.TXT to point slapt-get to another location.  Your
http://myurl/PACKAGES.TXT might have entries like look like the following:

PACKAGE NAME:  a2ps-4.13b-i386-2.tgz
PACKAGE MIRROR:  http://www.slackware.at/data/slackware-10.2/
PACKAGE LOCATION:  ./slackware/ap
PACKAGE SIZE (compressed):  859 K
PACKAGE SIZE (uncompressed):  3140 K
PACKAGE REQUIRED:
PACKAGE CONFLICTS:
PACKAGE SUGGESTS:
PACKAGE MD5 SUM:  fb1b24d0e7e18763777d490cce37b9f7
PACKAGE DESCRIPTION:
a2ps: a2ps (any to PostScript filter)
a2ps:
a2ps: GNU a2ps is an Any to PostScript filter.  Of course it processes
a2ps: plain text files, but also pretty prints quite a few popular
a2ps: programming languages.  Also contained in this package is psutils, a
a2ps: collection of programs for manipulating PostScript files.
a2ps:
a2ps: a2ps is used by Apsfilter, so be sure to install this package if you
a2ps: plan to do any printing.
a2ps:

When you use that as a slapt-get source, slapt-get will use your location for the package
information, but will retrieve the packages from the MIRROR location in your PACKAGES.TXT.  

Does that solve most of the problems for you?


take care,
jason

--
Jason Woodward
woodwardj at jaos.org




More information about the Slapt-get-user mailing list