#750863 UDD: please include package contents information

#750863#3
Date:
2014-06-07 18:10:00 UTC
From:
To:
It'd be quite handy to have package contents information in UDD.

Columns, in addition to a unique package ID foreign-keyed to the
packages table:

filename
owner
group
mode


- Josh Triplett

#750863#8
Date:
2015-03-18 17:36:02 UTC
From:
To:
Hi Josh,

What is your use case for that?

This would add quite a lot of information to UDD, so I'd like to make
sure it's really useful before implementing this.

Lucas

#750863#13
Date:
2015-03-18 17:59:35 UTC
From:
To:
I'd like to search for files shipped in packages with user:group other
than root:root, or with modes other than 644 or 755 (as appropriate for
file/directory).  Right now, that would require downloading and
unpacking every package.

That actually suggests a useful compression technique: for owner, group,
and mode, you could provide a table or tables that *only* list unusual
files/directories that have user:group other than root:root or a mode
other than 644/755.  The rest of the data could then be synthesized with
an appropriate view.  That would eliminate the metadata entries for the
vast majority of the files in Debian packages, while transparently
providing all the same data.

I'd also like to search for packages that contain empty directories
(easily found by looking for directories without containing files) and
correlate that with whether any other package ships files in that
directory (or if it's provided solely for users).

And I'd like to search for things like filename conflicts and compare
them to package metadata; for instance, do packages that ship the same
filename conflict or not, and do the versions of the conflict match the
versions that ship the same file?  (That won't be perfect, since it
can't take diversions into account, which are unfortunately still
programmatic in maintainer scripts rather than being declarative.)

- Josh Triplett

#750863#18
Date:
2015-03-18 19:14:20 UTC
From:
To:
these could be found by inspecting the Contents file - this is how it
is done in [1]. This is today integrated in piuparts, code to find
packages sharing a path name can be found in [2].

[1] https://qa.debian.org/dose/file-overwrites.html
[2] https://alioth.debian.org/scm/browser.php?group_id=30965

#750863#23
Date:
2015-03-18 20:21:41 UTC
From:
To:
Sure, though that's not correlated by version and package metadata the
way UDD is.  But yeah, that use case is much lower priority for me than
the metadata issue (user/group/mode).

- Josh Triplett

#750863#28
Date:
2015-03-18 21:28:46 UTC
From:
To:
Wouldn't this one be better solved as a lintian check?

Lucas

#750863#33
Date:
2015-03-18 22:07:49 UTC
From:
To:
The conflicts item?  Lintian doesn't always have multiple packages
around for a simultaneous check.

The user/group/mode item?  No, I'm not looking to write a specific
lintian check there; I'm trying to evaluate usage of specific
users/groups/modes as part of trying to find better ways to handle them.

- Josh Triplett

#750863#38
Date:
2015-03-19 07:43:12 UTC
From:
To:
gzipped, 400MB un-gzipped). In order to have a complete check whether
two packages can be installed together one also needs dose-debcheck
installed, though the latter could probably be approximated by running
apt-get in simulation mode (which might produce false negatives).

#750863#45
Date:
2021-02-20 15:48:22 UTC
From:
To:
Hallo,

Ich habe dir eine Mail geschickt, aber keine Antwort von dir, warum?

Eddie

#750863#50
Date:
2026-02-02 04:40:05 UTC
From:
To:
Including package contents information in the UDD would be very helpful:
- PostgreSQL db queries are faster and more flexible than apt-file
- Can search across all supported architectures
- Can be used for websites/services like packages.d.o without manually
downloading and parsing Contents files

Instead of the owner, group, mode columns suggested in the original bug
report, just having the filename would be enough (as that's all there is
in the archive's Contents files). Something like:
- package
- section
- distribution
- release
- component
- filename

Thanks,
Maytham