9696 let
9797 prev = f final ;
9898 thisOverlay = overlay final prev ;
99+ pos = builtins . unsafeGetAttrPos ( head ( attrNames thisOverlay ) ) thisOverlay ;
99100 warnForBadVersionOverride = (
100101 prev ? src
101102 && thisOverlay ? version
@@ -108,28 +109,37 @@ let
108109 ) ;
109110 pname = args . pname or "<unknown name>" ;
110111 version = args . version or "<unknown version>" ;
111- pos = builtins . unsafeGetAttrPos "version" thisOverlay ;
112+ versionPos = builtins . unsafeGetAttrPos "version" thisOverlay ;
112113 in
113- lib . warnIf warnForBadVersionOverride ''
114- ${
115- args . name or "${ pname } -${ version } "
116- } was overridden with `version` but not `src` at ${ pos . file or "<unknown file>" } :${
117- toString pos . line or "<unknown line>"
118- } :${ toString pos . column or "<unknown column>" } .
119-
120- This is most likely not what you want. In order to properly change the version of a package, override
121- both the `version` and `src` attributes:
122-
123- hello.overrideAttrs (oldAttrs: rec {
124- version = "1.0.0";
125- src = pkgs.fetchurl {
126- url = "mirror://gnu/hello/hello-'' ${version}.tar.gz";
127- hash = "...";
128- };
129- })
130-
131- (To silence this warning, set `__intentionallyOverridingVersion = true` in your `overrideAttrs` call.)
132- '' ( prev // ( removeAttrs thisOverlay [ "__intentionallyOverridingVersion" ] ) )
114+ if thisOverlay == { } then
115+ prev
116+ else
117+ lib . warnIf warnForBadVersionOverride
118+ ''
119+ ${ args . name or "${ pname } -${ version } " } was overridden with `version` but not `src` at ${
120+ versionPos . file or "<unknown file>"
121+ } :${ toString versionPos . line or "<unknown line>" } :${
122+ toString versionPos . column or "<unknown column>"
123+ } .
124+
125+ This is most likely not what you want. In order to properly change the version of a package, override
126+ both the `version` and `src` attributes:
127+
128+ hello.overrideAttrs (oldAttrs: rec {
129+ version = "1.0.0";
130+ src = pkgs.fetchurl {
131+ url = "mirror://gnu/hello/hello-'' ${version}.tar.gz";
132+ hash = "...";
133+ };
134+ })
135+
136+ (To silence this warning, set `__intentionallyOverridingVersion = true` in your `overrideAttrs` call.)
137+ ''
138+ (
139+ prev
140+ // removeAttrs thisOverlay [ "__intentionallyOverridingVersion" ]
141+ // optionalAttrs ( pos != null ) { inherit pos ; }
142+ )
133143 ) ;
134144 in
135145 makeDerivationExtensible ( extends' ( lib . toExtension f0 ) rattrs ) ;
0 commit comments