Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-26 Thread Till Kamppeter

On 01/25/2011 08:27 PM, Jonas Smedegaard wrote:

Another argument for keeping libijs separate:

I consider packaging GNU Ghostscript, which seem to have a slightly
different development pace and thus might be interesting e.g. for
security concerned users, and would also make the recent RC issue of
ghostscript less dramatic, as there would be the option of ripping out
one of the implementations temporarily, if multiple ones were available
to choose from.

Yes, I know that this was tried in the past, and I have not yet decided
to try it out again, just considering, so far...


Please do not remove GPL Ghostscript from Debian. It is the real 
upstream and so bug fixes and new features get available at first via 
GPL GS and reach GNU GS only with a delay. I have even upstream commit 
access to GPL GS and so I can get in my fixes quickly. If Debian 
switches to only use GNU GS I will not be able to maintain one and the 
same Ghostscript package for both Debian and Ubuntu. In Ubuntu the use 
of GPL GS is essentially important to have always the most up-to-date code.


   Till


--
To UNSUBSCRIBE, email to debian-printing-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4d400c6b.3050...@gmail.com



Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-26 Thread Till Kamppeter

On 01/25/2011 09:48 PM, Roger Leigh wrote:

Just for the record, I think there should be *one* copy of ijs only.
I really don't care whether it's in ijs or gs.  However, given that
gs is required for ijs to work, and the copy in gs has had some
maintenance, I think the gs copy would be the better choice (providing
it can be made usable for others).  They are probably the effective
upstream maintainers of the code in any case given the complete lack
of upstream ijs activity for years.  [The upstream were the gs
maintainers (more or less) in any case.]



I agree with that, each piece of source code should go into the distro 
once, and if possible there should also not be any duplication of binary 
code.



I did try to hack on getting gs to do this back in 2002, but gs was so
baroque I couldn't make any headway.  If it's easy to get the gs build
system to build and link with a shared lib, and generate the .pc file,
that would be great.  It just needs someone familiar with gs.



The GS upstream developers are currently working on the ijs/ 
subdirectory and its build system, to at least accept an external shared 
libijs on demand by ./configure option or on absence of the ijs/ 
directory. I could also ask them to add support for the scenario of 
building the shared libijs from the code in the ijs/ directory and 
making Ghostscript using it.



(I remember the horror of when gutenprint (then gimpprint) was also
embedded wholesale in the gs tree as gdevstp; it was imported
regularly from our CVS, and it make it hard to develop since it was
so fragile and we had to make sure our Makefiles stayed compatible
with the gs tree.  IJS was a Godsend since it allowed us to be
entirely separate.)  IMO the wholesale embedding of stuff in gs is a
symptom of wider issues in gs (the number of embedded drivers is
horrifying--they should all have been made modular years back, which
would prevent stupid stuff like having to have gs linked with X etc.).



I have opened student projects in the Google Summer of Code for 
modularizing the drivers but never found students to actually do that. 
Especially I would like to see a modularization that one can bolt GS' 
drivers also on Poppler.



Have there been any gs issues related to ijs?  AFAICT, they directly
copied the IJS sources files straight into their tree, so any issues
should be present in both packages.


No issues known to me. GS devs copied over IJS code once (years ago), 
then they did some fixes. No code got copied back to OpenPrinting and 
Ghostscrit's code got considered the official one. Note that Ghostscript 
generally includes the source code of all used libraries into the GS 
tree to make it compilable and debuggable under Windows.


   Till


--
To UNSUBSCRIBE, email to debian-printing-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4d401078.5090...@gmail.com



Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-26 Thread Till Kamppeter

On 01/25/2011 10:04 PM, Jonas Smedegaard wrote:

I think perhaps you miss my point:

If libijs is maintained for Debian as part of the GPL Ghostscript
project, and we also (in the future) maintain GNU Ghostscript, then GNU
Ghostscript will need to depend on GPL Ghostscript, making it impossible
to ship a release of Debian with only GNU Ghostscript, not GPL Ghostscript.

If, on the other hand, Debian maintain libijs as a separate project,
then a release of Debian (or a derivative thereof) can choose to ship
with GNU Ghostscript and not GPL Ghostscript.

The question is not whether upstream development happens as part of GPL
Ghostscript or not, but whether we should maintain a library separately
which is _usable_ seaparately.


AFAIK GNU Ghostscript is a fork of GPL Ghostscript. Does GNU Ghostscript 
not ship ijs/, too? What are the exact differences between GNU GS and 
GPL GS?


   Till


