[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Forwarded: RFC: New source packaging format



From: Jim Pick <jim@jimpick.com>
> Most of the opposition appears to be based on the fact that I have
> violated some aesthetic

This is on target. There is indeed an aesthetic that is an important
part of software architecture. The best software is not simply
functional, but beautiful. Much that we like about Unix and Linux
falls into this category. When one starts with a well-thought-out
design and arrives at a tool with simplicity and power, you can
sometimes achieve this kind of beauty. Ian's metaphor of using a
screwdriver to drive a nail describes his esthetic perception of your
design. I was not as eloquent in stating my own feelings, but they were
similar. I think continued work on systems programming tasks will bring
you a similar esthetic sense.

It is an excellent hack. Accept that it's a great hack, take the good
ideas from it, and go on.

> 1) How do you propose modifying dpkg-source for handling additions
>    of binary files to Debian packages (without uuencoding them)?

I'll repeat the suggestion I've already made.
Detect files that are not plain text ("diff" does this for us), compare
them with "cmp", and build a tar archive with debian-changed binary files.
In this case the .dsc file would contain:

	hello-1.3.tar.gz
	hello_1.3-1.diff.gz
	hello_1.3-1.changed-binaries.tar.gz

The changed-binaries tar file would be extracted after the original source
tar file.

> 2) How do you propose modifying dpkg-source so that you can support
>    sharing upstream source between packages (ie. checker)?

Obivously you will need to know the location of the other source package,
and refer to its files. Is this any different from your proposal?

> 3) What if the upstream source comes in multiple files?  How do you
>    propose changing dpkg-source to use pristine-sources for that?

I propose that we make dpkg-source accomodate any number of source archive
files and diff files. We've already discussed this quite a while ago.

> 4) Can you describe an algorithm for an auto-bootstrap compilation
> mechanism in detail?

I can describe it the way I want it to run when building an entire release.
First, you extract _all_ of the source packages. The packages have binary
dependencies, and you build them in dependency order, and install the
packages as they are built.

Now, you might want to add features to handle circular dependencies and
to extract only the source that is necessary for building and clean it up
after it's built, but that should come after we get the above working.

> I'm sort of reluctant to scrap my proposal based on this assertion.

You didn't put much work into it, only part of a day. You learned some
things for what you did put in. It would be a much worse mistake to invest
a lot more work into it.

> Alternatively, take it from me as the author of dpkg: dpkg and .deb
> files are almost completely wrong for source packages.  There's
> nothing that a .deb file could do for a source package that couldn't
> be done better and more simply by a .tar.gz file.  All the features in
> .deb files - including the dependency mechanisms - are closely tied to
> the semantics of runtime package installation and management.

Perhaps I should use rpm for my example instead?  I am just arguing for
the use of a packaging system for the delivery of source code, and a
nice separation of the upstream source and debian-specific source
directories, and the build-time temp directories.

> What you're essentially trying to do is to use a screwdriver to drive
> in a nail.  You can't make up your mind which end of the screwdriver
> you want to use - the point (dpkg), or the handle (dpkg-deb) - but
> both are completely unsuited.

> I am approaching it from the premise that a .deb file is just an 'ar'
> file with two tarballs inside - one for control info and one for
> binaries.

The package file format is not the problem. It's the fact that you are
using the binary package tool to do something it was not designed for.

	Thanks

	Bruce
-- 
Can you get your operating system fixed when you need it?
Linux - the supportable operating system. http://www.debian.org/support.html
Bruce Perens K6BP   bruce@debian.org   NEW PHONE NUMBER: 510-620-3502


Reply to: