Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-06-09 Thread Jonas Smedegaard
-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160

package ghostscript
tags 528386 pending
thanks


Hi Till,

On Sun, May 24, 2009 at 08:44:43PM +0200, Till Kamppeter wrote:
 - Splitted off the CUPS-related files into its own package, so that the
   requirements of cups and cups-client for the automatic update of the
   PPDs of existing print queues do not apply to the ghostscript core
   package. Added cups and cups-client to the Depends: entry of the new
   ghostscript-cups package, so that the automatic updates of the PPDs
   also works on updates to a new release of the distribution and not
   only on single-package updates. Added also perl as dependency to the
   ghostscript-cups package as it is also needed for the automatic PPD
   updates.

A packaging release including above is now being built for Debian 
experimental, with the following exceptions regarding the newly added 
ghostscript-cups package:

   * does not conflict with older cups: Unneeded for any cups release 
 part of an official Debian distribution release. If the need is 
 Ubuntu-specific, then please add such quirks locally to Ubuntu fork 
 of the package.
   * replaces older ghostscript, to ease upgrades due to contents overlap
   * recommends (not depends on) cups and cups-client, to avoid circular 
 depends
   * improved indentation in postinst script
   * long description does not include historic notes
   * changelog entry shortened, and bug-closures added.

Please elaborate on those changes if you feel that I overlooked or 
misunderstood something, or if you in other ways disagree with my 
judgement.


As soon as the ghostscript package currently in unstable, 8.64~dfsg-7, 
has entered testing, I will rerelease these changes for unstable 
(possibly including any changes regarding above that you might suggest).


Kind regards,

  - Jonas

- -- 
* Jonas Smedegaard - idealist og Internet-arkitekt
* Tlf.: +45 40843136  Website: http://dr.jones.dk/

  [x] quote me freely  [ ] ask before reusing  [ ] keep private
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEAREDAAYFAkou0yIACgkQn7DbMsAkQLhZVgCeOrDRnOmIPfo7z1BjMUX59Kmh
P5cAnR0iGnbocATKg7mHAjY/MbP0t9eF
=DAya
-END PGP SIGNATURE-



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-25 Thread Martin Pitt
Jonas Smedegaard [2009-05-25  0:11 +0200]:
 My comment was more general, however: Instead of developing on the 
 Ubuntu package and then backport the changes to Debian, I recommend 
 doing it the other way around: Join our team, apply changes to the 
 Debian package, and pull the result to Ubuntu.
 
 If interested, and if you are not a Debian developer or have an Alioth 
 account for other reasons, I would be quite happy to help you gain write 
 access to our Git repository, so you can work directly on it.

For the record, that's exactly how cups is maintained nowadays: Till
has commit access to the Debian packaging bzr tree on alioth and we
check that all the changes that get applied there make sense for
Debian and Ubuntu. There are a few parts where cups behaves
differently in Ubuntu, which we solved by asking lsb_release in
debian/rules. We can do this for the ghostscript-cups dependency as
well, but I agree that doing that package split would make sense in
Debian, too. But it's not blocking anything.

Till has collected experience with Debian packaging for several years
now, and knows his way through patch systems, maintainer scripts,
control files, etc. He is also _the_ upstream printing guru, so
setting up a shared maintenance of the ghostscript package would
totally make sense to me as well. It helped a lot to do so in cups,
both distros benefit from fixes immediately and we don't maintain two
packages.

Thanks,

Martin
-- 
Martin Pitt| http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)


signature.asc
Description: Digital signature


Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-25 Thread Till Kamppeter

Jonas Smedegaard wrote:
perl-base is sufficient if no modules are loaded, which is the case for 
the postinst routines.  Perl-base is part of base so need not be 
declared as a dependency (except for versioned dependencies).


You are right that defoma should care for its own dependencies.

All in all: Please drop that perl dependency.



Will do in Ubuntu's SpliX and Ghostscript, and only add cups and 
cups-client to the other driver packages. In all these cases we have 
only the simple perl -p -i -e ... calls in postinst, no applications 
written in Perl.


The Debian package has evolved, but above changes are pretty simple, so 
I can easily reimplement using the new packaging structure of 8.64-4.


I hesitate doing it right now, however: this change is a new feature, 
not a bugfix, and adding new binary packages has a risk of delaying 
acceptance into Debian.




Who has to accept it? Masayuki Hatta, the Ghostscript maintainer? Or 
also other people? Is unstable in a release freeze currently?


I would therefore prefer to finalize the other changes currently 
released in experimental (I just released -4 a moment ago), and _after_ 
that implement this last change.




OK.



What I want fixed for the package to enter unstable is this:

  a) symbols handling

  b) reduce linking

  c) coordination with dependent packages

All three are related: Library symbols are supposed to be stable, but 
changes to compile flags change symbols, and recent changes even made 
some symbols disappear that was declared earlier on (libcairo was 
enabled for a short time, and at least on arm and i386 it offered some 
symbols that are now gone).  I suspect that some symbols should not even 
be public, but do not understand library linking that well, so I might 
be completely off track here...




The libcairo use in Ghostscript (Cairo output device) was dropped as it 
made the Ghostscript core pulling X and exactly for that the X output 
devices got modularized into ghostscript-x. The Cairo output device can 
only get reintroduced in the distro packages if it also gets modularized 
like the X devices.


I have cleaned up and added symbols since release of Lenny.  But for 
some reason they are not used during install (probably some ordering 
issue between debhelper, CDBS and d-shlibdeps).


the linking routine warns about excess linking.  I do not know if fixing 
that affects symbols or not.



When symbols are working properly to track changes at each release, we 
can contact package maintainers that link against ghostscript and 
coordinate with them to verify that nothing breaks linking against our 
cleaned up release.  This seems to be only cups, foomatic-filters and 
libspectre, but I have checked only binary dependencies using aptitude, 
do not know how to look up source dependencies).




foomatic-filters links only against documented symbols of the 
Ghostscript API. So it cannot break on the disappearing of stray symbols 
like from Cairo.


Which parts of CUPS link against Ghostscript? AFAIK the CUPS filters 
call Ghostscript via the command line.




As you might notice from above, I really am fumbling here - I am not a C 
library expert.  So any help would be much appreciated.




Oh, a related thing: I included a static library, as I believe is 
required by Debian Policy.  But I suspect it is not compiled correctly: 
All code is currently compiled with -cPIC and if I recall correctly 
static library needs to be compiled _without_ -fPIC.  Upstream build 
routines seem to handle -fPIC correctly - except for the X11 driver, 
which fails to build using --shared if -fPIC is not explicitly added to 
CFLAGS (causing it to be added twice in many places).


So if I am right that static lib needs to not use -fPIC then the package 
needs to either a) patch ghostscript build routines related to X11 
driver, or b) compile everything twice - once as now, and another 
without --shared or -fPIC.



In addition to these, there is also a simpler task: check with various 
bugreports if the issues are solved with the experimental package, and 
test if it works properly at all.




Especially the second and the last change are necessarily needed in 
Debian, to avoid that the CUPS packages have to be different in 
Debian and Ubuntu.
I do not consider Ubuntu upstream to Debian.  It makes much better 
sense to me to do coordinated work together on the Debian package.


