stdenv.targetPlatform really shouldn't be used by software that
doesn't generate or manipulate binaries. I reviewed all uses of
targetPlatform outside of pkgs/development/compilers and pkgs/stdenv
and replaced those which weren't involved in something which fits
these criteria.
When specifying the `builder` attribute in `stdenv.mkDerivation`, this
will be effectively transformed into
builtins.derivation {
builder = stdenv.shell;
args = [ "-e" builder ];
}
This also means that `default-builder.sh` is never sourced and as a
result it's not guaranteed that `$NIX_ATTRS_SH_FILE` is set to a correct
location[1].
Also, we need to source `.attrs.sh` to source `$stdenv`. So, the
following is done now:
* If `$NIX_ATTRS_SH_FILE` points to a correct location, then use it.
Directly using `.attrs.sh` is problematic for `nix-shell(1)` usage
(see previous commit for more context), so prefer the environment
variable if possible.
* Otherwise, if `.attrs.sh` exists, then use it. See [1] for when this
can happen.
* If neither applies, it can be assumed that `__structuredAttrs` is
turned off and thus nothing needs to be done.
[1] It's possible that it doesn't exist at all - in case of Nix 2.3 or
it can point to a wrong location on older Nix versions with a bug in
`__structuredAttrs`.
Canon's official RPM packages don't include 32-bit libraries anymore, so
I don't think they are needed in any way. Even if they were still useful
in some way, they are not packaged correctly anymore.
Lots of little issues, mostly due to new applications that weren't
patched properly yet and have references to /usr/bin. The driver now
successfully prints on my Canon iR1022, and probably other similar USB
printers.
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
Note that cups-pdf refuses to run without root privileges.
To use the binary, one has to either convince cups to
call it with root privileges, or install it suid root.
Also note that currently, this cups-pdf-fork produces
small pdfs with selectable text, as promised.
However, copying the text produces "garbled" text
(characters are randomly reassigned).
This is a known issue and I don't know how to fix it:
https://github.com/alexivkin/CUPS-PDF-to-PDF/issues/7
* Rename `cups-kyodialog3` -> `cups-kyodialog`
* Update from 8.1601 (2016) to 9.2 (2022) with support for more and
recent printer models (170 vs. 373 PPD files)
* Make Qt GUI optional to reduce closure size, Qt4 -> Qt5
* Avoid full paths to kyodialog filters in PPD files. A PPD file is
copied to /etc/cups/ppd/ for each configured printer and is not
updated when the cups-kyodialog package is updated, thus,
potentially creating dangling references to /nix/store or invoking
the old version of the cups filters.