Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package reprepro for openSUSE:Factory 
checked in at 2024-12-30 14:26:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/reprepro (Old)
 and      /work/SRC/openSUSE:Factory/.reprepro.new.1881 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "reprepro"

Mon Dec 30 14:26:41 2024 rev:7 rq:1233626 version:5.4.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/reprepro/reprepro.changes        2024-01-29 
22:32:41.657433830 +0100
+++ /work/SRC/openSUSE:Factory/.reprepro.new.1881/reprepro.changes      
2024-12-30 14:26:42.594392982 +0100
@@ -1,0 +2,15 @@
+Fri Dec 27 16:09:52 UTC 2024 - Michael Calmer <m...@suse.com>
+
+- Update to version 5.4.6
+  * Print complaints about lockfile on stderr
+  * The translatelegacyreferences command creates a new
+    references.db file with the DUP flag in place of DUPSORT. It
+    then copies the content of the old references.db file into the
+    new one.
+  * When an attempt is made to open the references.db file,
+    reprepro checks if the DUPSORT flag is set. If this is so, the
+    database needs to be upgraded, so reprepro exits with an error
+    asking the user to call the new 'translatelegacyreferences'
+    command.
+
+-------------------------------------------------------------------

Old:
----
  reprepro_5.4.3.orig.tar.xz

New:
----
  reprepro_5.4.6.orig.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ reprepro.spec ++++++
--- /var/tmp/diff_new_pack.JuW1W8/_old  2024-12-30 14:26:43.390425742 +0100
+++ /var/tmp/diff_new_pack.JuW1W8/_new  2024-12-30 14:26:43.394425906 +0100
@@ -17,12 +17,12 @@
 
 
 Name:           reprepro
-Version:        5.4.3
+Version:        5.4.6
 Release:        0
 Summary:        Debian repository metadata generator
 License:        GPL-2.0-only AND GPL-2.0-or-later AND MIT
 URL:            https://salsa.debian.org/debian/reprepro
-Source:         
http://deb.debian.org/debian/pool/main/r/reprepro/reprepro_%version.orig.tar.xz
+Source:         
http://deb.debian.org/debian/pool/main/r/reprepro/reprepro_%{version}.orig.tar.xz
 BuildRequires:  automake
 BuildRequires:  gpgme-devel
 BuildRequires:  libarchive-devel
@@ -51,7 +51,7 @@
 generated Package indexes is supported.
 
 %prep
-%autosetup -p1
+%autosetup -p1 -n %name-%version
 find docs -type f -exec chmod -x {} +
 
 %build

++++++ reprepro_5.4.3.orig.tar.xz -> reprepro_5.4.6.orig.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/ChangeLog new/reprepro-5.4.6/ChangeLog
--- old/reprepro-5.4.3/ChangeLog        2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/ChangeLog        2024-12-18 15:54:20.000000000 +0100
@@ -1,3 +1,45 @@
+2024-12-13  Felix Yan <felixonm...@archlinux.org>
+
+       * docs/reprepro.1: reprepro.1: Correct a typo
+
+2024-09-19  Bastian Germann <b...@debian.org>
+
+       * INSTALL: Dependency version requirements
+
+2023-09-11  Giorgio Comitini <giorgiocomit...@chromodynamical.com>
+
+       * database.*, main.c, tests/multiversion.sh:
+       Implement command translatelegacyreferences
+
+2024-08-03  Bastian Germann <b...@debian.org>
+
+       * configure.ac, NEWS: Release version 5.4.5
+
+2024-07-16  Serge Schneider <se...@raspberrypi.com>
+
+       * database.c: Use DB_ENV->dbrename() and DB_ENV->dbremove()
+       in database_translate_legacy_packages
+
+2024-05-16  Simon Richter <s...@debian.org>
+
+       * database.c: Print complains about lockfile on stderr
+       When waiting for a lock, the message is printed to stdout, which messes
+       up the output for tools processing it. Print to stderr instead.
+
+2024-02-17  Bastian Germann <b...@debian.org>
+
+       * configure.ac, NEWS: Release version 5.4.4
+
+2024-02-05  Sylvestre Ledru <sylves...@debian.org>
+
+       * docs: Fix some typos
+       * reprepro.1: add missing single quotes
+
+2024-01-08  Bastian Germann <b...@debian.org>
+
+       * uncompression.c: Wait for poll event.
+       Revert "uncompress: prevent reprepro from hanging on unzstd"
+
 2024-01-07  Bastian Germann <b...@debian.org>
 
        * configure.ac, NEWS: Release version 5.4.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/INSTALL new/reprepro-5.4.6/INSTALL
