[64bit] Some packaging problems

Charles Wilson cygwin@cwilson.fastmail.fm
Wed Jul 17 13:26:00 GMT 2013


On 7/17/2013 4:30 AM, Corinna Vinschen wrote:
> On Jul 16 17:25, Ken Brown wrote:
>> 1. The x86_64 distro has both libexpat1-devel and libexpat-devel,
>> with the files of the latter being a subset of those of the former.
>> In addition, libexpat1-devel is missing a setup.hint, so it is put
>> into the Misc category and installed by default.  BTW, there are
>> packages depending on both of these in the distro, so there will be
>> other changes needed after one of them is removed.
>
> For all I can tell, libexpat-devel seems to be the old version,
> libexpat1-devel the new one.  We should probably manually fix the deps
> in the various hint files to require libexpat1-devel and remove the
> libexpat-devel package.  Yaakov?

Unless two different versions of a library's -devel package can coexist 
-- e.g. all include files and static/import libraries are in versioned 
subdirs:
    /usr/include/libpng15/*.h     /usr/lib/libpng15/*.a
    /usr/include/libpng16/*.h     /usr/lib/libpng16/*.a

we don't typically put the DLL number in the -devel package name. In 
this case, the libexpat1-devel package contains:

/usr/include/expat.h
/usr/include/expat_external.h
/usr/lib/libexpat.a
/usr/lib/libexpat.dll.a
/usr/lib/pkgconfig/expat.pc

so it's not like it could coexist with a future libexpat2-devel.  I 
think the "libexpat1-devel" name in 2.1.0-2 is a mistake, and it expat 
should be repackaged to use "traditional" names, as it did in 2.1.0-1:

    expat
    expat-debuginfo
    libexpat1
    libexpat-devel (no "1")

Then the existing requires: in other package's setup.hints do not need 
to be changed.

>> 2. gdb has the wrong setup.hint; it's the same as the setup.hint for
>> rebase.  In particular, this puts it into the Base category.
>
> Thanks, I fixed the setup.hint manually and I'm just building a new gdb
> package with the fixed cygport file.
>
>> 3. The dependencies man ==> groff ==> perl bring perl into a default
>> install.
>
> Hmm, is that bad?

Very. perl is just as bad python, when it comes to creating a trimmed 
down installation, and we just went thru a significant amount of pain to 
split cygutils specifically to avoid pulling python in as a dependency 
of a Base install.

> OTOH, the 32 bit groff only requires some default
> libs, not bash, sed, and perl.  Why's that?

groff ships with some scripts

==== /usr/bin/afmtodit ====
#! /usr/bin/perl -w
==== /usr/bin/chem ====
#! /usr/bin/env perl
==== /usr/bin/eqn2graph ====
#! /bin/sh
==== /usr/bin/gdiffmk ====
#! /bin/sh
==== /usr/bin/grap2graph ====
#! /bin/sh
==== /usr/bin/groffer ====
#! /usr/bin/env perl
==== /usr/bin/grog ====
#! /usr/bin/env perl
==== /usr/bin/mmroff ====
#! /usr/bin/perl
==== /usr/bin/neqn ====
#! /bin/sh
==== /usr/bin/nroff ====
#! /bin/sh
==== /usr/bin/pdfroff ====
#! /bin/sh
==== /usr/bin/pic2graph ====
#! /bin/sh
==== /usr/bin/roff2dvi ====
#! /usr/bin/env perl
==== /usr/bin/roff2html ====
#! /usr/bin/env perl
==== /usr/bin/roff2pdf ====
#! /usr/bin/env perl
==== /usr/bin/roff2ps ====
#! /usr/bin/env perl
==== /usr/bin/roff2text ====
#! /usr/bin/env perl
==== /usr/bin/roff2x ====
#! /usr/bin/env perl

and cygport is smart.  We should probably split the groff package up as 
well...fedora has
    groff-base
    groff-perl
    groff-x11 (*)
    groff-doc
    groff

groff-base: "contains only necessary parts of groff formatting system 
which are required to display manual pages, and the groff's default 
dispaly device (PostScript)"
requires: sed sh

groff-perl: "contains the parts of the groff text processor package that 
require Perl. These include the afmtodit (font processor for creating 
PostScript font files), groffer (tool for displaying groff files), grog 
(utility that can be used to automatically determine groff command-line 
options), chem (groff preprocessor for producing chemical structure 
diagrams), mmroff (reference preprocessor) and roff2dvi roff2html 
roff2pdf roff2ps roff2text roff2x (roff code converters)."
requires: coreutils(env) perl sh groff-base (+various perl modules)

groff-x11: "contains the parts of the groff text processor package that 
require X Windows System. These include gxditview (display groff 
intermediate output files on X Window System display) and xtotroff 
(converts X font metrics into groff font metrics)."
requires: groff-base

groff-doc: "includes additional documentation for groff text processor 
package. It contains examples, documentation for PIC language and 
documentation for creating PDF files."
requires: groff

Presumably, "groff" contains everything else.

(*) I don't think our groff distribution contains the x11 stuff anyway.

--
Chuck



More information about the Cygwin-apps mailing list