From patchwork Tue May 23 12:18:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 24324 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6C3FC7EE2A for ; Tue, 23 May 2023 12:18:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.20573.1684844314457240986 for ; Tue, 23 May 2023 05:18:34 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0F1A8139F; Tue, 23 May 2023 05:19:19 -0700 (PDT) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 8F5E93F6C4; Tue, 23 May 2023 05:18:33 -0700 (PDT) From: ross.burton@arm.com To: openembedded-devel@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH 1/3] hplip: build against libusb1 Date: Tue, 23 May 2023 13:18:29 +0100 Message-Id: <20230523121831.1877208-1-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 23 May 2023 12:18:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/102732 From: Ross Burton Build against the maintained libusb1 instead of the obsolete libusb-compat. Update the patch to use pkg-config so that it does the correct linkage too. Signed-off-by: Ross Burton --- .../hplip/hplip/fix-libusb-paths.patch | 76 ++++++++++++++----- .../recipes-extended/hplip/hplip_3.22.10.bb | 3 +- 2 files changed, 57 insertions(+), 22 deletions(-) diff --git a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch index 6aa1de0a8a..f2cd2be60d 100644 --- a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch +++ b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch @@ -1,33 +1,69 @@ -Upstream-Status: Inappropriate [configuration] +Don't hardcode paths to libusb, instead use pkg-config. ---- a/configure.in -+++ b/configure.in -@@ -599,6 +599,8 @@ if test "$class_driver" = "no" && test " - AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)]) - else - AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)]) -+ LIBUSBINCLUDEROOT?="/usr/include/" -+ AC_ARG_VAR(LIBUSBINCLUDEROOT, [path to libusb-1.0 folder]) - AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)]) - fi - fi +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/Makefile.am b/Makefile.am +index b77327f..29e838a 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -109,7 +109,7 @@ libhpmud_la_SOURCES += io/hpmud/musb_lib - libhpmud_la_LDFLAGS += -lusb +@@ -107,12 +107,11 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/ + + if LIBUSB01_BUILD + libhpmud_la_SOURCES += io/hpmud/musb_libusb01.c +-libhpmud_la_LDFLAGS += -lusb else libhpmud_la_SOURCES += io/hpmud/musb.c -libhpmud_la_CFLAGS += -I/usr/include/libusb-1.0 -+libhpmud_la_CFLAGS += -I$(LIBUSBINCLUDEROOT)/libusb-1.0 - libhpmud_la_LDFLAGS += -lusb-1.0 +-libhpmud_la_LDFLAGS += -lusb-1.0 endif ++libhpmud_la_CFLAGS += $(USB_CFLAGS) ++libhpmud_la_LDFLAGS += $(USB_LIBS) + + + if NETWORK_BUILD +@@ -356,7 +355,7 @@ hpmudextdir = $(pyexecdir) + hpmudext_LTLIBRARIES = hpmudext.la + hpmudext_la_LDFLAGS = -module -avoid-version + hpmudext_la_SOURCES = io/mudext/hpmudext.c +-hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) ++hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR) $(USB_CFLAGS) + hpmudext_la_LIBADD = libhpmud.la -@@ -362,7 +362,7 @@ hpmudext_la_CFLAGS += -Iprotocol/discove + if NETWORK_BUILD +@@ -364,9 +363,6 @@ hpmudext_la_LIBADD += libhpdiscovery.la + hpmudext_la_CFLAGS += -Iprotocol/discovery endif - if !LIBUSB01_BUILD +-if !LIBUSB01_BUILD -hpmudext_la_CFLAGS +=-I/usr/include/libusb-1.0 -+hpmudext_la_CFLAGS +=-I$(LIBUSBINCLUDEROOT)/libusb-1.0 - endif +-endif endif #!HPLIP_CLASS_DRIVER # ui (qt3) + if GUI_BUILD +diff --git a/configure.in b/configure.in +index b1c690c..4a65c97 100644 +--- a/configure.in ++++ b/configure.in +@@ -36,6 +36,7 @@ AC_PROG_CXX + AC_PROG_CC + AC_PROG_INSTALL + AC_PROG_LIBTOOL ++PKG_PROG_PKG_CONFIG + + # Checks for required libraries, don't set global -lpthread, -lm, -ljpeg, ... here, set in Makefile. + AC_CHECK_LIB([pthread], [pthread_create], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libpthread support], 7)]) +@@ -620,11 +621,9 @@ if test "$class_driver" = "no" && test "$hpijs_only_build" = "no" && test "$hpcu + AC_CHECK_LIB([cups], [cupsDoFileRequest], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libcups support], 9)]) + AC_CHECK_HEADERS(cups/cups.h, ,[AC_MSG_ERROR([cannot find cups-devel support], 3)]) + if test "$libusb01_build" = "yes"; then +- AC_CHECK_LIB([usb], [usb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb support], 2)]) +- AC_CHECK_HEADERS(usb.h, ,[AC_MSG_ERROR([cannot find libusb-devel support], 11)]) ++ PKG_CHECK_MODULES([USB], [libusb]) + else +- AC_CHECK_LIB([usb-1.0], [libusb_init], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find libusb 1.0 support], 2)]) +- AC_CHECK_HEADERS(libusb-1.0/libusb.h, ,[AC_MSG_ERROR([cannot find libusb-1.0-devel support], 11)]) ++ PKG_CHECK_MODULES([USB], [libusb-1.0]) + fi + fi + diff --git a/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb index ca683483b6..3ccfa7d662 100644 --- a/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb +++ b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb @@ -19,7 +19,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ file://0001-Drop-using-register-storage-classifier.patch" SRC_URI[sha256sum] = "533c3f2f6b53e4163ded4fd81d1f11ae6162a0f6451bd5e62a8382d0c1366624" -DEPENDS += "cups python3 libusb" +DEPENDS += "cups python3 libusb1" inherit autotools-brokensep python3-dir python3native python3targetconfig pkgconfig systemd @@ -29,7 +29,6 @@ export STAGING_LIBDIR CFLAGS += "-I${STAGING_INCDIR}/python${PYTHON_BASEVERSION}${PYTHON_ABI}" EXTRA_OECONF += "\ - LIBUSBINCLUDEROOT=${STAGING_INCDIR} \ --enable-cups-drv-install \ --enable-cups-ppd-install \ --disable-network-build \ From patchwork Tue May 23 12:18:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 24323 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA43BC7EE29 for ; Tue, 23 May 2023 12:18:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web10.20696.1684844315072396898 for ; Tue, 23 May 2023 05:18:35 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B7BC7150C; Tue, 23 May 2023 05:19:19 -0700 (PDT) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3C2A13F6C4; Tue, 23 May 2023 05:18:34 -0700 (PDT) From: ross.burton@arm.com To: openembedded-devel@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH 2/3] hplip: remove redundant FILES:${PN}-dbg Date: Tue, 23 May 2023 13:18:30 +0100 Message-Id: <20230523121831.1877208-2-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230523121831.1877208-1-ross.burton@arm.com> References: <20230523121831.1877208-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 23 May 2023 12:18:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/102733 From: Ross Burton These files will be automatically packaged so there's no need to package them manually. Signed-off-by: Ross Burton --- meta-oe/recipes-extended/hplip/hplip_3.22.10.bb | 6 ------ 1 file changed, 6 deletions(-) diff --git a/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb index 3ccfa7d662..ed9f28e073 100644 --- a/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb +++ b/meta-oe/recipes-extended/hplip/hplip_3.22.10.bb @@ -74,12 +74,6 @@ RDEPENDS:${PN} += " \ " RDEPENDS:${PN}-filter += "perl ghostscript" -# need to snag the debug file or OE will fail on backend package -FILES:${PN}-dbg += "\ - ${libexecdir}/cups/backend/.debug \ - ${PYTHON_SITEPACKAGES_DIR}/.debug \ - ${libexecdir}/cups/filter/.debug " - FILES:${PN} += "${datadir}/ipp-usb/quirks/HPLIP.conf" FILES:${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la" FILES:${PN}-ppd = "${datadir}/ppd" From patchwork Tue May 23 12:18:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ross Burton X-Patchwork-Id: 24325 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C6C05C7EE26 for ; Tue, 23 May 2023 12:18:39 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web11.20574.1684844315741598137 for ; Tue, 23 May 2023 05:18:35 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ross.burton@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 646A4139F; Tue, 23 May 2023 05:19:20 -0700 (PDT) Received: from oss-tx204.lab.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.121.207.14]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id E5F553F6C4; Tue, 23 May 2023 05:18:34 -0700 (PDT) From: ross.burton@arm.com To: openembedded-devel@lists.openembedded.org Cc: nd@arm.com Subject: [PATCH 3/3] gutenprint: rewrite recipe and update Date: Tue, 23 May 2023 13:18:31 +0100 Message-Id: <20230523121831.1877208-3-ross.burton@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230523121831.1877208-1-ross.burton@arm.com> References: <20230523121831.1877208-1-ross.burton@arm.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 23 May 2023 12:18:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/102734 From: Ross Burton There hasn't been a gutenprint upgrade for quite a while, but a lot of fixes upstream, so grab the latest SHA. This means we can now do out-of-tree builds, so drop the use of autotools-brokensep. Also stop autogen.sh from running configure as we run it again. Clean up build dependencies. Enable NLS, as there's no reason to disable it. Remove the explicit gutenprint-native recipe, instead use class extension and build as little as possible in the native do_compile. Signed-off-by: Ross Burton --- .../gutenprint/gutenprint-native_git.bb | 42 ------------- .../gutenprint/gutenprint.inc | 22 ------- .../gutenprint/gutenprint_git.bb | 60 +++++++++++++------ 3 files changed, 43 insertions(+), 81 deletions(-) delete mode 100644 meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb delete mode 100644 meta-oe/recipes-printing/gutenprint/gutenprint.inc diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb b/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb deleted file mode 100644 index c6e00c340a..0000000000 --- a/meta-oe/recipes-printing/gutenprint/gutenprint-native_git.bb +++ /dev/null @@ -1,42 +0,0 @@ -# Recipe for building gutenprint-native -# -# Native part is for generating strings - xmli18n-tmp.h used by target recipe -# We don't depend on cups as this is for generating the string header. -# -# Copyright (c) Ambu A/S - All rights reserved -# SPDX-License-Identifier: MIT -# -# Author(s) -# clst@ambu.com (Claus Stovgaard) -# - -require gutenprint.inc - -# We could consider switching to BBCLASSEXTEND native instead of inherit -# Using devtool with this results in warning, as devtool append externalsrc to -# inheritance, making native not being inherited last. -inherit autotools-brokensep pkgconfig native - -SECTION = "libs" - -# binutils is for xz etc. -# gettext-native for configuration -# flex-native is used for compilation -# byacc-native is for yacc command (compilation) -DEPENDS += "binutils-native gettext-native flex-native byacc-native" - -EXTRA_OECONF = "--without-doc --without-cups" - -# gutenprint does not have a configure file in its root folder. -# Rather it has a autogen.sh in its root folder. We just use it -do_configure() { - ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" - oe_runconf -} - -# Currently we only uses the string header, even though we compile the complete -# native version of the library. So we limit the install to the needed. -do_install() { - install -d ${D}${datadir}/gutenprint/ - install -m644 ${B}/src/xml/xmli18n-tmp.h ${D}${datadir}/gutenprint/ -} \ No newline at end of file diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint.inc b/meta-oe/recipes-printing/gutenprint/gutenprint.inc deleted file mode 100644 index 1f712585f7..0000000000 --- a/meta-oe/recipes-printing/gutenprint/gutenprint.inc +++ /dev/null @@ -1,22 +0,0 @@ -# common part for gutenprint-native / gutenprint -# -# As we are using the native part for generating string header to the target -# version, it is important they use the same version. -# So we set the SRC_URI and SRCREV here. -# -# Copyright (c) Ambu A/S - All rights reserved -# SPDX-License-Identifier: MIT -# -# Author(s) -# clst@ambu.com (Claus Stovgaard) -# - -DESCRIPTION = "Gutenprint printer drivers" -HOMEPAGE = "http://gimp-print.sourceforge.net/" -LICENSE = "GPL-2.0-or-later" - -SRC_URI = "git://git.code.sf.net/p/gimp-print/source;protocol=https;branch=master" -SRCREV = "8e47dc44dd7738302ba9e8fbc1f918461fed0236" -S = "${WORKDIR}/git" - -LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" \ No newline at end of file diff --git a/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb b/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb index 7779793948..abdd3d5e40 100644 --- a/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb +++ b/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb @@ -9,38 +9,64 @@ # clst@ambu.com (Claus Stovgaard) # -require gutenprint.inc +DESCRIPTION = "Gutenprint printer drivers" +HOMEPAGE = "http://gimp-print.sourceforge.net/" +LICENSE = "GPL-2.0-or-later" -inherit autotools-brokensep pkgconfig +SRC_URI = "git://git.code.sf.net/p/gimp-print/source;protocol=https;branch=master" +SRCREV = "66b0a7bc3fd25659a3f295db0ebb39d04e413c01" +PV = "5.3.3+git${SRCPV}" -DEPENDS += "cups gutenprint-native" +S = "${WORKDIR}/git" -# cups-genppdupdate depend on perl -# We also set the path to PERL as else the version in hosttools would be used -# with full path -RDEPENDS:${PN} = "perl " +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" -EXTRA_OECONF = "--without-doc --disable-test --disable-nls PERL=/usr/bin/perl" +inherit autotools gettext pkgconfig -# gutenprint does not have a configure file in its root folder. -# Rather it has a autogen.sh in its root folder. We just use it -# together with adapting for cross compilation -do_configure() { +DEPENDS += "cups gutenprint-native" +# autogen.sh needs autopoint +DEPENDS:class-native = "gettext-native" + +EXTRA_OECONF = "--without-doc --disable-test PERL=/usr/bin/perl" +EXTRA_OECONF:append:class-native = " --without-cups" + +do_configure:prepend:class-target() { # Disable the xmli18n-tmp.h rule # It depend on the local build extract-strings, we are not able to run this # So we are using the xmli18n-tmp.h created by gutenprint-native sed -i 's/all-local: xmli18n-tmp.h xml-stamp/all-local: xml-stamp/' ${S}/src/xml/Makefile.am sed -i 's/dist-hook: xmli18n-tmp.h xml-stamp/dist-hook: xml-stamp/' ${S}/src/xml/Makefile.am - cp ${RECIPE_SYSROOT_NATIVE}${datadir}/gutenprint/xmli18n-tmp.h ${S}/src/xml/ + # Despite being a generated file, this needs to be in S. + cp ${STAGING_DATADIR_NATIVE}/gutenprint/xmli18n-tmp.h ${S}/src/xml/ +} - ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh" +do_configure() { + # Need to call autogen.sh as that creates m4/stp_release.m4 + cd ${S} + NOCONFIGURE=1 ./autogen.sh + cd ${B} oe_runconf } -# gutenprint install the calibrate.ppm and net.sf.gimp-print.usb-quirks in -# /usr/share/cups +do_install:append() { + # This file contains build paths and isn't very useful, remove it + rm -f ${D}${libdir}/gutenprint/*/config.summary +} + +do_compile:class-native() { + oe_runmake -C ${B}/src/xml +} + +do_install:class-native() { + install -d ${D}${datadir}/gutenprint/ + install -m644 ${B}/src/xml/xmli18n-tmp.h ${D}${datadir}/gutenprint/ +} + FILES:${PN} += "${datadir}/cups/*" +RDEPENDS:${PN} = "perl" # Install in /etc/cups when RPM needs DIRFILES to not conflict # https://stackoverflow.com/questions/44762430/why-do-i-get-etc-cups-conflicts-between-attempted-installs-in-yocto -DIRFILES = "1" \ No newline at end of file +DIRFILES = "1" + +BBCLASSEXTEND = "native"