Your message dated Fri, 26 Dec 2025 21:40:45 +0000
with message-id <[email protected]>
and subject line Bug#1112675: fixed in xe 1.0-1
has caused the Debian Bug report #1112675,
regarding ITS: xe - package new upstream xe v1.0 - pending LowNMU upload
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1112675: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1112675
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: xe
Severity: important
X-Debbugs-CC: [email protected], [email protected]

Hi

I have prepared packaging of v1.0 here:

https://salsa.debian.org/jas/xe/-/commits/debian/latest?ref_type=HEADS

The Salsa CI pipeline passes:

https://salsa.debian.org/jas/xe/-/pipelines

Attaching a debdiff compared to 0.11-5 below.

Nicoo, do you want to upload 1.0 yourself?  I am happy to co-maintain
and or just provide this as a one-time contribution if you prefer to
stay single maintainer of this package.  Given that you marked yourself
as LowNMU I suppose you are okay with uploads given advance notice too
(as in this e-mail).  I don't care strongly which route to proceed with.
We could also just move it to some team that maintains it, although I'm
not sure which team is most appropriate.

As per

https://www.debian.org/doc/manuals/developers-reference/pkgs.en.html#package-salvaging
https://wiki.debian.org/PackageSalvaging

this is also an attempt at salvaging this package -- so please help me
follow the process correctly if I mis to do something right here -- for
the following reasons:

- There is no visible activity regarding the package for six months

MIA team, do you have anything to add?

