Your message dated Sat, 17 Mar 2018 00:35:15 +0000
with message-id <[email protected]>
and subject line Bug#879758: fixed in xfe 1.42.1-1
has caused the Debian Bug report #879758,
regarding xfe: Packages query broken with multi-arch packages
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.)
--
879758: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879758
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: xfe
Version: 1.42-1+b1
Severity: important
Tags: patch
Dear Maintainer,
when the packages query is performed on a file belonging to a multi-arch
package xfe will falsely report that the file does not belong to any package. I
believe this is an important bug, since it might lead unsuspecting users to
delete important system files from their disk, because they think they do not
belong to any installed package and thus are safe to remove.
The bug is caused by the way xfe handles the output string of dpkg -S. It
currently uses the first colon in the string as "field separator", which fails
when the package name is something like "libfoo:amd64". It will also fail when
the file name includes a colon. To verify the latter I looked for files
installed by any package including a colon in their names and found only a
large number of perl-related manpage files in .gz format. I only noticed then
that for no obvious reason the packages query was disabled for archive files.
To verify that the packages query also fails with files including a colon in
their names I (at first temporarily) enabled the packages query also for
archive files. Since I believe that the packages query should be possible for
these manpage files I decided to keep this change then intact in the patch (I
apologize in advance if this was a bad decision).
The patch I wrote now uses the first whitespace character in the dpkg output as
separator instead of the colon. I also modified the algorithm so that it will
work no matter what the file and package names look like. Since package names
may not include space characters I believe this approach should be safe in any
case.
In case you don't want to enable the packages query for archive files (which I
could understand) please just remove that section from the patch (it is only
one line I changed from "if ((num == 1) && !ar)" into "if (num == 1)").
For the reason explained above I think the bug causing the false negatives
should be fixed asap though, probably even in Stable.
Best regards
Michael
-- System Information:
Debian Release: 9.2
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500,
'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.12.0-0.bpo.2-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages xfe depends on:
ii libc6 2.24-11+deb9u1
ii libfontconfig1 2.11.0-6.7+b1
ii libfox-1.6-0 1.6.53-1
ii libfreetype6 2.6.3-3.2
ii libgcc1 1:6.3.0-18
ii libpng16-16 1.6.28-1
ii libstdc++6 6.3.0-18
ii libx11-6 2:1.6.4-3
ii libxft2 2.3.2-1+b2
ii xfe-themes 1.42-1
Versions of packages xfe recommends:
ii audacious 1:3.8.2-dmo1
ii xarchiver 1:0.5.4-7
ii xfe-i18n 1.42-1
ii xterm 327-2
Versions of packages xfe suggests:
ii evince 3.22.1-3+deb9u1
pn meld | diffuse | fldiff <none>
ii rpm 4.12.0.2+dfsg1-2
pn xine-ui <none>
ii xpdf 3.04-4
diff -ur /usr/src/xfe/1.42/xfe-1.42_orig/src/FilePanel.cpp
/usr/src/xfe/1.42/xfe-1.42/src/FilePanel.cpp
--- /usr/src/xfe/1.42/xfe-1.42_orig/src/FilePanel.cpp 2016-07-27
11:48:17.000000000 +0200
+++ /usr/src/xfe/1.42/xfe-1.42/src/FilePanel.cpp 2017-10-24
00:07:28.603964809 +0200
@@ -4535,7 +4535,7 @@
new FXMenuCommand(menu, _("&Add to archive..."), archaddicon,
current, FilePanel::ID_ADD_TO_ARCH);
}
#if defined(linux)
- if ((num == 1) && !ar)
+ if (num == 1)
{
new FXMenuCommand(menu, _("Packages &query "), packageicon,
current, FilePanel::ID_PKG_QUERY);
}
@@ -5944,10 +5944,13 @@
FXString str = text;
if (pkg_format == DEB_PKG) // DEB based distribution
{
- FXString substr = str.section(':', 1);
- if (substr.length()-2 == file.length()) // No other word than the file
name
+ int idx = str.find(" "); // split output at first whitespace
+ FXString pkgname = str.left(idx-1); // remove trailing colon
+ FXString fname = str.right(str.length()-idx);
+ fname.trim(); // remove leading space and trailing newline
+ if (streq(fname.text(), file.text())) // No other word than the file
name
{
- str = str.section(':', 0); // (plus ' ' at the beginning
and '\n' at the end)
+ str = pkgname.text();
}
else
{
diff -ur /usr/src/xfe/1.42/xfe-1.42_orig/src/SearchPanel.cpp
/usr/src/xfe/1.42/xfe-1.42/src/SearchPanel.cpp
--- /usr/src/xfe/1.42/xfe-1.42_orig/src/SearchPanel.cpp 2016-07-27
11:46:58.000000000 +0200
+++ /usr/src/xfe/1.42/xfe-1.42/src/SearchPanel.cpp 2017-10-24
00:08:20.902137622 +0200
@@ -2307,7 +2307,7 @@
new FXMenuCommand(menu, _("&Add to archive..."), archaddicon,
this, SearchPanel::ID_ADD_TO_ARCH);
}
#if defined(linux)
- if ((num == 1) && !ar)
+ if (num == 1)
{
new FXMenuCommand(menu, _("&Packages query "), packageicon, this,
SearchPanel::ID_PKG_QUERY);
}
@@ -4361,10 +4361,13 @@
FXString str = text;
if (pkg_format == DEB_PKG) // DEB based distribution
{
- FXString substr = str.section(':', 1);
- if (substr.length()-2 == file.length()) // No other word than the file
name
+ int idx = str.find(" "); // split output at first whitespace
+ FXString pkgname = str.left(idx-1); // remove trailing colon
+ FXString fname = str.right(str.length()-idx);
+ fname.trim(); // remove leading space and trailing newline
+ if (streq(fname.text(), file.text())) // No other word than the file
name
{
- str = str.section(':', 0); // (plus ' ' at the beginning
and '\n' at the end)
+ str = pkgname.text();
}
else
{
diff -ur /usr/src/xfe/1.42/xfe-1.42_orig/src/FilePanel.cpp
/usr/src/xfe/1.42/xfe-1.42/src/FilePanel.cpp
--- /usr/src/xfe/1.42/xfe-1.42_orig/src/FilePanel.cpp 2016-07-27
11:48:17.000000000 +0200
+++ /usr/src/xfe/1.42/xfe-1.42/src/FilePanel.cpp 2017-10-24
00:07:28.603964809 +0200
@@ -4535,7 +4535,7 @@
new FXMenuCommand(menu, _("&Add to archive..."), archaddicon,
current, FilePanel::ID_ADD_TO_ARCH);
}
#if defined(linux)
- if ((num == 1) && !ar)
+ if (num == 1)
{
new FXMenuCommand(menu, _("Packages &query "), packageicon,
current, FilePanel::ID_PKG_QUERY);
}
@@ -5944,10 +5944,13 @@
FXString str = text;
if (pkg_format == DEB_PKG) // DEB based distribution
{
- FXString substr = str.section(':', 1);
- if (substr.length()-2 == file.length()) // No other word than the file
name
+ int idx = str.find(" "); // split output at first whitespace
+ FXString pkgname = str.left(idx-1); // remove trailing colon
+ FXString fname = str.right(str.length()-idx);
+ fname.trim(); // remove leading space and trailing newline
+ if (streq(fname.text(), file.text())) // No other word than the file
name
{
- str = str.section(':', 0); // (plus ' ' at the beginning
and '\n' at the end)
+ str = pkgname.text();
}
else
{
diff -ur /usr/src/xfe/1.42/xfe-1.42_orig/src/SearchPanel.cpp
/usr/src/xfe/1.42/xfe-1.42/src/SearchPanel.cpp
--- /usr/src/xfe/1.42/xfe-1.42_orig/src/SearchPanel.cpp 2016-07-27
11:46:58.000000000 +0200
+++ /usr/src/xfe/1.42/xfe-1.42/src/SearchPanel.cpp 2017-10-24
00:08:20.902137622 +0200
@@ -2307,7 +2307,7 @@
new FXMenuCommand(menu, _("&Add to archive..."), archaddicon,
this, SearchPanel::ID_ADD_TO_ARCH);
}
#if defined(linux)
- if ((num == 1) && !ar)
+ if (num == 1)
{
new FXMenuCommand(menu, _("&Packages query "), packageicon, this,
SearchPanel::ID_PKG_QUERY);
}
@@ -4361,10 +4361,13 @@
FXString str = text;
if (pkg_format == DEB_PKG) // DEB based distribution
{
- FXString substr = str.section(':', 1);
- if (substr.length()-2 == file.length()) // No other word than the file
name
+ int idx = str.find(" "); // split output at first whitespace
+ FXString pkgname = str.left(idx-1); // remove trailing colon
+ FXString fname = str.right(str.length()-idx);
+ fname.trim(); // remove leading space and trailing newline
+ if (streq(fname.text(), file.text())) // No other word than the file
name
{
- str = str.section(':', 0); // (plus ' ' at the beginning
and '\n' at the end)
+ str = pkgname.text();
}
else
{
--- End Message ---
--- Begin Message ---
Source: xfe
Source-Version: 1.42.1-1
We believe that the bug you reported is fixed in the latest version of
xfe, 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.
Joachim Wiedorn <[email protected]> (supplier of updated xfe 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: Fri, 16 Mar 2018 23:55:00 +0100
Source: xfe
Binary: xfe xfe-i18n xfe-themes
Architecture: all amd64 i386 source
Version: 1.42.1-1
Distribution: unstable
Urgency: medium
Maintainer: Joachim Wiedorn <[email protected]>
Changed-By: Joachim Wiedorn <[email protected]>
Closes: 862968 879758 892445
Description:
xfe-i18n - lightweight file manager for X11 (i18n support)
xfe - lightweight file manager for X11
xfe-themes - lightweight file manager for X11 (themes)
Changes:
xfe (1.42.1-1) unstable; urgency=medium
.
* New (unofficial) upstream release.
* Update some patches. Remove obsolete patch (24). Add new patches:
- Patch for pkgquery for multiarch (thanks to Michael Lange).
Closes: #879758
- Patch replacing unrar with free unar (thanks to Baptiste Jammet).
Closes: #862968
- Patch searching freetype2 with pkg-config. Closes: #892445
* debian/control:
- Bump to Standards Version: 4.1.3 (no changes).
- Move to debhelper 10 and compat level 10.
- Update Vcs links (salsa instead of alioth).
Checksums-Sha1:
1a39fede61232cca2b1cc1aa9f29ad5598f7a9ca 1846 xfe_1.42.1-1.dsc
7288e7b9f56fad2e8c1691cdc744e463dd097f41 2817105 xfe_1.42.1.orig.tar.gz
02ec96543bc7f81e942a59c67dfd31d4cb283c40 29044 xfe_1.42.1-1.debian.tar.xz
51d9a9ca775b32e43a598f1b6a03d82a293b5abb 4159844 xfe-dbgsym_1.42.1-1_amd64.deb
b2fdaf2b88f43ff4fa000bbea181e74cfe3d0eb8 282320 xfe-i18n_1.42.1-1_all.deb
77211e49d2e6bb7c9a15af42e41b739423a93cc2 664196 xfe-themes_1.42.1-1_all.deb
de4dc6822cad864737070ee0cdd1910152642b43 10493 xfe_1.42.1-1_amd64.buildinfo
eefe5aac5f6b50608ce90f262fd5feb1472aa654 773108 xfe_1.42.1-1_amd64.deb
5e362f5c07bbd7e32430f0fb2cbdc3706d8db36d 3521944 xfe-dbgsym_1.42.1-1_i386.deb
f7b752de65b22a0af415371098bb7f9e18d4935b 9019 xfe_1.42.1-1_i386.buildinfo
ae4755c4e3b4f2d76e5c5cb3437493023b88da5e 811280 xfe_1.42.1-1_i386.deb
Checksums-Sha256:
853ec3fdee6319fb40b0c0a6a8e5ea121931ee7f2fe26c0254a3234b056d6f81 1846
xfe_1.42.1-1.dsc
4e4502b1d7eb382e8d752779a3b2040a655baa03993297710cabf549246b9bc7 2817105
xfe_1.42.1.orig.tar.gz
a813ce91f9a397882a417f322f10855464d178cfa8548e8a688e0d96c11a6c5d 29044
xfe_1.42.1-1.debian.tar.xz
329db10144b696a2c30c269795c8665b209991850310837e8f553b0d9511f676 4159844
xfe-dbgsym_1.42.1-1_amd64.deb
07bfb952a6e8dd566858d7da795ab8d9ca18ffc5d640ede5f64a8938e71c387d 282320
xfe-i18n_1.42.1-1_all.deb
6657816bc64827f0161b82658da069932101e6c518e2eac1b35de8cfcfbe1cee 664196
xfe-themes_1.42.1-1_all.deb
dd419f7835ecc024de613ab2c3958d12560b5f4807ff887d34f204bdd92631c9 10493
xfe_1.42.1-1_amd64.buildinfo
4ed2b116ce1f8c8c7420e53a19af5cd973e8f1996a8e50125fa2969bfadf07ab 773108
xfe_1.42.1-1_amd64.deb
15540e8c5a52b0e7fc7f105edfa9a37f1091d07d87b9c7db0d21b54aefc59270 3521944
xfe-dbgsym_1.42.1-1_i386.deb
bbfe3390ff06ae06a1b5b42b7922d1e3a2a3bf11c2228d52f5f2a6990c30193c 9019
xfe_1.42.1-1_i386.buildinfo
32a05544689688d3b5b137703018db451ff17a7df72343c0bbb355b7a3193c34 811280
xfe_1.42.1-1_i386.deb
Files:
c4c2700a067de6bd211516ba27c5b148 1846 x11 optional xfe_1.42.1-1.dsc
c0f0ca02466fdd9a2889b0fa329a9a4f 2817105 x11 optional xfe_1.42.1.orig.tar.gz
9921c6dde8f696cd9f0da06d36bd5051 29044 x11 optional xfe_1.42.1-1.debian.tar.xz
045b4d66f679e7daaa4eb06a73c6694b 4159844 debug optional
xfe-dbgsym_1.42.1-1_amd64.deb
05516896073ddcaa592e6dc78b5a8039 282320 localization optional
xfe-i18n_1.42.1-1_all.deb
276aaa0f6a9323a9eb1a550c37cc339c 664196 x11 optional
xfe-themes_1.42.1-1_all.deb
4e00587f020d94118b13dd7d496f1f4d 10493 x11 optional
xfe_1.42.1-1_amd64.buildinfo
a282787cd9473fdaa3c96d87a0556966 773108 x11 optional xfe_1.42.1-1_amd64.deb
28bd2eaba97b85b7d15628b1f2471b9e 3521944 debug optional
xfe-dbgsym_1.42.1-1_i386.deb
3b3a9bf42c48b37719e53a70685ed3c9 9019 x11 optional xfe_1.42.1-1_i386.buildinfo
9beb9d0df8d79529e1eb7c44e6f022bf 811280 x11 optional xfe_1.42.1-1_i386.deb
-----BEGIN PGP SIGNATURE-----
iQGzBAEBCgAdFiEEuiB7VTCOYLwzX77x8VbpZqUQ5LwFAlqsVTkACgkQ8VbpZqUQ
5LzRPQv/ZjIJ8IXIXcUOEKhg2ShBUkLUstjVlp7u4Go5z3X/xICkjZRr0+DlDBmn
MBYW8h3+rfdjK9LCKxrRWPbPlh+9psPtU73Crj1ackML3lOnlPsn9Gjqb96EQpAK
RLL5UbilrhZk6lBUfo6CbS/pnA2FTbRXcyDo+uLVI03N1AR/h4T6e3YKnjXf2otI
1FsfSbWX5V1DIObNU9PuBjX0DVU5MS1d8fFn3w18scCV2m09gAaUijCtyjZ/Rxzp
mOn3Lqj9Abn1BrG7w6vwgLZXrRY4sBm3gdXKtWXMZGMCK3Cv/yMe+9ahq1exybJ4
pZlnVlFfnXGeMXiSu5Luv1WXL27AEWv53dKQ0pqJ87vk1cz3s0clGTWhVHrb246T
s+9hdwHgAUM9MJImwq0/zlLOkSd99YcPLT7njd8ajOAmwi9dM/tx2GeXnISbRRND
XLMQk8znO0/yjEV/AeczuExgLvU+qph5h8knWQ5TdbZ7QLm8JWqNhsuPXxhc+8B/
L6hdl4nh
=6uvr
-----END PGP SIGNATURE-----
--- End Message ---