Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox