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

question about possible freeze exception for reprepro



I'd like to upload a revision of reprepro to unstable targeted
to squeeze with some changes cherry-picked from its CVS and
wanted to ask if those changes are acceptable and if not if
some subset is.

There are 4 changes:

- make it compile with gcc-4.5 (#600982)
  by simple including a header more.
  (gcc-4.5 is not in squeeze, but I guess it would still nice to
   have things in a release buildable with current tools).
- fix an error that reprepro errors out hard claiming out of memory
  when a package has a special override but no normal ones.
- adapt an example in the documentation to current dpkg-source
- add support for "ButAutomaticUpgrades" (compare #600358)
  (that is actually a feature addition, but should have not impact
   on other stuff).

	Bernhard R. Link

Following is the diff of the .debian.tar.gz files.


diff -r -u -N reprepro_4.2.0-1.debian.tar.gz/changelog reprepro_4.2.0-2.debian.tar.gz/changelog
--- reprepro_4.2.0-1.debian.tar.gz/changelog	2010-07-11 12:24:26.000000000 +0200
+++ reprepro_4.2.0-2.debian.tar.gz/changelog	2010-10-22 16:54:03.000000000 +0200
@@ -1,3 +1,13 @@
+reprepro (4.2.0-2) unstable; urgency=low
+
+  * include sys/stat.h in filecntl.h (Closes: 600982)
+  * Don't get confused with packages only having special override
+    entries
+  * adopt changelogs.example to new dpkg-source
+  * add support for ButAutomaticUpgrades (Closes: 600358)
+
+ -- Bernhard R. Link <brlink@debian.org>  Fri, 22 Oct 2010 16:54:03 +0200
+
 reprepro (4.2.0-1) unstable; urgency=low
 
   * Fix Berkley -> Berkeley (Closes: 586899)

diff -r -u -N reprepro_4.2.0-1.debian.tar.gz/patches/series reprepro_4.2.0-2.debian.tar.gz/patches/series
--- reprepro_4.2.0-1.debian.tar.gz/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ reprepro_4.2.0-2.debian.tar.gz/patches/series	2010-10-22 16:54:03.000000000 +0200
@@ -0,0 +1,4 @@
+0001-include-sys-stat-in-filecntl.c.patch
+0002-Fix-error-in-reoverride-with-packages-that-have-a.patch
+0003-replace-sn-with-no-copy-in-changelogs.example.patch
+0004-add-support-for-ButAutomaticUpgrades-thanks-to-Mode.patch

diff -r -u -N reprepro_4.2.0-1.debian.tar.gz/patches/0001-include-sys-stat-in-filecntl.c.patch reprepro_4.2.0-2.debian.tar.gz/patches/0001-include-sys-stat-in-filecntl.c.patch
--- reprepro_4.2.0-1.debian.tar.gz/patches/0001-include-sys-stat-in-filecntl.c.patch	1970-01-01 01:00:00.000000000 +0100
+++ reprepro_4.2.0-2.debian.tar.gz/patches/0001-include-sys-stat-in-filecntl.c.patch	2010-10-22 16:54:02.000000000 +0200
@@ -0,0 +1,24 @@
+From 19e449dc03710c09c6d5571e15a3c78f029bb7ff Mon Sep 17 00:00:00 2001
+From: Bernhard R. Link <brlink@debian.org>
+Date: Thu, 12 Aug 2010 14:15:42 +0000
+Subject: include sys/stat in filecntl.c
+
+---
+ filecntl.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/filecntl.c b/filecntl.c
+index 1da25f5..903349c 100644
+--- a/filecntl.c
++++ b/filecntl.c
+@@ -12,6 +12,7 @@
+ #include <stdbool.h>
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <sys/stat.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <errno.h>
+-- 
+1.5.6.5
+

diff -r -u -N reprepro_4.2.0-1.debian.tar.gz/patches/0002-Fix-error-in-reoverride-with-packages-that-have-a.patch reprepro_4.2.0-2.debian.tar.gz/patches/0002-Fix-error-in-reoverride-with-packages-that-have-a.patch
--- reprepro_4.2.0-1.debian.tar.gz/patches/0002-Fix-error-in-reoverride-with-packages-that-have-a.patch	1970-01-01 01:00:00.000000000 +0100
+++ reprepro_4.2.0-2.debian.tar.gz/patches/0002-Fix-error-in-reoverride-with-packages-that-have-a.patch	2010-10-22 16:54:02.000000000 +0200
@@ -0,0 +1,53 @@
+From ccafd1d03403fc068a3e3abc60998fd5480866b1 Mon Sep 17 00:00:00 2001
+From: Bernhard R. Link <brlink@debian.org>
+Date: Thu, 9 Sep 2010 16:48:46 +0000
+Subject: Fix error in reoverride with packages that have a "$Component" override but no other overrides. (reprepro erroneously thinks it is running out of memory in that case).
+
+---
+ binaries.c |    2 +-
+ override.c |    2 ++
+ sources.c  |    2 +-
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/binaries.c b/binaries.c
+index e9e72bd..31e3228 100644
+--- a/binaries.c
++++ b/binaries.c
+@@ -280,7 +280,7 @@ retvalue binaries_doreoverride(const struct target *target, const char *packagen
+ 		return RET_NOTHING;
+ 
+ 	r = override_allreplacefields(o, &fields);
+-	if( RET_WAS_ERROR(r) )
++	if( !RET_IS_OK(r) )
+ 		return r;
+ 	newchunk = chunk_replacefields(controlchunk, fields, "Filename", false);
+ 	addfield_free(fields);
+diff --git a/override.c b/override.c
+index ba70b3d..9ef52f2 100644
+--- a/override.c
++++ b/override.c
+@@ -382,6 +382,8 @@ retvalue override_allreplacefields(const struct overridedata *override, struct f
+ 				return RET_ERROR_OOM;
+ 		}
+ 	}
++	if( fields == NULL )
++		return RET_NOTHING;
+ 	*fields_p = fields;
+ 	return RET_OK;
+ }
+diff --git a/sources.c b/sources.c
+index 8be47d0..c3944b1 100644
+--- a/sources.c
++++ b/sources.c
+@@ -336,7 +336,7 @@ retvalue sources_doreoverride(const struct target *target, const char *packagena
+ 		return RET_NOTHING;
+ 
+ 	r = override_allreplacefields(o, &fields);
+-	if( RET_WAS_ERROR(r) )
++	if( !RET_IS_OK(r) )
+ 		return r;
+ 	newchunk = chunk_replacefields(controlchunk, fields,
+ 			"Directory", true);
+-- 
+1.5.6.5
+

diff -r -u -N reprepro_4.2.0-1.debian.tar.gz/patches/0003-replace-sn-with-no-copy-in-changelogs.example.patch reprepro_4.2.0-2.debian.tar.gz/patches/0003-replace-sn-with-no-copy-in-changelogs.example.patch
--- reprepro_4.2.0-1.debian.tar.gz/patches/0003-replace-sn-with-no-copy-in-changelogs.example.patch	1970-01-01 01:00:00.000000000 +0100
+++ reprepro_4.2.0-2.debian.tar.gz/patches/0003-replace-sn-with-no-copy-in-changelogs.example.patch	2010-10-22 16:54:02.000000000 +0200
@@ -0,0 +1,25 @@
+From eff9641b21cd035660d4f23b0f7ede82c7960240 Mon Sep 17 00:00:00 2001
+From: Bernhard R. Link <brlink@debian.org>
+Date: Thu, 14 Oct 2010 08:38:07 +0000
+Subject: replace -sn with --no-copy in changelogs.example
+
+---
+ docs/changelogs.example |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/docs/changelogs.example b/docs/changelogs.example
+index 2ff7229..1a133af 100755
+--- a/docs/changelogs.example
++++ b/docs/changelogs.example
+@@ -51,7 +51,7 @@ addsource() {
+ 		echo "extract $CANONDSCFILE information to $TARGETDIR"
+ 		mkdir -p -- "$TARGETDIR"
+ 		EXTRACTDIR="$(mktemp -d)"
+-		(cd -- "$EXTRACTDIR" && dpkg-source -sn -x "$CANONDSCFILE" > /dev/null)
++		(cd -- "$EXTRACTDIR" && dpkg-source --no-copy -x "$CANONDSCFILE" > /dev/null)
+ 		install -D -- "$EXTRACTDIR"/*/debian/copyright "$TARGETDIR/copyright"
+ 		install -D -- "$EXTRACTDIR"/*/debian/changelog "$TARGETDIR/changelog"
+ 		chmod -R u+rwX -- "$EXTRACTDIR"
+-- 
+1.5.6.5
+

diff -r -u -N reprepro_4.2.0-1.debian.tar.gz/patches/0004-add-support-for-ButAutomaticUpgrades-thanks-to-Mode.patch reprepro_4.2.0-2.debian.tar.gz/patches/0004-add-support-for-ButAutomaticUpgrades-thanks-to-Mode.patch
--- reprepro_4.2.0-1.debian.tar.gz/patches/0004-add-support-for-ButAutomaticUpgrades-thanks-to-Mode.patch	1970-01-01 01:00:00.000000000 +0100
+++ reprepro_4.2.0-2.debian.tar.gz/patches/0004-add-support-for-ButAutomaticUpgrades-thanks-to-Mode.patch	2010-10-22 16:54:03.000000000 +0200
@@ -0,0 +1,114 @@
+From 05d098def85d78f311d595482f7617bc9fc136b8 Mon Sep 17 00:00:00 2001
+From: Bernhard R. Link <brlink@debian.org>
+Date: Sat, 16 Oct 2010 12:47:56 +0000
+Subject: add support for ButAutomaticUpgrades (thanks to Modesta Vainius)
+
+---
+ distribution.c   |    3 +++
+ distribution.h   |    3 ++-
+ docs/manual.html |    3 ++-
+ docs/reprepro.1  |    7 +++++++
+ release.c        |    6 ++++++
+ 5 files changed, 20 insertions(+), 2 deletions(-)
+
+diff --git a/distribution.c b/distribution.c
+index 5c657d4..5e39965 100644
+--- a/distribution.c
++++ b/distribution.c
+@@ -52,6 +52,7 @@ static retvalue distribution_free(struct distribution *distribution) {
+ 		free(distribution->version);
+ 		free(distribution->origin);
+ 		free(distribution->notautomatic);
++		free(distribution->butautomaticupgrades);
+ 		free(distribution->label);
+ 		free(distribution->description);
+ 		free(distribution->signwith);
+@@ -387,6 +388,7 @@ CFallSETPROC(distribution, suite)
+ CFallSETPROC(distribution, version)
+ CFallSETPROC(distribution, origin)
+ CFallSETPROC(distribution, notautomatic)
++CFallSETPROC(distribution, butautomaticupgrades)
+ CFtruthSETPROC2(distribution, readonly, readonly)
+ CFallSETPROC(distribution, label)
+ CFallSETPROC(distribution, description)
+@@ -450,6 +452,7 @@ static const struct configfield distributionconfigfields[] = {
+ 	CF("Label",		distribution,	label),
+ 	CF("Log",		distribution,	logger),
+ 	CF("NotAutomatic",	distribution,	notautomatic),
++	CF("ButAutomaticUpgrades", distribution, butautomaticupgrades),
+ 	CF("Origin",		distribution,	origin),
+ 	CF("Pull",		distribution,	pulls),
+ 	CF("ReadOnly",		distribution,	readonly),
+diff --git a/distribution.h b/distribution.h
+index b62269a..5547c4a 100644
+--- a/distribution.h
++++ b/distribution.h
+@@ -35,7 +35,8 @@ struct distribution {
+ 	 * generated, may be NULL. only suite is sometimes used
+ 	 * (and only for sanity checks) */
+ 	/*@null@*/char *suite,*version;
+-	/*@null@*/char *origin,*label,*description,*notautomatic;
++	/*@null@*/char *origin, *label, *description,
++		*notautomatic, *butautomaticupgrades;
+ 	/* What architectures and components are there */
+ 	struct atomlist architectures, components;
+ 	/* which update rules to use */
+diff --git a/docs/manual.html b/docs/manual.html
+index 0e4c4d1..1d4d1a8 100644
+--- a/docs/manual.html
++++ b/docs/manual.html
+@@ -528,7 +528,8 @@ The following headers are copied verbatim to the Release file, if they exist:
+ <tt class="header">Architectures</tt> (excluding a possible value "<tt>source</tt>"),
+ <tt class="header">Components</tt>,
+ <tt class="header">Description</tt>, and
+-<tt class="header">NotAutomatic</tt>.
++<tt class="header">NotAutomatic</tt>,
++<tt class="header">ButAutomaticUpgrades</tt>.
+ <h4><a name="compression">Choosing compression and file names</a></h4>
+ Depending on the type of the index files, different files are generated.
+ No specifying anything is equivalent to:
+diff --git a/docs/reprepro.1 b/docs/reprepro.1
+index 1784ea5..ffa2d1f 100644
+--- a/docs/reprepro.1
++++ b/docs/reprepro.1
+@@ -1087,6 +1087,13 @@ Release files.
+ though anything but \fByes\fP does make much
+ sense right now.)
+ .TP
++.B ButAutomaticUpgrades
++This optional field is simply copied into the
++Release files.
++(The value is handled as arbitrary string,
++though anything but \fByes\fP does make much
++sense right now.)
++.TP
+ .B Description
+ This optional field is simply copied into the
+ Release files.
+diff --git a/release.c b/release.c
+index d9e6faa..4a5097e 100644
+--- a/release.c
++++ b/release.c
+@@ -1131,6 +1131,8 @@ retvalue release_directorydescription(struct release *release, const struct dist
+ 	release_writeheader("Architecture",
+ 			atoms_architectures[target->architecture_atom]);
+ 	release_writeheader("NotAutomatic",distribution->notautomatic);
++	release_writeheader("ButAutomaticUpgrades",
++			distribution->butautomaticupgrades);
+ 	release_writeheader("Description",distribution->description);
+ #undef release_writeheader
+ 	r = release_finishfile(release, f);
+@@ -1291,6 +1293,10 @@ retvalue release_prepare(struct release *release, struct distribution *distribut
+ 		writestring("\nNotAutomatic: ");
+ 		writestring(distribution->notautomatic);
+ 	}
++	if( distribution->butautomaticupgrades != NULL ) {
++		writestring("\nButAutomaticUpgrades: ");
++		writestring(distribution->butautomaticupgrades);
++	}
+ 	writechar('\n');
+ 
+ 	for( cs = cs_md5sum ; cs < cs_hashCOUNT ; cs++ ) {
+-- 
+1.5.6.5
+


Reply to: