* [Buildroot] [PATCH 0/4 v2] Bump cups-filter to the latest version
@ 2025-08-20 16:39 Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0 Angelo Compagnucci
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Angelo Compagnucci @ 2025-08-20 16:39 UTC (permalink / raw)
To: buildroot; +Cc: Angelo Compagnucci
cups-filters went though a lot of changes lately, therefore bumping to the latest
version wasn't as straightforward as I hoped.
Angelo Compagnucci (4):
package/qpdf: bump to version 12.2.0
package/libcupsfilters: new package
package/libppd: new package
package/cups-filters: bump to version 2.0.1
DEVELOPERS | 3 +
package/Config.in | 2 +
...ecv-instead-of-system-CVE-2023-24805.patch | 208 ------------------
package/cups-filters/Config.in | 16 +-
package/cups-filters/cups-filters.hash | 2 +-
package/cups-filters/cups-filters.mk | 70 +-----
package/libcupsfilters/Config.in | 34 +++
package/libcupsfilters/libcupsfilters.hash | 3 +
package/libcupsfilters/libcupsfilters.mk | 93 ++++++++
package/libppd/Config.in | 8 +
package/libppd/libppd.hash | 4 +
package/libppd/libppd.mk | 24 ++
package/qpdf/qpdf.hash | 4 +-
package/qpdf/qpdf.mk | 26 +--
14 files changed, 193 insertions(+), 304 deletions(-)
delete mode 100644 package/cups-filters/0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch
create mode 100644 package/libcupsfilters/Config.in
create mode 100644 package/libcupsfilters/libcupsfilters.hash
create mode 100644 package/libcupsfilters/libcupsfilters.mk
create mode 100644 package/libppd/Config.in
create mode 100644 package/libppd/libppd.hash
create mode 100644 package/libppd/libppd.mk
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0
2025-08-20 16:39 [Buildroot] [PATCH 0/4 v2] Bump cups-filter to the latest version Angelo Compagnucci
@ 2025-08-20 16:39 ` Angelo Compagnucci
2025-08-22 21:08 ` Thomas Petazzoni via buildroot
2025-08-20 16:39 ` [Buildroot] [PATCH 2/4 v2] package/libcupsfilters: new package Angelo Compagnucci
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Angelo Compagnucci @ 2025-08-20 16:39 UTC (permalink / raw)
To: buildroot; +Cc: Angelo Compagnucci
Changelog:
https://qpdf.readthedocs.io/en/stable/release-notes.html
Updating source URL (Github) and updating build system to cmake.
Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
---
DEVELOPERS | 1 +
package/qpdf/qpdf.hash | 4 ++--
package/qpdf/qpdf.mk | 26 ++++++++++----------------
3 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/DEVELOPERS b/DEVELOPERS
index 3efad36d70..875406610e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -233,6 +233,7 @@ F: package/python-pillow/
F: package/python-pydal/
F: package/python-spidev/
F: package/python-web2py/
+F: package/qpdf/
F: package/qt5/qt5coap/
F: package/qt5/qt5knx/
F: package/qt5/qt5mqtt/
diff --git a/package/qpdf/qpdf.hash b/package/qpdf/qpdf.hash
index 08a048f2ed..89391dd1d8 100644
--- a/package/qpdf/qpdf.hash
+++ b/package/qpdf/qpdf.hash
@@ -1,5 +1,5 @@
-# From https://sourceforge.net/projects/qpdf/files/qpdf/10.5.0/qpdf-10.5.0.sha256/download
-sha256 88257d36a44fd5c50b2879488324dd9cafc11686ae49d8c4922a4872203ce006 qpdf-10.5.0.tar.gz
+# From https://sourceforge.net/projects/qpdf/files/qpdf/12.2.0/qpdf-12.2.0.sha256/download
+sha256 b3d1575b2218badc3549d6977524bb0f8c468c6528eebc8967bbe3078cf2cace qpdf-12.2.0.tar.gz
# Locally computed:
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt
sha256 fb929ac30decb4dc3a2eea2bec6c43296a797c5d2d602deb3784ee39430583d5 Artistic-2.0
diff --git a/package/qpdf/qpdf.mk b/package/qpdf/qpdf.mk
index d479515789..2a4e7f3386 100644
--- a/package/qpdf/qpdf.mk
+++ b/package/qpdf/qpdf.mk
@@ -4,36 +4,30 @@
#
################################################################################
-QPDF_VERSION = 10.5.0
-QPDF_SITE = http://downloads.sourceforge.net/project/qpdf/qpdf/$(QPDF_VERSION)
+QPDF_VERSION = 12.2.0
+QPDF_SITE = https://github.com/qpdf/qpdf/releases/download/v$(QPDF_VERSION)
QPDF_INSTALL_STAGING = YES
QPDF_LICENSE = Apache-2.0 or Artistic-2.0
QPDF_LICENSE_FILES = LICENSE.txt Artistic-2.0
QPDF_CPE_ID_VALID = YES
QPDF_DEPENDENCIES = host-pkgconf zlib jpeg
+QPDF_SUPPORTS_IN_SOURCE_BUILD = NO
-QPDF_CONF_OPTS = --with-random=/dev/urandom
-
-ifeq ($(BR2_USE_WCHAR),)
-QPDF_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -DQPDF_NO_WCHAR_T"
-endif
+QPDF_CONF_OPTS = -DSKIP_OS_SECURE_RANDOM=ON \
+ -DUSE_IMPLICIT_CRYPTO=OFF -DREQUIRE_CRYPTO_NATIVE=ON
ifeq ($(BR2_PACKAGE_GNUTLS),y)
-QPDF_CONF_OPTS += --enable-crypto-gnutls
+QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_GNUTLS=ON
QPDF_DEPENDENCIES += gnutls
else
-QPDF_CONF_OPTS += --disable-crypto-gnutls
+QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_GNUTLS=OFF
endif
ifeq ($(BR2_PACKAGE_OPENSSL),y)
-QPDF_CONF_OPTS += --enable-crypto-openssl
+QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_OPENSSL=ON
QPDF_DEPENDENCIES += openssl
else
-QPDF_CONF_OPTS += --disable-crypto-openssl
-endif
-
-ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
-QPDF_CONF_ENV += LIBS=-latomic
+QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_OPENSSL=OFF
endif
-$(eval $(autotools-package))
+$(eval $(cmake-package))
--
2.34.1
To: buildroot@buildroot.org
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 2/4 v2] package/libcupsfilters: new package
2025-08-20 16:39 [Buildroot] [PATCH 0/4 v2] Bump cups-filter to the latest version Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0 Angelo Compagnucci
@ 2025-08-20 16:39 ` Angelo Compagnucci
2025-08-22 21:06 ` Thomas Petazzoni via buildroot
2025-08-20 16:39 ` [Buildroot] [PATCH 3/4 v2] package/libppd: " Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 4/4 v2] package/cups-filters: bump to version 2.0.1 Angelo Compagnucci
3 siblings, 1 reply; 10+ messages in thread
From: Angelo Compagnucci @ 2025-08-20 16:39 UTC (permalink / raw)
To: buildroot; +Cc: Angelo Compagnucci
Newer versions of cups-filters split several parts of the main software
into external libraries. This is the main filters library.
Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
---
DEVELOPERS | 1 +
package/Config.in | 1 +
package/libcupsfilters/Config.in | 34 ++++++++
package/libcupsfilters/libcupsfilters.hash | 3 +
package/libcupsfilters/libcupsfilters.mk | 93 ++++++++++++++++++++++
5 files changed, 132 insertions(+)
create mode 100644 package/libcupsfilters/Config.in
create mode 100644 package/libcupsfilters/libcupsfilters.hash
create mode 100644 package/libcupsfilters/libcupsfilters.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index 875406610e..bc8816c8aa 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -220,6 +220,7 @@ F: package/i2c-tools/
F: package/jq/
F: package/libapparmor/
F: package/libb64/
+F: package/libcupsfilters
F: package/libdill/
F: package/mender/
F: package/mender-artifact/
diff --git a/package/Config.in b/package/Config.in
index 137f74ed82..68a8f96e23 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -352,6 +352,7 @@ comment "Graphic libraries"
source "package/freerdp/Config.in"
source "package/graphicsmagick/Config.in"
source "package/imagemagick/Config.in"
+ source "package/libcupsfilters/Config.in"
source "package/libglvnd/Config.in"
source "package/mesa3d/Config.in"
source "package/mesa3d-headers/Config.in"
diff --git a/package/libcupsfilters/Config.in b/package/libcupsfilters/Config.in
new file mode 100644
index 0000000000..e664869a41
--- /dev/null
+++ b/package/libcupsfilters/Config.in
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_LIBCUPSFILTERS
+ bool "libcupsfilters"
+ # needs fork()
+ depends on BR2_USE_MMU
+ depends on BR2_INSTALL_LIBSTDCPP # qpdf
+ depends on !BR2_STATIC_LIBS
+ depends on BR2_USE_WCHAR # libglib2
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
+ depends on BR2_PACKAGE_CUPS
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # qpdf
+ depends on BR2_TOOLCHAIN_HAS_ATOMIC # qpdf
+ select BR2_PACKAGE_JPEG
+ select BR2_PACKAGE_FONTCONFIG
+ select BR2_PACKAGE_FREETYPE
+ select BR2_PACKAGE_LCMS2
+ select BR2_PACKAGE_LIBGLIB2
+ select BR2_PACKAGE_QPDF
+ help
+ This project provides backends, filters, and other software
+ that was once part of the core CUPS distribution but is no
+ longer maintained by Apple Inc.
+ This package provides the libcupsfilters library, which in
+ its 2.x version contains all the code of the filters of the
+ former cups-filters package as library functions,
+ the so-called filter functions.
+
+ http://www.linuxfoundation.org/collaborate/workgroups/openprinting/libcupsfilters
+
+comment "libcupsfilters needs a toolchain w/ wchar, C++, threads and dynamic library, gcc >= 5"
+ depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_ATOMIC
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+ !BR2_USE_WCHAR || BR2_STATIC_LIBS || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_5
diff --git a/package/libcupsfilters/libcupsfilters.hash b/package/libcupsfilters/libcupsfilters.hash
new file mode 100644
index 0000000000..c1d2253229
--- /dev/null
+++ b/package/libcupsfilters/libcupsfilters.hash
@@ -0,0 +1,3 @@
+# Locally computed:
+sha256 ff31778a438bf335ceed254ccc706d5cd0eee55f608fcf567d88699b15f4fa9e libcupsfilters-2.1.1.tar.gz
+sha256 38192ffdaca98b718f78b2d4abc38bb087f0bbcc9a16d212c98b903b985f900f COPYING
diff --git a/package/libcupsfilters/libcupsfilters.mk b/package/libcupsfilters/libcupsfilters.mk
new file mode 100644
index 0000000000..9cf449ac8d
--- /dev/null
+++ b/package/libcupsfilters/libcupsfilters.mk
@@ -0,0 +1,93 @@
+################################################################################
+#
+# libcupsfilters
+#
+################################################################################
+
+LIBCUPSFILTERS_VERSION = 2.1.1
+LIBCUPSFILTERS_SITE = https://github.com/OpenPrinting/libcupsfilters/releases/download/$(LIBCUPSFILTERS_VERSION)
+LIBCUPSFILTERS_LICENSE = GPL-2.0, GPL-2.0+, GPL-3.0, GPL-3.0+, LGPL-2, LGPL-2.1+, MIT, BSD-4-Clause
+LIBCUPSFILTERS_LICENSE_FILES = COPYING
+LIBCUPSFILTERS_CPE_ID_VENDOR = linuxfoundation
+LIBCUPSFILTERS_DEPENDENCIES = cups libglib2 lcms2 qpdf fontconfig freetype jpeg
+LIBCUPSFILTERS_INSTALL_STAGING = YES
+
+LIBCUPSFILTERS_CONF_OPTS = \
+ --disable-mutool \
+ --disable-foomatic \
+ --disable-braille \
+ --enable-imagefilters \
+ --with-cups-config=$(STAGING_DIR)/usr/bin/cups-config \
+ --with-sysroot=$(STAGING_DIR) \
+ --with-pdftops=pdftops \
+ --with-jpeg \
+ --with-test-font-path=/dev/null \
+ --without-rcdir
+
+ifeq ($(BR2_PACKAGE_LIBPNG),y)
+LIBCUPSFILTERS_CONF_OPTS += --with-png
+LIBCUPSFILTERS_DEPENDENCIES += libpng
+else
+LIBCUPSFILTERS_CONF_OPTS += --without-png
+endif
+
+ifeq ($(BR2_PACKAGE_TIFF),y)
+LIBCUPSFILTERS_CONF_OPTS += --with-tiff
+LIBCUPSFILTERS_DEPENDENCIES += tiff
+else
+LIBCUPSFILTERS_CONF_OPTS += --without-tiff
+endif
+
+ifeq ($(BR2_PACKAGE_DBUS),y)
+LIBCUPSFILTERS_CONF_OPTS += --enable-dbus
+LIBCUPSFILTERS_DEPENDENCIES += dbus
+else
+LIBCUPSFILTERS_CONF_OPTS += --disable-dbus
+endif
+
+ifeq ($(BR2_PACKAGE_AVAHI_LIBAVAHI_CLIENT),y)
+LIBCUPSFILTERS_DEPENDENCIES += avahi
+LIBCUPSFILTERS_CONF_OPTS += --enable-avahi
+else
+LIBCUPSFILTERS_CONF_OPTS += --disable-avahi
+endif
+
+ifeq ($(BR2_PACKAGE_GHOSTSCRIPT),y)
+LIBCUPSFILTERS_DEPENDENCIES += ghostscript
+LIBCUPSFILTERS_CONF_OPTS += --enable-ghostscript
+else
+LIBCUPSFILTERS_CONF_OPTS += --disable-ghostscript
+endif
+
+ifeq ($(BR2_PACKAGE_IJS),y)
+LIBCUPSFILTERS_DEPENDENCIES += ijs
+LIBCUPSFILTERS_CONF_OPTS += --enable-ijs
+else
+LIBCUPSFILTERS_CONF_OPTS += --disable-ijs
+endif
+
+ifeq ($(BR2_PACKAGE_POPPLER),y)
+LIBCUPSFILTERS_DEPENDENCIES += poppler
+LIBCUPSFILTERS_CONF_OPTS += --enable-poppler
+else
+LIBCUPSFILTERS_CONF_OPTS += --disable-poppler
+endif
+
+ifeq ($(BR2_PACKAGE_LIBEXIF),y)
+LIBCUPSFILTERS_CONF_OPTS += --enable-exif
+LIBCUPSFILTERS_DEPENDENCIES += libexif
+else
+LIBCUPSFILTERS_CONF_OPTS += --disable-exif
+endif
+
+define LIBCUPSFILTERS_INSTALL_INIT_SYSV
+ $(INSTALL) -D -m 0755 package/cups-filters/S82cups-browsed \
+ $(TARGET_DIR)/etc/init.d/S82cups-browsed
+endef
+
+define LIBCUPSFILTERS_INSTALL_INIT_SYSTEMD
+ $(INSTALL) -D -m 0755 $(@D)/utils/cups-browsed.service \
+ $(TARGET_DIR)/usr/lib/systemd/system/cups-browsed.service
+endef
+
+$(eval $(autotools-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 3/4 v2] package/libppd: new package
2025-08-20 16:39 [Buildroot] [PATCH 0/4 v2] Bump cups-filter to the latest version Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0 Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 2/4 v2] package/libcupsfilters: new package Angelo Compagnucci
@ 2025-08-20 16:39 ` Angelo Compagnucci
2025-08-22 21:22 ` Thomas Petazzoni via buildroot
2025-08-20 16:39 ` [Buildroot] [PATCH 4/4 v2] package/cups-filters: bump to version 2.0.1 Angelo Compagnucci
3 siblings, 1 reply; 10+ messages in thread
From: Angelo Compagnucci @ 2025-08-20 16:39 UTC (permalink / raw)
To: buildroot; +Cc: Angelo Compagnucci
This package contains PPD library for newer versions of cups supporting
more than ~10000 printer models.
Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
---
v1->v2:
* Fix incorrect order of patches (Baruch Siach)
* Add a note about autoreconf (Baruch Siach)
DEVELOPERS | 1 +
package/Config.in | 1 +
package/libppd/Config.in | 8 ++++++++
package/libppd/libppd.hash | 4 ++++
package/libppd/libppd.mk | 24 ++++++++++++++++++++++++
5 files changed, 38 insertions(+)
create mode 100644 package/libppd/Config.in
create mode 100644 package/libppd/libppd.hash
create mode 100644 package/libppd/libppd.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index bc8816c8aa..25d68f43a8 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -222,6 +222,7 @@ F: package/libapparmor/
F: package/libb64/
F: package/libcupsfilters
F: package/libdill/
+F: package/libppd/
F: package/mender/
F: package/mender-artifact/
F: package/mono/
diff --git a/package/Config.in b/package/Config.in
index 68a8f96e23..d029780241 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -354,6 +354,7 @@ comment "Graphic libraries"
source "package/imagemagick/Config.in"
source "package/libcupsfilters/Config.in"
source "package/libglvnd/Config.in"
+ source "package/libppd/Config.in"
source "package/mesa3d/Config.in"
source "package/mesa3d-headers/Config.in"
source "package/ocrad/Config.in"
diff --git a/package/libppd/Config.in b/package/libppd/Config.in
new file mode 100644
index 0000000000..124de4f7f2
--- /dev/null
+++ b/package/libppd/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_LIBPPD
+ bool "libppd"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_PACKAGE_LIBCUPSFILTERS
+ help
+ The Common Unix Printing System
+
+ ~10000 printer models are supported with PPD-file-based classic CUPS drivers.
diff --git a/package/libppd/libppd.hash b/package/libppd/libppd.hash
new file mode 100644
index 0000000000..3f698c3108
--- /dev/null
+++ b/package/libppd/libppd.hash
@@ -0,0 +1,4 @@
+# Locally calculated:
+sha256 b356aeed1335ef0ca7f799741782a2544e7acee63fb4b047b94e4e0395a9cb62 libppd-2.1.1.tar.gz
+sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
+sha256 977206f041b9a6f47ac00531e1242c0fab7063da71178f8d868b167b70866b6d NOTICE
diff --git a/package/libppd/libppd.mk b/package/libppd/libppd.mk
new file mode 100644
index 0000000000..9680bb7115
--- /dev/null
+++ b/package/libppd/libppd.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# libppd
+#
+################################################################################
+
+LIBPPD_VERSION = 2.1.1
+LIBPPD_SOURCE = libppd-$(LIBPPD_VERSION).tar.gz
+LIBPPD_SITE = https://github.com/OpenPrinting/libppd/releases/download/$(LIBPPD_VERSION)
+LIBPPD_LICENSE = Apache-2.0 with GPL-2.0/LGPL-2.0 exception
+LIBPPD_LICENSE_FILES = LICENSE NOTICE
+LIBPPD_CPE_ID_VENDOR = openprinting
+LIBPPD_SELINUX_MODULES = cups
+LIBPPD_INSTALL_STAGING = YES
+
+# no configure in tarball
+LIBPPD_AUTORECONF = YES
+
+LIBPPD_DEPENDENCIES = cups libcupsfilters
+
+LIBPPD_CONF_OPTS = \
+ --with-cups-config=$(STAGING_DIR)/usr/bin/cups-config
+
+$(eval $(autotools-package))
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 4/4 v2] package/cups-filters: bump to version 2.0.1
2025-08-20 16:39 [Buildroot] [PATCH 0/4 v2] Bump cups-filter to the latest version Angelo Compagnucci
` (2 preceding siblings ...)
2025-08-20 16:39 ` [Buildroot] [PATCH 3/4 v2] package/libppd: " Angelo Compagnucci
@ 2025-08-20 16:39 ` Angelo Compagnucci
2025-08-22 21:25 ` Thomas Petazzoni via buildroot
3 siblings, 1 reply; 10+ messages in thread
From: Angelo Compagnucci @ 2025-08-20 16:39 UTC (permalink / raw)
To: buildroot; +Cc: Angelo Compagnucci
Changelog:
https://github.com/OpenPrinting/cups-filters/releases/tag/2.0.1
This version makes use of two ancillary libraries split from the main code.
Those libraries are:
* libcupsfilters
* libppd
This required a major rework of the package because most of the dependencies
were moved those new libraries.
Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
---
...ecv-instead-of-system-CVE-2023-24805.patch | 208 ------------------
package/cups-filters/Config.in | 16 +-
package/cups-filters/cups-filters.hash | 2 +-
package/cups-filters/cups-filters.mk | 70 +-----
4 files changed, 10 insertions(+), 286 deletions(-)
delete mode 100644 package/cups-filters/0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch
diff --git a/package/cups-filters/0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch b/package/cups-filters/0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch
deleted file mode 100644
index e527b20f91..0000000000
--- a/package/cups-filters/0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch
+++ /dev/null
@@ -1,208 +0,0 @@
-From 93e60d3df358c0ae6f3dba79e1c9684657683d89 Mon Sep 17 00:00:00 2001
-From: Till Kamppeter <till.kamppeter@gmail.com>
-Date: Wed, 17 May 2023 11:11:29 +0200
-Subject: [PATCH] beh backend: Use execv() instead of system() - CVE-2023-24805
-
-With execv() command line arguments are passed as separate strings and
-not the full command line in a single string. This prevents arbitrary
-command execution by escaping the quoting of the arguments in a job
-with a forged job title.
-
-In addition, done the following fixes and improvements:
-
-- Do not allow '/' in the scheme of the URI (= backend executable
- name), to assure that only backends inside /usr/lib/cups/backend/
- are used.
-
-- URI must have ':', to split off scheme, otherwise error out.
-
-- Check return value of snprintf() to create call path for backend, to
- error out on truncation of a too long scheme or on complete failure
- due to a completely odd scheme.
-
-- Use strncat() instead of strncpy() for getting scheme from URI, the latter
- does not require setting terminating zero byte in case of truncation.
-
-- Also exclude "." or ".." as scheme, as directories are not valid CUPS
- backends.
-
-- Do not use fprintf() in sigterm_handler(), to not interfere with a
- fprintf() which could be running in the main process when
- sigterm_handler() is triggered.
-
-- Use "static volatile int" for global variable job_canceled.
-
-Upstream: https://github.com/OpenPrinting/cups-filters/commit/93e60d3df358c0ae6f3dba79e1c9684657683d89
-Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
----
- backend/beh.c | 107 +++++++++++++++++++++++++++++++++++++++-----------
- 1 file changed, 84 insertions(+), 23 deletions(-)
-
-diff --git a/backend/beh.c b/backend/beh.c
-index 225fd27d5..8d51235b1 100644
---- a/backend/beh.c
-+++ b/backend/beh.c
-@@ -22,12 +22,13 @@
- #include "backend-private.h"
- #include <cups/array.h>
- #include <ctype.h>
-+#include <sys/wait.h>
-
- /*
- * Local globals...
- */
-
--static int job_canceled = 0; /* Set to 1 on SIGTERM */
-+static volatile int job_canceled = 0; /* Set to 1 on SIGTERM */
-
- /*
- * Local functions...
-@@ -213,21 +214,40 @@ call_backend(char *uri, /* I - URI of final destination */
- char **argv, /* I - Command-line arguments */
- char *filename) { /* I - File name of input data */
- const char *cups_serverbin; /* Location of programs */
-+ char *backend_argv[8]; /* Arguments for backend */
- char scheme[1024], /* Scheme from URI */
- *ptr, /* Pointer into scheme */
-- cmdline[65536]; /* Backend command line */
-- int retval;
-+ backend_path[2048]; /* Backend path */
-+ int pid = 0, /* Process ID of backend */
-+ wait_pid, /* Process ID from wait() */
-+ wait_status, /* Status from child */
-+ retval = 0;
-+ int bytes;
-
- /*
- * Build the backend command line...
- */
-
-- strncpy(scheme, uri, sizeof(scheme) - 1);
-- if (strlen(uri) > 1023)
-- scheme[1023] = '\0';
-+ scheme[0] = '\0';
-+ strncat(scheme, uri, sizeof(scheme) - 1);
- if ((ptr = strchr(scheme, ':')) != NULL)
- *ptr = '\0';
--
-+ else {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid URI, no colon (':') to mark end of scheme part.\n");
-+ exit (CUPS_BACKEND_FAILED);
-+ }
-+ if (strchr(scheme, '/')) {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid URI, scheme contains a slash ('/').\n");
-+ exit (CUPS_BACKEND_FAILED);
-+ }
-+ if (!strcmp(scheme, ".") || !strcmp(scheme, "..")) {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid URI, scheme (\"%s\") is a directory.\n",
-+ scheme);
-+ exit (CUPS_BACKEND_FAILED);
-+ }
- if ((cups_serverbin = getenv("CUPS_SERVERBIN")) == NULL)
- cups_serverbin = CUPS_SERVERBIN;
-
-@@ -235,16 +255,29 @@ call_backend(char *uri, /* I - URI of final destination */
- fprintf(stderr,
- "ERROR: beh: Direct output into a file not supported.\n");
- exit (CUPS_BACKEND_FAILED);
-- } else
-- snprintf(cmdline, sizeof(cmdline),
-- "%s/backend/%s '%s' '%s' '%s' '%s' '%s' %s",
-- cups_serverbin, scheme, argv[1], argv[2], argv[3],
-- /* Apply number of copies only if beh was called with a
-- file name and not with the print data in stdin, as
-- backends should handle copies only if they are called
-- with a file name */
-- (argc == 6 ? "1" : argv[4]),
-- argv[5], filename);
-+ }
-+
-+ backend_argv[0] = uri;
-+ backend_argv[1] = argv[1];
-+ backend_argv[2] = argv[2];
-+ backend_argv[3] = argv[3];
-+ /* Apply number of copies only if beh was called with a file name
-+ and not with the print data in stdin, as backends should handle
-+ copies only if they are called with a file name */
-+ backend_argv[4] = (argc == 6 ? "1" : argv[4]);
-+ backend_argv[5] = argv[5];
-+ backend_argv[6] = filename;
-+ backend_argv[7] = NULL;
-+
-+ bytes = snprintf(backend_path, sizeof(backend_path),
-+ "%s/backend/%s", cups_serverbin, scheme);
-+ if (bytes < 0 || bytes >= sizeof(backend_path))
-+ {
-+ fprintf(stderr,
-+ "ERROR: beh: Invalid scheme (\"%s\"), could not determing backend path.\n",
-+ scheme);
-+ return (CUPS_BACKEND_FAILED);
-+ }
-
- /*
- * Overwrite the device URI and run the actual backend...
-@@ -253,18 +286,44 @@ call_backend(char *uri, /* I - URI of final destination */
- setenv("DEVICE_URI", uri, 1);
-
- fprintf(stderr,
-- "DEBUG: beh: Executing backend command line \"%s\"...\n",
-- cmdline);
-+ "DEBUG: beh: Executing backend command line \"%s '%s' '%s' '%s' '%s' '%s' %s\"...\n",
-+ backend_path, backend_argv[1], backend_argv[2], backend_argv[3],
-+ backend_argv[4], backend_argv[5], backend_argv[6]);
- fprintf(stderr,
- "DEBUG: beh: Using device URI: %s\n",
- uri);
-
-- retval = system(cmdline) >> 8;
-+ if ((pid = fork()) == 0) {
-+ /*
-+ * Child comes here...
-+ */
-+
-+ /* Run the backend */
-+ execv(backend_path, backend_argv);
-
-- if (retval == -1)
- fprintf(stderr, "ERROR: Unable to execute backend command line: %s\n",
- strerror(errno));
-
-+ exit(1);
-+ } else if (pid < 0) {
-+ /*
-+ * Unable to fork!
-+ */
-+
-+ return (CUPS_BACKEND_FAILED);
-+ }
-+
-+ while ((wait_pid = wait(&wait_status)) < 0 && errno == EINTR);
-+
-+ if (wait_pid >= 0 && wait_status) {
-+ if (WIFEXITED(wait_status))
-+ retval = WEXITSTATUS(wait_status);
-+ else if (WTERMSIG(wait_status) != SIGTERM)
-+ retval = WTERMSIG(wait_status);
-+ else
-+ retval = 0;
-+ }
-+
- return (retval);
- }
-
-@@ -277,8 +336,10 @@ static void
- sigterm_handler(int sig) { /* I - Signal number (unused) */
- (void)sig;
-
-- fprintf(stderr,
-- "DEBUG: beh: Job canceled.\n");
-+ const char * const msg = "DEBUG: beh: Job canceled.\n";
-+ /* The if() is to eliminate the return value and silence the warning
-+ about an unused return value. */
-+ if (write(2, msg, strlen(msg)));
-
- if (job_canceled)
- _exit(CUPS_BACKEND_OK);
diff --git a/package/cups-filters/Config.in b/package/cups-filters/Config.in
index ded99a4774..89f4b4d08d 100644
--- a/package/cups-filters/Config.in
+++ b/package/cups-filters/Config.in
@@ -2,19 +2,15 @@ config BR2_PACKAGE_CUPS_FILTERS
bool "cups-filters"
# needs fork()
depends on BR2_USE_MMU
- depends on BR2_INSTALL_LIBSTDCPP # qpdf
+ depends on BR2_TOOLCHAIN_HAS_ATOMIC
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_USE_WCHAR
depends on !BR2_STATIC_LIBS
- depends on BR2_USE_WCHAR # libglib2
- depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_PACKAGE_CUPS
+ depends on BR2_PACKAGE_LIBCUPSFILTERS
+ depends on BR2_PACKAGE_LIBPPD
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # qpdf
- depends on BR2_TOOLCHAIN_HAS_ATOMIC # qpdf
- select BR2_PACKAGE_JPEG
- select BR2_PACKAGE_FONTCONFIG
- select BR2_PACKAGE_FREETYPE
- select BR2_PACKAGE_LCMS2
- select BR2_PACKAGE_LIBGLIB2
- select BR2_PACKAGE_QPDF
help
This project provides backends, filters, and other software
that was once part of the core CUPS distribution but is no
diff --git a/package/cups-filters/cups-filters.hash b/package/cups-filters/cups-filters.hash
index 7fb3badf46..24c7b463f7 100644
--- a/package/cups-filters/cups-filters.hash
+++ b/package/cups-filters/cups-filters.hash
@@ -1,3 +1,3 @@
# Locally computed:
-sha256 01a2acbd6bb78f09638047e4e9ce305d7e5ef4cb9ed6949672b5d901b7321dd4 cups-filters-1.28.17.tar.gz
+sha256 3de1cbb889d06e5a6a945dcb921292544477ab89da95ca89f1eec2de29937afb cups-filters-2.0.1.tar.gz
sha256 38192ffdaca98b718f78b2d4abc38bb087f0bbcc9a16d212c98b903b985f900f COPYING
diff --git a/package/cups-filters/cups-filters.mk b/package/cups-filters/cups-filters.mk
index dcfb2e9500..328b6693e9 100644
--- a/package/cups-filters/cups-filters.mk
+++ b/package/cups-filters/cups-filters.mk
@@ -4,7 +4,7 @@
#
################################################################################
-CUPS_FILTERS_VERSION = 1.28.17
+CUPS_FILTERS_VERSION = 2.0.1
CUPS_FILTERS_SITE = https://github.com/OpenPrinting/cups-filters/releases/download/$(CUPS_FILTERS_VERSION)
CUPS_FILTERS_LICENSE = GPL-2.0, GPL-2.0+, GPL-3.0, GPL-3.0+, LGPL-2, LGPL-2.1+, MIT, BSD-4-Clause
CUPS_FILTERS_LICENSE_FILES = COPYING
@@ -13,75 +13,11 @@ CUPS_FILTERS_CPE_ID_VENDOR = linuxfoundation
# 0001-beh-backend-Use-execv-instead-of-system-CVE-2023-24805.patch
CUPS_FILTERS_IGNORE_CVES += CVE-2023-24805
-CUPS_FILTERS_DEPENDENCIES = cups libglib2 lcms2 qpdf fontconfig freetype jpeg
+CUPS_FILTERS_DEPENDENCIES = cups libcupsfilters libppd
CUPS_FILTERS_CONF_OPTS = \
- --disable-mutool \
- --disable-foomatic \
- --disable-braille \
- --enable-imagefilters \
--with-cups-config=$(STAGING_DIR)/usr/bin/cups-config \
- --with-sysroot=$(STAGING_DIR) \
- --with-pdftops=pdftops \
- --with-jpeg \
- --with-test-font-path=/dev/null \
- --without-rcdir
-
-ifeq ($(BR2_PACKAGE_LIBPNG),y)
-CUPS_FILTERS_CONF_OPTS += --with-png
-CUPS_FILTERS_DEPENDENCIES += libpng
-else
-CUPS_FILTERS_CONF_OPTS += --without-png
-endif
-
-ifeq ($(BR2_PACKAGE_TIFF),y)
-CUPS_FILTERS_CONF_OPTS += --with-tiff
-CUPS_FILTERS_DEPENDENCIES += tiff
-else
-CUPS_FILTERS_CONF_OPTS += --without-tiff
-endif
-
-ifeq ($(BR2_PACKAGE_DBUS),y)
-CUPS_FILTERS_CONF_OPTS += --enable-dbus
-CUPS_FILTERS_DEPENDENCIES += dbus
-else
-CUPS_FILTERS_CONF_OPTS += --disable-dbus
-endif
-
-ifeq ($(BR2_PACKAGE_AVAHI_LIBAVAHI_CLIENT),y)
-CUPS_FILTERS_DEPENDENCIES += avahi
-CUPS_FILTERS_CONF_OPTS += --enable-avahi
-else
-CUPS_FILTERS_CONF_OPTS += --disable-avahi
-endif
-
-ifeq ($(BR2_PACKAGE_GHOSTSCRIPT),y)
-CUPS_FILTERS_DEPENDENCIES += ghostscript
-CUPS_FILTERS_CONF_OPTS += --enable-ghostscript
-else
-CUPS_FILTERS_CONF_OPTS += --disable-ghostscript
-endif
-
-ifeq ($(BR2_PACKAGE_IJS),y)
-CUPS_FILTERS_DEPENDENCIES += ijs
-CUPS_FILTERS_CONF_OPTS += --enable-ijs
-else
-CUPS_FILTERS_CONF_OPTS += --disable-ijs
-endif
-
-ifeq ($(BR2_PACKAGE_POPPLER),y)
-CUPS_FILTERS_DEPENDENCIES += poppler
-CUPS_FILTERS_CONF_OPTS += --enable-poppler
-else
-CUPS_FILTERS_CONF_OPTS += --disable-poppler
-endif
-
-ifeq ($(BR2_PACKAGE_LIBEXIF),y)
-CUPS_FILTERS_CONF_OPTS += --enable-exif
-CUPS_FILTERS_DEPENDENCIES += libexif
-else
-CUPS_FILTERS_CONF_OPTS += --disable-exif
-endif
+ CFLAGS="$(TARGET_CFLAGS) -std=gnu17"
define CUPS_FILTERS_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 package/cups-filters/S82cups-browsed \
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH 2/4 v2] package/libcupsfilters: new package
2025-08-20 16:39 ` [Buildroot] [PATCH 2/4 v2] package/libcupsfilters: new package Angelo Compagnucci
@ 2025-08-22 21:06 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-22 21:06 UTC (permalink / raw)
To: Angelo Compagnucci; +Cc: buildroot
Hello Angelo,
Thanks a lot for this great work! I have a number of comments/questions
below.
On Wed, 20 Aug 2025 18:39:19 +0200
Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:
> diff --git a/package/libcupsfilters/Config.in b/package/libcupsfilters/Config.in
> new file mode 100644
> index 0000000000..e664869a41
> --- /dev/null
> +++ b/package/libcupsfilters/Config.in
> @@ -0,0 +1,34 @@
> +config BR2_PACKAGE_LIBCUPSFILTERS
> + bool "libcupsfilters"
> + # needs fork()
> + depends on BR2_USE_MMU
> + depends on BR2_INSTALL_LIBSTDCPP # qpdf
> + depends on !BR2_STATIC_LIBS
> + depends on BR2_USE_WCHAR # libglib2
> + depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
> + depends on BR2_PACKAGE_CUPS
> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # qpdf
> + depends on BR2_TOOLCHAIN_HAS_ATOMIC # qpdf
For the ones that don't have a comment, are they directly dependencies
due to libcupsfilter itself?
> + select BR2_PACKAGE_JPEG
This dependency doesn't seem to be mandatory according to
https://github.com/OpenPrinting/libcupsfilters/blob/master/INSTALL.md#prerequisites-for-compilation
> + select BR2_PACKAGE_FONTCONFIG
Same.
> + select BR2_PACKAGE_FREETYPE
There's no mention of freetype in INSTALL.md nor in configure.ac.
> + select BR2_PACKAGE_LCMS2
> + select BR2_PACKAGE_LIBGLIB2
There's no mention of glib2 in INSTALL.md nor in configure.ac.
> diff --git a/package/libcupsfilters/libcupsfilters.mk b/package/libcupsfilters/libcupsfilters.mk
> new file mode 100644
> index 0000000000..9cf449ac8d
> --- /dev/null
> +++ b/package/libcupsfilters/libcupsfilters.mk
> @@ -0,0 +1,93 @@
> +################################################################################
> +#
> +# libcupsfilters
> +#
> +################################################################################
> +
> +LIBCUPSFILTERS_VERSION = 2.1.1
> +LIBCUPSFILTERS_SITE = https://github.com/OpenPrinting/libcupsfilters/releases/download/$(LIBCUPSFILTERS_VERSION)
> +LIBCUPSFILTERS_LICENSE = GPL-2.0, GPL-2.0+, GPL-3.0, GPL-3.0+, LGPL-2, LGPL-2.1+, MIT, BSD-4-Clause
> +LIBCUPSFILTERS_LICENSE_FILES = COPYING
> +LIBCUPSFILTERS_CPE_ID_VENDOR = linuxfoundation
Where did you find this? I don't see any CPE entry about libcupsfilter,
so we can't know which CPE it will get for the moment.
> +LIBCUPSFILTERS_DEPENDENCIES = cups libglib2 lcms2 qpdf fontconfig freetype jpeg
As requested above: this needs to be revisited.
> +LIBCUPSFILTERS_INSTALL_STAGING = YES
> +
> +LIBCUPSFILTERS_CONF_OPTS = \
> + --disable-mutool \
> + --disable-foomatic \
> + --disable-braille \
> + --enable-imagefilters \
What is the impact of this? Do we need it unconditionally?
> + --with-cups-config=$(STAGING_DIR)/usr/bin/cups-config \
> + --with-sysroot=$(STAGING_DIR) \
> + --with-pdftops=pdftops \
> + --with-jpeg \
jpeg seems optional.
> + --with-test-font-path=/dev/null \
> + --without-rcdir
You can probably check in ./configure --help for other things to
disable, like:
--without-jpegxl
(I honestly didn't find any other).
> +define LIBCUPSFILTERS_INSTALL_INIT_SYSV
> + $(INSTALL) -D -m 0755 package/cups-filters/S82cups-browsed \
> + $(TARGET_DIR)/etc/init.d/S82cups-browsed
We really don't want libcupsfilter to install an init script that comes
from package/cups-filters/. If libcupsfilter is now responsible for
this, the init script should be moved there (or possibly copied
initially, and then removed in the commit that bumps cups-filters, or
something like that).
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0
2025-08-20 16:39 ` [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0 Angelo Compagnucci
@ 2025-08-22 21:08 ` Thomas Petazzoni via buildroot
2025-08-23 15:48 ` Angelo Compagnucci
0 siblings, 1 reply; 10+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-22 21:08 UTC (permalink / raw)
To: Angelo Compagnucci; +Cc: buildroot
Hello Angelo,
Thanks for this patch, which looks great. I have a few questions below.
On Wed, 20 Aug 2025 18:39:18 +0200
Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:
> diff --git a/package/qpdf/qpdf.mk b/package/qpdf/qpdf.mk
> index d479515789..2a4e7f3386 100644
> --- a/package/qpdf/qpdf.mk
> +++ b/package/qpdf/qpdf.mk
> @@ -4,36 +4,30 @@
> #
> ################################################################################
>
> -QPDF_VERSION = 10.5.0
> -QPDF_SITE = http://downloads.sourceforge.net/project/qpdf/qpdf/$(QPDF_VERSION)
> +QPDF_VERSION = 12.2.0
> +QPDF_SITE = https://github.com/qpdf/qpdf/releases/download/v$(QPDF_VERSION)
> QPDF_INSTALL_STAGING = YES
> QPDF_LICENSE = Apache-2.0 or Artistic-2.0
> QPDF_LICENSE_FILES = LICENSE.txt Artistic-2.0
> QPDF_CPE_ID_VALID = YES
> QPDF_DEPENDENCIES = host-pkgconf zlib jpeg
> +QPDF_SUPPORTS_IN_SOURCE_BUILD = NO
>
> -QPDF_CONF_OPTS = --with-random=/dev/urandom
> -
> -ifeq ($(BR2_USE_WCHAR),)
> -QPDF_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -DQPDF_NO_WCHAR_T"
Are you confident that qpdf no builds properly in configurations with
BR2_USE_WCHAR disabled, without anything special?
> -endif
> +QPDF_CONF_OPTS = -DSKIP_OS_SECURE_RANDOM=ON \
> + -DUSE_IMPLICIT_CRYPTO=OFF -DREQUIRE_CRYPTO_NATIVE=ON
What are these 3 options doing? -DSKIP_OS_SECURE_RANDOM=ON seems scary,
and the other ones would benefit from a bit of explanation so we
understand how it interacts with the options below to select crypto
support.
> ifeq ($(BR2_PACKAGE_GNUTLS),y)
> -QPDF_CONF_OPTS += --enable-crypto-gnutls
> +QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_GNUTLS=ON
> QPDF_DEPENDENCIES += gnutls
> else
> -QPDF_CONF_OPTS += --disable-crypto-gnutls
> +QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_GNUTLS=OFF
> endif
>
> ifeq ($(BR2_PACKAGE_OPENSSL),y)
> -QPDF_CONF_OPTS += --enable-crypto-openssl
> +QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_OPENSSL=ON
> QPDF_DEPENDENCIES += openssl
> else
> -QPDF_CONF_OPTS += --disable-crypto-openssl
> -endif
> -
> -ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> -QPDF_CONF_ENV += LIBS=-latomic
This is no longer needed? Did you test building with a SPARC toolchain
for example, which is known to be picky as all __atomic built-ins are
implemented in libatomic?
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH 3/4 v2] package/libppd: new package
2025-08-20 16:39 ` [Buildroot] [PATCH 3/4 v2] package/libppd: " Angelo Compagnucci
@ 2025-08-22 21:22 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-22 21:22 UTC (permalink / raw)
To: Angelo Compagnucci; +Cc: buildroot
Hello Angelo,
On Wed, 20 Aug 2025 18:39:20 +0200
Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:
> diff --git a/package/libppd/Config.in b/package/libppd/Config.in
> new file mode 100644
> index 0000000000..124de4f7f2
> --- /dev/null
> +++ b/package/libppd/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_LIBPPD
> + bool "libppd"
> + depends on BR2_INSTALL_LIBSTDCPP
This means a Config.in comment is needed.
> + depends on BR2_PACKAGE_LIBCUPSFILTERS
We want a "select" here, which means duplicating all the crazy
dependencies of libcupsfilters yes :/
> diff --git a/package/libppd/libppd.mk b/package/libppd/libppd.mk
> new file mode 100644
> index 0000000000..9680bb7115
> --- /dev/null
> +++ b/package/libppd/libppd.mk
> @@ -0,0 +1,24 @@
> +################################################################################
> +#
> +# libppd
> +#
> +################################################################################
> +
> +LIBPPD_VERSION = 2.1.1
> +LIBPPD_SOURCE = libppd-$(LIBPPD_VERSION).tar.gz
> +LIBPPD_SITE = https://github.com/OpenPrinting/libppd/releases/download/$(LIBPPD_VERSION)
> +LIBPPD_LICENSE = Apache-2.0 with GPL-2.0/LGPL-2.0 exception
> +LIBPPD_LICENSE_FILES = LICENSE NOTICE
> +LIBPPD_CPE_ID_VENDOR = openprinting
Do you have a reference that shows this CPE vendor is used to identify
libppd in particular?
> +LIBPPD_SELINUX_MODULES = cups
Are you sure this belongs here? This is a real question: I have no idea.
> +LIBPPD_INSTALL_STAGING = YES
> +
> +# no configure in tarball
> +LIBPPD_AUTORECONF = YES
> +
> +LIBPPD_DEPENDENCIES = cups libcupsfilters
Why do you have a dependency on cups here, but not in Config.in?
> +LIBPPD_CONF_OPTS = \
> + --with-cups-config=$(STAGING_DIR)/usr/bin/cups-config
Seems like it indeed uses cups directly, so package/libppd/Config.in
should select it.
I see the configure.ac script checks for zlib. Is this a mandatory
dependency? (Not according to the documentation).
There's a fair amount of --disable options in configure.ac, which would
be useful to explicitly disable (or handle).
--disable-ghostscript
--disable-pdftops
--disable-mutool
... and more
That's weird because none of those dependencies are described in
INSTALL.md. As if the configure.ac had been copy/pasted from
libcupsfilters and not adjusted properly?
Best regards,
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH 4/4 v2] package/cups-filters: bump to version 2.0.1
2025-08-20 16:39 ` [Buildroot] [PATCH 4/4 v2] package/cups-filters: bump to version 2.0.1 Angelo Compagnucci
@ 2025-08-22 21:25 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-08-22 21:25 UTC (permalink / raw)
To: Angelo Compagnucci; +Cc: buildroot
Hello Angelo,
On Wed, 20 Aug 2025 18:39:21 +0200
Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:
> diff --git a/package/cups-filters/Config.in b/package/cups-filters/Config.in
> index ded99a4774..89f4b4d08d 100644
> --- a/package/cups-filters/Config.in
> +++ b/package/cups-filters/Config.in
> @@ -2,19 +2,15 @@ config BR2_PACKAGE_CUPS_FILTERS
> bool "cups-filters"
> # needs fork()
> depends on BR2_USE_MMU
> - depends on BR2_INSTALL_LIBSTDCPP # qpdf
> + depends on BR2_TOOLCHAIN_HAS_ATOMIC
> + depends on BR2_INSTALL_LIBSTDCPP
> + depends on BR2_TOOLCHAIN_HAS_THREADS
> + depends on BR2_USE_WCHAR
Make sure to indicate from which package those dependencies are
inherited.
> depends on !BR2_STATIC_LIBS
> - depends on BR2_USE_WCHAR # libglib2
> - depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
> depends on BR2_PACKAGE_CUPS
> + depends on BR2_PACKAGE_LIBCUPSFILTERS
> + depends on BR2_PACKAGE_LIBPPD
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # qpdf
You're no longer selecting qpdf, so the comment here is no longer
accurate.
> CUPS_FILTERS_CONF_OPTS = \
[...]
> + CFLAGS="$(TARGET_CFLAGS) -std=gnu17"
By convention, this should go in CUPS_FILTERS_CONF_ENV
>
> define CUPS_FILTERS_INSTALL_INIT_SYSV
> $(INSTALL) -D -m 0755 package/cups-filters/S82cups-browsed \
Shouldn't this be dropped, now that libcupsfilters does it?
Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0
2025-08-22 21:08 ` Thomas Petazzoni via buildroot
@ 2025-08-23 15:48 ` Angelo Compagnucci
0 siblings, 0 replies; 10+ messages in thread
From: Angelo Compagnucci @ 2025-08-23 15:48 UTC (permalink / raw)
To: Thomas Petazzoni; +Cc: buildroot
[-- Attachment #1.1: Type: text/plain, Size: 3337 bytes --]
Il giorno ven 22 ago 2025 alle ore 23:08 Thomas Petazzoni <
thomas.petazzoni@bootlin.com> ha scritto:
> Hello Angelo,
>
> Thanks for this patch, which looks great. I have a few questions below.
>
> On Wed, 20 Aug 2025 18:39:18 +0200
> Angelo Compagnucci <angelo.compagnucci@gmail.com> wrote:
>
> > diff --git a/package/qpdf/qpdf.mk b/package/qpdf/qpdf.mk
> > index d479515789..2a4e7f3386 100644
> > --- a/package/qpdf/qpdf.mk
> > +++ b/package/qpdf/qpdf.mk
> > @@ -4,36 +4,30 @@
> > #
> >
> ################################################################################
> >
> > -QPDF_VERSION = 10.5.0
> > -QPDF_SITE =
> http://downloads.sourceforge.net/project/qpdf/qpdf/$(QPDF_VERSION)
> > +QPDF_VERSION = 12.2.0
> > +QPDF_SITE =
> https://github.com/qpdf/qpdf/releases/download/v$(QPDF_VERSION)
> > QPDF_INSTALL_STAGING = YES
> > QPDF_LICENSE = Apache-2.0 or Artistic-2.0
> > QPDF_LICENSE_FILES = LICENSE.txt Artistic-2.0
> > QPDF_CPE_ID_VALID = YES
> > QPDF_DEPENDENCIES = host-pkgconf zlib jpeg
> > +QPDF_SUPPORTS_IN_SOURCE_BUILD = NO
> >
> > -QPDF_CONF_OPTS = --with-random=/dev/urandom
> > -
> > -ifeq ($(BR2_USE_WCHAR),)
> > -QPDF_CONF_ENV += CXXFLAGS="$(TARGET_CXXFLAGS) -DQPDF_NO_WCHAR_T"
>
> Are you confident that qpdf no builds properly in configurations with
> BR2_USE_WCHAR disabled, without anything special?
>
Ok, by the documentation it seems this is still valid
"You can disable use of ``wchar_t`` in qpdf's code by defining the
``QPDF_NO_WCHAR_T`` preprocessor symbol in your build (e.g. by
including ``-DQPDF_NO_WCHAR_T`` in ``CFLAGS`` and ``CXXFLAGS``)."
> -endif
> > +QPDF_CONF_OPTS = -DSKIP_OS_SECURE_RANDOM=ON \
> > + -DUSE_IMPLICIT_CRYPTO=OFF -DREQUIRE_CRYPTO_NATIVE=ON
>
> What are these 3 options doing? -DSKIP_OS_SECURE_RANDOM=ON seems scary,
>
This one maps the old --with-random=/dev/urandom option. I'm not sure if
this is still needed honestly, we could try to remove it and see if it
fails in testing.
> and the other ones would benefit from a bit of explanation so we
> understand how it interacts with the options below to select crypto
> support.
>
Those two options are used to suppress the use of the internally downloaded
and built providers and instead use system ones.
> ifeq ($(BR2_PACKAGE_GNUTLS),y)
> > -QPDF_CONF_OPTS += --enable-crypto-gnutls
> > +QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_GNUTLS=ON
> > QPDF_DEPENDENCIES += gnutls
> > else
> > -QPDF_CONF_OPTS += --disable-crypto-gnutls
> > +QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_GNUTLS=OFF
> > endif
> >
> > ifeq ($(BR2_PACKAGE_OPENSSL),y)
> > -QPDF_CONF_OPTS += --enable-crypto-openssl
> > +QPDF_CONF_OPTS += -DREQUIRE_CRYPTO_OPENSSL=ON
> > QPDF_DEPENDENCIES += openssl
> > else
> > -QPDF_CONF_OPTS += --disable-crypto-openssl
> > -endif
> > -
> > -ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> > -QPDF_CONF_ENV += LIBS=-latomic
>
> This is no longer needed? Did you test building with a SPARC toolchain
> for example, which is known to be picky as all __atomic built-ins are
> implemented in libatomic?
>
CMakeLists.txt has:
set(CMAKE_REQUIRED_LIBRARIES atomic)
therefore cmake should take care of this.
>
> Thanks a lot!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>
--
Profile: http://it.linkedin.com/in/compagnucciangelo
[-- Attachment #1.2: Type: text/html, Size: 5634 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-08-23 15:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-20 16:39 [Buildroot] [PATCH 0/4 v2] Bump cups-filter to the latest version Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 1/4 v2] package/qpdf: bump to version 12.2.0 Angelo Compagnucci
2025-08-22 21:08 ` Thomas Petazzoni via buildroot
2025-08-23 15:48 ` Angelo Compagnucci
2025-08-20 16:39 ` [Buildroot] [PATCH 2/4 v2] package/libcupsfilters: new package Angelo Compagnucci
2025-08-22 21:06 ` Thomas Petazzoni via buildroot
2025-08-20 16:39 ` [Buildroot] [PATCH 3/4 v2] package/libppd: " Angelo Compagnucci
2025-08-22 21:22 ` Thomas Petazzoni via buildroot
2025-08-20 16:39 ` [Buildroot] [PATCH 4/4 v2] package/cups-filters: bump to version 2.0.1 Angelo Compagnucci
2025-08-22 21:25 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.