--
To UNSUBSCRIBE, email to debian-printing-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4d406ec4.2030...@gmail.com



Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-26 Thread Jonas Smedegaard

On Wed, Jan 26, 2011 at 07:58:12PM +0100, Till Kamppeter wrote:

On 01/25/2011 10:04 PM, Jonas Smedegaard wrote:

I think perhaps you miss my point:

If libijs is maintained for Debian as part of the GPL Ghostscript 
project, and we also (in the future) maintain GNU Ghostscript, then 
GNU Ghostscript will need to depend on GPL Ghostscript, making it 
impossible to ship a release of Debian with only GNU Ghostscript, not 
GPL Ghostscript.


If, on the other hand, Debian maintain libijs as a separate project, 
then a release of Debian (or a derivative thereof) can choose to ship 
with GNU Ghostscript and not GPL Ghostscript.


The question is not whether upstream development happens as part of 
GPL Ghostscript or not, but whether we should maintain a library 
separately which is _usable_ seaparately.


AFAIK GNU Ghostscript is a fork of GPL Ghostscript. Does GNU 
Ghostscript not ship ijs/, too?


Upstream they probably do, yes.

A Debian packaging should equally have it stripped (or ignored) and use 
a separately packaged libijs, to avoid code duplication.  And, as 
explained above, to not essentially have one Ghostscript depend on 
another thereby loosing a benefit of maintaining both.




What are the exact differences between GNU GS and GPL GS?


Don't know.  Just noticed somewhere bugfixes trickling into the GNU one 
in a different pace than the GPL one.


I am quite annoyed learning (from you) that GPL GS coordinates releases 
with Ubuntu instead of distro-agnosticly release early, release often!


Bug-fixes are hanging unreleased for a _very_ long time.

But really this shouldn't be about whether GNU GS is relevant for Debian 
to package in particular, but about the principle of keeping libijs 
separate.  Another use case is _users_ of Debian wanting to compile GNU 
GS themselves but rely on most possible underlying libraries 
security-maintained by Debian.



 - Jonas

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

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: Digital signature


Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-25 Thread Roger Leigh
On Mon, Jan 24, 2011 at 08:47:07PM +0100, Jonas Smedegaard wrote:
 Hi Till (and others),

 I took the liberty of moving this conversation to the Debian Printing  
 Team and cc ijs package maintainer.

 On Mon, Jan 24, 2011 at 08:12:31PM +0100, Till Kamppeter wrote:
 as written on

 http://www.openprinting.org/download/ijs/

 the current head of development of the IJS code is in Ghostscript and  
 not on OpenPrinting.

 So to keep the binary packages

 - libijs-0.35
 - libijs-dev

 maintained with the up-to-date source code I suggest to remove the  
 ijs source package from Debian and build the IJS library using the  
 ijs/ directory of Ghostscript (naturally then not removing it from  
 Ghostscript when repackaging the source tarball).

 See also

 http://bugs.ghostscript.com/show_bug.cgi?id=691904

 WDYT?

 I dislike treating Ghostscript as source of multiple libraries!

 I think that a) ijs package should cherry-pick from ghostscript sources  
 (manually, from upstream tarballs and/or VCS), and b) ijs package  
 maintainers (or anyone, really - perhaps yourself?) verify if current  
 ijs upstream truly is dead or have sane reason to not adopt what is  
 currently shipped with ghostscript.  When those options are tried, we  
 can discuss if perhaps we shoulf try convince Ghostscript developers to  
 release their library as separate tarballs.

 As a related note, I recommend ijs package maintainer to join the Debian  
 Printing Team to ease coordination like this. :-)

I was the original packager and maintainer of ijs, and I was also
involved with upstream when it was created, so I might be able to
provide some insight here.  I was also the one who added autotools and
shared library support upstream.

IJS implements a transport protocol between a client (ghostscript)
and a server (printer driver) to allow ghostscript to use drivers
not hard-coded in the ghostscript sources.  This allows it to use
out-of-tree drivers such as gutenprint.

Early on, ghostscript decided to import the sources directly into their
tree rather than linking with the actual libijs library; I forget the
exact rationale for this.  Initially the ijs sources were not usable as
a real library--I had to make it into a shared library since initially
it was only usable by embedding.  IJS is basically complete and will not
change: the protocol is defined and there's no reason to touch the code
bar bugfixing, and that's been done.  So ghostscript doesn't need to
continually track new releases.

