foomatic-db-nonfree (cups ppd files): init at unstable/2015-06-05
`foomatic-db-nonfree` contains -- similar to its sister package `foomatic-db` -- knowledge about printers, drivers, and driver options from OpenPrinting in xml files. It needs to be combined with the `foomatic-db` package to yield a working database. It also provides about 100 (gzipped) ppd files. In contrast to `foomatic-db`, this package contains data that is provided under non-free licenses. Quoting https://github.com/OpenPrinting/foomatic-db-nonfree/blob/master/README > This is a repository 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. ppd files can be found in `$out/share/cups/model/foomatic-db-nonfree`. The subdirectory `foomatic-db-nofree` is used to avoid conflicts with other packages that might be combined with the package `foomatic-db-nonfree` in `config.services.printing.drivers`. ppd files in this package are *not* patched to call executables from the nix store: The only executable "rastertophaser6100" that is called from ppd files isn't available in nixpkgs. There is a daily snapshot of a source archive available at https://www.openprinting.org/download/foomatic/ . However, these files rotate daily and cannot be used as a stable download source. So we rely on OpenPrinting's Github repository instead and pinpoint a fresh commit. Note that the current version is from 2015, so updates are unlikely.
This commit is contained in:
parent
90a8a78e7c
commit
156cc612ff
2 changed files with 83 additions and 0 deletions
82
pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix
Normal file
82
pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix
Normal file
|
@ -0,0 +1,82 @@
|
|||
{ 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.
|
||||
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.
|
||||
Besides the XML files, this package contains
|
||||
about 130 PPD files, for printers from
|
||||
Dell, Genicom, Lexmark, Oce and Xerox.
|
||||
'';
|
||||
};
|
||||
}
|
|
@ -36321,6 +36321,7 @@ with pkgs;
|
|||
|
||||
foomatic-db = callPackage ../misc/cups/drivers/foomatic-db {};
|
||||
foomatic-db-engine = callPackage ../misc/cups/drivers/foomatic-db-engine {};
|
||||
foomatic-db-nonfree = callPackage ../misc/cups/drivers/foomatic-db-nonfree {};
|
||||
|
||||
gutenprint = callPackage ../misc/drivers/gutenprint { };
|
||||
|
||||
|
|
Loading…
Reference in a new issue