Skip to content

Commit

Permalink
net-print/hplip: Handle return value from gzip.GzipReadFile() properly.
Browse files Browse the repository at this point in the history
This fixes bug 624458. Thanks to [email protected] for the report and
[email protected] for the patch.

Package-Manager: Portage-2.3.8, Repoman-2.3.1
  • Loading branch information
billie80 committed Sep 26, 2017
1 parent 2753ebb commit aee9c29
Show file tree
Hide file tree
Showing 2 changed files with 255 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-print/hplip/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -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
254 changes: 254 additions & 0 deletions net-print/hplip/hplip-3.17.9-r1.ebuild
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit aee9c29

Please sign in to comment.