Andreas Jellinghaus <[EMAIL PROTECTED]> writes: > > Please tell me where I am wrong. > > your create complexity where there is none. > source handling works very fine for me, and i simply do not understand > why you add this complexity, like managing sources as root.
1) I see much less complexity:
- only one file format (.deb) vs. many (.deb, .dsc, .tar.gz,
.diff.gz)
- same delivery mechanism, one indexing mechanism (Packages)
(key advantage: as this improves, our source distribution
mechanism would improve as well)
- same dependency mechanism
- same control file format
2) I have demonstrated that you have 2 options for managing sources
as a user:
- extract .deb files manually using dpkg-deb --extract (or
using ar, tar and gzip) - essentially the same thing as
what dpkg-source does
- install and use dpkg in user space (benefit: can be used to
manage dependencies)
Granted, managing sources is a much simpler job than managing binaries.
But that's was the beauty of my proposal, dpkg already provided a
strict superset of the required capabilities - so it could be
"reused" with no additional code. In fact, dpkg-source (which
currently does not provide all the required capabilities) would
not be needed at all.
Perhaps I should have called it "unified" source and binary package
management.
> i only see the disadvantages.
>
> so : please not show me example code, please show me and explain the
> advantages you have with this method. then i can either show you, that
> we can get these advantages much easier, or i will step back and say
> "hey, there are advantages i did not know, and it's the only way we can
> get them."
Some ideas I had that require consistent (and preferably unified) handling
of sources:
1) Instant debugging.
Normally, you wouldn't have binaries with debugging symbols loaded
on your machine. But when you ran into a problem, you could just
load the source package, and another package containing binaries
with debugging symbols - and plug away. This would all be handled
virtually transparently by the packaging system. (Sure you could
do this with dpkg-source to, but it would require much more code)
2) Linux kernels & patches
We already distribute the kernel sources in a Debian package (just
as I proposed doing for all sources). We could also distribute
sources for patches from LinuxHQ in packages. And then Manoj's
kernel-package package would just use the same standard mechanisms
I proposed to build the package.
3) "Pseudo-Packages"
You could locally create a "pseudo-package" that consists of just
sources. When you install it, dpkg (or a front-end on top of
dpkg) would compile it from scratch. A pseudo-package might just
consist of a patch you need locally. It would just declare a
dependency against a real Debian source package. The complex
dpkg dependency mechanism will come in really handy when you try
to do fancy things such as create a custom Linux kernel which
depends on the kernel source, the standard Debian modifications,
patches from LinuxHQ, the SoundBlaster AWE32 driver, and a few
local modifications. The nice thing about "pseudo-packages"
would be that upgrading any dependencies would result in a
recompile with little work on the part of the user. Of course
there would need to also be an error handling mechanism in place
for when building a package fails.
Think of this as a modular, distributed make world process. Instead
of having the dependencies in a static file (as in make), they are
dynamically built from the source package control files.
4) Documentation
Documentation comes in many forms - too many. We need mechanisms
to dynamically generate it from source. A system administrator
can just create "pseudo-packages" that act on the source for
packages to dynamically generate documentation in the form they
want (ie. PS docs on funny paper sizes, HTML-only, GNU info-only),
etc.
5) As a meta-data distribution mechanism
With the advent of XML, there is going to be an explosion in the
use of "meta-data" and it is going to need a distribution
mechanism. Meta-data is just another way of saying "raw relational
database data". But it is typically stored in an ASCII format
that is easily portable, and is typically processed to place it
in other databases for querying purposes. The Linux Software
Map (LSM) is a fine example of meta-data in action. The
Debian Packages and control files also fall into this category.
This type of data (particularily XML) is likely to gain wide
popularity in vertical industry markets. This type of data,
when widely distributed, provides another mechanism for competitors
(and communities) to share information.
In essence, meta-data is source code. The use of dependencies and
automated build mechanisms (ie. pseudo-packages or makefiles) are
essential for efficient handling of this stuff.
> if i make changes in source with several revisions, it is a very nice
> feature, that i only have to transfer diff files. that does not work
> with binaries, but with source, and this is why we have a package format
> (ar) for binaries, but several files for source.
Look at my proposal again, it does have that feature. (I feel like
a broken record)
> please write down your arguments, (best : as a sgml document - we will
> have the same discussion in 3 months).
Yes, I think I will do that. Particularily since I need these
capabilities for some of the things I plan. But I plan on removing
all references to dpkg and Debian - as these only serve to complicate
the message.
Cheers,
- Jim
pgpCI7lekQ6CZ.pgp
Description: PGP signature