/Simon
diff -Nru xe-0.11/debian/changelog xe-1.0/debian/changelog
--- xe-0.11/debian/changelog	2020-11-02 11:43:50.000000000 +0100
+++ xe-1.0/debian/changelog	2025-08-31 20:39:43.000000000 +0200
@@ -1,3 +1,25 @@
+xe (1.0-1) unstable; urgency=medium
+
+  * LowNMU/PackageSalvage upload.
+
+  [ Simon Josefsson ]
+  * Add d/salsa-ci.yml.
+  * Use gbp debian-branch debian/latest.
+  * New upstream version 1.0
+
+  [ Debian Janitor ]
+  * Bump debhelper from old 12 to 13.
+    + debian/rules: Drop --fail-missing argument to dh_missing,
+    which is now the default.
+  * Set upstream metadata fields: Repository.
+  * Update standards version to 4.6.2, no changes needed.
+
+  [ Simon Josefsson ]
+  * Add myself as Maintainer, moving nicoo to Uploaders.  For ITS.
+  * Bump debian/* copyright years.
+
+ -- Simon Josefsson <[email protected]>  Sun, 31 Aug 2025 20:39:43 +0200
+
 xe (0.11-5) unstable; urgency=medium
 
   [ Helmut Grohne ]
diff -Nru xe-0.11/debian/control xe-1.0/debian/control
--- xe-0.11/debian/control	2020-11-02 11:43:50.000000000 +0100
+++ xe-1.0/debian/control	2025-08-31 19:08:50.000000000 +0200
@@ -1,9 +1,10 @@
 Source: xe
-Maintainer: nicoo <[email protected]>
+Maintainer: Simon Josefsson <[email protected]>
+Uploaders: nicoo <[email protected]>
 Section: utils
 Priority: optional
-Build-Depends: debhelper-compat (= 12)
-Standards-Version: 4.5.0
+Build-Depends: debhelper-compat (= 13)
+Standards-Version: 4.7.2
 Homepage: https://git.vuxu.org/xe/about/
 Vcs-Browser: https://salsa.debian.org/debian/xe
 Vcs-Git: https://salsa.debian.org/debian/xe.git
diff -Nru xe-0.11/debian/copyright xe-1.0/debian/copyright
--- xe-0.11/debian/copyright	2020-11-02 11:43:50.000000000 +0100
+++ xe-1.0/debian/copyright	2025-08-31 19:10:03.000000000 +0200
@@ -8,6 +8,7 @@
 
 Files: debian/*
 Copyright: Copyright (c) 2017-2020 nicoo <[email protected]>
+           Copyright (c) 2025 Simon Josefsson <[email protected]>
 License: CC0-1.0
 
 License: CC0-1.0
diff -Nru xe-0.11/debian/gbp.conf xe-1.0/debian/gbp.conf
--- xe-0.11/debian/gbp.conf	2020-11-02 11:43:50.000000000 +0100
+++ xe-1.0/debian/gbp.conf	2025-08-31 19:05:43.000000000 +0200
@@ -1,5 +1,5 @@
 [DEFAULT]
 upstream-tag = v%(version)s
 pristine-tar = True
-debian-branch = debian/sid
+debian-branch = debian/latest
 dist = DEP14
diff -Nru xe-0.11/debian/rules xe-1.0/debian/rules
--- xe-0.11/debian/rules	2020-11-02 11:43:50.000000000 +0100
+++ xe-1.0/debian/rules	2025-08-31 19:08:03.000000000 +0200
@@ -13,6 +13,3 @@
 
 override_dh_installchangelogs:
 	dh_installchangelogs NEWS.md
-
-override_dh_missing:
-	dh_missing --fail-missing
diff -Nru xe-0.11/debian/salsa-ci.yml xe-1.0/debian/salsa-ci.yml
--- xe-0.11/debian/salsa-ci.yml	1970-01-01 01:00:00.000000000 +0100
+++ xe-1.0/debian/salsa-ci.yml	2025-08-31 19:05:39.000000000 +0200
@@ -0,0 +1,3 @@
+---
+include:
+  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/recipes/debian.yml
diff -Nru xe-0.11/debian/upstream/metadata xe-1.0/debian/upstream/metadata
--- xe-0.11/debian/upstream/metadata	1970-01-01 01:00:00.000000000 +0100
+++ xe-1.0/debian/upstream/metadata	2025-08-31 19:08:03.000000000 +0200
@@ -0,0 +1,2 @@
+---
+Repository: https://git.vuxu.org/xe/
diff -Nru xe-0.11/NEWS.md xe-1.0/NEWS.md
--- xe-0.11/NEWS.md	2017-11-05 21:03:12.000000000 +0100
+++ xe-1.0/NEWS.md	2023-08-05 16:34:27.000000000 +0200
@@ -1,5 +1,11 @@
 ## HEAD
 
+## 1.0 (2023-08-05)
+
+* Slightly incompatible change: properly forward errors on exec,
+  return 123 on any exit status 1-254 (like GNU xargs).
+* Small bugfixes.
+
 ## 0.11 (2017-11-05)
 
 * Add zsh completion.
@@ -32,5 +38,5 @@
 ## 0.7 (2017-04-13)
 
 * Error when the `-A` separator does not appear
-* Bug: fix quoting of empty strings
+* Bugfix: fix quoting of empty strings
 * Documentation fixes
diff -Nru xe-0.11/t/errors.t xe-1.0/t/errors.t
--- xe-0.11/t/errors.t	2017-11-05 21:03:12.000000000 +0100
+++ xe-1.0/t/errors.t	2023-08-05 16:34:27.000000000 +0200
@@ -1,7 +1,7 @@
 #!/bin/sh
 export "PATH=.:$PATH"
 
-printf '1..13\n'
+printf '1..16\n'
 printf '# error handling\n'
 
 tap3 'exit code on success' <<'EOF'
@@ -19,6 +19,27 @@
 <<<
 a
 >>>= 123
+EOF
+
+tap3 'exit code on when command fails with 126' <<'EOF'
+xe -s 'exit 126'
+<<<
+a
+>>>= 123
+EOF
+
+tap3 'exit code on when command fails with 127' <<'EOF'
+xe -s 'exit 127'
+<<<
+a
+>>>= 123
+EOF
+
+tap3 'exit code on when command fails with 250' <<'EOF'
+xe -s 'exit 250'
+<<<
+a
+>>>= 123
 EOF
 
 tap3 'exit code on when command fails with 255' <<'EOF'
diff -Nru xe-0.11/t/limits.t xe-1.0/t/limits.t
--- xe-0.11/t/limits.t	2017-11-05 21:03:12.000000000 +0100
+++ xe-1.0/t/limits.t	2023-08-05 16:34:27.000000000 +0200
@@ -15,10 +15,10 @@
 EOF
 
 tap3 'argslen check' <<'EOF'
-perl -e 'print "x"x8000, "\n" for 1..42' |
+perl -e 'print "x"x12000, "\n" for 1..23' |
 	xe -N0 -s 'echo $#'
 >>>
-16
-16
 10
+10
+3
 EOF
diff -Nru xe-0.11/xe.1 xe-1.0/xe.1
--- xe-0.11/xe.1	2017-11-05 21:03:12.000000000 +0100
+++ xe-1.0/xe.1	2023-08-05 16:34:27.000000000 +0200
@@ -1,4 +1,4 @@
-.Dd November 3, 2017
+.Dd August 1, 2023
 .Dt XE 1
 .Os
 .Sh NAME
@@ -100,8 +100,8 @@
 The options are as follows:
 .Bl -tag -width Ds
 .It Fl 0
-Input filenames are separated by NUL bytes (instead of newlines, which
-is the default)
+Input arguments are separated by NUL bytes (instead of newlines, which
+is the default).
 .It Fl F
 Fatal:
 stop and exit when a command execution fails.
@@ -247,7 +247,7 @@
 .It 0
 on success
 .It 123
-if any invocation of the command exited with status 1 to 125.
+if any invocation of the command exited with status 1 to 254.
 .It 124
 if the command exited with status 255
 .It 125
diff -Nru xe-0.11/xe.c xe-1.0/xe.c
--- xe-0.11/xe.c	2017-11-05 21:03:12.000000000 +0100
+++ xe-1.0/xe.c	2023-08-05 16:34:27.000000000 +0200
@@ -99,17 +99,15 @@
 
 my_child:
 	if (WIFEXITED(status)) {
-		if (WEXITSTATUS(status) >= 1 && WEXITSTATUS(status) <= 125) {
+		if (WEXITSTATUS(status) == 255) {
+			fprintf(stderr, "xe: job %ld [pid %ld] exited with status 255\n", children[i].iter, (long)pid);
+			exit(124);
+		} else if (WEXITSTATUS(status) > 0) {
 			if (Fflag) {
 				fprintf(stderr, "xe: job %ld [pid %ld] exited with status %d\n", children[i].iter, (long)pid, WEXITSTATUS(status));
 				exit(123);
 			}
 			failed = 1;
-		} else if (WEXITSTATUS(status) == 255) {
-			fprintf(stderr, "xe: job %ld [pid %ld] exited with status 255\n", children[i].iter, (long)pid);
-			exit(124);
-		} else if (WEXITSTATUS(status) > 125) {
-			exit(WEXITSTATUS(status));
 		}
 	} else if (WIFSIGNALED(status)) {
 		fprintf(stderr, "xe: job %ld [pid %ld] terminated by signal %d\n",
@@ -130,7 +128,7 @@
 }
 
 static void
-shquote(const char *s)
+sh_quote(const char *s)
 {
 	if (*s &&
 	    !strpbrk(s, "\001\002\003\004\005\006\007\010"
@@ -159,7 +157,7 @@
 	for (i = 0; i < argslen; i++) {
 		if (i > 0)
 			fprintf(traceout, " ");
-		shquote(args[i]);
+		sh_quote(args[i]);
 	}
 	fprintf(traceout, "\n");
 	fflush(traceout);
@@ -232,8 +230,17 @@
 			exit(126);
 	}
 
+	unsigned char status;
+	int alivepipefd[2];
+	if (pipe(alivepipefd) < 0)
+		exit(126);
+	fcntl(alivepipefd[0], F_SETFD, FD_CLOEXEC);
+	fcntl(alivepipefd[1], F_SETFD, FD_CLOEXEC);
+
 	pid = fork();
 	if (pid == 0) {  // in child
+		close(alivepipefd[0]);
+
 		char iter[32];
 		snprintf(iter, sizeof iter, "%ld", iterations);
 		setenv("ITER", iter, 1);
@@ -268,14 +275,26 @@
 
 		execvp(args[0], args);
 
-		int status = (errno == ENOENT ? 127 : 126);
+		status = (errno == ENOENT ? 127 : 126);
+		if (write(alivepipefd[1], &status, 1) != 1) {
+			/* ignored */
+		}
 		fprintf(stderr, "xe: %s: %s\n", args[0], strerror(errno));
