Subject: 1.2 source archive and packaging issues

From: [email-masked] (Bruce Perens)
Date: Sat, 15 Jun 96 15:13 PDT

With any luck, the 1.1 release announcement will go out on Sunday
evening. It's time to discuss 1.2 issues.

We will need to convert the filenames in the "unstable" archive to use
underscores rather than dashes as the delimiter. This should be done
starting about a week after the release, so that mirror systems have
had a chance to recover from the blow :-) . Since we're going to be
moving every file in "unstable" anyway, that sounds like a good time to
switch from "unstable" to a symbolic-linked directory (tentatively called
"rex"). Guy, you volunteered to do this last time before I aborted the
procedure - would you like to do it on or around June 24? Please coordinate
with Ian Jackson, as his scripts will no doubt need adjustment.

Subsequent to that, if you upload a package please make sure it generates
the files with underscores.

With ports on the horizon, we should be making sure that an automatic build
of Debian in its entirety is more than a _theoretical_ possibility. This means
that every package must have a .tar.gz file, and an .diff file if the package
is derived from upstream source. It should be possible to build the package
automaticaly by something like:

	tar xvlzf package_version.tar.gz
	cd package*
	./debian.rules binary
	cd ..
	dchanges <flags> package_version.${ARCHITECTURE}.deb

Currently, the above procedure might not work for packages like netbase and
netstd, which are extracted into the archive as directories full of
sub-package tar files. Probably those packages should go into the archive as
tar files like other packages.

Also, we should think about source packaging again. We are welcome to take
anything we want from RPM source packaging, if that would help.

---

From: "Peter Tobias" <[email-masked]>
Date: Sun, 16 Jun 1996 00:44:45 +0200 (MET DST)

> tar files like other packages.

Ian M. and I discussed that about 1-2 years ago. He said that it
shouldn't be necessary to download the netstd package (>1.5MB) if
the user just wants the sources for fping. I think is a good idea to
have at least the sources for netstd extracted in a separate
directory.

You could change the script to something like that:

     if [ ! -d package*]; then
       tar xvlzf package_version.tar.gz
     fi
     cd package*
     ./debian.rules binary
     cd ..
     dchanges <flags> package_version.${ARCHITECTURE}.deb

That would work with netstd and it would also work if the
other packages are already extracted.

Thanks,

Peter

-- 
 Peter Tobias                                EMail:
 Fachhochschule Ostfriesland                 [email-masked]
 Fachbereich Elektrotechnik und Informatik   [email-masked]
 Constantiaplatz 4, 26723 Emden, Germany     [email-masked]

---

From: Manoj Srivastava <[email-masked]>
Date: 16 Jun 1996 03:46:21 -0400

Hi,

	There is a problem with the dchanges line for packages where
 multiple debian packages are built from the same source package. For
 example, kernel-source-2.0.0_3.0.tar.gz builds
        (a)  kernel-source-2.0.0_3.0_all.deb, 
	(b)  kernel-image-2.0.0_3.0_i386.deb, and
        (c)  kernel-headers-2.0.0_3.0_all.deb.
 and there is no easy way to determine what are the packages
 produced. 

	 Also, doesn't dchanges insist that the source and diff files
 be also present?  In that case, it might be better to mandate a dist
 target in debian.rules exist, which runs the dchanges command
 automatically. A concrete example: (this requires an as yet
 unreleased version of kernel-package)

 % cd /usr/src/linux; # This _should_ be a valid symlink
 % ./debian.rules PGP_SIGNATURE="Bruce Perens" dist

The corresponding rule reads:
dist: binary source diff
# Prepares the package for distribution.
        -(cd .. && \
         dchanges -n ce=$(DEBDIR)/debian/debian.changes \
            arch="$(architecture)" pgp="$(pgp)" \
            urg="$(priority)" \
            $(package)$(sep1)$(debian)$(sep2)all.deb \
            $(h_package)$(sep1)$(debian)$(sep2)all.deb \
            $(i_package)$(sep1)$(debian)$(sep2)$(architecture).deb \
            $(package)$(sep1)$(debian).diff.gz \
            $(package)$(sep1)$(debian).tar.gz )

	I'll be glad to supply the full debian.rules file for elucidation.

	manoj
-- 
Manoj Srivastava               Systems Research Programmer, Project Pilgrim,
Phone: (413) 545-3918                A143B Lederle Graduate Research Center,
Fax:   (413) 545-1249         University of Massachusetts, Amherst, MA 01003
<[email-masked]> <URL:http://www.pilgrim.umass.edu/%7Esrivasta/>

---

From: Guy Maor <[email-masked]>
Date: Sun, 16 Jun 1996 03:37:35 -0500 (CDT)

On Sat, 15 Jun 1996, Bruce Perens wrote:

> underscores rather than dashes as the delimiter.

I have a better idea which I've already started - all the packages I'm
installing will use the new naming convention.  After a week or two, a
good portion of the archive will already be converted.  Then I can just
rename the rest, a little at a time.  This method is easier on the
mirrors obviously.

> This should be done
> "rex")

Here's a reasonable option for that also - I'll go ahead and make the
directory rex and populate it with symbolic links to unstable.  New
packages will get installed into rex with the new naming convention,
replacing the link.  Again after a couple of weeks, I'll just start
moving files.

I'll change Ian's scripts to start using rex immediately.  After this
is all done, and unstable is empty, we can just point unstable at rex.

The only disadvantage is that for a couple of weeks, the unstable
directory will not be the real unstable directory.  The real one will
be rex, also reachable through an slink development.  We can announce
this on debian-announce and I'll put a README and a file "This
directory is *NOT* the real unstable" or something equally obnoxious.

Does anybody have any problems with the above, or better ideas?

Guy

---

