On x86-64, the executables were looking for
libraries in `${lib.getLib stdenv.cc.cc}/lib64`,
but that path apparently changed with
5e2e98f3b7 ,
resulting in a runtime error:
> /nix/store/0z8gd4fmjknwswx0pp5kzqnrhj1k9q8x-samsung-UnifiedLinuxDriver-4.01.17/lib/cups/filter/rastertospl: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Affected programs are
`$out/lib/cups/filter/{ps,raster}tospl{,c}`.
The commit at hand fixes the library lookup path.
Change the name of the derivation in
`pkgs/misc/cups/drivers/samsung/4.01.17.nix` from
"samsung-UnifiedLinuxDriver" to "samsung-unified-linux-driver",
so that it matches the names of the other versions declared
in `pkgs/misc/cups/drivers/samsung/1.00.37.nix` and in
`pkgs/by-name/sa/samsung-unified-linux-driver_1_00_36/package.nix`.
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.
Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.
A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.
This commit was automatically created and can be verified using
nix-build a08b3a4d19.tar.gz \
--argstr baseRev 57b193d8dd
result/bin/apply-formatting $NIXPKGS_PATH
We are migrating packages that meet below requirements:
1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration
The tool is here: https://github.com/Aleksanaa/by-name-migrate.
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`.
ppd files in the `samsung-unified-linux-driver`
package invoke these filter commands:
* pstosecps
* pstospl
* rastertospl
* pstosplc
The paths to all of those commands excluding the last one got
patched with their absolute paths during the build process.
This commit adds the last one to
the list of commands to be patched.
The `sed` script in the `installPhase` is removed.
Instead, the setup hook `patchPpdFilesHook` is
used to patch the path to the filter executables.
The result should essentially be the same.
Comparing the generated ppd files showed no difference,
short of the package's hash in the absolute paths and
added newline characters at the end of some ppd files.
Missing newline characters at the end of the last line are
apparently added by `awk`; this shouldn't affect functionality.
The new package also contains a `propagated-build-inputs`
file which propagates the package itself.
This ensures the package is available whenever
a ppd file is singled out by another package.
* Version 4.01.17 works fine for me on NixOS, driving both a Samsung ML-2165w
and a Samsung ML-2510 printer successfully.
* Version 4.00.39 is broken. The build shows errors, but doesn't abort. The
generated binaries don't work, because they are lacking rpaths to their
library dependencies.
* Renamed old default.nix file to 1.00.37.nix. That version wasn't the default
and it feels like a bad idea to mix versioned and unversioned file names in
the same directory.
In a few cases it wasn't clear so I left them as-is.
While visiting these moved other things to nativeBuildInputs
when it was clear they were one of these cases:
* makeWrapper
* archive utilities (in order to unpack src)
* a few of these might no longer be needed but leaving for another day
This commit should fix the package building to build due to https://github.com/NixOS/nixpkgs/issues/16238
Printing tested on M2875FD and M2675FN models. Scanning not tested yet due to lack of access of Samsung scanning devices.
All work in this commit is attributed to @jokogr. Content of this commit is basically copied+pasted from c41e771a38
This will probably be mandatory soon, and is a step in the right
direction. Removes the deprecated meta.version, and move some meta
sections to the end of the file where I should have put them in
the first place.
This not the latest, but the greatest version (by number of models still
supported).
A big bump. Everything seems to work fine. Tested with a Samsung CLP-325.
Also fixed some strange things. Did this ever even work? On x86_64?