Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #1102830

Bug#1007717: Draft resolution for "Native source package format with non-native version"

From Lucas Nussbaum <lucas@debian.org>
Newsgroups linux.debian.bugs.dist, linux.debian.maint.dpkg
Subject Bug#1007717: Draft resolution for "Native source package format with non-native version"
Date 2022-05-11 21:00 +0200
Message-ID <ElZIZ-eOxW-1@gated-at.bofh.it> (permalink)
References (3 earlier) <ElSRb-eKz5-1@gated-at.bofh.it> <ElTax-eKFm-3@gated-at.bofh.it> <ElXxv-eNlt-7@gated-at.bofh.it> <E1inf-1WrN-1@gated-at.bofh.it> <ElXxv-eNlt-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Cross-posted to 2 groups.

Show all headers | View raw


On 11/05/22 at 17:29 +0100, Ian Jackson wrote:
> Lucas Nussbaum writes ("Re: Bug#1007717: Draft resolution for "Native source package format with non-native version""):
> > Out of curiosity, if 3.0 (native) supported multiple tarballs, wouldn't
> > it be a good solution?
> 
> Oh, I hadn't thought of that.
> 
> > The main limitation I see is that it would not allow to represent
> > efficiently small changes to large text files (which a git-based diff
> > would allow).
> 
> That may not be important.  My feeling is that it wouldn't be.
> 
> However, I think there are some other difficulties with this idea.
> 
> *Deletion* of files *is* important.  Something would have to be done
> to support that.  (Tarball repacking is an abominable workflow which
> we should only do when we must.)
> 
> It is important that packing and unpacking these things works roughly
> the same way that things work right now for the diffish formats.  Ie,
> for a package with two tarballs, the first tarball would have to omit
> the Debian revision from its filename (so that it needn't be
> re-uploaded), and the second tarball would have to *contain* it.
> dpkg-source -b would have to calculate the appropriate second tarball
> as a diff from the first.  (GNU tar has an incremental option that
> could perhaps be used.)
> 
> I think, having followed this line of throught, the result looks quite
> like a "3.0 (diff)" only the diff is in the form of an incremental
> tarball rather than a textual patch file.
> 
> This could definitely work.

FWIW, GNU tar's incremental mode supports file deletions.

Example:
------------------------------>8
# create a first archive
mkdir t
echo foo > t/f1
echo bar > t/f2
echo baz > t/f3
tar --listed-increment=snapshot-file -czvvvf archive.tgz t
# remove a file, create an incremental archive
rm t/f2
tar --listed-increment=snapshot-file -czvvvf archive.1.tgz t

# remove everything
rm -rf snapshot-file t
# extract incremental archives
tar Gvvvxf archive.tgz
tar Gvvvxf archive.1.tgz

# listing of archive.1.tgz
tar Gvvvtf archive.1.tgz
------------------------------>8

This is implemented using the GNU-specific D entry type. According to
https://www.freebsd.org/cgi/man.cgi?query=tar&apropos=0&sektion=5&format=html :

      D      This indicates a directory entry. Unlike the POSIX-stan-
             dard "5" typeflag, the header is followed by data records
             listing the names of files in this directory.  Each name
             is preceded by an ASCII "Y" if the file is stored in this
             archive or "N" if the file is not stored in this archive.
             Each name is terminated with a null, and an extra null
             marks the end of the name list.  The purpose of this en-
             try is to support incremental backups; a program restor-
             ing from such an archive may wish to delete files on disk
             that did not exist in the directory when the archive was
             made.

             Note that the "D" typeflag specifically violates POSIX,
             which requires that unrecognized typeflags be restored as
             normal files.  In this case, restoring the "D" entry as a
             file could interfere with subsequent creation of the
             like-named directory.

> But I think that might not meet ftpmaster's review needs.  AIUI
> ftpmaster like to review the diff qua diff, and a tarball isn't so
> straightforward.  I had a similar idea to use an rsync batchfile as
> the delta, which foundered on the same issue.

Note that it's not worse than using native formats, where ftpmasters get
a single tarball anyway...

Lucas

