diff options
author | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2021-07-07 20:51:57 +0200 |
---|---|---|
committer | Yarny0 <41838844+Yarny0@users.noreply.github.com> | 2022-11-06 19:28:15 +0100 |
commit | 156cc612ff9588cbcdfb858c0086ee250b42c781 (patch) | |
tree | 21658f58fa7c2d25be233545e6f496c4aaea871f /pkgs/misc | |
parent | 90a8a78e7c703ec6d9a4e9d5251f09823498bc12 (diff) |
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.
Diffstat (limited to 'pkgs/misc')
-rw-r--r-- | pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix b/pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix new file mode 100644 index 0000000000000..bf569d522aabd --- /dev/null +++ b/pkgs/misc/cups/drivers/foomatic-db-nonfree/default.nix @@ -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. + ''; + }; +} |