Me not, too. I suggest to overtake these changes into Debian, once to 
make it possible that the CUPS package can stay synced (be the same in 
both Debian and Ubuntu), and second, as the CUPS package in Debian is 
switched to the PDF printing workflow 
(http://www.linuxfoundation.org/en/OpenPrinting/PDF_as_Standard_Print_Job_Format), 
to fix bugs in Ghostscript which cause problems in the PDF printing 
workflow, mainly bugs in PDF - PostScript conversion.


Yes, I am looking forward to that switch.



The switch is already there, the problems were that PDF - PostScript 

Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-25 Thread Jonas Smedegaard
-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160

On Mon, May 25, 2009 at 09:01:42AM +0200, Till Kamppeter wrote:
 Jonas Smedegaard wrote:
 The Debian package has evolved, but above changes are pretty simple, 
 so I can easily reimplement using the new packaging structure of 
 8.64-4.

 I hesitate doing it right now, however: this change is a new feature, 
 not a bugfix, and adding new binary packages has a risk of delaying 
 acceptance into Debian.


 Who has to accept it? Masayuki Hatta, the Ghostscript maintainer? Or 
 also other people?

By Debian social norms, Masayuki Hatta has to accept it.  He is a quiet 
guy, however, and these mails are cc'ed the package, reaching all team 
members.  So I would say that the lack of response, keyed with earlier 
approval of moving to Git in the collab-maint group, can be interpreted 
as implicit approval.

So please, let's move on :-)


 Is unstable in a release freeze currently?

Nope.  But the term unstable in Debian unstable refer to the distro, 
not each package, and library changes should be treated with care at all 
times (something I have learned the hard and embarrasing way with libgd 
and uw-imap).


 What I want fixed for the package to enter unstable is this:

   a) symbols handling

   b) reduce linking

   c) coordination with dependent packages

 All three are related: Library symbols are supposed to be stable, but 
 changes to compile flags change symbols, and recent changes even made 
 some symbols disappear that was declared earlier on (libcairo was 
 enabled for a short time, and at least on arm and i386 it offered 
 some symbols that are now gone).  I suspect that some symbols should 
 not even be public, but do not understand library linking that well, 
 so I might be completely off track here...


 The libcairo use in Ghostscript (Cairo output device) was dropped as 
 it made the Ghostscript core pulling X and exactly for that the X 
 output devices got modularized into ghostscript-x. The Cairo output 
 device can only get reintroduced in the distro packages if it also 
 gets modularized like the X devices.

Yes, I understood that from changelog entries.  Thanks for confirming.

My point above is that packages have been released that contained those 
symbols related to libcairo linkage, and in principle there is now a 
risk of other packages relying on those symbols and thus need rebuilding 
and/or patches.

the libcairo symbols was one example - other symbols have disappeared 
too since the release of Lenny (I have not kept symbols earlier than 
that).

Also, concretely for the libcairo linkage, we should perhaps reconsider 
if pulling in X11 libraries is still evil: With the improved X11 
packaging it might no longer be too much of a burden.

The libgd package has similarly been provided both with and without X11 
linkage to optionally avoid bloat, but I expect to drop that now, as the 
bloat is no longer as large as a few years ago.


 When symbols are working properly to track changes at each release, 
 we can contact package maintainers that link against ghostscript and 
 coordinate with them to verify that nothing breaks linking against 
 our cleaned up release.  This seems to be only cups, foomatic-filters 
 and libspectre, but I have checked only binary dependencies using 
 aptitude, do not know how to look up source dependencies).


 foomatic-filters links only against documented symbols of the 
 Ghostscript API. So it cannot break on the disappearing of stray 
 symbols like from Cairo.

 Which parts of CUPS link against Ghostscript? AFAIK the CUPS filters  
 call Ghostscript via the command line.

