[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / print / cups-base

File: [cvs.NetBSD.org] / pkgsrc / print / cups-base / Makefile (download)

Revision 1.47, Tue May 10 20:47:37 2022 UTC (8 months, 3 weeks ago) by markd
Branch: MAIN
Changes since 1.46: +1 -5 lines

{cups,cups-base,libcups}: update to 2.4.1

Changes in CUPS v2.4.1 (27th January 2022)
------------------------------------------

- The default color mode now is now configurable and defaults to the printer's
  reported default mode
- Configuration script now checks linking for -Wl,-pie flags
- Fixed memory leaks - in testi18n, in `cups_enum_dests()`,
  in `_cupsEncodeOption()` and `http_tls_upgrade()`
- Fixed missing bracket in de/index.html
- Fixed typos in configuration scripts
- Removed remaining legacy code for `RIP_MAX_CACHE` environment variable
- Removed deprecated directives from cupsctl and cups-files.conf
- Removed `purge-jobs` legacy code from CGI scripts and templates


Changes in CUPS v2.4.0 (29th November 2021)
-------------------------------------------

- Added configure option --with-idle-exit-timeout
- Added --with-systemd-timeoutstartsec configure option
- DigestOptions now are applied for MD5 Digest authentication defined
  by RFC 2069 as well
- Fixed compilation on Solaris
- Fixed and improved German translations


Changes in CUPS v2.4rc1 (12th November 2021)
--------------------------------------------

- Added warning and debug messages when loading printers
 if the queue is raw or with driver
- Compilation now uses -fstack-protector-strong if available


Changes in CUPS v2.4b1 (27th October 2021)
------------------------------------------

- Added support for CUPS running in a Snapcraft snap.
- Added basic OAuth 2.0 client support
- Added support for AirPrint and Mopria clients
- Added configure support for specifying systemd dependencies in the CUPS
  service file
- Added a JSON output mode for `ipptool`.
- The `ipptool` command now correctly reports an error when a test file cannot
  be found.
- CUPS library now uses thread safe `getpwnam_r` and `getpwuid_r` functions
- Fixed Kerberos authentication for the web interface
- The ZPL sample driver now supports more "standard" label sizes
- Fixed reporting of printer instances when enumerating and when no options are
  set for the main instance
- Reverted USB read limit enforcement change from CUPS 2.2.12
- The IPP backend did not return the correct status code when a job was canceled
  at the printer/server
- The `testlang` unit test program now loops over all of the available locales
  by default
- The `cupsfilter` command now shows error messages when options are used
  incorrectly
- The PPD functions now treat boolean values as case-insensitive
- Temporary queue names no longer end with an underscore
- The USB backend now runs as root
- Added pkg-config file for libcups
- Fixed a PPD memory leak caused by emulator definitions
- Fixed a `DISPLAY` bug in `ipptool`
- The scheduler now includes the `[Job N]` prefix for job log messages, even
  when using syslog logging
- Added support for locales using the GB18030 character set
- `httpReconnect2` did not reset the socket file descriptor when the TLS
  negotiation failed
- `httpUpdate` did not reset the socket file descriptor when the TLS
  negotiation failed
- The IPP backend now retries Validate-Job requests
- Now show better error messages when a driver interface program fails to
  provide a PPD file
- Added dark mode support to the CUPS web interface
- Added a workaround for Solaris in `httpAddrConnect2`
- Fixed an interaction between `--remote-admin` and `--remote-any` for the
  `cupsctl` command
- Now use a 60 second timeout for reading USB backchannel data
- The USB backend now tries harder to find a serial number
- Fixed `@IF(name)` handling in `cupsd.conf`
- Fixed documentation and added examples for CUPS' limited CGI support
- Fixed the `lpc` command prompt
- Now always pass "localhost" in the `Host:` header when talking over a domain
  socket or the loopback interface
- Fixed a job history update issue in the scheduler
- Fixed `job-pages-per-set` value for duplex print jobs.
- Fixed an edge case in `ippReadIO` to make sure that only complete attributes
  and values are retained on an error
- Hardened `ippReadIO` to prevent invalid IPP messages from being propagated
- The scheduler now supports the "everywhere" model directly
- Fixed some IPP Everywhere option mapping problems
- Fixed support for "job-hold-until" with the Restart-Job operation
- Fixed the default color/grayscale presets for IPP Everywhere PPDs
- Fixed support for the 'offline-report' state for all USB backends
- Documentation fixes
- Localization updates
- USB quirk updates
- Web interface updates
- The `ippeveprinter` tool now automatically uses an available port.
- Fixed several Windows TLS and hashing issues.
- Deprecated cups-config
- Deprecated Kerberos (`AuthType Negotiate`) authentication
- Removed support for the (long deprecated and unused) `FontPath`,
  `ListenBackLog`, `LPDConfigFile`, `KeepAliveTimeout`, `RIPCache`, and
  `SMBConfigFile` directives in `cupsd.conf` and `cups-files.conf`.
- Stubbed out deprecated `httpMD5` functions.
- Add test for undefined page ranges during printing.

# $NetBSD: Makefile,v 1.47 2022/05/10 20:47:37 markd Exp $

.include "../../print/cups/Makefile.common"

PKGNAME=	cups-base-${CUPS_VERS}
MASTER_SITES=	${MASTER_SITE_GITHUB:=OpenPrinting/}

MAINTAINER=	sbd@NetBSD.org
COMMENT=	Common UNIX Printing System

GITHUB_PROJECT=	cups
GITHUB_RELEASE=	v${PKGVERSION_NOREV}

CONFLICTS+=	LPRng-[0-9]* LPRng-core-[0-9]*

WRKSRC=			${WRKDIR}/${DISTNAME:S/-source//}
UNLIMIT_RESOURCES=	datasize memorysize
USE_LANGUAGES=		c c++	# pdftops is a C++ application
USE_LIBTOOL=		yes
USE_PKGLOCALEDIR=	yes
USE_TOOLS+=		aclocal autoconf automake gmake pkg-config
GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--localedir=${PREFIX}/${PKGLOCALEDIR}/locale
CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFBASEDIR}
CONFIGURE_ARGS+=	--localstatedir=${VARBASE}
CONFIGURE_ARGS+=	--with-cachedir=${CUPS_CACHE:Q}
CONFIGURE_ARGS+=	--with-docdir=${PREFIX}/share/doc/cups
CONFIGURE_ARGS+=	--with-serverbindir=${PREFIX}/libexec/cups
CONFIGURE_ARGS+=	--with-cups-user=${CUPS_USER}
CONFIGURE_ARGS+=	--with-cups-group=${CUPS_GROUP}
CONFIGURE_ARGS+=	--with-system-groups=${CUPS_SYSTEM_GROUPS:Q}
CONFIGURE_ARGS+=	--with-exe-file-perm=0755
CONFIGURE_ARGS+=	--enable-libpaper
CONFIGURE_ARGS+=	--without-bundledir
CONFIGURE_ARGS+=	--without-icondir
CONFIGURE_ARGS+=	--without-menudir

CONFIGURE_ENV+=		DSOFLAGS=${LDFLAGS:M*:Q}

.include "../../mk/bsd.prefs.mk"
.include "options.mk"

# Explicitly disable epoll on illumos, it is provided for Linux compat only.
CONFIGURE_ENV.SunOS+=	ac_cv_func_epoll_create=no

LIBS+=			${BUILDLINK_LDADD.iconv}

# Avoid the following error when compiling with clang.
# /usr/local/bin/ld: /usr/lib/crt1.o: relocation R_X86_64_32 against `_DYNAMIC'
# can not be used when making a shared object; recompile with -fPIC
BUILDLINK_TRANSFORM.FreeBSD+=	rm:-Wl,-pie

FILES_SUBST+=		CUPS_USER=${CUPS_USER}
FILES_SUBST+=		CUPS_GROUP=${CUPS_GROUP}
FILES_SUBST+=		CUPS_SYSTEM_GROUPS=${CUPS_SYSTEM_GROUPS:Q}

PKG_GROUPS_VARS+=	CUPS_GROUP CUPS_SYSTEM_GROUPS
PKG_USERS_VARS=		CUPS_USER

BUILD_DEFS+=		CUPS_USER CUPS_GROUP CUPS_SYSTEM_GROUPS VARBASE

DOCDIR=			${PREFIX}/share/doc/cups
EGDIR=			${PREFIX}/share/examples/cups
MIMEDIR=		${PREFIX}/share/cups/mime
PKG_SYSCONFSUBDIR=	cups
CUPS_CONFDIR=		${PKG_SYSCONFDIR}
CUPS_LOGDIR=		${VARBASE}/log/cups
CUPS_REQUESTS=		${VARBASE}/spool/cups
CUPS_CACHE=		${VARBASE}/cache/cups
CUPS_STATEDIR=		${VARBASE}/run/cups

PKG_GROUPS=		${CUPS_GROUP}
PKG_USERS=		${CUPS_USER}:${CUPS_GROUP}
PKG_GECOS.${CUPS_USER}=	Common UNIX Printing System user
PKG_SHELL.${CUPS_USER}=	${SH}

CONF_FILES+=		${EGDIR}/cupsd.conf ${CUPS_CONFDIR}/cupsd.conf
CONF_FILES+=		${EGDIR}/cups-files.conf ${CUPS_CONFDIR}/cups-files.conf
CONF_FILES+=		${EGDIR}/snmp.conf ${CUPS_CONFDIR}/snmp.conf
RCD_SCRIPTS=		cupsd

OWN_DIRS=		${CUPS_CONFDIR}
OWN_DIRS+=		${CUPS_CONFDIR}/interfaces
OWN_DIRS+=		${CUPS_CONFDIR}/ppd
OWN_DIRS+=		${PREFIX}/libexec/cups/driver
OWN_DIRS+=		${CUPS_LOGDIR}
OWN_DIRS+=		${CUPS_STATEDIR}
OWN_DIRS_PERMS=		${CUPS_STATEDIR}/certs ${CUPS_USER} ${CUPS_GROUP} 0711
OWN_DIRS_PERMS+=	${CUPS_CONFDIR}/ssl ${REAL_ROOT_USER} ${CUPS_GROUP} 0700
OWN_DIRS_PERMS+=	${CUPS_REQUESTS} ${REAL_ROOT_USER} ${CUPS_GROUP} 0710
OWN_DIRS_PERMS+=	${CUPS_REQUESTS}/tmp ${REAL_ROOT_USER} ${CUPS_GROUP} 1770
OWN_DIRS_PERMS+=	${CUPS_CACHE} ${REAL_ROOT_USER} ${CUPS_GROUP} 0775
OWN_DIRS_PERMS+=	${CUPS_CACHE}/rss ${REAL_ROOT_USER} ${CUPS_GROUP} 0775

SUBST_CLASSES+=		paths
SUBST_FILES.paths=	${WRKDIR}/cups.pam
SUBST_VARS.paths=	LOCALBASE
SUBST_STAGE.paths=	pre-configure

SUBST_CLASSES+=		rpathfix
SUBST_FILES.rpathfix=	cups-config.in
SUBST_MESSAGE.rpathfix=	Adding rpath to cups-config.
SUBST_SED.rpathfix=	-e 's|@EXPORT_LDFLAGS@|${COMPILER_RPATH_FLAG}${PREFIX}/lib|g'
SUBST_STAGE.rpathfix=	pre-configure

.if ${OPSYS} == NetBSD && ${MACHINE_ARCH} == powerpc
SUBST_CLASSES+=		piefix
SUBST_FILES.piefix=	Makedefs.in
SUBST_MESSAGE.piefix=	Removing PIE flags
SUBST_SED.piefix=	-e 's|@PIEFLAGS@||g'
SUBST_STAGE.piefix=	pre-configure
.endif

INSTALLATION_DIRS=	${DOCDIR} ${EGDIR} ${MIMEDIR}

pre-configure:
.if !empty(CUPS_SYSTEM_GROUPS:M${CUPS_GROUP})
	${ERROR_MSG} "CUPS_SYSTEM_GROUPS may not contain the CUPS_GROUP"
	exit 1
.endif
	cd ${WRKSRC} && aclocal && autoconf

post-extract:
	${CP} ${FILESDIR}/cups.pam ${WRKDIR}/cups.pam

post-install:
	# Delete files installed by libcups
	${RM} ${DESTDIR}${PREFIX}/bin/cups-config
	${RM} -rf ${DESTDIR}${PREFIX}/lib
	${RM} -rf ${DESTDIR}${PREFIX}/include/cups
	${RM} -rf ${DESTDIR}${PREFIX}/share/locale
	set -e; for file in LICENSE README.md; do			\
		${INSTALL_DATA} ${WRKSRC}/$${file}			\
		     ${DESTDIR}${DOCDIR}/$${file}; \
	done
	${RUN} for file in cupsd.conf cups-files.conf snmp.conf ; do	\
		${INSTALL_DATA} ${WRKSRC}/conf/$${file}			\
			${DESTDIR}${EGDIR}/$${file};			\
	done
	${CHMOD} g-w ${DESTDIR}${PREFIX}/libexec/cups/cgi-bin
.if !empty(PKG_OPTIONS:Mpam)
	${INSTALL_DATA} ${WRKDIR}/cups.pam ${DESTDIR}${EGDIR}
.endif
.if !empty(PKG_OPTIONS:Mdnssd)
	${LN} -sf ${DESTDIR}${PREFIX}/libexec/cups/backend/dnssd ${DESTDIR}${PREFIX}/libexec/cups/backend/mdns
.endif

.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
.include "../../graphics/tiff/buildlink3.mk"
.include "../../print/libcups/buildlink3.mk"
.include "../../print/libpaper/buildlink3.mk"
.include "../../security/gnutls/buildlink3.mk"
.include "../../textproc/libunistring/buildlink3.mk"
.include "../../mk/curses.buildlink3.mk"
.include "../../mk/jpeg.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"