However, this is a *client-server* model.  ghostscript is the client;
anything else could be a server.  Unless the server also does the
embedding of the ijs sources, it will need to link with libijs; it
can't use the internal ghostscript copy, since ghostscript doesn't
build it as a library--it's just linked in.

My take on this is that there are these solutions:
1) ghostscript removes the embedded ijs copy and links with libijs
   Any fixes in the ghostscript copy should be applied to libijs.
2) ijs is removed
   ghostscript's copy will be the canonical source, and ghostscript
   will build this as a shared library and link with it; other
   programs will be able to use it.

I would ordinarily prefer (1), but given that ijs is /de facto/
specific to ghostscript (there are no other ijs clients to my
knowledge) I can't see a problem with it being provided by
ghostscript, so long as it makes a proper shared library and provides
the same pkg-config support etc.  This is basically to ensure it's
as usable by third parties as the existing libijs (which I made usable
so that this was possible).


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?   http://gutenprint.sourceforge.net/
   `-GPG Public Key: 0x25BFB848   Please GPG sign your mail.


signature.asc
Description: Digital signature


Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-25 Thread Roger Leigh
On Tue, Jan 25, 2011 at 08:27:38PM +0100, Jonas Smedegaard wrote:
 On Tue, Jan 25, 2011 at 06:59:08PM +, Roger Leigh wrote:
 I was the original packager and maintainer of ijs, and I was also  
 involved with upstream when it was created, so I might be able to  
 provide some insight here.  I was also the one who added autotools and  
 shared library support upstream.

 IJS implements a transport protocol between a client (ghostscript) and  
 a server (printer driver) to allow ghostscript to use drivers not  
 hard-coded in the ghostscript sources.  This allows it to use  
 out-of-tree drivers such as gutenprint.

 Early on, ghostscript decided to import the sources directly into their 
 tree rather than linking with the actual libijs library; I forget the  
 exact rationale for this.  Initially the ijs sources were not usable as 
 a real library--I had to make it into a shared library since  
 initially it was only usable by embedding.  IJS is basically complete  
 and will not change: the protocol is defined and there's no reason to  
 touch the code bar bugfixing, and that's been done.  So ghostscript  
 doesn't need to continually track new releases.

 However, this is a *client-server* model.  ghostscript is the client;  
 anything else could be a server.  Unless the server also does the  
 embedding of the ijs sources, it will need to link with libijs; it  
 can't use the internal ghostscript copy, since ghostscript doesn't  
 build it as a library--it's just linked in.

 My take on this is that there are these solutions:
 1) ghostscript removes the embedded ijs copy and links with libijs
   Any fixes in the ghostscript copy should be applied to libijs.
 2) ijs is removed
   ghostscript's copy will be the canonical source, and ghostscript
   will build this as a shared library and link with it; other
   programs will be able to use it.

 I would ordinarily prefer (1), but given that ijs is /de facto/  
 specific to ghostscript (there are no other ijs clients to my  
 knowledge) I can't see a problem with it being provided by ghostscript, 
 so long as it makes a proper shared library and provides the same  
 pkg-config support etc.  This is basically to ensure it's as usable by  
 third parties as the existing libijs (which I made usable so that this  
 was possible).

 Thanks for the insight!

Just for the record, I think there should be *one* copy of ijs only.
I really don't care whether it's in ijs or gs.  However, given that
gs is required for ijs to work, and the copy in gs has had some
maintenance, I think the gs copy would be the better choice (providing
it can be made usable for others).  They are probably the effective
upstream maintainers of the code in any case given the complete lack
of upstream ijs activity for years.  [The upstream were the gs
maintainers (more or less) in any case.]

I did try to hack on getting gs to do this back in 2002, but gs was so
baroque I couldn't make any headway.  If it's easy to get the gs build
system to build and link with a shared lib, and generate the .pc file,
that would be great.  It just needs someone familiar with gs.

(I remember the horror of when gutenprint (then gimpprint) was also
embedded wholesale in the gs tree as gdevstp; it was imported
regularly from our CVS, and it make it hard to develop since it was
so fragile and we had to make sure our Makefiles stayed compatible
with the gs tree.  IJS was a Godsend since it allowed us to be
entirely separate.)  IMO the wholesale embedding of stuff in gs is a
symptom of wider issues in gs (the number of embedded drivers is
horrifying--they should all have been made modular years back, which
would prevent stupid stuff like having to have gs linked with X etc.).

 Another argument for keeping libijs separate:

 I consider packaging GNU Ghostscript, which seem to have a slightly  
 different development pace and thus might be interesting e.g. for  
 security concerned users, and would also make the recent RC issue of  
 ghostscript less dramatic, as there would be the option of ripping out  
 one of the implementations temporarily, if multiple ones were available  
 to choose from.

Have there been any gs issues related to ijs?  AFAICT, they directly
copied the IJS sources files straight into their tree, so any issues
should be present in both packages.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?   http://gutenprint.sourceforge.net/
   `-GPG Public Key: 0x25BFB848   Please GPG sign your mail.


