[arch-commits] Commit in hplip/repos (10 files)

Andreas Radke andyrtr at archlinux.org
Mon Feb 22 09:44:11 UTC 2021


    Date: Monday, February 22, 2021 @ 09:44:11
  Author: andyrtr
Revision: 408586

archrelease: copy trunk to testing-x86_64

Added:
  hplip/repos/testing-x86_64/
  hplip/repos/testing-x86_64/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch
    (from rev 408585, hplip/trunk/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch)
  hplip/repos/testing-x86_64/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
    (from rev 408585, hplip/trunk/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch)
  hplip/repos/testing-x86_64/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
    (from rev 408585, hplip/trunk/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch)
  hplip/repos/testing-x86_64/PKGBUILD
    (from rev 408585, hplip/trunk/PKGBUILD)
  hplip/repos/testing-x86_64/disable_upgrade.patch
    (from rev 408585, hplip/trunk/disable_upgrade.patch)
  hplip/repos/testing-x86_64/hplip-configure-python.patch
    (from rev 408585, hplip/trunk/hplip-configure-python.patch)
  hplip/repos/testing-x86_64/hplip-thread-isalive-removed.patch
    (from rev 408585, hplip/trunk/hplip-thread-isalive-removed.patch)
  hplip/repos/testing-x86_64/python3.diff
    (from rev 408585, hplip/trunk/python3.diff)
  hplip/repos/testing-x86_64/reproducible-gzip.patch
    (from rev 408585, hplip/trunk/reproducible-gzip.patch)

-----------------------------------------------------------------+
 0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch |   50 +++
 0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch       |   29 +
 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch |  123 ++++++++
 PKGBUILD                                                        |  113 +++++++
 disable_upgrade.patch                                           |   14 
 hplip-configure-python.patch                                    |   52 +++
 hplip-thread-isalive-removed.patch                              |   93 ++++++
 python3.diff                                                    |  147 ++++++++++
 reproducible-gzip.patch                                         |   38 ++
 9 files changed, 659 insertions(+)

Copied: hplip/repos/testing-x86_64/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch (from rev 408585, hplip/trunk/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch)
===================================================================
--- testing-x86_64/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch	                        (rev 0)
+++ testing-x86_64/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,50 @@
+From b3a7fa4d4a573cfe0073ae50197f679af7e3a0ac Mon Sep 17 00:00:00 2001
+From: Till Kamppeter <till.kamppeter at canonical.com>
+Date: Sat, 24 Sep 2016 10:37:20 +0200
+Subject: Add 'include <cups/ppd.h>' in various places as CUPS 2.2 moved some
+ definitions to ppd.h
+
+---
+ configure.in               | 2 +-
+ prnt/hpcups/HPCupsFilter.h | 2 ++
+ prnt/hpijs/hpcupsfax.cpp   | 1 +
+ 3 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index d3a1ddb..eabe14a 100755
+--- a/configure.in
++++ b/configure.in
+@@ -554,7 +554,7 @@ fi
+ 
+ if test "$hpijs_only_build" = "no" && test "$hpcups_only_build" = "no"; then
+    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)])
++   AC_CHECK_HEADERS(cups/cups.h cups/ppd.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)])
+diff --git a/prnt/hpcups/HPCupsFilter.h b/prnt/hpcups/HPCupsFilter.h
+index ff5548e..c517989 100644
+--- a/prnt/hpcups/HPCupsFilter.h
++++ b/prnt/hpcups/HPCupsFilter.h
+@@ -38,6 +38,8 @@
+ 
+ #include "dbuscomm.h"
+ 
++#include <cups/ppd.h>
++
+ #define		DBITMAPFILEHEADER		14
+ #define		DBITMAPINFOHEADER		40
+ 
+diff --git a/prnt/hpijs/hpcupsfax.cpp b/prnt/hpijs/hpcupsfax.cpp
+index 8514775..994e50f 100644
+--- a/prnt/hpijs/hpcupsfax.cpp
++++ b/prnt/hpijs/hpcupsfax.cpp
+@@ -43,6 +43,7 @@
+ #include <arpa/inet.h>
+ #include <math.h>
+ #include <cups/cups.h>
++#include <cups/ppd.h>
+ #include <cups/raster.h>
+ #include <string>
+ #ifdef FALSE

