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

Re: Why not to use .deb for source packages



ian@chiark.greenend.org.uk (Ian Jackson) writes:

> In no particular order ...
> 
> 1. Source packages have different kinds of dependencies to binary
> packages.

The stuff is either on your system or not.  That is all a dependency
enforces.  If you look at it that way, source dependencies are identical
to binary dependencies.

> 2. You can have several versions of the same source package installed
> at once.

For cases where this is important, just use different names for the 
source packages:

ie. src-deb-hello1.3_1.3-1_all.deb
    src-deb-hello1.4_1.4-1_all.deb

We do this all the time for binary packages with libraries.

> 3. Source packages can be unpacked in various different places.

So can binary packages:

dpkg --instdir=/opt/mystuff mydeb.deb

> 4. A source packages lives in one or two directory trees and can be
> deleted using `rm -rf'.

dpkg --purge src-deb-hello src-orig-hello

> 5. Built source packages _have_ to be removed with `rm -rf' because
> they are full of files that weren't there when they were installed.

I just addressed that. (see below)

> 6. Source packages should not specify the permissions and ownerships
> of the files in them.  (Beyond the `x' flag.)

Why not?

> 7. There is no operation on a binary package analogous to that of
> building a source package.

dpkg-repack seems to be pretty analogous to me.

> 8. Source packages have to be unpackable on a much wider range of
> unices (and other systems) than binary packages.

Ok, any system without an ar, tar and gzip port will not be able to
unpack a binary package.  Let's see - well I'll have to port those
first before I unpack a .deb on my TI-99/4A computer in the basement.
That shouldn't be impossible.

> 9. Installing a source package to look at it should not involve
> executing parts of it.

Well, don't put postinst and prerm scripts in source .deb's - that
is a policy issue.

> 10. There is no need to keep a record of which source packages are
> installed.

Why not?  Especially if you get it for free in the deal.

> 11. Installing a source package should not be a privileged operation.

You can run dpkg-deb --extract as a normal user.

> 12. Source packages do not need to be configured at installation
> time.

Of course not.

> 13. Source packages are intended to be edited.

How about untarring them to a temp directory, editing them there,
and making a patch.  That is much cleaner than the present setup.

> 14. It is good to keep source packages as close as possible to that
> provided by the upstream authors.

Right.  So why do we have a system where we unpack the upstream
sources into the same directory where our debian-specific sources
are, and mix everything up.   ie.  our .diff.gz files don't just
modify the .orig.tar.gz file -- it also patches in Debian specific
stuff too.  Ugh.

OK - before I even started replying to this, I repackaged hello
using my new proposed method.  My next post will announce it and
I want to challenge you to a showdown - my method vs. your method.
(of course, my method is 100% based on stuff you wrote).

Cheers,

 - Jim

Attachment: pgpkIbJvBueQA.pgp
Description: PGP signature


Reply to: