File:  [cvs.NetBSD.org] / pkgsrc / print / hplip / Makefile
Revision 1.101: download - view: text, annotated - select for diffs
Tue Jun 28 11:35:28 2022 UTC (2 years, 5 months ago) by wiz
Branches: MAIN
CVS tags: HEAD
*: recursive bump for perl 5.36

# $NetBSD: Makefile,v 1.101 2022/06/28 11:35:28 wiz Exp $

DISTNAME=	hplip-3.19.12
PKGREVISION=	15
CATEGORIES=	print
MASTER_SITES=	${MASTER_SITE_SOURCEFORGE:=hplip/}

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	http://hplipopensource.com/
COMMENT=	HP Linux Imaging and Printing
LICENSE=	gnu-gpl-v2 AND mit AND modified-bsd

CONFLICTS+=		hpijs-[0-9]*

DEPENDS+=		wget-[0-9]*:../../net/wget

FILES_SUBST+=		CUPS_USER=${CUPS_USER}
FILES_SUBST+=		CUPS_GROUP=${CUPS_GROUP}

PKG_GROUPS_VARS+=	CUPS_GROUP
PKG_USERS_VARS+=	CUPS_USER

BUILD_DEFS+=		CUPS_USER CUPS_GROUP VARBASE

USE_LIBTOOL=		yes
USE_LANGUAGES=		c c++
USE_TOOLS+=		aclocal autoconf automake gmake pkg-config
USE_TOOLS+=		perl:run
GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+=	--localstatedir=${VARBASE}
CONFIGURE_ARGS+=	--with-cupsbackenddir=${PREFIX}/libexec/cups/backend
CONFIGURE_ARGS+=	--with-cupsfilterdir=${PREFIX}/libexec/cups/filter
CONFIGURE_ARGS+=	--with-hpppddir=${PREFIX}/share/hplip/ppd/HP
CONFIGURE_ARGS+=	--enable-network-build
CONFIGURE_ARGS+=	--disable-pp-build
CONFIGURE_ARGS+=	--enable-hpcups-install
CONFIGURE_ARGS+=	--enable-cups-drv-install
CONFIGURE_ARGS+=	--enable-cups-ppd-install
# deprecated options
CONFIGURE_ARGS+=	--enable-hpijs-install
CONFIGURE_ARGS+=	--enable-foomatic-drv-install
CONFIGURE_ARGS+=	--enable-foomatic-ppd-install
CONFIGURE_ARGS+=	--enable-foomatic-rip-hplip-install

EGDIR=			${PREFIX}/share/examples/${PKGBASE}
EGFILES=		hp/hplip.conf

INSTALL_MAKE_FLAGS+=	${MAKE_FLAGS}
INSTALL_MAKE_FLAGS+=	sysconfdir=${EGDIR}
INSTALL_MAKE_FLAGS+=	localstatedir=${EGDIR}
INSTALL_MAKE_FLAGS+=	systraydir=${EGDIR}/xdg/autostart
INSTALL_MAKE_FLAGS+=	mimedir=${EGDIR}/cups

OWN_DIRS+=		${PKG_SYSCONFDIR}/hp
OWN_DIRS+=		${VARBASE}/lib/hp
OWN_DIRS+=		${PREFIX}/share/examples/hplip/log/hp
OWN_DIRS_PERMS+=	${PREFIX}/share/examples/hplip/log/hp ${CUPS_USER} ${CUPS_GROUP} 0774

PLIST_SRC=		PLIST.base

.include "options.mk"

.for file in ${EGFILES}
CONF_FILES+=		${EGDIR}/${file} ${PKG_SYSCONFDIR}/${file}
.endfor
CONF_FILES+=

REPLACE_PYTHON=		*.py */*.py */*/*.py
REPLACE_PYTHON+=	fax/filters/pstotiff
REPLACE_PYTHON+=	prnt/filters/hpps
REPLACE_PERL=		prnt/hpijs/foomatic-rip-hplip

PY_PATCHPLIST=		yes

SUBST_CLASSES+=			fix-python
SUBST_STAGE.fix-python=		post-configure
SUBST_MESSAGE.fix-python=	Fixing python invocations in Python files.
SUBST_FILES.fix-python=		check.py setup.py
SUBST_FILES.fix-python+=	base/utils.py base/pkit.py
SUBST_FILES.fix-python+=	installer/core_install.py
SUBST_FILES.fix-python+=	ui/nodevicesform.py ui/devmgr4.py
SUBST_FILES.fix-python+=	ui4/nodevicesdialog.py ui4/devmgr5.py
SUBST_SED.fix-python=		-e 's,\(['\''"]\)python ,\1${PYTHONBIN} ,g'

SUBST_CLASSES+=			fix-paths-0
SUBST_STAGE.fix-paths-0=	pre-configure
SUBST_MESSAGE.fix-paths-0=	Fixing /var/run in hplip.conf.in.
SUBST_FILES.fix-paths-0=	hplip.conf.in
SUBST_SED.fix-paths-0=		-e 's,run=/var/run,run=${VARBASE}/run,g'

SUBST_CLASSES+=			fix-paths-1
SUBST_STAGE.fix-paths-1=	post-configure
SUBST_MESSAGE.fix-paths-1=	Fixing paths in Python installer files.
SUBST_FILES.fix-paths-1=	installer/core_install.py
SUBST_FILES.fix-paths-1+=	installer/dcheck.py
SUBST_SED.fix-paths-1=		-e 's,\([ '\''"=]\)/usr,\1${PREFIX},g'
SUBST_SED.fix-paths-1+=		-e 's,"/etc/PolicyKit,"${PKG_SYSCONFDIR}/PolicyKit,g'
SUBST_SED.fix-paths-1+=		-e 's,"/etc/polkit-1,"${PKG_SYSCONFDIR}/polkit-1,g'
SUBST_SED.fix-paths-1+=		-e 's,"file:///etc/hp,"file://${PKG_SYSCONFDIR}/hp,g'
SUBST_SED.fix-paths-1+=		-e 's,"/usr/lib/cups/driver,"${PREFIX}/libexec/cups/driver,g'

SUBST_CLASSES+=			fix-paths-2
SUBST_STAGE.fix-paths-2=	post-configure
SUBST_MESSAGE.fix-paths-2=	Fixing /etc and /var paths in Python and C++ files.
SUBST_FILES.fix-paths-2=	check.py base/codes.py base/g.py base/utils.py
SUBST_FILES.fix-paths-2+=	base/queues.py installer/core_install.py
SUBST_FILES.fix-paths-2+=	fax/backend/hpfax.py prnt/cups.py
SUBST_FILES.fix-paths-2+=	ui/devmgr4.py ui4/devmgr5.py
SUBST_FILES.fix-paths-2+=	prnt/filters/hpps
SUBST_FILES.fix-paths-2+=	prnt/hpijs/globals.cpp prnt/hpijs/hpcupsfax.cpp
SUBST_FILES.fix-paths-2+=	prnt/hpijs/hpijs.cpp
SUBST_FILES.fix-paths-2+=	prnt/hpps/hppsfilter.c	# /etc/cups/cupsd.conf
SUBST_FILES.fix-paths-2+=	common/utils.c # /etc/cups/cupsd.conf
SUBST_SED.fix-paths-2=		-e 's,\([ '\''"=]\)/etc/hp,\1${PKG_SYSCONFDIR}/hp,g'
SUBST_SED.fix-paths-2+=		-e 's,\([ '\''"=]\)/etc/cups,\1${PKG_SYSCONFDIR}/cups,g'
SUBST_SED.fix-paths-2+=		-e 's,\([ '\''"=]\)/etc/sane.d,\1${PKG_SYSCONFDIR}/sane.d,g'
SUBST_SED.fix-paths-2+=		-e 's,\([ '\''"=]\)/var/lib/hp,\1${VARBASE}/lib/hp,g'
SUBST_SED.fix-paths-2+=		-e 's,\([ '\''"=]\)/var/log/cups,\1${VARBASE}/log/cups,g'
SUBST_SED.fix-paths-2+=		-e 's,\([ '\''"=]\)/var/spool/cups,\1${VARBASE}/spool/cups,g'

SUBST_CLASSES+=			fix-paths-3
SUBST_STAGE.fix-paths-3=	post-configure
SUBST_MESSAGE.fix-paths-3=	Fixing additional paths in base/pkit.py.
SUBST_FILES.fix-paths-3=	base/pkit.py
SUBST_SED.fix-paths-3=		-e 's,\([ '\''"=]\)/usr,\1${PREFIX},g'

SUBST_CLASSES+=			fix-paths-4
SUBST_STAGE.fix-paths-4=	post-configure
SUBST_MESSAGE.fix-paths-4=	Fixing default PPD search path in base/g.py and prnt/cups.py.
SUBST_FILES.fix-paths-4=	base/g.py prnt/cups.py
SUBST_SED.fix-paths-4=		-e '\,ppd_search_path =, { s,/usr/\([a-z]*\);,/usr/\1;${PREFIX}/\1;,g ; }'
SUBST_SED.fix-paths-4+=		-e 's,\([ '\''"=]\)/usr/share/ppd,\1${PREFIX}/share/ppd,g'

SUBST_CLASSES+=			fix-paths-5
SUBST_STAGE.fix-paths-5=	post-configure
SUBST_MESSAGE.fix-paths-5=	Fixing paths in prnt/hpijs/foomatic-rip-hplip.
SUBST_FILES.fix-paths-5=	prnt/hpijs/foomatic-rip-hplip
SUBST_SED.fix-paths-5=		-e 's,\([ '\''"=]\)/etc/cups,\1${PKG_SYSCONFDIR}/cups,g'
SUBST_SED.fix-paths-5+=		-e 's,\([ '\''"=]\)/etc/foomatic,\1${PKG_SYSCONFDIR}/foomatic,g'
SUBST_SED.fix-paths-5+=		-e 's,\([ '\''"=]\)/var/spool,\1${VARBASE}/spool,g'
SUBST_SED.fix-paths-5+=		-e 's,prefix = "/usr",prefix = "${PREFIX}",g'
SUBST_SED.fix-paths-5+=		-e 's,\(path = "/usr/bin:\),\1${PREFIX}/bin:,g'
SUBST_SED.fix-paths-5+=		-e 's,\(path = "/usr/lib/cups/filter:\),\1${PREFIX}/libexec/cups/filter:,g'
SUBST_SED.fix-paths-5+=		-e '\,} elsif (-r "/usr/share/ppr, { N ; p ; s,"/usr,"${PREFIX},g ; }'

SUBST_CLASSES+=			fix-paths-6
SUBST_STAGE.fix-paths-6=	post-configure
SUBST_MESSAGE.fix-paths-6=	Fixing paths in fax/filters/pstotiff.
SUBST_FILES.fix-paths-6=	fax/filters/pstotiff
SUBST_SED.fix-paths-6=		-e 's,"-I/usr/share/cups/fonts","-I${PREFIX}/share/cups/fonts",g'
SUBST_SED.fix-paths-6+=		-e 's,"/usr/bin/gs","${PREFIX}/bin/gs",g'

# NetBSD has strnlen(3) since 5.99.12
.if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 059912
SUBST_CLASSES+=			fix-strnlen
SUBST_STAGE.fix-strnlen=	post-configure
SUBST_MESSAGE.fix-strnlen=	Replacing strnlen() with strlen() in two C++ files.
SUBST_FILES.fix-strnlen=	prnt/hpijs/context2.cpp prnt/hpijs/ljzjscolor.cpp
SUBST_SED.fix-strnlen=		-e 's/\([ (]\)strnlen(\([^,]*\), DevIDBuffSize)/\1strlen(\2)/g'
.endif

.include "../../mk/dlopen.buildlink3.mk"
BUILDLINK_TRANSFORM+=	opt:-ldl:${BUILDLINK_LDADD.dl:Q}

pre-configure:
	cd ${WRKSRC} && aclocal && automake --add-missing --foreign && autoconf

INSTALLATION_DIRS+=	share/cups/model

post-install:
	${CHMOD} a-x ${DESTDIR}${PREFIX}/share/hplip/__init__.py
	${PY_COMPILE_ALL} ${DESTDIR}${PREFIX}/share/hplip
	${LN} -s ../../../share/hplip/ppd ${DESTDIR}${PREFIX}/share/cups/model/hplip-ppds

.include "../../lang/python/application.mk"
.include "../../lang/python/extension.mk"
.include "../../mk/jpeg.buildlink3.mk"
.include "../../net/net-snmp/buildlink3.mk"
.include "../../print/cups-base/buildlink3.mk"
.include "../../print/ghostscript/buildlink3.mk"
.include "../../devel/libusb1/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>