Copied: hplip/repos/testing-x86_64/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch (from rev 408585, hplip/trunk/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch)
===================================================================
--- testing-x86_64/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch	                        (rev 0)
+++ testing-x86_64/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,29 @@
+From 04b5a1ddac1dd90c5a392f23aaf7df42eae32918 Mon Sep 17 00:00:00 2001
+From: Gaurav Sood <gaurav-sood at invalid-email.launchpad.net>
+Date: Thu, 4 May 2017 18:32:08 +0200
+Subject: Fix handling of unicode filenames in sixext.py
+
+LP: #1480152
+Closes: #861731
+---
+ base/sixext.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/base/sixext.py b/base/sixext.py
+index 0bf4fc4f4..311bf72c6 100644
+--- a/base/sixext.py
++++ b/base/sixext.py
+@@ -110,11 +110,11 @@ if PY3:
+ 
+ 
+     def to_string_utf8(s):
+-        return s.decode("utf-8")
++        return s.decode("utf-8", 'ignore')
+ 
+ 
+     def to_string_latin(s):
+-        return s.decode("latin-1")
++        return s.decode("latin-1", 'ignore')
+ 
+ 
+     def to_unicode(s, enc=None):

Copied: hplip/repos/testing-x86_64/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch (from rev 408585, hplip/trunk/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch)
===================================================================
--- testing-x86_64/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch	                        (rev 0)
+++ testing-x86_64/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,123 @@
+From fa9c0cf1a5db9bf8880b4796d5e3e0da46534e3d Mon Sep 17 00:00:00 2001
+From: Didier Raboud <odyx at debian.org>
+Date: Tue, 21 Aug 2018 18:18:10 +0200
+Subject: Remove all ImageProcessor functionality, which is closed-source
+
+---
+ Makefile.am                  | 14 ++------------
+ prnt/hpcups/HPCupsFilter.cpp | 21 ---------------------
+ 2 files changed, 2 insertions(+), 33 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1b097c4f9..8d5d78c9f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -166,7 +166,7 @@ if !HPLIP_CLASS_DRIVER
+ dist_hplip_SCRIPTS = hpssd.py __init__.py hpdio.py
+ endif #HPLIP_CLASS_DRIVER
+ 
+-dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template prnt/hpcups/libImageProcessor-x86_64.so prnt/hpcups/libImageProcessor-x86_32.so
++dist_noinst_DATA += prnt/drv/hpijs.drv.in.template prnt/drv/hpcups.drv.in.template
+ dist_noinst_SCRIPTS += dat2drv.py install.py  hplip-install init-suse-firewall init-iptables-firewall class_rpm_build.sh hplipclassdriver.spec createPPD.sh Makefile_dat2drv hpijs-drv
+ 
+ if !HPLIP_CLASS_DRIVER
+@@ -594,7 +594,7 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
+ 	prnt/hpcups/ImageProcessor.h
+ 
+ hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
+ #else
+ #hpcupsdir = $(cupsfilterdir)
+ #hpcups_PROGRAMS = hpcups
+@@ -686,16 +686,6 @@ endif #HPLIP_CLASS_DRIVER
+ 
+ install-data-hook:
+ if HPLIP_BUILD
+-	if [ \( "$(UNAME)" = "x86_64" -a  -d "$(libdir)/" \) ]; then \
+-		cp prnt/hpcups/libImageProcessor-x86_64.so $(libdir)/ ; \
+-		chmod 775 $(libdir)/libImageProcessor-x86_64.so ; \
+-		ln -sf $(libdir)/libImageProcessor-x86_64.so $(libdir)/libImageProcessor.so ; \
+-	fi; \
+-	if [ \( \( "$(UNAME)" = "i686" -o "$(UNAME)" = "i386" \) -a -d "$(libdir)/" \) ]; then \
+-		cp prnt/hpcups/libImageProcessor-x86_32.so $(libdir)/ ; \
+-		chmod 775 $(libdir)/libImageProcessor-x86_32.so ; \
+-		ln -sf $(libdir)/libImageProcessor-x86_32.so $(libdir)/libImageProcessor.so ; \
+-	fi
+ if !HPLIP_CLASS_DRIVER
+ #	   If scanner build, add hpaio entry to sane dll.conf.
+ 	if [ "$(scan_build)" = "yes" ]; then \
+--- hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp	2021-02-15 00:55:21.000000000 +0100
++++ hplip-3.21.2/prnt/hpcups/HPCupsFilter.cpp.new	2021-02-22 08:34:47.515932980 +0100
+@@ -31,7 +31,6 @@
+ \*****************************************************************************/
+ 
+ #include "HPCupsFilter.h"
+-#include "ImageProcessor.h"
+ 
+ #include <signal.h>
+ #include <sys/wait.h>
+@@ -651,21 +650,9 @@
+ 
+     sprintf(hpPreProcessedRasterFile, "%s/hp_%s_cups_SwapedPagesXXXXXX",CUPS_TMP_DIR, m_JA.user_name);
+  
+-    image_processor_t* imageProcessor=NULL;
+-    IMAGE_PROCESSOR_ERROR result;
+-    //added if condition to check if pinter language is "ljzjstream"
+-    //If so, then bypass imageprocessing functions while running HPCUPS filter.
+-    if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0){
+-        imageProcessor = imageProcessorCreate();
+-    }
+     while (cupsRasterReadHeader2(cups_raster, &cups_header))
+     {
+-       if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0){
+-        result = imageProcessorStartPage(imageProcessor, &cups_header);
+-        if (result != IPE_SUCCESS){
+-            dbglog("DEBUG: imageProcessorStartPage failed result = %d\n", result);
+-        }
+-     }
++
+         current_page_number++;
+ 
+         if (current_page_number == 1) {
+@@ -764,14 +751,6 @@
+             color_raster = rgbRaster;
+             black_raster = kRaster;
+ 
+-	if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
+-	{
+-            result = imageProcessorProcessLine(imageProcessor, m_pPrinterBuffer, cups_header.cupsBytesPerLine);
+-            if (result != IPE_SUCCESS){
+-                dbglog("DEBUG: imageProcessorProcessLine failed result = %d\n", result);
+-            }
+-	}
+-
+             if ((y == 0) && !is_ljmono) {
+                 //For ljmono, make sure that first line is not a blankRaster line.Otherwise printer
+                 //may not skip blank lines before actual data
+@@ -801,14 +780,6 @@
+             }
+         }  // for() loop end
+ 
+-	if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
+-	{
+-        result = imageProcessorEndPage(imageProcessor);
+-        if (result != IPE_SUCCESS){
+-                dbglog("DEBUG: imageProcessorEndPage failed result = %d\n", result);
+-        }
+-	}
+-
+         m_Job.NewPage();
+         if (err != NO_ERROR) {
+             break;
+@@ -824,10 +795,6 @@
+     }
+ 
+  
+-   if(strncmp(m_JA.printer_platform, "ljzjstream",10) == 0)
+-   {
+-    imageProcessorDestroy(imageProcessor);
+-   }
+     unlink(hpPreProcessedRasterFile);
+     return ret_status;
+ }

