If you do a `rpm -qlv` of a package where file owner or group name has 8 or 
more characters, the following problems happen:

* Owner and group names are truncated to 8 characters even if they are longer.
* If owner name has 8 characters (after the truncation mentioned in the 
previous point), there's no space printed in between owner and group name.

Using `amanda` package from Fedora to demonstrate the problem:

~~~
$ rpm -qlvp amanda-3.5.1-13.el8.x86_64.rpm | tail -n 4
drwxr-xr-x    2 amandabadisk                        0 Aug 12 10:45 
/var/lib/amanda
-rw-------    1 amandabadisk                     1181 Aug 12 10:45 
/var/lib/amanda/.amandahosts
drwxrws---    2 amandabadisk                        0 Aug 12 10:45 
/var/log/amanda
drwxrws---    2 amandabadisk                        0 Aug 12 10:45 
/var/log/amanda/amandad
~~~

The owner of those files is `amandabackup`.  That is truncated to `amandaba` 
and later on printed with group name `disk` without any white space in between 
as `amandabadisk`.

The first problem seems to occur here:

https://github.com/rpm-software-management/rpm/blob/rpm-4.14.2-release/lib/query.c#L44-L45

I guess you may be more reluctant to fix this, as it can have impact on the 
output format.

The second is likely here:

https://github.com/rpm-software-management/rpm/blob/rpm-4.14.2-release/lib/query.c#L86-L88

that contains `%-8s%-8s` to print `ownerfield` and `groupfield`.  Adding a 
space in between would also change format, but I this problem worse than the 
truncation problem.

*Workaround:*

Use `--queryformat`.  This aims to produce similar output:

~~~
$ rpm -q --qf "[%{FILEMODES:perms} %4{FILENLINKS} %-8{FILEUSERNAME} 
%-8{FILEGROUPNAME} %10{FILESIZES} %{FILENAMES}\n]" -p 
amanda-3.5.1-13.el8.x86_64.rpm | tail -n 4
drwxr-xr-x    1 amandabackup disk              0 /var/lib/amanda
-rw-------    1 amandabackup disk           1181 /var/lib/amanda/.amandahosts
drwxrws---    1 amandabackup disk              0 /var/log/amanda
drwxrws---    1 amandabackup disk              0 /var/log/amanda/amandad
~~~

However, fancy date/time formatting, or symlink target printing (with ` -> `) 
may not be doable that way.  Also note that nlinks info does not match.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/544
_______________________________________________
Rpm-maint mailing list
Rpm-maint@lists.rpm.org
http://lists.rpm.org/mailman/listinfo/rpm-maint

Reply via email to