You are not logged in.
http://aur.archlinux.org/packages.php?d … s=0&SeB=nd
I've already uploaded it, although I should have checked with you folks first. Hussam was kind enough to guide me through its creation, though.
Please tell me if you see something out of place, or if the package doesn't work.
BTW, it should replace ghostscript package, but for some reason it fails to do so. The install would simply abort telling me the ghostscript is needed but this package and that package. I have included the provides, replaces, and conflicts lines, but that didn't work... Any thoughts?
Besides that, the PKGBUILD is a heavily modified version of the original ghostscript PKGBUILD, so there are some traces of the old package, which ultimately don't make a difference (or so I believe).
The reason why I needed this package is that ghostscript package (ESP Ghostscript) is
1. outdated compared to GPL
2. supposedly lacks features that GPL version has
3. depreciated by most Scribus users
Offline
Small things first, in no particular order:
- license is GPL, not GPL2
- you have arch=i686 only, but you have an x86_64 test in the build function
- remove the replaces= line. Not everyone will want to replace the ESP version, and also replaces= only works with binary packages installed from a repo with pacman -S
- you have four sources and only one MD5
- the external libs can be put in place with one mv command each, instead of two
Bigger thing:
This package is dumb, IMO. That's not aimed at you, but at the notion that this package has to be built with its own copies of the jpeg, png, and zlib source. Now I haven't looked at the source, so far all I know it may have to be built that way, but it shouldn't. Many users will already have the libjpeg, libpng. and/or zlib Arch packages installed, and they provide everything necessary to build other apps against them. It may be possible to hack the source to achieve this, but in the meantime, I'd suggest a polite email to the devs.
Offline
Small things first, in no particular order:
- license is GPL, not GPL2
Okay.
- you have arch=i686 only, but you have an x86_64 test in the build function
I've seen that only after I uploaded, will remove it this evening and upload again.
- remove the replaces= line. Not everyone will want to replace the ESP version, and also replaces= only works with binary packages installed from a repo with pacman -S
Will do.
- you have four sources and only one MD5
Ok.
- the external libs can be put in place with one mv command each, instead of two
If they are really necessary, that is, right?
Bigger thing:
This package is dumb, IMO. That's not aimed at you, but at the notion that this package has to be built with its own copies of the jpeg, png, and zlib source. Now I haven't looked at the source, so far all I know it may have to be built that way, but it shouldn't. Many users will already have the libjpeg, libpng. and/or zlib Arch packages installed, and they provide everything necessary to build other apps against them. It may be possible to hack the source to achieve this, but in the meantime, I'd suggest a polite email to the devs.
Will try building the package without the included libraries. I am aware that those libraries are all present (even on my box), installed as separate packages. But the docs for it on the Internet (old ones) suggested that libs be included in the source dir prior to building. I checked the docs in the tarball, and I noticed that the part about libs is gone, but since I'm a noob at this I couldn't decide if I should or should not include them.
Offline
OK - if your original build is based on old docs, that starts to make sense (a little sense, anyway). Have a look at the options in ./configure --help - see if there's anything helpful there.
Offline
OK - if your original build is based on old docs, that starts to make sense (a little sense, anyway). Have a look at the options in ./configure --help - see if there's anything helpful there.
Here is the complete output (I've stripped the parts that seemed to be of little interest):
Usage: ./configure [OPTION]... [VAR=VALUE]...
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
X features:
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-compile-inits compile initialization files into Ghostscript
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-ijs include IJS driver support
--with-jbig2dec include JBIG2 decode support
--with-jasper link to the JasPer library for JPEG 2000
--with-x use the X Window System
--with-gs=NAME name of the ghostscript executible [gs]
The new docs says what most packages say nowadays:
./configure && make && make install
So I guess no fiddling of the kind I tried to pull off was really necessary.
One thing though. There doesn't seem to be any option for specifying the fonts dir. GS expects fonts to be in /usr[/local]/share/ghostscript/fonts dir. I assume it would be somewhat more elegant if I could tell it to look for fonts in the usual fonts dir, rather in the default location. Or wait... there is a GS_FONTMAP variable... where do I set it? in PKGBUILD?
One more question. There is a section about building GS as shared objects. What does that mean? I only know I need this for use with GSView which is next on my list. The process is the same as for GS, but instead of
make install
I am supposed to
make soinstall
Would this result in another package like gs-shared-gpl or something?
Please tell me if you see anything of intereset. So far, I've been such a nexter when it comes to building packages...
Offline
You don't need another gs-shared-gpl package. Replace
make install
by:
make install soinstall
That will install the shared libraries as well as the other stuff.
Offline
Here's the modified (and working) PKGBUILD...
# Contributor: Branko Vukelic (bg.branko@gmail.com)
pkgname=ghostscript-gpl
pkgver=8.54
pkgrel=1
pkgdesc="An interpreter for the PostScript language"
arch=(i686)
depends=(libjpeg libpng zlib jasper libxt libcups fontconfig gsfonts)
license=(GPL)
makedepends=(gcc)
provides=(ghostscript)
conflicts=(ghostscript)
url="http://www.cs.wisc.edu/~ghost/"
source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs854/ghostscript-${pkgver}-gpl.tar.gz)
md5sums=('d6ab7f6b5ce76be30be03ee909388cd5')
build() {
cd ${startdir}/src/ghostscript-${pkgver}-gpl
export GS_FONTMAP="/usr/share/fonts/Type1:/usr/share/fonts"
./configure --prefix=/usr --enable-dynamic --enable-threads --with-ijs
--with-jbig2dec --with-jasper --with-x
make -j1 || return 1
make prefix=${startdir}/pkg/usr
cups_serverroot=${startdir}/pkg/etc/cups
cups_serverbin=${startdir}/pkg/usr/lib/cups install soinstall
}
Offline
If I install this, will packages depeding on Ghostscript directly, like hplip, use this instead of Ghostscript-esp?
Thanks for posting this. I was missing Ghostscript-gpl.
EDIT: The download link does not work for me. I had to use the sourceforge mirror.
Offline
If I install this, will packages depeding on Ghostscript directly, like hplip, use this instead of Ghostscript-esp?
Thanks for posting this. I was missing Ghostscript-gpl.
EDIT: The download link does not work for me. I had to use the sourceforge mirror.
Maybe not for all printers, I don't know. GS ESP (the "gostscript" package) is supposed to have better printer support and is primarily used for hplip etc. I guess that is the reason it is hosted at the CUPS site.
I have tested ghostscript-gpl with Scribus and KGhostview and those work well.
I don't know about the link... Maybe it's temporary. I packaged like ten times yesterday... *shrugs*
Offline
I finally got the link to work. I guess they did have an outage or something.
I have used the afpl/gpl version on other distros, mainly with cups, and then hplip once that was developed. The gpl version has always worked better than the esp version. I found patches in the bug tracker for ghostscript and I am going to try those out to see how they work.
Cheers.
Offline
I finally got the link to work. I guess they did have an outage or something.
I have used the afpl/gpl version on other distros, mainly with cups, and then hplip once that was developed. The gpl version has always worked better than the esp version. I found patches in the bug tracker for ghostscript and I am going to try those out to see how they work.
Cheers.
Excellent! Could you modify the PKGBUILD accordingly and toss us the code in this thread?
Offline
I had a compile error with your PKGBUILD. I found out why. Apparently Ghostscript-GPL depends on gtk. There is a way to disable that, but I have a patch that updates the dependency to GTK2, well, because 2 is better than 1.
I don't know much about PKGBUILDs yet, but I managed to hack in the patches:
source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs854/ghostscript-${pkgver}-gpl.tar.gz
ghostscript-afpl-8.54-cups-lib.patch
ghostscript-afpl-8.54-big-cmap-post.patch
ghostscript-afpl-8.54-ps2epsi-afpl.diff
ghostscript-afpl-8.54-rinkj.patch
ghostscript-afpl-8.54-destdir.diff
ghostscript-afpl-8.54-gtk2.patch
ghostscript-afpl-8.54-segfault.patch)
I don't know how to list the md5sums in a PKGBUILD, so I didn't get those. :oops:
build() {
cd ${startdir}/src/ghostscript-${pkgver}-gpl
# patch -p1 < ../patch1 || return 1
patch -p0 -i ../ghostscript-afpl-8.54-cups-lib.patch || return 1
patch -p1 -i ../ghostscript-afpl-8.54-big-cmap-post.patch || return 1
# #128650, #128645, http://bugs.ghostscript.com/show_bug.cgi?id=688703
patch -p1 -i ../ghostscript-afpl-8.54-ps2epsi-afpl.diff || return 1
patch -p1 -i ../ghostscript-afpl-8.54-rinkj.patch || return 1
patch -p1 -i ../ghostscript-afpl-8.54-destdir.diff || return 1
# already fixed inSVN, http://bugs.ghostscript.com/show_bug.cgi?id=688702
patch -p1 -i ../ghostscript-afpl-8.54-gtk2.patch || return 1
# fixed inSVN http://bugs.ghostscript.com/show_bug.cgi?id=688721
patch -p1 -i ../ghostscript-afpl-8.54-segfault.patch || return 1
export GS_FONTMAP="/usr/share/fonts/Type1:/usr/share/fonts"
./configure --prefix=/usr --enable-dynamic --enable-threads --with-ijs
--with-jbig2dec --with-jasper --with-x
The patches ... well, they can be found at those bug locations but I did a search and the Gentoo cvs had them all right there in on location, plus a few more that I don't know what they do. You may be interested in them. Also, you might want to click on the parent directory link and look at the ebuild, it has info on how to use the other patches, including one that adds support for a printer that I do not have. Also, the ebuild has the sed lines needed to disable support completely for GTK.
Is it possible to detect if a person has a package with a PKGBUILD? Like, see if gtk2 is installed, and if so patch and if not, then do the sed lines to disable gtk completely?
Anyways, the folder that has all the patches:
http://viewcvs.gentoo.org/viewcvs.py/ge … gpl/files/
These patches seem to work alright. It built. You may want to look in them and see if you would like to include them and if the pathes are correct.
Cheers, and thanks again for your time on Ghostscript-GPL. I can't live without it.
Offline
I had a compile error with your PKGBUILD. I found out why. Apparently Ghostscript-GPL depends on gtk. There is a way to disable that, but I have a patch that updates the dependency to GTK2, well, because 2 is better than 1.
I don't know much about PKGBUILDs yet, but I managed to hack in the patches:
Heheh, I'm still green, too. But I'm new to the whole package building thing anyway, so you do have a nice head start right there.
source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs854/ghostscript-${pkgver}-gpl.tar.gz
ghostscript-afpl-8.54-cups-lib.patch
ghostscript-afpl-8.54-big-cmap-post.patch
ghostscript-afpl-8.54-ps2epsi-afpl.diff
ghostscript-afpl-8.54-rinkj.patch
ghostscript-afpl-8.54-destdir.diff
ghostscript-afpl-8.54-gtk2.patch
ghostscript-afpl-8.54-segfault.patch)
I don't know much about patching. However, those patches seem to be for AFPL GS, which uses a different license...
I don't know how to list the md5sums in a PKGBUILD, so I didn't get those. :oops:
Basically you
md5sum filename
and copy/append the output to
md5sums=('md5sum1 md5sum2 md5sum3...')
line. I think you need to supply those only for files listed under source=(...) line.
build() {
cd ${startdir}/src/ghostscript-${pkgver}-gpl
# patch -p1 < ../patch1 || return 1
patch -p0 -i ../ghostscript-afpl-8.54-cups-lib.patch || return 1
patch -p1 -i ../ghostscript-afpl-8.54-big-cmap-post.patch || return 1
# #128650, #128645, http://bugs.ghostscript.com/show_bug.cgi?id=688703
patch -p1 -i ../ghostscript-afpl-8.54-ps2epsi-afpl.diff || return 1
patch -p1 -i ../ghostscript-afpl-8.54-rinkj.patch || return 1
patch -p1 -i ../ghostscript-afpl-8.54-destdir.diff || return 1
# already fixed inSVN, http://bugs.ghostscript.com/show_bug.cgi?id=688702
patch -p1 -i ../ghostscript-afpl-8.54-gtk2.patch || return 1
# fixed inSVN http://bugs.ghostscript.com/show_bug.cgi?id=688721
patch -p1 -i ../ghostscript-afpl-8.54-segfault.patch || return 1
export GS_FONTMAP="/usr/share/fonts/Type1:/usr/share/fonts"
./configure --prefix=/usr --enable-dynamic --enable-threads --with-ijs
--with-jbig2dec --with-jasper --with-x
Very nice... but again, I don't know if those patches are supposed to be included in GPL Ghostscript.
The patches ... well, they can be found at those bug locations but I did a search and the Gentoo cvs had them all right there in on location, plus a few more that I don't know what they do. You may be interested in them. Also, you might want to click on the parent directory link and look at the ebuild, it has info on how to use the other patches, including one that adds support for a printer that I do not have. Also, the ebuild has the sed lines needed to disable support completely for GTK.
Uh... ebuilds are a bit over my head. At least at this moment. You see, I was not going to actually maintain the package. I just wanted to make a good working PKGBUILD and have it in AUR so others can take over if interested. I just needed GPL GS so I had no choice but to build it myself.
Yeah, I have GTK so I would have never thought to check for it. The Ghostscript docs mention no dependencies... at all
Is it possible to detect if a person has a package with a PKGBUILD? Like, see if gtk2 is installed, and if so patch and if not, then do the sed lines to disable gtk completely?
I think if pacman -Qs pkgname returns output, it means a person has pkgname package. So if there's a bash thing that can do such checks, you can know if the package is present. But I don't know how.
Anyways, the folder that has all the patches:
http://viewcvs.gentoo.org/viewcvs.py/ge … gpl/files/These patches seem to work alright. It built. You may want to look in them and see if you would like to include them and if the pathes are correct.
Well, if it builds, I think it can be considered a quick and dirty working version of the PKGBUILD. Until proven it is also elegant and correct, that is. I'm just unsure about the licenses. As I said, I have no capacity to check the patches myself. But if you know what they do, and if they work, you may supply us with a working PKGBUILD, and I'll upload it... or you may upload it yourself. I don't know how AUR functions in such cases... i.e., if multiple users are allowed to submit fixes for a single package.
Cheers, and thanks again for your time on Ghostscript-GPL. I can't live without it.
No prob. Glad I saved one life with this package. If you want, you can take over the maintenance, since I don't know if I can manage it properly.
Offline
Those patches are labled afpl, only because they were for the afpl version. The afpl version was renamed to the gpl version. It's the same code for the most part. You can rename the patches to gpl, if you want. The gentoo devs were lazy and didn't rename them. They are safe to apply to the GPL versions. Most of those patches are included upstream and will be out whenever the next version is. So, they are perfectly safe.
I am new to the AUR as well. The patch description is pretty much the name. I could upload them, but this your PKGBUILD. And these patches will not be needed in the future. Well, some of them.
The licenses should be fine if you rename the patch to gpl.
I don't know if I have the time to maintain a package. Hopefully a dev picks this up and adds it to one of the arch trees. That would be cool
Cheers.
Offline
I am new to the AUR as well. The patch description is pretty much the name. I could upload them, but this your PKGBUILD.
Then I'd rather you do it. If you have no problem with that, of course.
The licenses should be fine if you rename the patch to gpl.
I don't know if I have the time to maintain a package. Hopefully a dev picks this up and adds it to one of the arch trees. That would be cool
Cheers.
Well, I hear from Scribus devs that ESP is not as good as GPL, and if most printers can work with GPL as well as with ESP, then I think GPL should replace ESP, or at least be in extra repos. The thing is, people dealing with DTP tasks will more or less prefer GPL over ESP.
Thanks for the fixes. I myself am not going to patch anything (too lazy I guess) but it does add value to the package.
Offline
No problem. I guess I can rename and md5sum the packages. No problem about helping. Just trying help out anyway I can. Hopefully others can benefit from this.
I filed this: http://bugs.archlinux.org/task/6222 before I found your PKGBUILD. The last time I looked in the AUR I never saw ghostscript-gpl. *whistles*
Cheers.
Offline
No problem. I guess I can rename and md5sum the packages. No problem about helping. Just trying help out anyway I can. Hopefully others can benefit from this.
Yes, that's the whole point.
I filed this: http://bugs.archlinux.org/task/6222 before I found your PKGBUILD. The last time I looked in the AUR I never saw ghostscript-gpl. *whistles*
You can see the date I posted the original PKGBUILD is the same as the date I started this thread. Anyway, I think AUR doesn't list packages from main arch repos. I tried to find the PKGBUILD for ghostscript package via AUR to no avail. In the end I synced the ABS tree and found it locally in /var/abs.
EDIT: You should probably add a comment about this PKGBUILD in the Flyspray.
EDIT: You just gave me an idea. I'll try to recompile Scribus against new GS and see if it does anything odd and/or better.
Offline
I made an account on the AUR, but I can't modify the page to include the patches.
I renamed the patches and included md5sums. I uploaded it to that bug report ( http://bugs.archlinux.org/task/6222 ), so you can download it and then post it in the AUR if you wish. Oh, I also added in GTK2 depend. Unless you want gtk support disabled completely, but I need to decifer some sed lines to do that.
Offline
I made an account on the AUR, but I can't modify the page to include the patches.
I renamed the patches and included md5sums. I uploaded it to that bug report ( http://bugs.archlinux.org/task/6222 ), so you can download it and then post it in the AUR if you wish. Oh, I also added in GTK2 depend. Unless you want gtk support disabled completely, but I need to decifer some sed lines to do that.
Got ya. Will upload in a minute.
BTW, are you Jon from Scribus mailing list? or you have nothing to do with Scribus?
EDIT: I've seen the tarball, but there are patches included. Are they supposed to be included in the tarball? Since you had them listed source line, they will get downloaded anyway, you know.
Here's the code so that everyone can see:
# Contributor: Branko Vukelic (bg.branko@gmail.com)
# 2nd release: SchaduwBlink
pkgname=ghostscript-gpl
pkgver=8.54
pkgrel=2
pkgdesc="An interpreter for the PostScript language"
arch=(i686)
depends=(libjpeg libpng zlib jasper libxt libcups fontconfig gsfonts gtk2)
license=(GPL)
makedepends=(gcc)
provides=(ghostscript)
conflicts=(ghostscript)
url="http://www.cs.wisc.edu/~ghost/"
source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs854/ghostscript-${pkgver}-gpl.tar.gz
ghostscript-gpl-8.54-cups-lib.patch
ghostscript-gpl-8.54-big-cmap-post.patch
ghostscript-gpl-8.54-ps2epsi-gpl.diff
ghostscript-gpl-8.54-rinkj.patch
ghostscript-gpl-8.54-destdir.diff
ghostscript-gpl-8.54-gtk2.patch
ghostscript-gpl-8.54-segfault.patch)
md5sums=('d6ab7f6b5ce76be30be03ee909388cd5' 'f8d20e0e6dfd916554ecbef5e5d66f07'
'33ed647c4208f611993c427a0d5a0264' '9b8d204124945fc5cdacc9c4f22eb3e5'
'0f7664981cfc60e05a0890e28a5c1611' 'd638424ef6990aa5172f21b35c5506ac'
'e8974faf06541ccb8c271180d87175bd' 'f343c63f09ff29ea27783b73e202f823')
build() {
cd ${startdir}/src/ghostscript-${pkgver}-gpl
patch -p0 -i ../ghostscript-gpl-8.54-cups-lib.patch || return 1
patch -p1 -i ../ghostscript-gpl-8.54-big-cmap-post.patch || return 1
# #128650, #128645, http://bugs.ghostscript.com/show_bug.cgi?id=688703
patch -p1 -i ../ghostscript-gpl-8.54-ps2epsi-gpl.diff || return 1
patch -p1 -i ../ghostscript-gpl-8.54-rinkj.patch || return 1
patch -p1 -i ../ghostscript-gpl-8.54-destdir.diff || return 1
# already fixed inSVN, http://bugs.ghostscript.com/show_bug.cgi?id=688702
patch -p1 -i ../ghostscript-gpl-8.54-gtk2.patch || return 1
# fixed inSVN http://bugs.ghostscript.com/show_bug.cgi?id=688721
patch -p1 -i ../ghostscript-gpl-8.54-segfault.patch || return 1
export GS_FONTMAP="/usr/share/fonts/Type1:/usr/share/fonts"
./configure --prefix=/usr --enable-dynamic --enable-threads --with-ijs
--with-jbig2dec --with-jasper --with-x
make -j1 || return 1
make prefix=${startdir}/pkg/usr
cups_serverroot=${startdir}/pkg/etc/cups
cups_serverbin=${startdir}/pkg/usr/lib/cups install soinstall
}
Offline
Those patches need to be in the tarball. They do not get downloaded since they don't have web addresses. They go in the same directory as the PKGBUILD. Although, I could clean it up by putting all patches in a directory named patches, but none of the other packages seem to do that.
Thanks for taking care of it. I hope others can benefit from the patches.
I am not that Jon from the scribus ML. There seem to be a lot of Jon's in the Linux world.
Cheers.
Offline
Those patches need to be in the tarball. They do not get downloaded since they don't have web addresses. They go in the same directory as the PKGBUILD. Although, I could clean it up by putting all patches in a directory named patches, but none of the other packages seem to do that.
Haha, and you told me you were new to this?!
Thanks for taking care of it. I hope others can benefit from the patches.
I am not that Jon from the scribus ML. There seem to be a lot of Jon's in the Linux world.
Cheers.
Yeah, certainly seems there's quite a few Jons. Thanks for the patches. If you're interested, there's a GSView Ghostscript viewer that could also prove useful. I'm looking into it, but I'm really not sure...
Offline
Have you had any luck with GSview? It gives me all these errors about not finding GTK 1.2 libraries... it doesn't seem to realize everyone has 2.0 now... must be poorly maintained.
6EA3 F3F3 B908 2632 A9CB E931 D53A 0445 B47A 0DAB
Great things come in tar.xz packages.
Offline