87 lines
2.9 KiB
Nix
87 lines
2.9 KiB
Nix
|
{ lib
|
||
|
, stdenv
|
||
|
, fetchFromGitHub
|
||
|
, autoconf
|
||
|
, automake
|
||
|
, perl
|
||
|
}:
|
||
|
|
||
|
stdenv.mkDerivation {
|
||
|
pname = "foomatic-db-nonfree";
|
||
|
version = "unstable-2015-06-05";
|
||
|
|
||
|
src = fetchFromGitHub {
|
||
|
# there is also a daily snapshot at the `downloadPage`,
|
||
|
# but it gets deleted quickly and would provoke 404 errors
|
||
|
owner = "OpenPrinting";
|
||
|
repo = "foomatic-db-nonfree";
|
||
|
rev = "6ddae02ac89240c019f8b5026cfe70e30fd2b3db";
|
||
|
hash = "sha256-cRZH0CXg03FEqUJdxaNnPVXjf8+ct86PjhL59WQbw60=";
|
||
|
};
|
||
|
|
||
|
nativeBuildInputs = [ autoconf automake perl ];
|
||
|
|
||
|
# sed-substitute indirection is more robust against
|
||
|
# characters in paths that might need escaping
|
||
|
postPatch = ''
|
||
|
sed -Ei -e 's|^(S?BINSEARCHPATH=).+$|\1"@PATH@"|g' \
|
||
|
-e 's|^(DATASEARCHPATH=).+$|\1"@DATA@"|g' configure.ac
|
||
|
substituteInPlace configure.ac \
|
||
|
--subst-var PATH \
|
||
|
--subst-var-by DATA "${placeholder "out"}/share"
|
||
|
'';
|
||
|
|
||
|
preConfigure = ''
|
||
|
mkdir -p "${placeholder "out"}/share/foomatic/db/source"
|
||
|
./make_configure
|
||
|
'';
|
||
|
|
||
|
# make ppd files available to cups,
|
||
|
# use a package-specific subdirectory to avoid
|
||
|
# conflicts with other ppd-containing packages
|
||
|
postInstall = ''
|
||
|
if ! [[ -d "${placeholder "out"}/share/foomatic/db/source/PPD" ]]; then
|
||
|
echo "failed to create share/foomatic/db/source/PPD"
|
||
|
exit 1
|
||
|
fi
|
||
|
mkdir -p "${placeholder "out"}/share/cups/model"
|
||
|
ln -s "${placeholder "out"}/share/foomatic/db/source/PPD" \
|
||
|
"${placeholder "out"}/share/cups/model/foomatic-db-nonfree"
|
||
|
'';
|
||
|
|
||
|
# we might patch ppd file commands with `patchPpdFilesHook`,
|
||
|
# but the only command "rastertophaser6100" isn't packaged yet
|
||
|
|
||
|
# compress ppd files
|
||
|
postFixup = ''
|
||
|
echo 'compressing ppd files'
|
||
|
find -H "${placeholder "out"}/share/cups/model/foomatic-db-nonfree" -type f -iname '*.ppd' -print0 \
|
||
|
| xargs -0r -n 64 -P "$NIX_BUILD_CORES" gzip -9n
|
||
|
'';
|
||
|
|
||
|
meta = {
|
||
|
description = "OpenPrinting printer support database (unfree content)";
|
||
|
downloadPage = "https://www.openprinting.org/download/foomatic/";
|
||
|
homepage = "https://openprinting.github.io/projects/02-foomatic/";
|
||
|
license = lib.licenses.unfree;
|
||
|
maintainers = [ lib.maintainers.yarny ];
|
||
|
# list printer manufacturers here so people
|
||
|
# searching for ppd files can find this package
|
||
|
longDescription = ''
|
||
|
The collected knowledge about printers,
|
||
|
drivers, and driver options in XML files,
|
||
|
used by `foomatic-db-engine` to generate PPD files.
|
||
|
This is a package of PPD and Foomatic XML files
|
||
|
that may have restrictions that keep them
|
||
|
from being used on a variety of machines
|
||
|
for licensing and other non-technical reasons.
|
||
|
The XML files in this package enable `foomatic-db-ppds`
|
||
|
to create about 120 additional PPD files, for printer from
|
||
|
Dell, Genicom, Lexmark, Oce, Tektronix and Xerox.
|
||
|
Besides the XML files, this package contains
|
||
|
about 130 PPD files, for printers from
|
||
|
Dell, Genicom, Lexmark, Oce and Xerox.
|
||
|
'';
|
||
|
};
|
||
|
}
|