Workaround build failure on -fno-common toolchains like upstream
gcc-10. Otherwise build fails as:
ld: foomatic_rip-options.o:/build/foomatic-filters-4.0.17/options.c:49: multiple definition of
`cupsfilter'; foomatic_rip-foomaticrip.o:/build/foomatic-filters-4.0.17/foomaticrip.c:158: first defined here
New upstream release.
Also dropped the `web.archive.org`-usage: when I took over maintainership
over the package I continued to update that, but actually it's not
strictly needed because `copy-tarballs.pl` already takes care of copying
the src to `tarballs.nixos.org` (since it's redistributable).
The original sc-controller is being rewritten in C, while the current
version is stuck in maintenance mode and python 2. This fork is based
entirely on the original kozec's sc-controller and introduces python 3
support while staying backward-compatible (including versioning up to
the patch number).
Without this change, building hplipWithPlugin on aarch64 fails with:
cp: cannot stat 'lj-aarch64.so': No such file or directory
builder for '/nix/store/p0x02ppv0n1xj46wvik3p3cn4jikmr1q-hplip-3.20.11.drv' failed with exit code 1
This is because the corresponding file in the archive is actually called
lj-arm64.so.
hplipPlatforms exists to convert between the different names; this
commit only changes the value to a correct one.
HPLIP's getSystemPPDs() function relies on searching for PPDs below common FHS
paths. None of these exist on NixOS, but the code assumes that at least one of
the directories will be found, and crashes when it doesn't (cups_ppd_path is
None and the code passes that to os.path.join).
A usable PPD search path for the running system on NixOS is
/var/lib/cups/path/share, so this patches the source to check this path as well.
This should fix the NixOS case and keep non-NixOS cases working too.
+ master should be roughly equivalent to 3.62.0
+ moving to the community repo because they are way better at fixing
things, while upstream epson almost never merges fixes
+ great thanks to @mwilsoncoding for debugging the problem:
+ `autoconf-archive` was missing
Otherwise, things like hp-setup segfault if you run them from another
nixpkgs checkout:
```
HP Linux Imaging and Printing System (ver. 3.20.5)
Printer/Fax Setup Utility ver. 9.0
Copyright (c) 2001-18 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.
qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
[1] 4543 abort (core dumped) result/bin/hp-setup
```
Otherwise, things like `hp-setup` fail finding gi:
```
HP Linux Imaging and Printing System (ver. 3.20.5)
Printer/Fax Setup Utility ver. 9.0
Copyright (c) 2001-18 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.
Traceback (most recent call last):
File "/nix/store/rmzq8c4n47s4q4p31w18waz0zrba2ljl-hplip-3.20.5/share/hplip/setup.py", line 314, in <module>
ui = import_module(ui_package + ".setupdialog")
File "/nix/store/n0b076p351ma864q38if4yglsg99hw2s-python3-3.8.3/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 783, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/nix/store/rmzq8c4n47s4q4p31w18waz0zrba2ljl-hplip-3.20.5/share/hplip/ui5/setupdialog.py", line 31, in <module>
from base import device, utils, models, pkit
File "/nix/store/rmzq8c4n47s4q4p31w18waz0zrba2ljl-hplip-3.20.5/share/hplip/base/pkit.py", line 38, in <module>
from gi import _gobject as gobject
ModuleNotFoundError: No module named 'gi'
```
This plugin adds support for the GT-S650, Perfection V19 and
Perfection V39 scanners. I've tested it personally with an Epson
Perfection V39.
This plugin uses the ISCAN_FIRMWARE_DIR environment variable, not
ISCAN_FW_DIR. A quick grep didn't find any use of ISCAN_FW_DIR in the
currently packaged plugins, but a quick Google suggests that this
variable does (or at least used to) exist, so I'm not touching it.
Building with -std=c99 breaks the obsolete "%as" format string, which
completely breaks the parsing of epkowa interpreters. This means that
no scanner requiring plugins worked.
According to https://repology.org/repository/nix_unstable/problems, we have a
lot of packages that have http links that redirect to https as their homepage.
This commit updates all these packages to use the https links as their
homepage.
The following script was used to make these updates:
```
curl https://repology.org/api/v1/repository/nix_unstable/problems \
| jq '.[] | .problem' -r \
| rg 'Homepage link "(.+)" is a permanent redirect to "(.+)" and should be updated' --replace 's@$1@$2@' \
| sort | uniq > script.sed
find -name '*.nix' | xargs -P4 -- sed -f script.sed -i
```
I haven't been doing any maintenance for a long time now and not only
do I get notified, it also creates a fake impression that all these
packages had at least one maintainer when in practice they had none.
+ added webarchive source for reliable builds in the future
+ removed `${version}` from url, as it actually adds more hassle to
have it in there and no benefits whatsoever, since the url keeps
changing other parts too
+ building from gitlab source
+ reorderd dependencies to be in logical/alphabetical order
+ replaced patches with substituteInPlace, as patches broke the installChecks
and substituteInPlace may be more robust than making new patches for each
release. Also the compiled source is now closer to upstream than
before.
+ added installChecks
+ added all supported devices as listed on epson.net