net-print/hplip: Handle return value from gzip.GzipReadFile() properly.

This fixes bug 624458. Thanks to i@jsteward.moe for the report and
nvinson234@gmail.com for the patch.

Package-Manager: Portage-2.3.8, Repoman-2.3.1
This commit is contained in:
Daniel Pielmeier
2017-09-26 20:32:09 +02:00
parent 2753ebbdac
commit aee9c29610
2 changed files with 255 additions and 0 deletions

View File

@@ -3,4 +3,5 @@ DIST hplip-3.16.3.tar.gz 22408596 SHA256 42d2302ee38bda41caa0f2f9524a91f531e3aa4
DIST hplip-3.16.5-patches-1.tar.xz 8200 SHA256 98866e57a247e7a30d9cd584ed9411aa79a6185294a73b4cc5961efe9a5e5fa6 SHA512 36d33da5fc4105183cbc5137845ddccd8ab2b6abbff053a3a51f3da61c26c2d9d48dcb735345fb453abd67b6a0797aa337102c366cce037bc7006599b20b1646 WHIRLPOOL 8ac91bdefeb177c092b1d6de16474e8e1da57ad046dbc579f14fd40a27d1837d9bf142573137ef8d91c37dc7b03ca908fd5bfad23a9815af2015b521091c2700
DIST hplip-3.17.6.tar.gz 23620156 SHA256 80287834aad7e3fa30f2e252ff281d351e3f2eb15267ac541531353dc7b5107e SHA512 370fa0e07f4f5b4dc4a6f52b02271102894da98bc902912ff1770a9e5029d486227f4170ff90a063c686d23e8bd075961073ecc59961419a226a850db9e71738 WHIRLPOOL d938d36cba1c9d34e02709e75209a9c4e0bc7db0f7fbbb875bab41e57009a9522f12cf5bcfc03530d5ad46c2b2bb3575e68898e8071116a03240cd7042e4b2b0
DIST hplip-3.17.7.tar.gz 23644395 SHA256 3577bd5afd40b73fd754664ad69f0187dde2e64879e7446309f2ed9fd7dc400d SHA512 f88c16d5b6e1986df5b7c1081802ed4832849de8d8b01961231965b115731eb9bd5c18fa52d5bf2eb412927b9de0057bf8025a1579b053c4d8441f0ad4e7ce3f WHIRLPOOL 2e0f0743ffce6d66970815d621a55618a00c360f2f4aa31a1742fcd17ad246a2717f5507b1b4910a93ea5fc06b5d7e87dfb2f08c50993c85bb6a654d13faf527
DIST hplip-3.17.9-patches-1.tar.xz 8484 SHA256 2ec368039a59e375bebf565bd679dd3bedb1e0c1ecfc103c5dcf9bb2701ba9d7 SHA512 125f9cfd1c3cad662ce33954b8ab9ab1898368b449c4ad78dfe99f29de8025183773272b9865cd22b976a30c502e38254ce0ac59d685299dff7f9314927d546a WHIRLPOOL 2354bd3b158733b668c731ea3fd605170dd4cc0df5ffebc327a69ad33995ec02166d34897567ed69d608a62e97b33bd12fc0066acb6c302677cc68830a2661cf
DIST hplip-3.17.9.tar.gz 23862533 SHA256 b2aad842f51dae7da2dd08d09ce2c27bc5f73c82a560b9494dd33589b0948678 SHA512 25508b91723be9564b9a7e8093159507a1a01a9e50e9e801f452f71c28cce0bddee2f5bf796214fa5752de8d1799fc6fe102779dabae0dbcba1f4de6b207c095 WHIRLPOOL df3bd0a8c4af9e7bf2a4ee534b317e84d89707587f770ab0c6ae98ccd5bea50d8be704ed2f855c9f67af8cdd34afc2ab0b07bd150f8861fc4900aa471a85b6ee

View File

