public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [PATCH setup 0/2] Detect filename collisions between packages
@ 2023-04-23 14:43 Jon Turney
  2023-04-23 14:43 ` [PATCH setup 1/2] Add underlying() method to io_stream class Jon Turney
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Jon Turney @ 2023-04-23 14:43 UTC (permalink / raw)
  To: cygwin-apps; +Cc: Jon Turney

This is a woefully underoptimized implementation of detecting filename
collisions between packages, so it's hidden behind the command line option
'--collisions' to enable it.

A good implementation probably (i) collects the filenames at the same time
as checksumming the archive, or has them attached to it somehow by the
packaging process, and (ii) uses a libsolv string pool to hold the filenames
(so we only need to compute the intersection and unions of sets of integers,
which is hopefully much faster)

Nevertheless, this labouriously identifies some obvious collisions which I
might bring to the attention of package maintainers when I have some time to
do so...

Jon Turney (2):
  Add underlying() method to io_stream class
  Detect filename collisions between packages

 compress.h       |  13 +++
 compress_bz.cc   |   2 -
 compress_bz.h    |   2 -
 compress_gz.h    |   2 -
 compress_xz.cc   |   2 -
 compress_xz.h    |   2 -
 compress_zstd.cc |   2 -
 compress_zstd.h  |   2 -
 filemanifest.h   |  29 ++++++
 install.cc       | 254 +++++++++++++++++++++++++++++++++++++++--------
 io_stream.h      |  31 ++----
 res/en/res.rc    |   3 +
 resource.h       |   3 +
 13 files changed, 266 insertions(+), 81 deletions(-)
 create mode 100644 filemanifest.h

-- 
2.39.0


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-05-04  4:14 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-23 14:43 [PATCH setup 0/2] Detect filename collisions between packages Jon Turney
2023-04-23 14:43 ` [PATCH setup 1/2] Add underlying() method to io_stream class Jon Turney
2023-04-23 14:43 ` [PATCH setup 2/2] Detect filename collisions between packages Jon Turney
2023-04-24 16:26   ` Christian Franke
2023-04-27 16:11     ` Jon Turney
2023-04-27 17:20       ` Christian Franke
2023-04-24 16:46 ` [PATCH setup 0/2] " Corinna Vinschen
2023-04-24 18:16   ` Achim Gratz
2023-04-27 16:11     ` Jon Turney
2023-04-28  5:51       ` Brian Inglis
2023-04-30 18:25         ` Jon Turney
2023-05-04  4:14           ` Brian Inglis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).