From: [email-masked] (J.H.M.Dassen)
Date: Sun, 16 Jun 1996 15:34:45 +0200 (MDT)

> anything we want from RPM source packaging, if that would help.

RPM has the advantage that it include _pristine_ source (identical
(cmp or md5sum-wise) to the upstream sources, which are patched during
the build process. IMO this is what we should work towards to.

Pristine sources are friendly towards non-debian and/or non-linux users,
and are a clear advantage in the case of PGP-signed sources and
sources for which distributing modified versions is not allowed.

Ray
-- 
POPULATION EXPLOSION  Unique in human experience, an event which happened 
yesterday but which everyone swears won't happen until tomorrow.  
- The Hipcrime Vocab by Chad C. Mulligan

---

From: "Brian C. White" <[email-masked]>
Date: Mon, 17 Jun 1996 13:21:13 -0400

> Since we're going to be
> "rex").

I recommend putting "rex" under a subdirectory called "releases" or something,
just to reduce clutter and confusion in the root directory.

> of Debian in its entirety is more than a _theoretical_ possibility.

Cool!

                                        Brian
                               ( [email-masked] )

-------------------------------------------------------------------------------
    In theory, theory and practice are the same.  In practice, they're not.

---

From: [email-masked]
Date: Wed, 19 Jun 1996 18:23:59 +0200 (MET DST)

> I also think that's important.  The source packages should be very
> simple, and the source unpacker/packer should be written in a scripting
> language.
tar xzf source-version.tar.gz
mv source.version source.version.orig
tar xzf source-version.tar.gz
cd source.version
zcat ../diff-version-revision.diff.gz | patch

the above lines aren't very difficult but we need to continue with
a few checks IMHO:

"dpkg --status various packages needed for building this package should be
installed ok"

> >From what I've gathered, the rpm format for sources is basically lines
> of text giving control information, followed by a cpio of all the
> gzipped tars.  The control field gives commands to do things like
> unpack, build, etc.

> Because we already mandate commands for debian.rules, such complexity
> is not needed.  This program (dsource?) would know that it just needs
> to run "debian.rules build" to build, "debian.rules dist" for a
> distribution, etc.  The only information in the control field is how to
> unpack.
Not only how to unpack, but also a possibility to download the original
sources (so an URL to the original sources at the original site should be
provided). 

The copyright field which comes with rpm might be usefull too, in the 
debian source handling approach. We might construct a automatic
/usr/doc/copyright/package file by using this copyright field, the
maintainer information, the url to the original sources, the organization
where the package comes from, the package name the revision name, the
changes made for this revision from debian.Changelog and the contents of
debian.README (which would contain other info than it does right now, only
the copyright info from the original sources).

All this can be translated into some machine created sentences like:

---/usr/doc/copyright/package
This is the Debian Linux prepackaged version of the <organization> <package>
distribution.  This package <package>-<version>-<revision> was put together
by <maintainer>, from the <organization> sources, which were obtained from
<source-url>. The changes for revision <revision> are listed below:

<revision changes>

The debian specific changes are copyrighted by <maintainer> and put under
the <gpl>  (see /usr/doc/copyright/GPL).

The original sources from <organization/author> are put under the
<copyright> license.

contents debian.README
---/usr/doc/copyright/package

Additionally we need the possibility to use more than one source (tar.gz)
file. Example is web2c and kpathsea and those big things. So we need more
than one source field and related debian diff field which specify the
patches to be applied at the original sources.

"Unix: 30 definitions of regular expressions living under one roof"
                                                                D.E. Knuth
Erick Branderhorst  http://www.iaehv.nl/users/branderh/

---

From: [email-masked] (J.H.M.Dassen)
Date: Wed, 19 Jun 1996 17:34:58 +0200 (MDT)

> 'J.H.M.Dassen wrote:'
> These are a venerable goals.  But I like that the Debian source packages
> can be untarred by anyone without dpkg and/or rpm installed.

Yes, this is very useful (and would even be more so if the source is 
pristine).

> And if we
> were to force use of dpkg for installing the source code, I'd like more
> freedom over which directory/partition the source ends up in than rpm
> allows.

Of course. 

> Anyway those are the two advantages of Debian's current source
> packaging that I hope we don't abandon.

There has been some discussion earlier on about pristine source, and 
how to debianize it;
you may want to check out the following:
- "1.0 issues: Packaging (esp. source)" thread in October 1995:
   Start: http://www.debian.org/Lists-Archives/debian-devel-9510/msg00460.html
- "Debian for Linux/{non-i386} / source packaging" thread in September 1995:
   Start: http://www.debian.org/Lists-Archives/debian-devel-9509/msg00159.html

Greetings,
Ray

---

From: Guy Maor <[email-masked]>
Date: Wed, 19 Jun 1996 10:17:52 -0500 (CDT)

On Wed, 19 Jun 1996, Chris Fearnley wrote:

> But I like that the Debian source packages

Guy

---

From: Chris Fearnley <[email-masked]>
Date: Wed, 19 Jun 1996 09:32:48 -0400 (EDT)

'J.H.M.Dassen wrote:'

These are a venerable goals.  But I like that the Debian source packages
can be untarred by anyone without dpkg and/or rpm installed.  And if we
were to force use of dpkg for installing the source code, I'd like more
freedom over which directory/partition the source ends up in than rpm
allows.  Anyway those are the two advantages of Debian's current source
packaging that I hope we don't abandon.

-- 
Christopher J. Fearnley            |    Linux/Internet Consulting
[email-masked]                     |    UNIX SIG Leader at PACS
http://www.netaxs.com/~cjf         |    (Philadelphia Area Computer Society)
ftp://ftp.netaxs.com/people/cjf    |    Design Science Revolutionary
"Dare to be Naive" -- Bucky Fuller |    Explorer in Universe