texlive.withPackages: do not override .out, .all attributes#296751
texlive.withPackages: do not override .out, .all attributes#296751veprbl merged 1 commit intoNixOS:masterfrom
Conversation
The output attributes should never be modified to avoid interfering with standard interfaces such as overrideAttrs.
59c1afe to
9950ef4
Compare
|
PS: this should be a zero rebuild change because it's all about |
Interesting. I am not sure why rebuilds are happening. Somehow, I created the wrong fixed point around I suppose running nixpkgs-review on Linux is the safest course of action to make sure the rebuilds are the ones we expect (i.e. only the schemes and associated outputs). |
|
Result of 30 packages built:
|
You can see the list of rebuilds in "Details" for ofborg-eval. In fact, nixpkgs-review by default tries to use that same evaluation if it is available. |
|
Successfully created backport PR for |
|
Could this be related to nix shell not working? |
Oh my, I can't reproduce it on my machine, nixpkgs-unstable darwin. Could that be a nix (intentional) regression? Which nix version is it? (PS: by the way the man output is a symlink to a directory, surely there is no reason to reject it?) |
I reproduced it by running This should be flagged as a Nix regression, I think. In the meanwhile I'll mitigate it on the Nixpkgs side, somehow. |
|
This could be similar to NixOS/nix#9882 and some things could have been missed in NixOS/nix#9884 . I can only reproduce this with nix 2.20 and 2.21, 2.19 works fine. |
|
I think the actual code that introduced this is https://github.com/NixOS/nixpkgs/pull/270232/files#diff-dc2ebdb8ed1e22695937e7c0c7b6bee656bade7c86422d7d9766d79f829bebcfR238-R245 Either pkgs/tools/typesetting/tex/texlive/build-tex-env.nix | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 73e69578dc9f..1035bb73904c 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -238,7 +238,7 @@
for otherOutputName in $outputs ; do
if [[ "$otherOutputName" == 'out' ]] ; then continue ; fi
otherOutput="otherOutput_$otherOutputName"
- ln -s "''${!otherOutput}" "''${!otherOutputName}"
+ cp -r "''${!otherOutput}" "''${!otherOutputName}"
done
'' +
# environment variables (note: only export the ones that are used in the wrappers)or maybe diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 73e69578dc9f..74db05e3f310 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -32,7 +33,7 @@
, __extraName ? "combined"
, __extraVersion ? ""
# emulate the old texlive.combine (e.g. add man pages to main output)
-, __combine ? false
+, __combine ? true
# adjust behavior further if called from the texlive.combine wrapper
, __fromCombineWrapper ? false
}@args:or diff --git a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
index 73e69578dc9f..e06ccf5d3103 100644
--- a/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
+++ b/pkgs/tools/typesetting/tex/texlive/build-tex-env.nix
@@ -14,6 +14,7 @@
, toTLPkgSets
, bash
, perl
+, xorg
# common runtime dependencies
, coreutils
@@ -228,6 +229,7 @@
tl.texlive-scripts # fmtutil, updmap
tl.texlive-scripts-extra # texlinks
perl
+ xorg.lndir
];
inherit meta passthru;
@@ -238,7 +240,8 @@
for otherOutputName in $outputs ; do
if [[ "$otherOutputName" == 'out' ]] ; then continue ; fi
otherOutput="otherOutput_$otherOutputName"
- ln -s "''${!otherOutput}" "''${!otherOutputName}"
+ mkdir "''${!otherOutputName}"
+ lndir "''${!otherOutput}"/ "''${!otherOutputName}"/
done
'' +
# environment variables (note: only export the ones that are used in the wrappers)
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index cab889f5f8b3..ee2c4ac5c712 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -10,7 +10,7 @@
, makeWrapper, installShellFiles
, python3, ruby, perl, tk, jdk, bash, snobol4
, coreutils, findutils, gawk, getopt, gnugrep, gnumake, gnupg, gnused, gzip, html-tidy, ncurses, zip
-, libfaketime, asymptote, biber-ms, makeFontsConf
+, libfaketime, asymptote, biber-ms, makeFontsConf, xorg
, useFixedHashes ? true
, recurseIntoAttrs
}:
@@ -109,7 +109,7 @@
buildTeXEnv = import ./build-tex-env.nix {
inherit bin tl;
ghostscript = ghostscript_headless;
- inherit lib buildEnv libfaketime makeFontsConf makeWrapper runCommand
+ inherit lib buildEnv libfaketime makeFontsConf makeWrapper runCommand xorg
writeShellScript writeText toTLPkgSets bash perl coreutils gawk gnugrep gnused;
};
|
Description of changes
The
.out,.allattributes should never be modified to avoid interfering with standard interfaces such as.overrideAttrs. For instance,.overrideAttrswould not change the value of.out, breaking all sorts of things, including nix-shell.Messing around with the outputs using
passthruwas a really bad idea. By the looks of it, this is the last piece of code related to it. I am temporarily leavingtexmfdist,texmfrootin place, but they will disappear with the new refactor (they will become normal derivation arguments).Things done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.