signature.asc
Description: Digital signature


Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-24 Thread Jonas Smedegaard

Hi Till (and others),

I took the liberty of moving this conversation to the Debian Printing 
Team and cc ijs package maintainer.


On Mon, Jan 24, 2011 at 08:12:31PM +0100, Till Kamppeter wrote:

as written on

http://www.openprinting.org/download/ijs/

the current head of development of the IJS code is in Ghostscript and 
not on OpenPrinting.


So to keep the binary packages

- libijs-0.35
- libijs-dev

maintained with the up-to-date source code I suggest to remove the 
ijs source package from Debian and build the IJS library using the 
ijs/ directory of Ghostscript (naturally then not removing it from 
Ghostscript when repackaging the source tarball).


See also

http://bugs.ghostscript.com/show_bug.cgi?id=691904

WDYT?


I dislike treating Ghostscript as source of multiple libraries!

I think that a) ijs package should cherry-pick from ghostscript sources 
(manually, from upstream tarballs and/or VCS), and b) ijs package 
maintainers (or anyone, really - perhaps yourself?) verify if current 
ijs upstream truly is dead or have sane reason to not adopt what is 
currently shipped with ghostscript.  When those options are tried, we 
can discuss if perhaps we shoulf try convince Ghostscript developers to 
release their library as separate tarballs.


As a related note, I recommend ijs package maintainer to join the Debian 
Printing Team to ease coordination like this. :-)



If this email conversation itself does not cause action from ijs package 
maintainers, I suggest filing a bugreport against ijs to formally raise 
awareness on those sources supposedly lacking behind.  Ideally with 
those same recommendations as I suggest above, but if you do the 
bugfiling then obviously you get to influence in what direction you 
prefer ;-)



Kind regards,

 - Jonas

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

  [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: Digital signature


Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-24 Thread Till Kamppeter

On 01/24/2011 08:47 PM, Jonas Smedegaard wrote:

Hi Till (and others),

I took the liberty of moving this conversation to the Debian Printing
Team and cc ijs package maintainer.



OK, good idea.



I dislike treating Ghostscript as source of multiple libraries!



I prefer having each upstream source tarball which exists entering the 
distribution only once. With this principle replacing the upstream 
tarball by a newer version is easy. Replaced at this one point where it 
enters it is replaced for the whole distro. It cannot happen that one 
forgets the other places then.


If the tarball contains the source for several binary packages, it 
should generate all these binaries as separate binary packages.


If a certain piece of source code exists more than once upstream, it 
must be checked carefully, which version is the one which is actively 
maintained. Only this version should be used.



I think that a) ijs package should cherry-pick from ghostscript sources
(manually, from upstream tarballs and/or VCS), and b) ijs package
maintainers (or anyone, really - perhaps yourself?) verify if current
ijs upstream truly is dead or have sane reason to not adopt what is
currently shipped with ghostscript.


I am the maintainer of the OpenPrinting web site and no one asked for 
write access to the IJS page when the site got moved to a new server 
mid-2006. So from then on it is definitely not maintained any more on 
the OpenPrinting web site.


The Ghostscript maintainers did small changes (bug fixes, make it build 
under Windows, ...). As only they do maintenance work on it I am fine 
with the maintained source code of IJS being the ijs/ directory of 
Ghostscript. The IJS web page on OpenPrinting clearly tells that the 
officially maintained source code is in Ghostscript.



When those options are tried, we can
discuss if perhaps we shoulf try convince Ghostscript developers to
release their library as separate tarballs.



So please ask them via IRC, channel #ghostscript on Freenode or report a 
bug/feature request (product: Ghostscript, component: printer driver) on 
http://bugs.ghostscript.com/. If IJS does not get separated my 
suggesstion for best maintainability is to let the libijs* packages 
being binary packages of the ghostscript source package.