-		exit(status);
+		_exit(status);
 	} else if (pid < 0) {  // fork failed
 		fprintf(stderr, "xe: %s: %s\n", args[0], strerror(errno));
 		exit(126);
 	}
 
+	close(alivepipefd[1]);
+	if (read(alivepipefd[0], &status, 1) == 1) {
+		if (status == 126)
+			exit(126);
+		if (status == 127)
+			exit(127);
+	}
+	close(alivepipefd[0]);
+
 	if (Lflag) {
 		long iter = iterations;
 		lpid = fork();
@@ -299,7 +318,7 @@
 				if (vflag > 1 || Lflag > 1)
 					printf("%04ld= ", iter);
 				fwrite(line, 1, rd, stdout);
-			};
+			}
 		}
 		if (lpid < 0)
 			exit(126);

Attachment: signature.asc
Description: PGP signature


--- End Message ---
--- Begin Message ---
Source: xe
Source-Version: 1.0-1
Done: Simon Josefsson <[email protected]>

We believe that the bug you reported is fixed in the latest version of
xe, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Simon Josefsson <[email protected]> (supplier of updated xe package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Sun, 31 Aug 2025 20:39:43 +0200
Source: xe
Architecture: source
Version: 1.0-1
Distribution: unstable
Urgency: medium
Maintainer: Simon Josefsson <[email protected]>
Changed-By: Simon Josefsson <[email protected]>
Closes: 1112675
Changes:
 xe (1.0-1) unstable; urgency=medium
 .
   * LowNMU/PackageSalvage upload (Closes: #1112675)
 .
   [ Simon Josefsson ]
   * Add d/salsa-ci.yml.
   * Use gbp debian-branch debian/latest.
   * New upstream version 1.0
 .
   [ Debian Janitor ]
   * Bump debhelper from old 12 to 13.
     + debian/rules: Drop --fail-missing argument to dh_missing,
     which is now the default.
   * Set upstream metadata fields: Repository.
   * Update standards version to 4.6.2, no changes needed.
 .
   [ Simon Josefsson ]
   * Add myself as Maintainer, moving nicoo to Uploaders.  For ITS.
   * Bump debian/* copyright years.
Checksums-Sha1:
 f95f671c6b914e25494a63d7d6e3d3c6e170b227 2194 xe_1.0-1.dsc
 fc6461d7b000199580c63a513e731f475d909f85 12868 xe_1.0.orig.tar.xz
 3c5d1464cd0d6fc111058e17c9e1de420455c176 3892 xe_1.0-1.debian.tar.xz
 ef76511b207b3d5a2995f55710e7cfd39d248d43 6232 xe_1.0-1_amd64.buildinfo
Checksums-Sha256:
 7a03e93e10957140aac670a2baf56e2600d09d3a7bf43820cc101dda84b53520 2194 
xe_1.0-1.dsc
 05c1c6ed93515629192fefe92aeaf4021eec7342417ca254cff84cbab0fadbe6 12868 
xe_1.0.orig.tar.xz
 a603ebb80b03cf77d7eafe5e25d50544ac14399c6935ae550e1b925d17135cdb 3892 
xe_1.0-1.debian.tar.xz
 e6b576d79b60a79dbaf6319e8eab65dc495bc75603ad0c03879b469da1f8e66f 6232 
xe_1.0-1_amd64.buildinfo
Files:
 d00533b59fa1a21f869e514b8c3ee506 2194 utils optional xe_1.0-1.dsc
 51847cf91856b9854f272cc6b73fc9b7 12868 utils optional xe_1.0.orig.tar.xz
 cbe312e3875c3cad848f5123202fd9a3 3892 utils optional xe_1.0-1.debian.tar.xz
 d3129982343d17bfc2e09d4279455978 6232 utils optional xe_1.0-1_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQNoBAEWCgMQFiEEo8ychwudMQq61M8vUXIrCP5HRaIFAmlFuHkUHHNpbW9uQGpv
c2Vmc3Nvbi5vcmfCHCYAmDMEXJLOtBYJKwYBBAHaRw8BAQdACIcrZIvhrxDBkK9f
V+QlTmXxo2naObDuGtw58YaxlOu0JVNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9z
ZWZzc29uLm9yZz6IlgQTFggAPgIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgBYh
BLHSvRN1vst4TPT4xNc89jjFPAa+BQJn0XQkBQkNZGbwAAoJENc89jjFPAa+BtIA
/iR73CfBurG9y8pASh3cbGOMHpDZfMAtosu6jbpO69GHAP4p7l57d+iVty2VQMsx
+3TCSAvZkpr4P/FuTzZ8JZe8BrgzBFySz4EWCSsGAQQB2kcPAQEHQOxTCIOaeXAx
I2hIX4HK9bQTpNVei708oNr1Klm8qCGKiPUEGBYIACYCGwIWIQSx0r0Tdb7LeEz0
+MTXPPY4xTwGvgUCZ9F0SgUJDWRmSQCBdiAEGRYIAB0WIQSjzJyHC50xCrrUzy9R
cisI/kdFogUCXJLPgQAKCRBRcisI/kdFoqdMAQCgH45aseZgIrwKOvUOA9QfsmeE
8GZHYNuFHmM9FEQS6AD6A4x5aYvoY6lo98pgtw2HPDhmcCXFItjXCrV4A0GmJA4J
ENc89jjFPAa+wUUBAO64fbZek6FPlRK0DrlWsrjCXuLi6PUxyzCAY6lG2nhUAQC6
qobB9mkZlZ0qihy1x4JRtflqFcqqT9n7iUZkCDIiDbg4BFySz2oSCisGAQQBl1UB
BQEBB0AxlRumDW6nZY7A+VCfek9VpEx6PJmdJyYPt3lNHMd6HAMBCAeIfgQYFggA
JgIbDBYhBLHSvRN1vst4TPT4xNc89jjFPAa+BQJn0XTSBQkNZGboAAoJENc89jjF
PAa+0M0BAPPRq73kLnHYNDMniVBOzUdi2XeF32idjEWWfjvyIJUOAP4wZ+ALxIeh
is3Uw2BzGZE6ttXQ2Q+DeCJO3TPpIqaXDAAKCRBRcisI/kdFom8zAP4hQ3d4xvJX
iPqHgLIPuFZR0SvwSAPPOlQWEuT7JonFlwD+KIVMXN7lGH2mzqSobV6c8G1OC4eo
Yu1IfyC8MHCVyws=
=wWF3
-----END PGP SIGNATURE-----

Attachment: pgp5CJ6hRuR0s.pgp
Description: PGP signature


--- End Message ---

Reply via email to