[csw-maintainers] When a shared library needs a data file

Maciej (Matchek) Blizinski maciej at opencsw.org
Tue Jan 18 20:18:45 CET 2011


No dia 18 de Janeiro de 2011 17:34, Philip Brown <phil at bolthole.com> escreveu:
> it's interesting that you dont seem to suggest another variant,
> "ship the magic text file, with the shared lib package, since it is
> useless without it".

The lack of that option was intentional.  If the data file was bundled
with the library, it would be impossible to phase out the shared
library by removing a package.  It would be another form of bundling
multiple shared libraries in one package - something we want to stop
doing.

> the designation of "libmagic_common" is also odd in naming:
> "common" denotes "information shared 'in common' across multiple packages".
> What other packages would it be sharing it with? I didnt see indication of that.

The indication was in the e-mail.  Quoting from my previous e-mail:
"When CSWlibmagic2 comes along, we'll declare the dependency
CSWlibmagic-common, and CSWlibmagic1 will use the new shared data."

CSWlibmagic1 and CSWlibmagic2 would/could both be clients of shared data.

Before CSWlibmagic2:

CSWlibmagic1 → magic.mgc via CSWlibmagic_common

After:

Variant in which libmagic.so.2 uses the same magic.mgc file:

CSWlibmagic1 → magic.mgc via CSWlibmagic-common
CSWlibmagic2 → magic.mgc via CSWlibmagic-common

Varian in which libmagic.so.1 doesn't need magic.mgc but a different file:

CSWlibmagic1 → magic.mgc via CSWlibmagic-common
CSWlibmagic2 → future-data-file.mgc via CSWlibmagic-xxx

Your question about naming brings up an interesting point.  Perhaps
the with magic.mgc shouldn't be named CSW<libraryname>-common, but
CSW<libraryname>-<providedfilename>, which in our case would be
CSWlibmagic-magic.  Potential options for naming:

CSWlibmagic-common
CSWlibmagic-magic
CSWlibmagic-magicmgc
CSWmagic
CSWmagic-mgc

I'm not convinced whether it's better to provide magic.mgc in an
isolated file.  We would still need a package for
/opt/csw/share/man/man3/libmagic.3 and
/opt/csw/share/man/man4/magic.4.  It should be neither CSWgfile, nor
CSWlibmagic (deprecated), nor CSWlibmagic1 (libmagic.so.1 only), nor
CSWlibmagic-magic (magic.mgc only).

Maciej


More information about the maintainers mailing list