@@ -0,0 +1,254 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
PYTHON_REQ_USE="threads,xml"
inherit autotools linux-info python-single-r1 readme.gentoo-r1 udev
DESCRIPTION="HP Linux Imaging and Printing - Print, scan, fax drivers and service tools"
HOMEPAGE="http://hplipopensource.com/hplip-web/index.html"
SRC_URI="mirror://sourceforge/hplip/${P}.tar.gz
https://dev.gentoo.org/~billie/distfiles/${PN}-3.17.9-patches-1.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
IUSE="doc fax +hpcups hpijs kde libressl -libusb0 minimal parport policykit qt5 scanner +snmp static-ppds X"
# dependency on dev-python/notify-python dropped due to python 3 incompatibility
# possible replacement notify2 (https://pypi.python.org/pypi/notify2/0.3) not in tree
COMMON_DEPEND="
net-print/cups
virtual/jpeg:0
hpijs? ( net-print/cups-filters[foomatic] )
!minimal? (
${PYTHON_DEPS}
sys-apps/dbus
!libusb0? ( virtual/libusb:1 )
libusb0? ( virtual/libusb:0 )
scanner? ( media-gfx/sane-backends )
snmp? (
!libressl? ( dev-libs/openssl:0= )
libressl? ( dev-libs/libressl:= )
net-analyzer/net-snmp
)
)
"
DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
"
RDEPEND="${COMMON_DEPEND}
app-text/ghostscript-gpl
!minimal? (
>=dev-python/dbus-python-1.2.0-r1[${PYTHON_USEDEP}]
$(python_gen_cond_dep 'dev-python/pygobject:2[${PYTHON_USEDEP}]' 'python2*')
$(python_gen_cond_dep 'dev-python/pygobject:3[${PYTHON_USEDEP}]' 'python3*')
fax? ( dev-python/reportlab[${PYTHON_USEDEP}] )
kernel_linux? ( virtual/udev )
qt5? ( >=dev-python/PyQt5-5.5.1[dbus,gui,widgets,${PYTHON_USEDEP}] )
scanner? (
>=dev-python/reportlab-3.2[${PYTHON_USEDEP}]
>=dev-python/pillow-3.1.1[${PYTHON_USEDEP}]
X? ( || (
kde? ( kde-misc/skanlite )
media-gfx/xsane
media-gfx/sane-frontends
) )
)
)
policykit? ( sys-auth/polkit )
"
REQUIRED_USE="!minimal? ( ${PYTHON_REQUIRED_USE} )"
PATCHES=(
"${WORKDIR}/patches"
)
CONFIG_CHECK="~PARPORT ~PPDEV"
ERROR_PARPORT="Please make sure kernel parallel port support is enabled (PARPORT and PPDEV)."
#DISABLE_AUTOFORMATTING="yes"
DOC_CONTENTS="
For more information on setting up your printer please take
a look at the hplip section of the gentoo printing guide:
https://wiki.gentoo.org/wiki/Printing
Any user who wants to print must be in the lp group.
"
pkg_setup() {
use !minimal && python-single-r1_pkg_setup
use scanner && ! use X && ewarn "You need USE=X for the scanner GUI."
if ! use hpcups && ! use hpijs ; then
ewarn "Installing neither hpcups (USE=-hpcups) nor hpijs (USE=-hpijs) driver,"
ewarn "which is probably not what you want."
ewarn "You will almost certainly not be able to print."
fi
if use minimal ; then
ewarn "Installing driver portions only, make sure you know what you are doing."
ewarn "Depending on the USE flags set for hpcups or hpijs the appropiate driver"
ewarn "is installed. If both USE flags are set hpijs overrides hpcups."
else
use parport && linux-info_pkg_setup
fi
}
src_prepare() {
default
if use !minimal ; then
python_export EPYTHON PYTHON
python_fix_shebang .
fi
# Make desktop files follow the specification
# Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=443680
# Upstream bug: https://bugs.launchpad.net/hplip/+bug/1080324
sed -i -e '/^Categories=/s/Application;//' \
-e '/^Encoding=.*/d' hplip.desktop.in || die
sed -i -e '/^Categories=/s/Application;//' \
-e '/^Version=.*/d' \
-e '/^Comment=.*/d' hplip-systray.desktop.in || die
# Fix for Gentoo bug https://bugs.gentoo.org/show_bug.cgi?id=345725
# Upstream bug: https://bugs.launchpad.net/hplip/+bug/880847,
# https://bugs.launchpad.net/hplip/+bug/500086
local udevdir=$(get_udevdir)
sed -i -e "s|/etc/udev|${udevdir}|g" \
$(find . -type f -exec grep -l /etc/udev {} +) || die
# Force recognition of Gentoo distro by hp-check
sed -i \
-e "s:file('/etc/issue', 'r').read():'Gentoo':" \
installer/core_install.py || die
# Use system foomatic-rip for hpijs driver instead of foomatic-rip-hplip
# The hpcups driver does not use foomatic-rip
local i
for i in ppd/hpijs/*.ppd.gz ; do
rm -f ${i}.temp || die
gunzip -c ${i} | sed 's/foomatic-rip-hplip/foomatic-rip/g' | \
gzip > ${i}.temp || die
mv ${i}.temp ${i} || die
done
eautoreconf
}
src_configure() {
local myconf drv_build minimal_build
if use libusb0 ; then
myconf="${myconf} --enable-libusb01_build"
else
myconf="${myconf} --disable-libusb01_build"
fi
if use hpcups ; then
drv_build="$(use_enable hpcups hpcups-install)"
if use static-ppds ; then
drv_build="${drv_build} --enable-cups-ppd-install"
drv_build="${drv_build} --disable-cups-drv-install"
else
drv_build="${drv_build} --enable-cups-drv-install"
drv_build="${drv_build} --disable-cups-ppd-install"
fi
else
drv_build="--disable-hpcups-install"
drv_build="${drv_build} --disable-cups-drv-install"
drv_build="${drv_build} --disable-cups-ppd-install"
fi
if use hpijs ; then
drv_build="${drv_build} $(use_enable hpijs hpijs-install)"
if use static-ppds ; then
drv_build="${drv_build} --enable-foomatic-ppd-install"
drv_build="${drv_build} --disable-foomatic-drv-install"
else
drv_build="${drv_build} --enable-foomatic-drv-install"
drv_build="${drv_build} --disable-foomatic-ppd-install"
fi
else
drv_build="${drv_build} --disable-hpijs-install"
drv_build="${drv_build} --disable-foomatic-drv-install"
drv_build="${drv_build} --disable-foomatic-ppd-install"
fi
if use minimal ; then
if use hpijs ; then
minimal_build="--enable-hpijs-only-build"
else
minimal_build="--disable-hpijs-only-build"
fi
if use hpcups ; then
minimal_build="${minimal_build} --enable-hpcups-only-build"
else
minimal_build="${minimal_build} --disable-hpcups-only-build"
fi
fi
econf \
--disable-cups11-build \
--disable-lite-build \
--disable-foomatic-rip-hplip-install \
--disable-shadow-build \
--disable-qt3 \
--disable-qt4 \
--disable-udev_sysfs_rules \
--with-cupsbackenddir=$(cups-config --serverbin)/backend \
--with-cupsfilterdir=$(cups-config --serverbin)/filter \
--with-docdir=/usr/share/doc/${PF} \
--with-htmldir=/usr/share/doc/${PF}/html \
${myconf} \
${drv_build} \
${minimal_build} \
$(use_enable doc doc-build) \
$(use_enable fax fax-build) \
$(use_enable !minimal gui-build) \
$(use_enable !minimal dbus-build) \
$(use_enable parport pp-build) \
$(use_enable policykit) \
$(use_enable qt5) \
$(use_enable scanner scan-build) \
$(use_enable snmp network-build)
}
src_install() {
# disable parallel install
# Gentoo Bug: https://bugs.gentoo.org/show_bug.cgi?id=578018
emake -j1 DESTDIR="${D}" install
einstalldocs
# default
# Installed by sane-backends
# Gentoo Bug: https://bugs.gentoo.org/show_bug.cgi?id=201023
rm -f "${ED%/}"/etc/sane.d/dll.conf || die
rm -f "${ED%/}"/usr/share/doc/${PF}/{copyright,README_LIBJPG,COPYING} || die
rmdir --ignore-fail-on-non-empty "${ED%/}"/usr/share/doc/${PF}/ || die
# Remove hal fdi files
rm -rf "${ED%/}"/usr/share/hal || die
find "${D}" -name '*.la' -delete || die
if use !minimal ; then
python_export EPYTHON PYTHON
python_optimize "${ED%/}"/usr/share/hplip
fi
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
}