120 lines
4.2 KiB
Bash
120 lines
4.2 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2011 MPA
|
|
# Copyright (C) 2013-2021 Ruben Rodriguez <ruben@trisquel.info>
|
|
# Copyright (C) 2025 Luis Guzmán <ark@switnet.org>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
#
|
|
|
|
VERSION=4
|
|
|
|
# note, we need version 3.20.6 or higher, the binary plugin requirement
|
|
# was reworked on that version.
|
|
|
|
QUILT=skip
|
|
|
|
. ./config
|
|
|
|
rm debian/patches/*-Install-check-plugin.py-as-a-script.patch
|
|
sed -i '/Install-check-plugin.py-as-a-script.patch/d' debian/patches/series
|
|
sed '/plugin/d' -i debian/hplip-gui.manpages debian/hplip.manpages debian/hplip-gui.install debian/hplip.install
|
|
|
|
export QUILT_PATCHES=debian/patches
|
|
quilt push -a
|
|
|
|
echo Removing printers not supported with free drivers from the database
|
|
tmp=`mktemp`
|
|
output=`mktemp`
|
|
printers='data/models/models.dat'
|
|
|
|
# Keep header license
|
|
sed '/\[/,99999d' $printers > $output
|
|
|
|
for model in $(grep '\[' $printers | /bin/sed 's/\[//; s/\]//'); do
|
|
sed -n "/\[$model\]/,/^$/p;" $printers > $tmp
|
|
grep '^download=True' -q $tmp && continue
|
|
grep '^plugin=1' -q $tmp && continue
|
|
grep '^support-type=0' -q $tmp && continue
|
|
cat $tmp >> $output
|
|
done
|
|
|
|
cp $output $printers
|
|
|
|
# Set plugin-optional entries to not-required
|
|
/bin/sed -i 's/plugin=2/plugin=0/g' $printers debian/patches/*
|
|
|
|
rm $tmp $output
|
|
|
|
|
|
# re-word non-free firmware recommendations and error messages
|
|
# and disable online features (phone-home, plugin/firmware downlaoder, etc)
|
|
# from: https://git.parabola.nu/abslibre.git/plain/libre/hplip/PKGBUILD
|
|
match_rxs=( # ASSERT: aligns with '$replace_rxs'
|
|
', requires proprietary plugin'
|
|
'Device requires a proprietary binary Plug-in, run hp-plugin'
|
|
'Your HP Device requires to install HP proprietary plugin\\n'
|
|
"Device proprietary plug-in is missing. Click 'Next' to continue plug-in installation. In case of plugin download failure, run 'hp-plugin' command from the terminal manually."
|
|
"Device requires proprietary plug-in which is missing. Click 'Next' to continue plug-in installation"
|
|
"def download(self, pluginPath='',callback = None):"
|
|
'def download_from_network(weburl, outputFile = None, useURLLIB=False):'
|
|
'def download_via_wget(target):'
|
|
'def download_via_curl(target):'
|
|
'def check_network_via_ping(target):'
|
|
'def check_network_connection(url=HTTP_CHECK_TARGET, ping_server=PING_CHECK_TARGET):'
|
|
'def download(mode, passwordObj):'
|
|
'Network connection not detected.'
|
|
)
|
|
replace_rxs=( # ASSERT: aligns with '$match_rxs'
|
|
', (non-free/unsupported)'
|
|
'Device is non-free/unsupported'
|
|
''
|
|
'Device is non-free/unsupported./'
|
|
'Device is non-free/unsupported./'
|
|
'&\n return 1'
|
|
'&\n return -1, ""'
|
|
'&\n return -1'
|
|
'&\n return -1'
|
|
'&\n return -1'
|
|
'&\n return -1'
|
|
'&\n return ERROR_NO_NETWORK'
|
|
'Trisquel has disabled the networking features of this application.'
|
|
)
|
|
for (( rx_n = 0 ; rx_n < ${#match_rxs[@]} ; ++rx_n ))
|
|
do sed -i "s|${match_rxs[$rx_n]}|${replace_rxs[$rx_n]}|" $(grep -rlI "${match_rxs[$rx_n]}")
|
|
done
|
|
patch --no-backup-if-mismatch -Np0 -i ${DATA}/disable_upgrade.patch
|
|
|
|
# verify libre patching
|
|
patch_msg='HPLIP auto-upgrade is disabled by Trisquel for security reasons.'
|
|
err_msg="ERROR: 'disable_upgrade.patch' not applied"
|
|
grep -A 1 "$patch_msg" upgrade.py | tail -n 1 | grep -q 'clean_exit(1)' ||
|
|
! echo "$err_msg" || exit 1
|
|
|
|
|
|
#Prevent failing on missing files
|
|
cat << RULES >> debian/rules
|
|
|
|
override_dh_missing:
|
|
dh_missing --list-missing
|
|
RULES
|
|
|
|
# Change CRLF to LF to avoid issues.
|
|
sed -i 's/\r$//' installer/distros.dat
|
|
apply_patch_changes
|
|
|
|
changelog "Removed printers with propietary drivers"
|
|
|
|
package
|