Back to linux.debian.bugs.dist | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Bug#1007717: Draft resolution for "Native source package format with non-native version" Sean Whitton <spwhitton@spwhitton.name> - 2022-05-11 02:40 +0200
  Bug#1007717: Draft resolution for "Native source package format with non-native version" Lucas Nussbaum <lucas@debian.org> - 2022-05-11 11:30 +0200
    Bug#1007717: Draft resolution for "Native source package format with non-native version" Ian Jackson <ijackson@chiark.greenend.org.uk> - 2022-05-11 13:50 +0200
      Bug#1007717: Draft resolution for "Native source package format with non-native version" Lucas Nussbaum <lucas@debian.org> - 2022-05-11 14:10 +0200
        Bug#1007717: Draft resolution for "Native source package format with non-native version" Ian Jackson <ijackson@chiark.greenend.org.uk> - 2022-05-11 18:40 +0200
          Bug#1007717: Draft resolution for "Native source package format with non-native version" Lucas Nussbaum <lucas@debian.org> - 2022-05-11 21:00 +0200
            Bug#1007717: Draft resolution for "Native source package format with non-native version" Ian Jackson <ijackson@chiark.greenend.org.uk> - 2022-05-11 21:10 +0200
  Bug#1007717: Draft resolution for "Native source package format with non-native version" Helmut Grohne <helmut@subdivi.de> - 2022-06-07 07:50 +0200
    Bug#1007717: Draft resolution for "Native source package format with non-native version" Sean Whitton <spwhitton@spwhitton.name> - 2022-06-07 08:20 +0200
      Bug#1007717: Draft resolution for "Native source package format with non-native version" Matthew Vernon <matthew@debian.org> - 2022-06-07 12:50 +0200
      Bug#1007717: Draft resolution for "Native source package format with non-native version" Helmut Grohne <helmut@subdivi.de> - 2022-06-07 23:00 +0200
        Bug#1007717: Draft resolution for "Native source package format with non-native version" Julian Andres Klode <jak@debian.org> - 2022-06-08 12:10 +0200
        Bug#1007717: Draft resolution for "Native source package format with non-native version" Helmut Grohne <helmut@subdivi.de> - 2022-06-08 21:10 +0200
          Bug#1007717: Draft resolution for "Native source package format with non-native version" Lucas Nussbaum <lucas@debian.org> - 2022-06-08 22:40 +0200
          Bug#1007717: Draft resolution for "Native source package format with non-native version" Lucas Nussbaum <lucas@debian.org> - 2022-06-08 22:40 +0200
    Bug#1007717: Draft resolution for "Native source package format with non-native version" Lucas Nussbaum <lucas@debian.org> - 2022-06-07 09:40 +0200
      Bug#1007717: Draft resolution for "Native source package format with non-native version" Christoph Berg <myon@debian.org> - 2022-06-07 09:50 +0200
        Bug#1007717: Draft resolution for "Native source package format with non-native version" Ian Jackson <ijackson@chiark.greenend.org.uk> - 2022-06-07 13:50 +0200
    Bug#1007717: Draft resolution for "Native source package format with non-native version" Ian Jackson <ijackson@chiark.greenend.org.uk> - 2022-06-07 12:40 +0200
  Bug#1007717: Updated draft resolution Sean Whitton <spwhitton@spwhitton.name> - 2022-06-08 07:40 +0200
    Bug#1007717: Updated draft resolution Helmut Grohne <helmut@subdivi.de> - 2022-06-15 07:40 +0200
      Bug#1007717: Updated draft resolution Christoph Berg <myon@debian.org> - 2022-06-15 10:40 +0200
      Bug#1007717: Updated draft resolution Ian Jackson <ijackson@chiark.greenend.org.uk> - 2022-06-15 12:20 +0200
        Bug#1007717: Updated draft resolution gregor herrmann <gregoa@debian.org> - 2022-06-17 01:10 +0200
          Bug#1007717: Updated draft resolution gregor herrmann <gregoa@debian.org> - 2022-06-17 02:50 +0200
      Bug#1007717: Updated draft resolution Lucas Nussbaum <lucas@debian.org> - 2022-06-15 16:10 +0200
        Bug#1007717: Updated draft resolution Helmut Grohne <helmut@subdivi.de> - 2022-06-16 09:00 +0200
          Bug#1007717: Updated draft resolution Sam Hartman <hartmans@debian.org> - 2022-06-17 18:50 +0200
    Bug#1007717: Ballot and call for votes Sean Whitton <spwhitton@spwhitton.name> - 2022-06-21 02:40 +0200
      Bug#1007717: Ballot and call for votes Sean Whitton <spwhitton@spwhitton.name> - 2022-06-21 02:40 +0200
      Bug#1007717: Ballot and call for votes Matthew Vernon <matthew@debian.org> - 2022-06-21 09:30 +0200
      Bug#1007717: Ballot and call for votes Gunnar Wolf <gwolf@debian.org> - 2022-06-22 18:20 +0200
      Bug#1007717: Ballot and call for votes Simon McVittie <smcv@debian.org> - 2022-06-22 20:50 +0200
      Bug#1007717: Ballot and call for votes Helmut Grohne <helmut@subdivi.de> - 2022-06-23 17:10 +0200
      Bug#1007717: Ballot and call for votes Niko Tyni <ntyni@debian.org> - 2022-06-26 23:30 +0200
      Bug#1007717: Ballot and call for votes Elana Hashman <ehashman@debian.org> - 2022-06-27 01:30 +0200
      Bug#1007717: Ballot and call for votes Christoph Berg <myon@debian.org> - 2022-06-27 15:30 +0200
      Bug#737634: Bug#1007717: Native source package format with non-native version Sean Whitton <spwhitton@spwhitton.name> - 2022-06-27 18:30 +0200

csiph-web