diff options
Diffstat (limited to 'pkgs/by-name/fo/foomatic-db-nonfree/package.nix')
-rw-r--r-- | pkgs/by-name/fo/foomatic-db-nonfree/package.nix | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/by-name/fo/foomatic-db-nonfree/package.nix b/pkgs/by-name/fo/foomatic-db-nonfree/package.nix new file mode 100644 index 0000000000000..a433b58a0ac92 --- /dev/null +++ b/pkgs/by-name/fo/foomatic-db-nonfree/package.nix @@ -0,0 +1,87 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoconf +, automake +, perl +}: + +stdenv.mkDerivation (finalAttrs: { + 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 = { + changelog = "https://github.com/OpenPrinting/foomatic-db-nonfree/blob/${finalAttrs.src.rev}/ChangeLog"; + 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. + ''; + }; +}) |