Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Debian Development (http://www.linux-archive.org/debian-development/)
-   -   Moving changelog and copyright files to control tarball, or merging control and data tarballs ? (http://www.linux-archive.org/debian-development/683535-moving-changelog-copyright-files-control-tarball-merging-control-data-tarballs.html)

Guillem Jover 07-14-2012 07:00 AM

Moving changelog and copyright files to control tarball, or merging control and data tarballs ?
 
Hi!

Just to give some context and background, this started with the
discussion of binNMUs and multi-arch [0], related to file conflicts
due to the coinstallability of multiple M-A:same instances, and while
initially a wild idea to possibly fix that specific case, it seemed
to me it was generic enough and which would make other parts of the
system easier and more structured.

[0] <http://lists.debian.org/debian-dpkg/2011/09/msg00029.html>

On Sat, 2012-07-14 at 09:48:35 +0900, Charles Plessy wrote:
> in http://bugs.debian.org/681289, Raphaėl proposed that the Changelog and
> copyright should be package metadata.

A policy proposal (prompted by [1]) which was IMO premature (as usual),
that I was planning on bringing up later on to debian-devel before
even considering proposing such policy change... Now I guess we'll end
up with this being discussed in several places.

[1] <http://lists.debian.org/debian-dpkg/2012/07/msg00026.html>

> I personally like the idea, but I note
> that last time it was introduced on debian-devel, it was not consensual
> (http://lists.debian.org/20437.51932.971859.384176@chiark.greenend.org.uk), so
> I answer to your proposal on debian-devel to restart the discussion there.

Debian usually operates by rough consensus, which means not every one
has to agree, as long as mostly everyone does. And as I mentioned in
my reply, there didn't appear much convincing arguments in that mail
you point to.

> As the logic applied to the changelog and copyright files can be applied to
> most other files produced by the packager, like NEWS.Debian, it looks like the
> trend would be to have them installed in /var/lib/dpkg rather than
> /usr/share/doc.

I already mentioned this in [2] and [3], I think it only makes sense to
consider as metadata machine parseable files, and ones closely related
to the packaging system, not any maintainer created files such as ones
specific for installation helpers for example. As such NEWS.Debian
*might* indeed make some sense to put there too, but not many more if
at all, and they would need careful consideration.

[2] <http://lists.debian.org/debian-devel/2012/06/msg00314.html>
[3] <http://lists.debian.org/debian-devel/2012/06/msg00410.html>

> This is somewhat equivalent of a change in the binary package format, as
> packages will need to pre-depend on a recent version of dpkg,

No, it's not really equivalent, and no, they will not need to Pre-Depend
on a recent dpkg, any dpkg version will handle those files as control
files automatically, and do the right thing. Also the fact that those
files were in «/usr/share/doc/» before means no program can truly rely
on them being present as per policy those paths can be removed by the
admin. The only new interfaces that I introduced in dpkg 1.16.5 specific
to this (dpkg-query --control-list and --control-show) are for users
and programs to be able to easily get those files w/o having to rely
on the internal database paths.

> and programs not getting the metadata through dpkg will need to be
> corrected.

Also mentioned in [2] and [3].

And just to clarify, when I've been referring to this as metadata,
I've not been referring to say a new field in the status file, just as
those files as additional files in the db, like the md5sums shipped by
packages and generated at build time.

> Pushing the logic further, I wonder if that suggests that the Debian binary
> package format could be simplified to be a simple tarball with the metadata
> in /var/lib/dpkg, instead of the current format with a data and a control
> tarballs joined together in the 'ar' format.

That would not simplify it at all, in fact it would make it way more
complex, not to mention it would require bumping the .deb version
format to 3.0.

> This would not prevent dpkg to store the metadata somewhere else than
> /var/lib/dpkg later, as it would be easy to intercept the files and treat
> them appropriately, similar to what is being done with files in
> usr/share/doc with multi-arch packages. Also, once using a simple
> tarball as binary package, arbitrary files become trivial to extract
> quickly, or perhaps even to update (like for translations).

This would require to hardcode several path locations in dpkg just to
make them generic again internally, which does not make any sense to
me. Also dpkg does not currently have any internal knowledge about
magic paths, and there's no special handling of multi-arch paths for
«/usr/share/doc/».

regards,
guillem


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 20120714070029.GA9061@gaara.hadrons.org">http://lists.debian.org/20120714070029.GA9061@gaara.hadrons.org

Thomas Goirand 07-14-2012 10:25 PM

Moving changelog and copyright files to control tarball, or merging control and data tarballs ?
 
On 07/14/2012 08:48 AM, Charles Plessy wrote:
> Pushing the logic further, I wonder if that suggests that the Debian binary
> package format could be simplified to be a simple tarball with the metadata
> in /var/lib/dpkg, instead of the current format with a data and a control
> tarballs joined together in the 'ar' format.
>
> This would not prevent dpkg to store the metadata somewhere else than
> /var/lib/dpkg later, as it would be easy to intercept the files and treat them
> appropriately, similar to what is being done with files in usr/share/doc with
> multi-arch packages. Also, once using a simple tarball as binary package,
> arbitrary files become trivial to extract quickly, or perhaps even to update
> (like for translations).
>
> Have a nice day,
>
Are you writing that ar is a bad choice, and that tar would
be better? I read ar it was better than tar because containing
an index. Was I misslead by wrong web sites?

Cheers,

Thomas


--
To UNSUBSCRIBE, email to debian-dpkg-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 5001F1E5.9040901@debian.org">http://lists.debian.org/5001F1E5.9040901@debian.org

Thomas Goirand 07-14-2012 10:25 PM

Moving changelog and copyright files to control tarball, or merging control and data tarballs ?
 
On 07/14/2012 08:48 AM, Charles Plessy wrote:
> Pushing the logic further, I wonder if that suggests that the Debian binary
> package format could be simplified to be a simple tarball with the metadata
> in /var/lib/dpkg, instead of the current format with a data and a control
> tarballs joined together in the 'ar' format.
>
> This would not prevent dpkg to store the metadata somewhere else than
> /var/lib/dpkg later, as it would be easy to intercept the files and treat them
> appropriately, similar to what is being done with files in usr/share/doc with
> multi-arch packages. Also, once using a simple tarball as binary package,
> arbitrary files become trivial to extract quickly, or perhaps even to update
> (like for translations).
>
> Have a nice day,
>
Are you writing that ar is a bad choice, and that tar would
be better? I read ar it was better than tar because containing
an index. Was I misslead by wrong web sites?

Cheers,

Thomas


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 5001F1E5.9040901@debian.org">http://lists.debian.org/5001F1E5.9040901@debian.org

Simon McVittie 07-14-2012 11:06 PM

Moving changelog and copyright files to control tarball, or merging control and data tarballs ?
 
On 14/07/12 01:48, Charles Plessy wrote:
> This would not prevent dpkg to store the metadata somewhere else than
> /var/lib/dpkg later, as it would be easy to intercept the files and treat them
> appropriately, similar to what is being done with files in usr/share/doc with
> multi-arch packages.

/usr/share/doc in multi-arch packages isn't special: any
arch-independent file can be shared between libfoo:i386 and libfoo:amd64
(or whatever) with refcounting, as long as it's guaranteed to be
byte-for-byte identical in all architectures.

(Other uses for refcounting include Lintian overrides in /usr/share,
arch-indep headers in /usr/include, and tables in /usr/share that aren't
large enough to justify a libfoo-common or libfoo-data package,
such as /usr/share/libaudio2/AuErrorDB and
/usr/share/libgphoto2/2.4.14/konica/english.)

S


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 5001FB60.9090103@debian.org">http://lists.debian.org/5001FB60.9090103@debian.org

Goswin von Brederlow 07-17-2012 01:55 PM

Moving changelog and copyright files to control tarball, or merging control and data tarballs ?
 
On Sat, Jul 14, 2012 at 09:00:29AM +0200, Guillem Jover wrote:
> Hi!
>
> Just to give some context and background, this started with the
> discussion of binNMUs and multi-arch [0], related to file conflicts
> due to the coinstallability of multiple M-A:same instances, and while
> initially a wild idea to possibly fix that specific case, it seemed
> to me it was generic enough and which would make other parts of the
> system easier and more structured.
>
> [0] <http://lists.debian.org/debian-dpkg/2011/09/msg00029.html>
>
> On Sat, 2012-07-14 at 09:48:35 +0900, Charles Plessy wrote:
> > Pushing the logic further, I wonder if that suggests that the Debian binary
> > package format could be simplified to be a simple tarball with the metadata
> > in /var/lib/dpkg, instead of the current format with a data and a control
> > tarballs joined together in the 'ar' format.

One thing that is being done with package "metadata" is that it is extracted
before the package proper into a temporary location and used there.
As such as a minimum the /var/lib/dpkg/ you propse should be first in the
tarball so only a minimum of data needs to be uncompressed to extract the
metadata.

And you would have to always intercept those files all the time since
they need to go to a temporary place. So as Guillem says:

> That would not simplify it at all, in fact it would make it way more
> complex, not to mention it would require bumping the .deb version
> format to 3.0.

But what I wanted to say is that one thing that is being done with
package "metadata" is that it is extracted before the package proper
into a temporary location and used there.

Dpkg uses the control file and maintainer scripts (preinst, prerm
sometimes). But other tools need access to data too, like
apt-listchanges. In that light I too think it makes sense to move the
NEWS.Debian and changelog files to the control tarball so they can be
accessed easier and faster.

> > This would not prevent dpkg to store the metadata somewhere else than
> > /var/lib/dpkg later, as it would be easy to intercept the files and treat
> > them appropriately, similar to what is being done with files in
> > usr/share/doc with multi-arch packages. Also, once using a simple
> > tarball as binary package, arbitrary files become trivial to extract
> > quickly, or perhaps even to update (like for translations).
>
> This would require to hardcode several path locations in dpkg just to
> make them generic again internally, which does not make any sense to
> me. Also dpkg does not currently have any internal knowledge about
> magic paths, and there's no special handling of multi-arch paths for
> «/usr/share/doc/».
>
> regards,
> guillem

I'm not opposed to merging the control and data tarballs, neigther am I
for it. I don't quite see a reason for it.

But putting the metadata into /var/lib/dpkg is indeed a bad idea, esspecially
with the idea/plans to change the internal storage of those files in dpkg. By
having the files in the package already in place you put knowledge of the
dpkg internal DB into each and every deb and any change will be a nightmare.

Instead, if you want to play more with the idea of a single tarball, think
about having the metadata in /DEBIAN/ instead. That is where they are
already during building of debs so build tools would not need changes (other
than dpkg itself) And you would have a single hardcoded path location to
work from. Just my 2c.

MfG
Goswin


--
To UNSUBSCRIBE, email to debian-devel-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: http://lists.debian.org/20120717135508.GD23876@frosties


All times are GMT. The time now is 03:54 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.