As a related note, I recommend ijs package maintainer to join the Debian
Printing Team to ease coordination like this. :-)


If this email conversation itself does not cause action from ijs package
maintainers, I suggest filing a bugreport against ijs to formally raise
awareness on those sources supposedly lacking behind. Ideally with those
same recommendations as I suggest above, but if you do the bugfiling
then obviously you get to influence in what direction you prefer ;-)


OK.

   Till


--
To UNSUBSCRIBE, email to debian-printing-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4d3de126.7020...@gmail.com



Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-24 Thread Jonas Smedegaard

On Mon, Jan 24, 2011 at 09:29:26PM +0100, Till Kamppeter wrote:

On 01/24/2011 08:47 PM, Jonas Smedegaard wrote:
I think that a) ijs package should cherry-pick from ghostscript 
sources (manually, from upstream tarballs and/or VCS), and b) ijs 
package maintainers (or anyone, really - perhaps yourself?) verify if 
current ijs upstream truly is dead or have sane reason to not adopt 
what is currently shipped with ghostscript.


I am the maintainer of the OpenPrinting web site and no one asked for 
write access to the IJS page when the site got moved to a new server 
mid-2006. So from then on it is definitely not maintained any more on 
the OpenPrinting web site.


Heh.  I am convinced! :-)


The Ghostscript maintainers did small changes (bug fixes, make it 
build under Windows, ...). As only they do maintenance work on it I 
am fine with the maintained source code of IJS being the ijs/ 
directory of Ghostscript. The IJS web page on OpenPrinting clearly 
tells that the officially maintained source code is in Ghostscript.


When those options are tried, we can discuss if perhaps we shoulf try 
convince Ghostscript developers to release their library as separate 
tarballs.




So please ask them via IRC, channel #ghostscript on Freenode or report 
a bug/feature request (product: Ghostscript, component: printer driver) 
on http://bugs.ghostscript.com/. If IJS does not get separated my 
suggesstion for best maintainability is to let the libijs* packages 
being binary packages of the ghostscript source package.


I'd let Debian ijs package maintainer do that - if in agreement that 
this is a sensible approach.


We (as in ghostscript maintainer and/or Printing Team) cannot hijack ijs 
package, so need to wait for some response from ijs package maintainer.



As a related note, I recommend ijs package maintainer to join the 
Debian Printing Team to ease coordination like this. :-)



If this email conversation itself does not cause action from ijs 
package maintainers, I suggest filing a bugreport against ijs to 
formally raise awareness on those sources supposedly lacking behind. 
Ideally with those same recommendations as I suggest above, but if you 
do the bugfiling then obviously you get to influence in what direction 
you prefer ;-)


OK.


Filing a bugreport also helps in resolving if perhaps ijs package 
maintainer might be MIA...



- Jonas

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

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: Digital signature


Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-24 Thread Till Kamppeter

On 01/24/2011 10:11 PM, Jonas Smedegaard wrote:

Filing a bugreport also helps in resolving if perhaps ijs package
maintainer might be MIA...


According to

http://packages.debian.org/changelogs/pool/main/i/ijs/ijs_0.35-7/changelog

last change on package in April 2009, last change on active code of the 
package in Feb 2004 and current maintainer is Bradley Smith (bradsmith 
at debian dot org).


   Till


--
To UNSUBSCRIBE, email to debian-printing-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4d3ded3b.1010...@gmail.com



Re: Provide libijs packages as a binary package of Ghostscript?

2011-01-24 Thread Jonas Smedegaard

On Mon, Jan 24, 2011 at 10:20:59PM +0100, Till Kamppeter wrote:

On 01/24/2011 10:11 PM, Jonas Smedegaard wrote:
Filing a bugreport also helps in resolving if perhaps ijs package 
maintainer might be MIA...


According to

http://packages.debian.org/changelogs/pool/main/i/ijs/ijs_0.35-7/changelog

last change on package in April 2009, last change on active code of the 
package in Feb 2004 and current maintainer is Bradley Smith (bradsmith 
at debian dot org).


Yes.  I noticed that.  It is legal for a package to not need changes for 
a very very long time.


Someone have to formally request a change to properly resolve if silence 
is due to maintainer being MIA or simply no need for maintainance.



NB! Putting back ijs package as cc.


 - Jonas

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

 [x] quote me freely  [ ] ask before reusing  [ ] keep private


signature.asc
Description: Digital signature