git: 22c848a26101 - main - print/ghostscript10: Flavorize and add support for shared library

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Sat, 24 Jun 2023 08:51:29 UTC
The branch main has been updated by diizzy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=22c848a2610119c42e32095a0548ace69926b211

commit 22c848a2610119c42e32095a0548ace69926b211
Author:     Chad Jacob Milios <milios@ccsys.com>
AuthorDate: 2023-06-24 07:53:30 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2023-06-24 08:51:24 +0000

    print/ghostscript10: Flavorize and add support for shared library
    
    Add flavor support, support for shared library and various improvements
    to the port itself. Co-authored by Michael Osipov (maintainer)
    
    PR:             270989
    Reviewed by:    Michael Osipov (maintainer)
---
 print/ghostscript10/Makefile  | 118 ++++++++++++++++++++++++++----------------
 print/ghostscript10/pkg-plist |   7 +++
 2 files changed, 80 insertions(+), 45 deletions(-)

diff --git a/print/ghostscript10/Makefile b/print/ghostscript10/Makefile
index 7bca1945c134..6f48a5b54bca 100644
--- a/print/ghostscript10/Makefile
+++ b/print/ghostscript10/Makefile
@@ -1,8 +1,9 @@
 PORTNAME=	ghostscript
 DISTVERSION=	10.01.1
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	print
 MASTER_SITES=	https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${DISTVERSION:S/.//g}/
+PKGNAMESUFFIX=	${GS_MAJOR_VERSION}
 
 MAINTAINER=	michael.osipov@siemens.com
 COMMENT=	PostScript and PDF interpreter
@@ -23,57 +24,81 @@ LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig \
 RUN_DEPENDS=	poppler-data>=0.4.9:graphics/poppler-data \
 		urw-base35-fonts>=20200910:x11-fonts/urw-base35-fonts
 
+FLAVORS=	default x11
+FLAVOR?=	${FLAVORS:[1]}
+default_CONFLICTS_INSTALL=	${PORTNAME}${GS_MAJOR_VERSION}-${FLAVORS:[2]}
+x11_PKGNAMESUFFIX=		${GS_MAJOR_VERSION}-${FLAVOR}
+x11_CONFLICTS_INSTALL=		${PORTNAME}${GS_MAJOR_VERSION}
+
 USES=		cpe gmake iconv jpeg localbase pkgconfig tar:xz
+USE_LDCONFIG=	yes
 CPE_VENDOR=	artifex
 
 CONFLICTS_INSTALL=	ghostscript[789]-base \
-		ghostscript[789]-x11 \
-		ghostscript9-agpl-base \
-		ghostscript9-agpl-x11
+			ghostscript[789]-x11 \
+			ghostscript9-agpl-base \
+			ghostscript9-agpl-x11
+
 EXTRACT_AFTER_ARGS=	--exclude cups/libs \
-		--exclude freetype \
-		--exclude ijs \
-		--exclude jbig2dec \
-		--exclude jpeg \
-		--exclude lcms2mt \
-		--exclude libpng \
-		--exclude openjpeg \
-		--exclude tiff \
-		--exclude zlib
-
-DATADIR=	${PREFIX}/share/${PORTNAME}/${DISTVERSION}
+			--exclude freetype \
+			--exclude ijs \
+			--exclude jbig2dec \
+			--exclude jpeg \
+			--exclude lcms2mt \
+			--exclude libpng \
+			--exclude openjpeg \
+			--exclude tiff \
+			--exclude zlib
 
 GNU_CONFIGURE=	yes
 
-CONFIGURE_ARGS=	--disable-compile-inits \
-		--disable-dbus \
-		--disable-gtk \
-		--disable-dynamic \
-		--enable-contrib \
-		--enable-fontconfig \
-		--enable-freetype \
-		--enable-openjpeg \
-		--with-fontpath=${LOCALBASE}/share/fonts \
-		--with-jbig2dec \
-		--with-libiconv=maybe \
-		--with-libidn \
-		--with-libpaper \
-		--with-system-libtiff \
-		--without-x
-
-OPTIONS_DEFINE=	CUPS IJS TESSERACT
-OPTIONS_DEFAULT=CUPS
-
-IJS_DESC=		Support libijs based Ghostscript devices
-TESSERACT_DESC=		Enable bundled Tesseract OCR engine
-
-CUPS_LIB_DEPENDS=	libcups.so:print/cups
-CUPS_CONFIGURE_ENABLE=	cups
-
-IJS_LIB_DEPENDS=	libijs.so:print/libijs
-IJS_CONFIGURE_WITH=	ijs
-
-TESSERACT_USES=		compiler:c++17-lang
+ALL_TARGET=	so
+INSTALL_TARGET=	soinstall
+
+.if ${FLAVOR} == default
+CONFIGURE_ARGS+=	--without-x
+.endif
+.if ${FLAVOR} == x11
+USES+=			xorg
+USE_XORG=		ice sm x11 xext xt
+CONFIGURE_ARGS+=	--with-x
+.endif
+
+DATADIR=		${PREFIX}/share/${PORTNAME}/${DISTVERSION}
+
+GS_MAJOR_VERSION=	${DISTVERSION:R:R}
+GS_MINOR_VERSION=	${DISTVERSION:R:E}
+PLIST_SUB=		GS_MAJOR_VERSION=${GS_MAJOR_VERSION} \
+			GS_MINOR_VERSION=${GS_MINOR_VERSION}
+
+CONFIGURE_ARGS+=	--disable-compile-inits \
+			--disable-dbus \
+			--disable-gtk \
+			--disable-dynamic \
+			--enable-contrib \
+			--enable-fontconfig \
+			--enable-freetype \
+			--enable-openjpeg \
+			--with-fontpath=${LOCALBASE}/share/fonts \
+			--with-jbig2dec \
+			--with-libiconv=maybe \
+			--with-libidn \
+			--with-libpaper \
+			--with-system-libtiff
+
+OPTIONS_DEFINE=		CUPS IJS TESSERACT
+OPTIONS_DEFAULT=	CUPS
+
+IJS_DESC=			Support libijs based Ghostscript devices
+TESSERACT_DESC=			Enable bundled Tesseract OCR engine
+
+CUPS_LIB_DEPENDS=		libcups.so:print/cups
+CUPS_CONFIGURE_ENABLE=		cups
+
+IJS_LIB_DEPENDS=		libijs.so:print/libijs
+IJS_CONFIGURE_WITH=		ijs
+
+TESSERACT_USES=			compiler:c++17-lang
 TESSERACT_CONFIGURE_WITH=	tesseract
 # No TESSERACT_LIB_DEPENDS=	libtesseract.so:graphics/tesseract
 # See https://bugs.ghostscript.com/show_bug.cgi?id=706490
@@ -83,7 +108,10 @@ post-patch:
 		${PATCH_WRKSRC}/man/gs.1
 
 post-install:
-	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/gs
+	${MV} ${STAGEDIR}${PREFIX}/bin/gsc ${STAGEDIR}${PREFIX}/bin/gs
+	${RM} ${STAGEDIR}${PREFIX}/bin/gsx
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/gs \
+		${STAGEDIR}${PREFIX}/lib/libgs.so.${GS_MAJOR_VERSION}.${GS_MINOR_VERSION}
 	${RM} ${STAGEDIR}${PREFIX}/bin/lprsetup.sh
 	${RM} ${STAGEDIR}${PREFIX}/bin/unix-lpr.sh
 	${MKDIR} ${STAGEDIR}${PREFIX}/share/color/icc
diff --git a/print/ghostscript10/pkg-plist b/print/ghostscript10/pkg-plist
index 861f38d4d3e3..c67c0b549cb3 100644
--- a/print/ghostscript10/pkg-plist
+++ b/print/ghostscript10/pkg-plist
@@ -22,6 +22,13 @@ bin/ps2pdf14
 bin/ps2pdfwr
 bin/ps2ps
 bin/ps2ps2
+include/ghostscript/gdevdsp.h
+include/ghostscript/gserrors.h
+include/ghostscript/iapi.h
+include/ghostscript/ierrors.h
+lib/libgs.so
+lib/libgs.so.%%GS_MAJOR_VERSION%%
+lib/libgs.so.%%GS_MAJOR_VERSION%%.%%GS_MINOR_VERSION%%
 man/man1/dvipdf.1.gz
 man/man1/eps2eps.1.gz
 man/man1/gs.1.gz