This is the mail archive of the cygwin-apps@cygwin.com 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]

Re: Ghostscript packaging for X11, non-X11 versions


On Sat, Jul 06, 2002 at 01:10:42PM -0400, Charles Wilson wrote:

> Sounds good to me.  So, I assume you have to conf/build each version 
> separately -- but are you *sure* the "common" files from both versions 
> are identical, and can be shared in that way?

Well, the shared files consist of the manual pages, additional HTML
documentation, example PS files and font files.  The wrapper scripts
(e.g. ps2pdf) will be duplicated between /usr and /usr/X11R6.  This
should be OK, since the wrapper scripts will call the corresponding
version of gs, either /usr/bin/gs or /usr/X11R6/bin/gs.

> Also, into which heirarchy are the binaries installed?  I'm thinking you 
> should probably do something like this:
> 
> for non-x:
>    prefix = /usr
>    sysconfdir = /etc
> 
>    CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \
>    ${srcdir}/configure \
>    --srcdir=${srcdir} --prefix=${prefix} \
>    --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \
>    --libdir=${prefix}/lib --includedir=${prefix}/include \
>    --libexecdir='${sbindir}' --localstatedir=/var \
>    --datadir='${prefix}/share'

OK, the standard layout for other Cygwin packages...

> For X:
>    prefix = /usr/X11R6
>    sysconfdir = /etc
> 
>    CFLAGS="${MY_CFLAGS}" LDFLAGS="${MY_LDFLAGS}" \
>    ${srcdir}/configure \
>    --srcdir=${srcdir} --prefix=${prefix} \
>    --exec-prefix=${prefix} --sysconfdir=${sysconfdir} \
>    --libdir=${prefix}/lib --includedir=${prefix}/include \
>    --libexecdir='${sbindir}' --localstatedir=/var \
>    --datadir='/usr/share'

Hmm, does 'mandir' derive from 'datadir'?  If so, then I think
this is the same layout as I describe below.

> That way, all X stuff (libraries, dlls, header files, binaries) go into 
> /usr/X11R6.  All non-X stuff goes into /usr.  And the shared data files 
> from BOTH go into /usr/share/(ghostscript).
> 
> I would go ahead and allow ALL of the scripts and man pages to be 
> duplicated (bdftops, font2c, gslj, etc) into both /usr/bin/|/usr/man and 
> /usr/X11R6/bin|/usr/X11R6/man -- without any renaming.

I can see the scripts being duplicated, since native scripts should call
the native gs.exe, and the X11 gs.exe should have its own wrapper scripts
which call the X11 version of gs.exe.  (In other words, /usr/bin/ps2pdf
should call /usr/bin/gs, while /usr/X11R6/bin/ps2pdf should call
/usr/X11R6/bin/gs.)

On the other hand, the Ghostscript manual pages themselves make no
distinction between X11 and native builds, so my preference would be to
install manual pages only in /usr/share/man.  The only reason I think
manual pages should be installed into /usr/X11R6/man is if they are X11
specific manual pages, i.e. document only X11-specific behavior or
functionality.

This way, anything under /usr/X11R6 (whether it be binaries or
documentation) can be assumed to be specific to X11 only.  To install
non-X11 manual pages in /usr/X11R6/man seems confusing, at least to
me ;-)

To rephrase: if we have /usr/share/ghostscript store files that are
common to both X and native builds, then we should do the same for
common manual pages and only put them in /usr/share/man.  I guess this
means that /usr will store both native files and common files, and
/usr/X11R6 will store only X-specific files, not common or duplicated
files.

Ugh. I hope my rather tortured explanation makes sense.  If not, then
maybe I should list the contents of the three packages I generate, and
let you and Chris look them over for your approval before they get
uploaded to the primary FTP site.

> That way, if a user installs only ghostscript-X and ghostscript-common, 
> they get all of the scripts and "extra" binaries, as compiled/created in 
> X mode.

Yes, this makes sense.

> Conversely, someone who installs only ghostscript and 
> ghostscript-common gets them as compiled/created in no-x mode.  Plus, 
> The user who installs everything gets them all in both modes, and can 
> use PATH to select their personally preferred default.

Yes, this sounds perfect.

> (If you'd like to have your postinstall script for ghostscript-X create 
> a symlink from /usr/bin/gsx --> /usr/X11R6/bin/gs.exe  that would be 
> fine, too.

Nah, I like your suggested packaging better, /usr/bin/gs.exe and
/usr/X11R6/bin/gs.exe.

Thanks for your input, I appreciate you taking the time to review it.

-- 
Dario Alcocer -- Sr. Software Developer, Helix Digital Inc.
alcocer@helixdigital.com -- http://www.helixdigital.com


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