Right.  Checking only binary dependencies as I did can cause false 
positives like that.  But the potential list is longer: there's a bunch 
of packages depending only on ghostscript-x even if at least one of them 
() is known to link against libgs8.


 Especially the second and the last change are necessarily needed 
 in Debian, to avoid that the CUPS packages have to be different 
 in Debian and Ubuntu.
 I do not consider Ubuntu upstream to Debian.  It makes much better  
 sense to me to do coordinated work together on the Debian package.

 Me not, too. I suggest to overtake these changes into Debian, once 
 to make it possible that the CUPS package can stay synced (be the 
 same in both Debian and Ubuntu), and second, as the CUPS package in 
 Debian is switched to the PDF printing workflow 
 (http://www.linuxfoundation.org/en/OpenPrinting/PDF_as_Standard_Print_Job_Format),
  
 to fix bugs in Ghostscript which cause problems in the PDF printing 
 workflow, mainly bugs in PDF - PostScript conversion.

 Yes, I am looking forward to that switch.


 The switch is already there, the problems were that PDF - PostScript 
 conversions blew up the print job files to unreasonable sizes. The 
 needed fixes you have already added to your current Ghostscript 
 package.  The ghostscript-cups split is for another feature, the 
 automatic update of 

Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-25 Thread Till Kamppeter

Jonas Smedegaard wrote:
By Debian social norms, Masayuki Hatta has to accept it.  He is a quiet 
guy, however, and these mails are cc'ed the package, reaching all team 
members.  So I would say that the lack of response, keyed with earlier 
approval of moving to Git in the collab-maint group, can be interpreted 
as implicit approval.


So please, let's move on :-)



OK.




Is unstable in a release freeze currently?


Nope.  But the term unstable in Debian unstable refer to the distro, 
not each package, and library changes should be treated with care at all 
times (something I have learned the hard and embarrasing way with libgd 
and uw-imap).




The split is not a library change. the binary packages libgs8 and 
libgs-dev do not change by this step.


The only changes in the libraries are all the cherry-picked bug fixes, 
but none of them changes the API. They only improve the stability and 
the correctness of the output.




Yes, I understood that from changelog entries.  Thanks for confirming.

My point above is that packages have been released that contained those 
symbols related to libcairo linkage, and in principle there is now a 
risk of other packages relying on those symbols and thus need rebuilding 
and/or patches.


the libcairo symbols was one example - other symbols have disappeared 
too since the release of Lenny (I have not kept symbols earlier than 
that).


Also, concretely for the libcairo linkage, we should perhaps reconsider 
if pulling in X11 libraries is still evil: With the improved X11 
packaging it might no longer be too much of a burden.




To avoid pulling X11 is important for using head-less servers as print 
servers. They need to run Ghostscript but one wants to avoid installing 
X libraries only to satisfy Ghostscript's dependencies.


The libgd package has similarly been provided both with and without X11 
linkage to optionally avoid bloat, but I expect to drop that now, as the 
bloat is no longer as large as a few years ago.




As the X itself is already split, I would like to leave it this way. The 
Cairo interface is still experimental AFAIK. So before doing changes 
here I would like to know if the Cairo interface is already considered 
stable.


Right.  Checking only binary dependencies as I did can cause false 
positives like that.  But the potential list is longer: there's a bunch 
of packages depending only on ghostscript-x even if at least one of them 
() is known to link against libgs8.




Can you tell which packages?



Excellent.  I notice now that you are also member of collab-maint, so 
you already have write access to the ghostscript Git :-D


git clone ssh://till-gu...@git.debian.org/git/collab-maint/ghostscript

Feel free to commit changes directly there.  Except for adding new 
binary packages - please postpone such changes until after we've 
released to unstable.


Oh, and if you are unfamiliar with some of the advanced CDBS features 
then try read the README.source file and if still puzzled (e.g. about 
the content of control.in and rules files) then please ask.




OK.

   Till




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-24 Thread Till Kamppeter
Please merge the following Ubuntu package version of Ghostscript into 
Debian:


8.64.dfsg.1-0ubuntu11

It has the following fixes and new feature (in addition to the ones of 
0ubuntu9 and earlier):


- pstoraster did not work when called with an input file name as the 6th
  command line argument.

- The ps2write output device produces PostScript which is not
  DSC-conforming, so do not advertize it as DSC-conforming with a
  %!PS-Adobe-... magic string. Use %! instead. Otherwise the
  pstops CUPS filter cannot handle this output
  (https://bugs.launchpad.net/bugs/377011).

- Fixed recognition of page size via /cupsPageSizeName in the cups
  output device. All page sizes were considered custom sizes if
  /cupsPageSizeName was not set.

- Splitted off the CUPS-related files into its own package, so that the
  requirements of cups and cups-client for the automatic update of the
  PPDs of existing print queues do not apply to the ghostscript core
  package. Added cups and cups-client to the Depends: entry of the new
  ghostscript-cups package, so that the automatic updates of the PPDs
  also works on updates to a new release of the distribution and not
  only on single-package updates. Added also perl as dependency to the
  ghostscript-cups package as it is also needed for the automatic PPD
  updates.

Especially the second and the last change are necessarily needed in 
Debian, to avoid that the CUPS packages have to be different in Debian 
and Ubuntu.





--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-24 Thread Jonas Smedegaard
-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160

Hi Till and others,

On Sun, May 24, 2009 at 08:44:43PM +0200, Till Kamppeter wrote:
 Please merge the following Ubuntu package version of Ghostscript into  
 Debian:

 - pstoraster did not work when called with an input file name as the 6th
   command line argument.

 - The ps2write output device produces PostScript which is not
   DSC-conforming, so do not advertize it as DSC-conforming with a
   %!PS-Adobe-... magic string. Use %! instead. Otherwise the
   pstops CUPS filter cannot handle this output
   (https://bugs.launchpad.net/bugs/377011).

 - Fixed recognition of page size via /cupsPageSizeName in the cups
   output device. All page sizes were considered custom sizes if
   /cupsPageSizeName was not set.

Above is in Git already (cherry-picked from upstream yesterday).


 - Splitted off the CUPS-related files into its own package, so that the
   requirements of cups and cups-client for the automatic update of the
   PPDs of existing print queues do not apply to the ghostscript core
   package. Added cups and cups-client to the Depends: entry of the new
   ghostscript-cups package, so that the automatic updates of the PPDs
   also works on updates to a new release of the distribution and not
   only on single-package updates. Added also perl as dependency to the
   ghostscript-cups package as it is also needed for the automatic PPD
   updates.

Sounds interesting.

Is the perl dependency for the defoma code currently in ghostscript 
postinst?  I haven't look closely at it, but is perl-base not 
sufficient?

Could you please post a diff of this one change isolated - preferrably 
against the packaging work in Git?  Or even better just applied directly 
to our Git here: git://git.debian.org/git/collab-maint/ghostscript.git.



 Especially the second and the last change are necessarily needed in  
 Debian, to avoid that the CUPS packages have to be different in Debian  
 and Ubuntu.

I do not consider Ubuntu upstream to Debian.  It makes much better sense 
to me to do coordinated work together on the Debian package.

That said, I appreciate you informing about changes in Ubuntu, I will 
certainly cherry-pick changes that makes sense for Debian (which might 
very well be all of it).

(and I speak only for myself - other maintainers may feel differently)


Kind regards,

  - Jonas

- -- 
* Jonas Smedegaard - idealist og Internet-arkitekt
* Tlf.: +45 40843136  Website: http://dr.jones.dk/

  [x] quote me freely  [ ] ask before reusing  [ ] keep private
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEAREDAAYFAkoZsEsACgkQn7DbMsAkQLghjQCfRLzJHT5+v4bXGK5YYdY2XDq1
Ql8Anip6to+HQGoc5ZUK4aLDiJeu3J0d
=uTg3
-END PGP SIGNATURE-



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-24 Thread Till Kamppeter

Jonas Smedegaard wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160

Hi Till and others,

On Sun, May 24, 2009 at 08:44:43PM +0200, Till Kamppeter wrote:
Please merge the following Ubuntu package version of Ghostscript into  
Debian:



- pstoraster did not work when called with an input file name as the 6th
  command line argument.

- The ps2write output device produces PostScript which is not
  DSC-conforming, so do not advertize it as DSC-conforming with a
  %!PS-Adobe-... magic string. Use %! instead. Otherwise the
  pstops CUPS filter cannot handle this output
  (https://bugs.launchpad.net/bugs/377011).

- Fixed recognition of page size via /cupsPageSizeName in the cups
  output device. All page sizes were considered custom sizes if
  /cupsPageSizeName was not set.


Above is in Git already (cherry-picked from upstream yesterday).



Thank you very much.




- Splitted off the CUPS-related files into its own package, so that the
  requirements of cups and cups-client for the automatic update of the
  PPDs of existing print queues do not apply to the ghostscript core
  package. Added cups and cups-client to the Depends: entry of the new
  ghostscript-cups package, so that the automatic updates of the PPDs
  also works on updates to a new release of the distribution and not
  only on single-package updates. Added also perl as dependency to the
  ghostscript-cups package as it is also needed for the automatic PPD
  updates.


Sounds interesting.

Is the perl dependency for the defoma code currently in ghostscript 
postinst?  I haven't look closely at it, but is perl-base not 
sufficient?




I have added the Perl dependency because the PPD updater in the 
ghostscript-cups.postinst script calls Perl, simply to do string 
manipulations with Perl's RE engine. If perl-base is enough for that 
purpose, please tell me, as I will add this dependency also to other 
packages (all printer drivers).


I do not know what Defoma needs. I hope Defoma is dependent on that by 
itself, so that Ghostscript only needs to be dependent on Defoma.


Could you please post a diff of this one change isolated - preferrably 
against the packaging work in Git?  Or even better just applied directly 
to our Git here: git://git.debian.org/git/collab-maint/ghostscript.git.




This is the diff between the Ubuntu package containing the 
ghostscript-cups split and the previous package. It contains exactly the 
changes done to do the split plus the dependency additions for the new 
package.


http://launchpadlibrarian.net/26911463/ghostscript_8.64.dfsg.1-0ubuntu9_8.64.dfsg.1-0ubuntu10.diff.gz




Especially the second and the last change are necessarily needed in  
Debian, to avoid that the CUPS packages have to be different in Debian  
and Ubuntu.


I do not consider Ubuntu upstream to Debian.  It makes much better sense 
to me to do coordinated work together on the Debian package.




Me not, too. I suggest to overtake these changes into Debian, once to 
make it possible that the CUPS package can stay synced (be the same in 
both Debian and Ubuntu), and second, as the CUPS package in Debian is 
switched to the PDF printing workflow 
(http://www.linuxfoundation.org/en/OpenPrinting/PDF_as_Standard_Print_Job_Format), 
to fix bugs in Ghostscript which cause problems in the PDF printing 
workflow, mainly bugs in PDF - PostScript conversion.


That said, I appreciate you informing about changes in Ubuntu, I will 
certainly cherry-pick changes that makes sense for Debian (which might 
very well be all of it).




OK, I usually only ask Debian to ask for overtaking my changes in Ubuntu 
or upstream, if it simplifies the Debian/Ubuntu logistics or fixes 
important problems.


As I am leading the OpenPrinting project I am often introducing new 
technologies into the printing infrastructure, and because I am Ubuntu 
developer they go to Ubuntu at first. The parts in CUPS they go 
automatically into Debian, as the CUPS packagfe is synced, but sometimes 
changes in CUPS depend on changes in other which are not synced.


Thanks again for your cooperation.

   Till




--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#528386: More Ghostscript changes which need to get into Debian: Split off a ghostscript-cups package

2009-05-24 Thread Jonas Smedegaard
-BEGIN PGP SIGNED MESSAGE-
Hash: RIPEMD160

On Sun, May 24, 2009 at 11:09:18PM +0200, Till Kamppeter wrote:
 Jonas Smedegaard wrote:

 On Sun, May 24, 2009 at 08:44:43PM +0200, Till Kamppeter wrote:
 - Splitted off the CUPS-related files into its own package, so that 
   the requirements of cups and cups-client for the automatic update 
   of the PPDs of existing print queues do not apply to the 
   ghostscript core package. Added cups and cups-client to the 
   Depends: entry of the new ghostscript-cups package, so that the 
   automatic updates of the PPDs also works on updates to a new 
   release of the distribution and not only on single-package 
   updates. Added also perl as dependency to the ghostscript-cups 
   package as it is also needed for the automatic PPD updates.

 Sounds interesting.

 Is the perl dependency for the defoma code currently in ghostscript 
 postinst?  I haven't look closely at it, but is perl-base not 
 sufficient?


 I have added the Perl dependency because the PPD updater in the 
 ghostscript-cups.postinst script calls Perl, simply to do string 
 manipulations with Perl's RE engine. If perl-base is enough for that 
 purpose, please tell me, as I will add this dependency also to other 
 packages (all printer drivers).

 I do not know what Defoma needs. I hope Defoma is dependent on that by 
 itself, so that Ghostscript only needs to be dependent on Defoma.

perl-base is sufficient if no modules are loaded, which is the case for 
the postinst routines.  Perl-base is part of base so need not be 
declared as a dependency (except for versioned dependencies).

You are right that defoma should care for its own dependencies.

All in all: Please drop that perl dependency.


 Could you please post a diff of this one change isolated - 
 preferrably against the packaging work in Git?  Or even better just 
 applied directly to our Git here: 
 git://git.debian.org/git/collab-maint/ghostscript.git.


 This is the diff between the Ubuntu package containing the 
 ghostscript-cups split and the previous package. It contains exactly 
 the changes done to do the split plus the dependency additions for the 
 new package.

 http://launchpadlibrarian.net/26911463/ghostscript_8.64.dfsg.1-0ubuntu9_8.64.dfsg.1-0ubuntu10.diff.gz

Thanks.

The Debian package has evolved, but above changes are pretty simple, so 
I can easily reimplement using the new packaging structure of 8.64-4.

I hesitate doing it right now, however: this change is a new feature, 
not a bugfix, and adding new binary packages has a risk of delaying 
acceptance into Debian.

I would therefore prefer to finalize the other changes currently 
released in experimental (I just released -4 a moment ago), and _after_ 
that implement this last change.


What I want fixed for the package to enter unstable is this:

  a) symbols handling

  b) reduce linking

  c) coordination with dependent packages

All three are related: Library symbols are supposed to be stable, but 
changes to compile flags change symbols, and recent changes even made 
some symbols disappear that was declared earlier on (libcairo was 
enabled for a short time, and at least on arm and i386 it offered some 
symbols that are now gone).  I suspect that some symbols should not even 
be public, but do not understand library linking that well, so I might 
be completely off track here...

I have cleaned up and added symbols since release of Lenny.  But for 
some reason they are not used during install (probably some ordering 
issue between debhelper, CDBS and d-shlibdeps).

the linking routine warns about excess linking.  I do not know if fixing 
that affects symbols or not.


When symbols are working properly to track changes at each release, we 
can contact package maintainers that link against ghostscript and 
coordinate with them to verify that nothing breaks linking against our 
cleaned up release.  This seems to be only cups, foomatic-filters and 
libspectre, but I have checked only binary dependencies using aptitude, 
do not know how to look up source dependencies).


As you might notice from above, I really am fumbling here - I am not a C 
library expert.  So any help would be much appreciated.



Oh, a related thing: I included a static library, as I believe is 
required by Debian Policy.  But I suspect it is not compiled correctly: 
All code is currently compiled with -cPIC and if I recall correctly 
static library needs to be compiled _without_ -fPIC.  Upstream build 
routines seem to handle -fPIC correctly - except for the X11 driver, 
which fails to build using --shared if -fPIC is not explicitly added to 
CFLAGS (causing it to be added twice in many places).

So if I am right that static lib needs to not use -fPIC then the package 
needs to either a) patch ghostscript build routines related to X11 
driver, or b) compile everything twice - once as now, and another 
without --shared or -fPIC.


In addition to these, there is also a simpler task: check with