This is the mail archive of the cygwin-apps mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Dedup x86/x86_64 --> noarch

After a discussion on IRC about de-duping the noarch content out of
package files (where I was told this would be too difficult), I've just
tried what would happen for two of my packages, maxima and perl.  Maxima
is practically a noarch package, save for the clisp memory image.  Perl
has gobs and gobs of non-arch-specific files mixed in with quite a bit
of arch-specific stuff.  I've used hashdeep for finding the dupes since
it is really fast, so the files are only de-duped if the are bit-for-bit

set p=perl
# reference
( cd $p.x86/inst    ; hashdeep -c sha256 -lr * ) > $p.x86.hash
# matching files
( cd $p.x86_64/inst ; hashdeep -c sha256 -k ../../$p.x86.hash -mlr * )
# non-matching files
( cd $p.x86_64/inst ; hashdeep -c sha256 -k ../../$p.x86.hash -xlr * )

For Maxima, there are a few files that should be identical, but aren't:
these are leakages from the build environment that I'll have to patch
out later (one of these leakages is actually a bug, affecting parts of
the documentation).

For Perl, the GZip compressed man-pages are flagged as different,
because gzip leaks the time-stamp (but that could be avoided using the
-n option to gzip in cygport).  Fixing that, the documentation packages
for Perl are completely shared between the two arches (well, duh), but
even the binary packages perl, perl-debginfo and perl_base would share
about a quarter of their content (so they'd need to be split into
something like perl_base / perl_base-common).

Looking at the current repo content we'd save about 30GB from the dedup
of the src abd doc packages alone and probably about 20GB from dedup in
the remaining packages.

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Q+, Q and microQ:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]