[Slapt-get-devel] A few ideas on source package handling.
luke at audioslack.com
Mon Nov 10 16:14:03 EST 2003
At 12:52 AM 11/11/2003, Jason Woodward wrote:
>I haven't thought much about it yet, other than it would be interesting
>and handy to have. I
>looked at the source directories for pkgs on the mirrors. I notice that
>Pat has .build files,
>.SlackBuild, source tarballs, bzip'd sources, slack-desc, layout files,
>corresponding source tarballs (such as mm with apache).
The source directories IMO are inconsistent. Some scripts to build packages
are differently named, and some packages don't even have a build script,
for example the kernel source.
>I'll have to get with someone (you?) who knows Pat's method, if there is
>one. There isn't a
>file listing inside each pkg's source directory, so maybe the contents of
>the directory will
>have to be parsed out of the html unless libcurl has some functionality
>here to address it.
We will have to make our Own. I don't think Patt's method will be
full-proof to ensure packages are built and installed properly.
>You can tell that I haven't put much time into it. =]
Fair enough, but I am actually starting to think that a source package as
such may not be the best answer either.
>Sure, let me know what you have in mind.
Ok, this is what I think may be a workable sollution.
* The source package should contain at least the build script, slack-desc
file, slack-required file, and any patches that may need to be applied
against the source before compilation.
* The source package's slack-required file would have to contain the
necessary dependancies used to build the package in the first place, eg
gcc, make, autoconf/automake etc, as well as the packages needed for the
running of the app in the first place. Document generation dependancies
should also be included, such as sgml-tools, doxygen, etc.
* The source package installs itself into /usr/src/slackbuild which in tern
would have 2 subdirectories, build and packages. The build directory would
have subdirectories of every source package, and packages would contain the
final built packages.
* There should be a WAY OF REMOVING THE SOURCE package but leaving the
built package behind.
* Each package's build process has to have a script that is named exactly
the same for each package, even though the process of building the package
may be totally different to others.
* There needs to be an option to allow the user to build the package to run
on their specific architecture, eg i686, pentium4, athlonXP etc, and if
not, to build for the standard Slackware architecture, i386, i486 etc.
* The build script would most probably have to test the md5sums of all
files in the package.
* The build script should also allow the user to supply a local copy of the
tarball, or download the tarball from the package author's website.
Feel free to comment and make suggestions on this. I have written them as I
thought of them, but that is as far as I have got so far.
AudioSlack Founder and head package maintainer
Audio software packaged for the Slackware Linux Distribution
luke at audioslack.com
More information about the Slapt-get-devel