Copied: hplip/repos/testing-x86_64/PKGBUILD (from rev 408585, hplip/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,113 @@
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Maintainer: Tom Gundersen <teg at jklm.no>
+# Contributor : Rémy Oudompheng <remy at archlinux.org>
+# Contributor: Morgan LEFIEUX <comete at archlinuxfr.org>
+
+pkgname=hplip
+pkgver=3.21.2
+pkgrel=1
+epoch=1
+pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet"
+arch=('x86_64')
+url="https://hplipopensource.com"
+license=('GPL2' 'custom')
+depends=('python-dbus' 'python-distro' 'ghostscript' 'net-snmp' 'foomatic-db-engine' 'python-gobject' 'libxcrypt')
+makedepends=('python-pyqt5' 'sane' 'rpcbind' 'cups' 'libusb')
+optdepends=('cups: for printing support'
+            'sane: for scanner support'
+            'xsane: sane scanner frontend'
+            'python-pillow: for commandline scanning support'
+            'python-reportlab: for pdf output in hp-scan'
+            'rpcbind: for network support'
+            'python-pyqt5: for running GUI and hp-toolbox'
+            'libusb: for advanced usb support'
+            'wget: for network support')
+# 'hplip-plugin: binary blobs for specific devices (AUR) or run hp-setup to download the plugin'
+backup=('etc/hp/hplip.conf' 'etc/sane.d/dll.d/hpaio')
+source=(https://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz{,.asc}
+        disable_upgrade.patch
+        0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch
+        0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
+        0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+        #https://launchpadlibrarian.net/480406888/hplip-configure-python.patch # no more available
+        # use the one from Fedora
+        hplip-configure-python.patch
+        python3.diff
+        hplip-thread-isalive-removed.patch
+        reproducible-gzip.patch)
+sha512sums=('73ba37275cfe34a58b81c9656514e15da67c1a69af5471ad132a1538d324efe640879cb7e60c359915607e41b63e653e7ae757661e553235f6e83e378ab46474'
+            'SKIP'
+            'ee0bd240568a7dbb4dc6ef64dba28ea84c4bedf7d688d054960c686666f8f0bc4562961c40845107ef0c936e60d3e676bffb2a1ba708039690bb0520cda3a525'
+            '22aeb5b851f78bc6bc62e0bc3da99fecaf42d7604af41e2f3343f8d3666541f7b06b7d1a7d0ddf24f1731ac7b12dfe582375a98e3b94dfa323d6ce954549ca67'
+            '763949a0bc460dcc9faefc86f2a91cf342781bfce696ed0c3826758572dd03ac266bbeb7b6a4f9376ac298d7d3c9c4def42d94921a8e1d1695e39396e36d95ff'
+            '25b701fdac63a8a85989616b66b8760fbf8e0ae9418c8cd0d39cf932f65b9534da6ddd0374b205c78f77153733a871086a70ac7922d9a969dbfae6eabba74253'
+            '089c102357ea5fd55d81ae76aaff62713f780fd84500c3b92ecd6b2bb11ccdc3a162978548e9a5f9e98a8354a5be3997e416c52daa18eda4621ed79a29d6fea8'
+            '5885b223f96706bc09a147b5c141d620846c9058563e986983ca2ab90922cabe891a651d90d5004d45549b3874c40f8a1570a8a79e067d66f1826681111c7e82'
+            '6cf68bbc5c2b1a03ca8528e834e9867d33b982a9fa073d28c9faa514d5057d9b71de6fb494597d3b496ee56b68a179b2e11ba14cec4d01c4fc7dec72a4a2ff0b'
+            '7bad907228b7c2f3c43128f087a2f8e03778760b7a26179ff441c1f60127e2fca08c94dff76baea2469d3a253a8f46b285d0af0f62a6d8738926caf7a10f670b')
+validpgpkeys=('4ABA2F66DBD5A95894910E0673D770CDA59047B9') # HPLIP (HP Linux Imaging and Printing) <hplip at hp.com>
+
+prepare() {
+ cd "$pkgname"-$pkgver
+
+ # disable insecure update - https://bugs.archlinux.org/task/38083
+ patch -Np0 -i "${srcdir}"/disable_upgrade.patch
+ 
+ # add missing 'include <cups/ppd.h>' at various places
+ patch -Np1 -i "${srcdir}"/0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch
+ # fix some handling unicode file names FS#58412
+ patch -Np1 -i "${srcdir}"/0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
+ # remove binary blob libImageProcessor and all linking - FS#59681
+ patch -Np1 -i "${srcdir}"/0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
+ # Workaround patch for missing Python3 transition of the old
+ # (pre-USB-storage) photo memory card support (pcardext) - Debian patch
+ patch -Np1 -i "${srcdir}"/python3.diff
+ # python 3.9 emoved a deprecated method of threading
+ # https://bugs.archlinux.org/task/68910 / hplip-thread-isalive-removed.patch
+ patch -Np1 -i "${srcdir}"/hplip-thread-isalive-removed.patch
+
+ # https://bugs.launchpad.net/hplip/+bug/1879445
+ # broken scanning - https://bugs.archlinux.org/task/66704
+ patch -Np1 -i ../hplip-configure-python.patch
+
+ # make gzip creation reproducible by removing the timestamp
+ patch -Np1 -i ../reproducible-gzip.patch
+
+ export AUTOMAKE='automake --foreign'
+ autoreconf --force --install
+}
+
+build() {
+ cd "$pkgname"-$pkgver
+ ./configure --prefix=/usr \
+             --enable-qt5 \
+             --disable-qt4 \
+             --enable-hpcups-install \
+             --enable-cups-drv-install \
+             --enable-pp-build #--help
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make
+}
+
+package() {
+ cd "$pkgname"-$pkgver
+ make -j1 rulesdir=/usr/lib/udev/rules.d DESTDIR="$pkgdir/" install
+ 
+ # remove config provided by sane and autostart of hp-daemon
+ rm -rf "$pkgdir"/etc/{sane.d,xdg}
+ install -dm755 "${pkgdir}"/etc/sane.d/dll.d
+ echo hpaio > "${pkgdir}"/etc/sane.d/dll.d/hpaio
+ 
+ # remove HAL .fdi file because HAL is no longer used
+ rm -vrf "$pkgdir"/usr/share/hal
+ 
+ # remove rc script
+ rm -vrf "$pkgdir"/etc/init.d
+
+ # add mixed license file
+ install -Dt "${pkgdir}"/usr/share/licenses/${pkgname} -m644 COPYING
+
+ # Compile Python bytecode:
+ python -m compileall -d /usr/share "$pkgdir/usr/share"
+ python -O -m compileall -d /usr/share "$pkgdir/usr/share"
+}

Copied: hplip/repos/testing-x86_64/disable_upgrade.patch (from rev 408585, hplip/trunk/disable_upgrade.patch)
===================================================================
--- testing-x86_64/disable_upgrade.patch	                        (rev 0)
+++ testing-x86_64/disable_upgrade.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,14 @@
+--- upgrade.py.orig	2013-10-31 12:46:54.000000000 +0100
++++ upgrade.py	2013-12-04 14:58:03.000000000 +0100
+@@ -134,6 +134,11 @@ except getopt.GetoptError, e:
+ if os.getenv("HPLIP_DEBUG"):
+     log.set_level('debug')
+ 
++
++log.error("HPLIP upgrade is disabled by Archlinux for security reasons, see https://bugs.archlinux.org/task/38083 - if you like to upgrade HPLIP, use the Archlinux software package manager pacman.")
++clean_exit(1)
++
++
+ for o, a in opts:
+     if o in ('-h', '--help'):
+         usage()

Copied: hplip/repos/testing-x86_64/hplip-configure-python.patch (from rev 408585, hplip/trunk/hplip-configure-python.patch)
===================================================================
--- testing-x86_64/hplip-configure-python.patch	                        (rev 0)
+++ testing-x86_64/hplip-configure-python.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,52 @@
+diff -up hplip-3.20.9/configure.in.configure-python hplip-3.20.9/configure.in
+--- hplip-3.20.9/configure.in.configure-python	2020-09-23 07:24:27.000000000 +0200
++++ hplip-3.20.9/configure.in	2020-10-02 07:27:09.082331431 +0200
+@@ -604,17 +604,29 @@ if test "$class_driver" = "no" && test "
+    fi
+ fi
+ 
+-SAVE_CPPFLAGS="$CPPFLAGS"
+-CFLAGS=`python-config --includes`
+-if [ $? -eq 0 ] 
+-then
+-   echo $FLAGS
+-else
+-CFLAGS=`python3-config --includes`
+-   if [ $? -eq 0 ]
+-   then
+-   echo $FLAGS
+-   fi
++AC_PATH_PROG(python3_config_path, python3-config, [AC_MSG_ERROR([python3-config not installed], 6)])
++
++PYTHON_INCLUDES=`$python3_config_path --includes`
++if test "X$PYTHON_INCLUDES" = "X" ; then
++  AC_MSG_ERROR([Cannot get Python includes via python3-config], 6)
++fi
++
++PYTHON_LIBS=`$python3_config_path --libs`
++if test "X$PYTHON_LIBS" = "X" ; then
++  AC_MSG_ERROR([Cannot get Python libs via python3-config], 6)
++fi
++
++SAVE_CFLAGS=$CFLAGS
++SAVE_LIBS=$LIBS
++
++CFLAGS="$CFLAGS $PYTHON_INCLUDES"
++LIBS="$LIBS $PYTHON_LIBS"
++
++AC_TRY_LINK(,[ ], AC_MSG_RESULT(yes); python_includes="ok", AC_MSG_ERROR([no: PYTHON DISABLED], 6))
++
++if test "X$python_includes" != "Xok" ; then
++  CFLAGS="$SAVE_CFLAGS"
++  LIBS="$SAVE_LIBS"
+ fi
+ 
+ #CFLAGS=`(python-config --includes)`
+@@ -631,7 +643,6 @@ if test "$class_driver" = "no" && test "
+    AS_IF([test "x$FOUND_HEADER" != "xyes"],
+           [AC_MSG_ERROR([cannot find python-devel support], 6)])
+ fi
+-CFLAGS="$save_CFLAGS"
+ 
+ if test "$hpijs_only_build" = "no" && test "$scan_build" = "yes" && test "$hpcups_only_build" = "no"; then
+    AC_CHECK_LIB([sane], [sane_open], [LIBS="$LIBS"], [AC_MSG_ERROR([cannot find sane-backends-devel support (or --disable-scan-build)], 12)])

Copied: hplip/repos/testing-x86_64/hplip-thread-isalive-removed.patch (from rev 408585, hplip/trunk/hplip-thread-isalive-removed.patch)
===================================================================
--- testing-x86_64/hplip-thread-isalive-removed.patch	                        (rev 0)
+++ testing-x86_64/hplip-thread-isalive-removed.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,93 @@
+diff --git a/copier/copier.py b/copier/copier.py
+index a595baa..7794f48 100644
+--- a/copier/copier.py
++++ b/copier/copier.py
+@@ -73,13 +73,13 @@ class PMLCopyDevice(device.Device):
+ 
+     def isCopyActive(self):
+         if self.copy_thread is not None:
+-            return self.copy_thread.isAlive()
++            return self.copy_thread.is_alive()
+         else:
+             return False
+ 
+     def waitForCopyThread(self):
+         if self.copy_thread is not None and \
+-            self.copy_thread.isAlive():
++            self.copy_thread.is_alive():
+ 
+             self.copy_thread.join()
+ 
+diff --git a/fax/fax.py b/fax/fax.py
+index 3d69226..0878a64 100644
+--- a/fax/fax.py
++++ b/fax/fax.py
+@@ -478,13 +478,13 @@ class FaxDevice(device.Device):
+ 
+     def isSendFaxActive(self):
+         if self.send_fax_thread is not None:
+-            return self.send_fax_thread.isAlive()
++            return self.send_fax_thread.is_alive()
+         else:
+             return False
+ 
+     def waitForSendFaxThread(self):
+         if self.send_fax_thread is not None and \
+-            self.send_fax_thread.isAlive():
++            self.send_fax_thread.is_alive():
+ 
+             try:
+                 self.send_fax_thread.join()
+diff --git a/fax/pmlfax.py b/fax/pmlfax.py
+index b68ff6a..b1020d0 100644
+--- a/fax/pmlfax.py
++++ b/fax/pmlfax.py
+@@ -179,13 +179,13 @@ class PMLFaxDevice(FaxDevice):
+ 
+     def isUploadLogActive(self):
+         if self.upload_log_thread is not None:
+-            return self.upload_log_thread.isAlive()
++            return self.upload_log_thread.is_alive()
+         else:
+             return False
+ 
+     def waitForUploadLogThread(self):
+         if self.upload_log_thread is not None and \
+-            self.upload_log_thread.isAlive():
++            self.upload_log_thread.is_alive():
+ 
+             self.upload_log_thread.join()
+ 
+diff --git a/scan/sane.py b/scan/sane.py
+index b6c4acd..e8f8db8 100755
+--- a/scan/sane.py
++++ b/scan/sane.py
+@@ -378,14 +378,14 @@ class ScanDevice:
+ 
+     def isScanActive(self):
+         if self.scan_thread is not None:
+-            return self.scan_thread.isAlive() and self.scan_thread.scan_active
++            return self.scan_thread.is_alive() and self.scan_thread.scan_active
+         else:
+             return False
+ 
+ 
+     def waitForScanDone(self):
+         if self.scan_thread is not None and \
+-            self.scan_thread.isAlive() and \
++            self.scan_thread.is_alive() and \
+             self.scan_thread.scan_active:
+ 
+             try:
+@@ -398,9 +398,9 @@ class ScanDevice:
+         #time.sleep(0.5)
+         if self.scan_thread is not None:
+             while True:
+-                #print self.scan_thread.isAlive()
++                #print self.scan_thread.is_alive()
+                 #print self.scan_thread.scan_active
+-                if self.scan_thread.isAlive() and \
++                if self.scan_thread.is_alive() and \
+                     self.scan_thread.scan_active:
+                     return
+ 

Copied: hplip/repos/testing-x86_64/python3.diff (from rev 408585, hplip/trunk/python3.diff)
===================================================================
--- testing-x86_64/python3.diff	                        (rev 0)
+++ testing-x86_64/python3.diff	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,147 @@
+From: Till Kamppeter <till.kamppeter at gmail.com>
+Date: Fri, 22 Jul 2016 09:33:04 +0200
+Subject: Workaround patch for missing Python3 transition of the old
+ (pre-USB-storage) photo memory card support (pcardext) as this part builds
+ in Python3 environments but with pointer-related warnings which are fatal
+ errors for Ubuntu's build servers. The patch silences the warnings but the
+ memory card support is dropped in Python3 environments. This patch is
+ supplied by the HPLIP upstream developers and will be replaced by a more
+ proper solution in the next upstream release of HPLIP (see LP: #1275353)
+
+---
+ pcard/pcardext/pcardext.c | 59 +++++++++++++++++++++++++++++++++++++----------
+ pcard/photocard.py        |  2 +-
+ unload.py                 |  5 ++++
+ 3 files changed, 53 insertions(+), 13 deletions(-)
+
+diff --git a/pcard/pcardext/pcardext.c b/pcard/pcardext/pcardext.c
+index c1a8273..37d979b 100644
+--- a/pcard/pcardext/pcardext.c
++++ b/pcard/pcardext/pcardext.c
+@@ -20,7 +20,7 @@ pcardext - Python extension for HP photocard services
+ Requires:
+ Python 2.2+
+ 
+-Author: Don Welch
++Author: Don Welch 
+ 
+ \*****************************************************************************/
+ 
+@@ -38,9 +38,37 @@ typedef int Py_ssize_t;
+ 
+ int verbose=0;
+ 
++#if PY_MAJOR_VERSION >= 3
++  #define MOD_ERROR_VAL NULL
++  #define MOD_SUCCESS_VAL(val) val
++  #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
++  #define PyInt_AS_LONG PyLong_AS_LONG
++  #define MOD_DEF(ob, name, doc, methods) \
++          static struct PyModuleDef moduledef = { \
++            PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
++          ob = PyModule_Create(&moduledef);
++
++
++  #define PY_String_Bytes  PyBytes_FromStringAndSize
++  #define PY_AsString_Bytes  PyBytes_AsStringAndSize
++
++#else
++  #define MOD_ERROR_VAL
++  #define MOD_SUCCESS_VAL(val)
++  #define MOD_INIT(name) void init##name(void)
++  #define MOD_DEF(ob, name, doc, methods)         \
++        ob = Py_InitModule3(name, methods, doc);
++
++  #define PY_String_Bytes PyString_FromStringAndSize
++  #define PY_AsString_Bytes PyString_AsStringAndSize
++  
++#endif
++
+ PyObject * readsectorFunc = NULL;
+ PyObject * writesectorFunc = NULL;
+ 
++
++
+ int ReadSector(int sector, int nsector, void *buf, int size)
+ {
+     PyObject * result;
+@@ -56,9 +84,13 @@ int ReadSector(int sector, int nsector, void *buf, int size)
+         if( result )
+         {
+             Py_ssize_t len = 0;
+-            PyString_AsStringAndSize( result, &result_str, &len );
++
++            //PyString_AsStringAndSize( result, &result_str, &len );    
++            //PyBytes_AsStringAndSize( result, &result_str, &len ); 
++            PY_AsString_Bytes( result, &result_str, &len );
+             
+-            if( len < nsector*FAT_HARDSECT )
++
++	    if( len < nsector*FAT_HARDSECT )
+             {
+                 goto abort;
+             }
+@@ -205,7 +237,9 @@ PyObject * pcardext_read( PyObject * self, PyObject * args )
+     
+     if( FatReadFileExt( name, offset, len, buffer ) == len )
+     {
+-        return PyString_FromStringAndSize( (char *)buffer, len );
++        // return PyString_FromStringAndSize( (char *)buffer, len );
++        return PY_String_Bytes( (char *)buffer, len );
++        // return PyBytes_FromStringAndSize( (char *)buffer, len );
+     }
+     else
+     {
+@@ -233,14 +267,15 @@ static PyMethodDef pcardext_methods[] =
+ 
+ static char pcardext_documentation[] = "Python extension for HP photocard services";
+ 
+-void initpcardext( void )
+-{
+-    PyObject * mod = Py_InitModule4( "pcardext", pcardext_methods, 
+-                                     pcardext_documentation, (PyObject*)NULL, 
+-                                     PYTHON_API_VERSION );
+-                     
+-    if (mod == NULL)
+-      return;
++MOD_INIT(pcardext)  {
++
++  PyObject* mod ;
++  MOD_DEF(mod, "pcardext", pcardext_documentation, pcardext_methods);
++  if (mod == NULL)
++    return MOD_ERROR_VAL;
++
++  return MOD_SUCCESS_VAL(mod);
++
+ }
+ 
+ 
+diff --git a/pcard/photocard.py b/pcard/photocard.py
+index 913dc4e..2c73158 100644
+--- a/pcard/photocard.py
++++ b/pcard/photocard.py
+@@ -30,7 +30,7 @@ from base.codes import *
+ from base import device, utils, exif
+ 
+ try:
+-    from . import pcardext
++    import pcardext
+ except ImportError:
+     if not os.getenv("HPLIP_BUILD"):
+         log.error("PCARDEXT could not be loaded. Please check HPLIP installation.")
+diff --git a/unload.py b/unload.py
+index 3fdd5a3..ce8b069 100755
+--- a/unload.py
++++ b/unload.py
+@@ -44,6 +44,11 @@ except ImportError:
+ 
+ # Local
+ from base.g import *
++from base.sixext import PY3
++if PY3:
++    log.error("This functionality is not spported in python3 environment.")
++    sys.exit(1)
++
+ from base import device, utils, tui, module
+ from prnt import cups
+ 

Copied: hplip/repos/testing-x86_64/reproducible-gzip.patch (from rev 408585, hplip/trunk/reproducible-gzip.patch)
===================================================================
--- testing-x86_64/reproducible-gzip.patch	                        (rev 0)
+++ testing-x86_64/reproducible-gzip.patch	2021-02-22 09:44:11 UTC (rev 408586)
@@ -0,0 +1,38 @@
+--- hplip-3.20.5/createPPD.sh	2020-05-11 15:34:06.000000000 +0200
++++ hplip-3.20.5.old/createPPD.sh	2020-05-27 12:02:44.089477299 +0200
+@@ -54,15 +54,15 @@
+ 	else
+ 		cp prnt/ps/hp-postscript*.ppd ppd/classppd/ps
+ 		for i in ppd/classppd/ps/*.ppd; do
+-			gzip -c "$i" > "$i.gz"
++			gzip -nc "$i" > "$i.gz"
+ 		done
+ 	fi
+         #cp prnt/ps/hp-postscript*.ppd.gz ppd/classppd/ps
+ 	for i in ppd/classppd/hpcups/*.ppd; do
+-		gzip -c "$i" > "$i.gz"
++		gzip -nc "$i" > "$i.gz"
+ 	done
+ 	#for i in ppd/classppd/ps/*.ppd; do
+-	#	gzip -c "$i" > "$i.gz"
++	#	gzip -nc "$i" > "$i.gz"
+ 	#done
+ 
+ 	cat > class_cups_drv.inc <<EOF
+@@ -81,14 +81,14 @@
+ install -d ppd/hpcups
+ ppdc -d ppd/hpcups prnt/drv/hpcups.drv
+ for i in ppd/hpcups/*.ppd; do
+-      gzip -c "$i" > "$i.gz"
++      gzip -nc "$i" > "$i.gz"
+ done
+ 
+ install -d ppd/hpijs
+ ppdc -d ppd/hpijs prnt/drv/hpijs.drv
+ echo "gzip ppd files..."
+ for i in ppd/hpijs/*.ppd; do
+-      gzip -c "$i" > "$i.gz"
++      gzip -nc "$i" > "$i.gz"
+ done
+ echo "building foomatic_drv.inc..."
+ ./hpijs-drv > foomatic_drv.inc $shadow



More information about the arch-commits mailing list