--- old/reprepro-5.4.3/INSTALL  2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/INSTALL  2024-12-18 15:54:20.000000000 +0100
@@ -2,11 +2,11 @@
        libdb3, libdb4.x or libdb5.x
        libz
 Optional Dependencies:
-       libgpgme >= 0.4.1 (In Debian libgpgme11-dev, NOT libgpgme-dev)
+       libgpgme >= 0.4.1
        libbz2
        libarchive
 When Building from git:
-       autoconf2.50 (autoconf 2.13 will not work)
+       autoconf >= 2.50
 
 Basic Installation
 ==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/NEWS new/reprepro-5.4.6/NEWS
--- old/reprepro-5.4.3/NEWS     2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/NEWS     2024-12-18 15:54:20.000000000 +0100
@@ -1,3 +1,25 @@
+Updates between 5.4.5 and 5.4.6:
+- Implement command translatelegacyreferences 
(https://bugs.debian.org/1051537):
+  reprepro did not automatically migrate the database if needed after version
+  upgrades. Instead, it raised an error and asked the user to call one of the
+  translate* commands. Add one more such commands. It works as follows:
+  * When an attempt is made to open the references.db file, reprepro
+    checks if the DUPSORT flag is set. If this is so, the database
+    needs to be upgraded, so reprepro exits with an error asking the
+    user to call the new 'translatelegacyreferences' command.
+  * The translatelegacyreferences command creates a new references.db
+    file with the DUP flag in place of DUPSORT. It then copies the
+    content of the old references.db file into the new one.
+
+Updates between 5.4.4 and 5.4.5:
+- Use DB_ENV->dbrename() and DB_ENV->dbremove() in
+  database_translate_legacy_packages (https://bugs.debian.org/1017983)
+- Print complains about lockfile on stderr (https://bugs.debian.org/1071195)
+
+Updates between 5.4.3 and 5.4.4:
+- Revert "uncompress: prevent reprepro from hanging on unzstd"
+- Wait for poll event
+
 Updates between 5.4.2 and 5.4.3:
 - uncompress: prevent block on unzstd (https://bugs.debian.org/1056380)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/README new/reprepro-5.4.6/README
--- old/reprepro-5.4.3/README   2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/README   2024-12-18 15:54:20.000000000 +0100
@@ -21,7 +21,7 @@
 
        architecture: The term like "sparc","i386","mips",...
        component: Things like "main" "non-free" "contrib" ...
-                  (somtimes also called sections)
+                  (sometimes also called sections)
        section: Things like "base" "interpreters" "oldlibs"
                   (sometimes also called subsections)
        type: The kind of packages, currently supported:
@@ -47,14 +47,14 @@
        This makes no real mirror of the distribution, but
        only of it contents. Thus the Index-files will
        be different. (And thus no longer can be verified
-       by the offical signatures). This means people using
+       by the official signatures). This means people using
        this mirror have to trust you to not include anything
        ugly, as they can only check your signature directly.
        (Or in other words: not useful for mirroring things
         to be used by strangers).
  - location:
        The directory layout under pool/ is only divided
-       by the component and the sourcename. Ecspecially
+       by the component and the sourcename. Especially
        woody and updates/woody will share the same space,
        thus avoiding multiple instances of the same file.
        (Can also cause trouble in the rare cases, when both
@@ -71,7 +71,7 @@
        Note that other than apt-ftparchive case is most likely
        to be significant. (Having the wrong case in might also
        cause havoc in apt-ftparchive, as that changes the case of
-       the fieldname, which might confuse other programms...)
+       the fieldname, which might confuse other programs...)
 
 * Things that might be interesting to know:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/configure.ac 
new/reprepro-5.4.6/configure.ac
--- old/reprepro-5.4.3/configure.ac     2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/configure.ac     2024-12-18 15:54:20.000000000 +0100
@@ -2,7 +2,7 @@
 dnl Process this file with autoconf to produce a configure script
 dnl
 
-AC_INIT(reprepro, 5.4.3)
+AC_INIT(reprepro, 5.4.6)
 AC_CONFIG_SRCDIR(main.c)
 AC_CONFIG_AUX_DIR(ac)
 AM_INIT_AUTOMAKE([-Wall -Werror -Wno-portability])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/database.c 
new/reprepro-5.4.6/database.c
--- old/reprepro-5.4.3/database.c       2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/database.c       2024-12-18 15:54:20.000000000 +0100
@@ -145,7 +145,7 @@
                        if (tries < waitforlock && ! interrupted()) {
                                unsigned int timetosleep = 10;
                                if (verbose >= 0)
-                                       printf(
+                                       fprintf(stderr,
 "Could not acquire lock: %s already exists!\nWaiting 10 seconds before trying 
again.\n",
                                                lockfile);
                                while (timetosleep > 0)
@@ -1949,6 +1949,8 @@
 
 retvalue database_openreferences(void) {
        retvalue r;
+       uint32_t flags;
+       int dbret;
 
        assert (rdb_references == NULL);
        r = database_table("references.db", "references",
@@ -1959,6 +1961,17 @@
                return r;
        } else
                rdb_references->verbose = false;
+       dbret = 
rdb_references->berkeleydb->get_flags(rdb_references->berkeleydb, &flags);
+       if (dbret != 0) {
+                       table_printerror(rdb_references, dbret, "get_flags");
+                       return RET_DBERR(dbret);
+               }
+       if (ISSET(flags, DB_DUPSORT)) {
+               fprintf(stderr,
+"Error: database uses deprecated format.\n"
+"Please run translatelegacyreferences to update to the new format first.\n");
+               return RET_ERROR;
+               }
        return RET_OK;
 }
 
@@ -2061,7 +2074,6 @@
        const char *chunk, *packagename;
        char *identifier, *key, *legacy_filename, *packages_filename, 
*packageversion;
        retvalue r, result;
-       int ret, e;
        size_t chunk_len;
        DBT Key, Data;
 
@@ -2072,19 +2084,15 @@
                fprintf(stderr, "Cannot find directory '%s'!\n", global.dbdir);
                return RET_ERROR;
        }
-
        packages_filename = dbfilename("packages.db");
        legacy_filename = dbfilename("packages.legacy.db");
-       ret = rename(packages_filename, legacy_filename);
-       if (ret != 0) {
-               e = errno;
-               fprintf(stderr, "error %d renaming %s to %s: %s\n",
-                               e, packages_filename, legacy_filename, 
strerror(e));
-               return (e != 0)?e:EINVAL;
+       r = rdb_env->dbrename(rdb_env, NULL, "packages.db", NULL, 
"packages.legacy.db", 0);
+       if (r != 0) {
+               fprintf(stderr, "Error: DB_ENV->dbrename: %s\n", 
db_strerror(r));
+               return r;
        }
        if (verbose >= 15)
                fprintf(stderr, "trace: Moved '%s' to '%s'.\n", 
packages_filename, legacy_filename);
-
        r = database_table("packages.legacy.db", NULL, dbt_BTREE, DB_RDONLY, 
&legacy_databases);
        assert (r != RET_NOTHING);
        if (RET_WAS_ERROR(r))
@@ -2167,12 +2175,12 @@
        RET_ENDUPDATE(result, r);
 
        if (RET_IS_OK(result)) {
-               e = deletefile(legacy_filename);
-               if (e != 0) {
+               r = rdb_env->dbremove(rdb_env, NULL, "packages.legacy.db", 
NULL, 0);
+               if (r != 0) {
                        fprintf(stderr, "Could not delete '%s'!\n"
 "It can now safely be deleted and it all that is left to be done!\n",
                                        legacy_filename);
-                       return RET_ERRNO(e);
+                       return r;
                }
        }
 
@@ -2707,3 +2715,91 @@
        database_free();
        return r;
 }
+
+static retvalue table_copy_with_dup(struct table *oldtable, struct table 
*newtable) {
+       retvalue r;
+       struct cursor *cursor;
+       const char *filekey, *data;
+       size_t data_len;
+
+       r = table_newglobalcursor(oldtable, true, &cursor);
+       if (!RET_IS_OK(r))
+               return r;
+       while (cursor_nexttempdata(oldtable, cursor, &filekey,
+                               &data, &data_len)) {
+               r = table_addrecord(newtable, filekey,
+                               data, data_len, false);
+               if (RET_WAS_ERROR(r))
+                       return r;
+       }
+       return RET_OK;
+}
+
+retvalue database_translate_legacy_references(void) {
+       char *dbname, *tmpdbname;
+       struct table *oldtable, *newtable;
+       int ret;
+       retvalue r, r2;
+
+       dbname = dbfilename("references.db");
+       if (FAILEDTOALLOC(dbname))
+               return RET_ERROR_OOM;
+       tmpdbname = dbfilename("old.references.db");
+       if (FAILEDTOALLOC(tmpdbname)) {
+               free(dbname);
+               return RET_ERROR_OOM;
+       }
+       ret = rename(dbname, tmpdbname);
+       if (ret != 0) {
+               int e = errno;
+               fprintf(stderr, "Could not rename '%s' into '%s': %s(%d)\n",
+                               dbname, tmpdbname, strerror(e), e);
+               free(dbname);
+               free(tmpdbname);
+               return RET_ERRNO(e);
+       }
+       newtable = NULL;
+       r = database_table("references.db", "references",
+                       dbt_BTREEDUP, DB_CREATE, &newtable);
+       assert (r != RET_NOTHING);
+       oldtable = NULL;
+       if (RET_IS_OK(r)) {
+               r = database_table("old.references.db", "references",
+                               dbt_BTREEDUP, DB_RDONLY, &oldtable);
+               if (r == RET_NOTHING) {
+                       fprintf(stderr, "Could not find old-style database!\n");
+                       r = RET_ERROR;
+               }
+       }
+       if (RET_IS_OK(r)) {
+               r = table_copy_with_dup(oldtable, newtable);
+               r2 = table_close(oldtable);
+               RET_ENDUPDATE(r, r2);
+               if (r == RET_NOTHING) {
+                       r = RET_OK;
+               }
+       }
+       r2 = table_close(newtable);
+       RET_ENDUPDATE(r, r2);
+       if (RET_IS_OK(r))
+               (void)unlink(tmpdbname);
+
+       if (RET_WAS_ERROR(r)) {
+               ret = rename(tmpdbname, dbname);
+               if (ret != 0) {
+                       int e = errno;
+                       fprintf(stderr,
+"Could not rename '%s' back into '%s': %s(%d)\n",
+                                       dbname, tmpdbname, strerror(e), e);
+                       free(tmpdbname);
+                       free(dbname);
+                       return RET_ERRNO(e);
+               }
+               free(tmpdbname);
+               free(dbname);
+               return r;
+       }
+       free(tmpdbname);
+       free(dbname);
+       return RET_OK;
+}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/database.h 
new/reprepro-5.4.6/database.h
--- old/reprepro-5.4.3/database.h       2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/database.h       2024-12-18 15:54:20.000000000 +0100
@@ -27,6 +27,7 @@
 retvalue database_opentracking(const char *, bool /*readonly*/, 
/*@out@*/struct table **);
 retvalue database_translate_filelists(void);
 retvalue database_translate_legacy_checksums(bool /*verbosedb*/);
+retvalue database_translate_legacy_references(void);
 
 retvalue table_close(/*@only@*/struct table *);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/docs/manual.html 
new/reprepro-5.4.6/docs/manual.html
--- old/reprepro-5.4.3/docs/manual.html 2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/docs/manual.html 2024-12-18 15:54:20.000000000 +0100
@@ -888,7 +888,7 @@
 <tt class="field">Update:</tt> field listing the update rules applied to it.
 Those update rules are listed in <tt class="file">conf/updates</tt>.
 There is also the magic <tt>-</tt> update rule, which tells reprepro to delete
-all packages not readded by later rules.
+all packages not re-added by later rules.
 <br>
 To make reprepro to update all distributions call <tt>reprepro update</tt>
 without further arguments, or give the distributions to update as additional
@@ -1147,7 +1147,7 @@
 <h5>Calling conventions for <tt class="suffix">.changes</tt> scripts</h5>
 This type of script is called with 5 or 6 arguments.
 The first is always &quot;<tt>accepted</tt>&quot;, to make it easier to
-check it is configued the right way.
+check it is configured the right way.
 The second argument is the codename of the distribution the
 <tt class="suffix">.changes</tt>-file was added to.
 The third argument is the source name, the forth the version.
@@ -1246,15 +1246,15 @@
 
 All <tt class="constant">POOLNEW</tt> come before any distribution changes 
referencing them
 and all <tt class="constant">POOLDELETE</tt> will be afterwards.
-Each line beloging to a distribution is guaranteed to be between the 
corresponding
+Each line belonging to a distribution is guaranteed to be between the 
corresponding
 <tt class="constant">START-DISTRIBUTION</tt> and
 <tt class="constant">END-DISTRIBUTION</tt> or between a
 <tt class="constant">START-SNAPSHOT</tt> and
 <tt class="constant">END-SNAPSHOT</tt> or between a
 with the same directory
-(i.e. there is some redundancy so you can choose to parse the information 
where it is more conventient for you).
+(i.e. there is some redundancy so you can choose to parse the information 
where it is more convenient for you).
 
-The lines starting with <tt class="constant">DIST</tt> describe new or 
modified files in the distribution description exported by reprepro. No hint is 
given if that file was previously non-existant, a proper file or a symlink 
(i.e. if you copy stuff, do not make any assumptions about that).
+The lines starting with <tt class="constant">DIST</tt> describe new or 
modified files in the distribution description exported by reprepro. No hint is 
given if that file was previously non-existent, a proper file or a symlink 
(i.e. if you copy stuff, do not make any assumptions about that).
 Future versions of reprepro might create <tt class="constant">DISTKEEP</tt> 
lines to denote files that have not changed (i.e. just ignore those lines to be 
future-proof).
 
 The directories for the distribution entries are what apt expects them (i.e. 
always starting with <tt class="constant">dists/</tt>, while the third argument 
to <tt class="constant">DISTFILE</tt> is the name reprepro generated (i.e. 
starts with the distdir value, which can be configured to not end with <tt 
class="constant">dists/</tt>).
@@ -1427,7 +1427,7 @@
 files (even when there is no key to look for specified,
 as that is the best way to get the data from the signed block).
 Avoiding this by just accepting stuff without looking for signatures on
-untrusted data is not really an option, so I know nothing to prefent this
+untrusted data is not really an option, so I know nothing to prevent this
 type of problems.
 </dd>
 <dt>libarchive</dt><dd>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/docs/reprepro.1 
new/reprepro-5.4.6/docs/reprepro.1
--- old/reprepro-5.4.3/docs/reprepro.1  2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/docs/reprepro.1  2024-12-18 15:54:20.000000000 +0100
@@ -652,10 +652,10 @@
 (That means all package generated by a source package \fIblub\fP,
 except those also specifying a version number with its Source).
 
-.B reprepro \-b . \-T deb listfilter test2 '$Source (==\fIblub\fP)
+.B reprepro \-b . \-T deb listfilter test2 '$Source (==\fIblub\fP)'
 is the better way to do this (but only available since 3.11.1).
 
-.B reprepro \-b . listfilter test2 '$PackageType (==deb), $Source 
(==\fIblub\fP)
+.B reprepro \-b . listfilter test2 '$PackageType (==deb), $Source 
(==\fIblub\fP)'
 is another (less efficient) way.
 
 .B reprepro \-b . listfilter test2 'Package (% linux\-*\-2.6*)'
@@ -714,7 +714,7 @@
 .BR dumpupdate " [ " \fIcodenames\fP " ]"
 Same like
 .BR checkupdate ,
-but less suiteable for humans and more suitable for computers.
+but less suitable for humans and more suitable for computers.
 .TP
 .BR predelete " [ " \fIcodenames\fP " ]"
 This will determine which packages a \fBupdate\fP would delete or
@@ -754,7 +754,7 @@
 .BR dumppull " [ " \fIcodenames\fP " ]"
 Same like
 .BR checkpull ,
-but less suiteable for humans and more suitable for computers.
+but less suitable for humans and more suitable for computers.
 .TP
 .B includedeb \fIcodename\fP \fI.deb-filename\fP
 Include the given binary Debian package (.deb) in the specified
@@ -848,11 +848,11 @@
 not cause any warning.
 .TP
 .BR redochecksums " [ " \fIcodenames\fP " ]"
-Readd the information about file checksums to the package indices.
+Re-add the information about file checksums to the package indices.
 
 Usually the package's control information is created at inclusion
 time or imported from some remote source and not changed later.
-This command modifies it to readd missing checksum types.
+This command modifies it to re-add missing checksum types.
 
 Only checksums already known are used.
 To update known checksums about files run \fBcollectnewchecksums\fP first.
@@ -1002,7 +1002,7 @@
 Remove all references generated by an \fBgenshapshot\fP with the
 same arguments.
 This allows the next \fBdeleteunferenced\fP call to delete those files.
-(The indicies in \fBdists/\fP for the snapshot are not removed.)
+(The indices in \fBdists/\fP for the snapshot are not removed.)
 .TP
 .BR rerunnotifiers " [ " \fIcodenames\fP " ]"
 Run all external scripts specified in the \fBLog:\fP options of the
@@ -1041,6 +1041,15 @@
 .IB db /contents.cache.db
 file size available in that partition.
 .TP
+.B translatelegacyreferences
+Translate the references within
+.IB db /references.db
+into the new format used since reprepro 5.4.0.
+
+Make sure you have at least the same space of the current
+.IB db /references.db
+file size available in that partition.
+.TP
 .B flood \fIdistribution\fP \fR[\fP\fIarchitecture\fP\fR]\fP
 For each architecture of \fIdistribution\fP (or for the one specified)
 add architecture \fBall\fP packages from other architectures
@@ -1202,7 +1211,7 @@
 was run since the config was last changed.
 
 .SH "CONFIG FILES"
-.B reprepo
+.B reprepro
 uses three config files, which are searched in
 the directory specified with
 .B \-\-confdir
@@ -1408,7 +1417,7 @@
 .B SignWith
 When this field is present, a Release.gpg file will be generated.
 If the value is "yes" or "default", the default key of gpg is used.
-If the field starts with an exlamation mark ("!"), the given script
+If the field starts with an exclamation mark ("!"), the given script
 is executed to do the signing.
 Otherwise the value will be given to libgpgme to determine to key to
 use.
@@ -1417,7 +1426,7 @@
 .br
 .B gpg \-\-list\-secret\-keys \fIvalue\fP
 .br
-to see how gpg could interprete the value.
+to see how gpg could interpret the value.
 If that command does not list any keys or multiple ones,
 try to find some other value (like the keyid),
 that gpg can more easily associate with a unique key.
@@ -1677,7 +1686,7 @@
 
 Each line consists out of 4 arguments:
 A glob pattern for the section
-(clasically \fBbyhand\fP, though Ubuntu uses \fBraw\-\fP*),
+(classically \fBbyhand\fP, though Ubuntu uses \fBraw\-\fP*),
 a glob pattern for the priority (not usually used),
 and a glob pattern for the filename.
 
@@ -1935,7 +1944,7 @@
 set are ignore when getting source packages.
 Without this option or if it is true, those source packages
 are ignored, while if set to no or false, those source packages
-are also condidates if no other filter excludes them.
+are also candidates if no other filter excludes them.
 (The default of true will likely change once reprepro supports
 multiple versions of a package or has other means to keep the
 source packages around).
@@ -2107,7 +2116,7 @@
  \fB$Delete\fP: the value is treated a fieldname and fields of that
 name are removed.
 (This way one can remove fields previously added without removing and
-readding the package.
+re-adding the package.
 And fields already included in the package can be removed, too).
 
 .SS conf/incoming
@@ -2129,7 +2138,7 @@
 A directory where the files listed in the processed .changes files
 are copied into before they are read.
 You can avoid some copy operations by placing this directory
-within the same moint point the pool hierarchy
+within the same mount point the pool hierarchy
 is (at least partially) in.
 .TP
 .B LogDir
@@ -2233,7 +2242,7 @@
 If a \fB.changes\fP file causes errors while processing, delete it and the 
files
 it references.
 
-Note that allowing cleanup in publically accessible incoming queues allows a 
denial
+Note that allowing cleanup in publicly accessible incoming queues allows a 
denial
 of service by sending in .changes files deleting other peoples files before 
they
 are completed.
 Especially when .changes files are handled directly (e.g. by inoticoming).
@@ -2514,7 +2523,7 @@
 Do not warn about wrong "Architecture:" lines in downloaded
 Packages files.
 (Note that wrong Architectures are always ignored when getting
-stuff from flat repostories or importing stuff from one architecture
+stuff from flat repositories or importing stuff from one architecture
 to another).
 .TP
 .B wrongdistribution \fR(safe to ignore)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/docs/reprepro.bash_completion 
new/reprepro-5.4.6/docs/reprepro.bash_completion
--- old/reprepro-5.4.3/docs/reprepro.bash_completion    2024-01-07 
22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/docs/reprepro.bash_completion    2024-12-18 
15:54:20.000000000 +0100
@@ -338,6 +338,7 @@
                        tidytracks\
                        translatefilelists\
                        translatelegacychecksums\
+                       translatelegacyreferences\
                        unusedsources\
                        update'
                hiddencommands='__d\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/docs/reprepro.zsh_completion 
new/reprepro-5.4.6/docs/reprepro.zsh_completion
--- old/reprepro-5.4.3/docs/reprepro.zsh_completion     2024-01-07 
22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/docs/reprepro.zsh_completion     2024-12-18 
15:54:20.000000000 +0100
@@ -254,6 +254,7 @@
        tidytracks:"look for files referened by tracks but no longer needed"
        translatefilelists:"translate pre-3.0.0 contents.cache.db into new 
format"
        translatelegacychecksums:"get rid of obsolete files.db"
+       translatelegacyreferences:"translate pre-5.4.0 references.db into new 
format"
        unreferencesnapshot:"no longer mark files used by an snapshot"
        unusedsources:"list source packages with no binary packages"
        update:"update from external source"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/main.c new/reprepro-5.4.6/main.c
--- old/reprepro-5.4.3/main.c   2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/main.c   2024-12-18 15:54:20.000000000 +0100
@@ -538,6 +538,9 @@
                        verbosedatabase || verbose > 10);
 }
 
+ACTION_T(n, n, translatelegacyreferences) {
+       return database_translate_legacy_references();
+}
 
 ACTION_F(n, n, n, n, addmd5sums) {
        char buffer[2000], *c, *m;
@@ -4135,6 +4138,8 @@
                0, 0, "translatefilelists"},
        {"translatelegacychecksums",    A_N(translatelegacychecksums),
                0, 0, "translatelegacychecksums"},
+       {"translatelegacyreferences",   A__T(translatelegacyreferences),
+               0, 0, "translatelegacyreferences"},
        {"_listconfidentifiers",        A_C(listconfidentifiers),
                0, -1, "_listconfidentifiers"},
        {"_listdbidentifiers",  A_ROB(listdbidentifiers)|MAY_UNUSED,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/tests/multiversion.sh 
new/reprepro-5.4.6/tests/multiversion.sh
--- old/reprepro-5.4.3/tests/multiversion.sh    2024-01-07 22:14:06.000000000 
+0100
+++ new/reprepro-5.4.6/tests/multiversion.sh    2024-12-18 15:54:20.000000000 
+0100
@@ -303,6 +303,7 @@
        # Test case for https://github.com/profitbricks/reprepro/issues/8
        rm -rf "$REPO"
        cp -r "${0%/*}/old-database" "$REPO"
+       call $REPREPRO $VERBOSE_ARGS -b $REPO translatelegacyreferences
        call $REPREPRO $VERBOSE_ARGS -b $REPO export
        assertEquals "\
 bullseye|main|amd64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reprepro-5.4.3/uncompression.c 
new/reprepro-5.4.6/uncompression.c
--- old/reprepro-5.4.3/uncompression.c  2024-01-07 22:14:06.000000000 +0100
+++ new/reprepro-5.4.6/uncompression.c  2024-12-18 15:54:20.000000000 +0100
@@ -1430,10 +1430,7 @@
                0
        };
        unsigned char buffer[4096] = {};
-       while ((e = poll(&pollfd, 1, 0)) >= 0) {
-               if (pollfd.revents & POLLERR || pollfd.revents & POLLHUP)
-                       return RET_ERRNO(file->error);
-
+       while ((e = poll(&pollfd, 1, -1)) > 0) {
                e = read(file->fd, buffer, 4096);
                if (e <= 0)
                        break;
@@ -1463,13 +1460,11 @@
                free(file->intermediate.buffer);
                if (file->pipeinfd != -1)
                        (void)close(file->pipeinfd);
-               output_fd = file->fd;
                // Drain the child's stdout in the unlikely case it's blocking 
on it
                e = drain_pipe_fd(file, errno_p, msg_p);
-               if (e != RET_OK) {
-                       (void)close(output_fd);
+               if (e != RET_OK)
                        return e;
-               }
+               output_fd = file->fd;
                file->fd = file->infd;
                result = RET_OK;
                if (file->pid <= 0) {

Reply via email to