Skip to content

Conversation

@jonringer
Copy link
Contributor

@jonringer jonringer commented Jan 3, 2022

Now an RFC

NixOS/rfcs#171

Pre-RFC text:

Motivation for this change

DRAFT until package failures around src name are factored out

Just giving the derivation a name of "source" by default causes
a lot of pain when someone may update the rev, but fail to
compute the new sha256 or invalidate the existing sha256. A stale
sha256 will still be "valid" in the eyes of nix, as only the way
in which the sources are fetched has changed, but the previous
.drv and sha256 relationship is still preserved.

This change forces the FODs to be recomputed as the related .drv
has changed.

This will not require all of the FOD sha256s to be recomputed, as
the contents will not have changed. However, it will be a mass
rebuild as it will create a new DAG for packages which didn't
already pass a "name" value to fetchFromGitHub.

# previous sha256 is still valid
$ nix-build -A nix-template.src --check
checking outputs of '/nix/store/ib74331l6pl6f8s2hsakf68lhg2jsl5i-nix-template-0.1.4-src.drv'...

trying https://github.com/jonringer/nix-template/archive/v0.1.4.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   130  100   130    0     0    425      0 --:--:-- --:--:-- --:--:--   426
100 27955    0 27955    0     0  36653      0 --:--:-- --:--:-- --:--:--  311k
unpacking source archive /build/v0.1.4.tar.gz
/nix/store/lfbgmqvpq5365q5ivv6ccck7xg88syw5-nix-template-0.1.4-src

# explicit commit hash example
$ nix-build -A artyFX.src
this derivation will be built:
  /nix/store/ir4k3n5q7nmb2wh533pq1ma1cabyr8h7-openAV-ArtyFX-8c542627d9-src.drv
building '/nix/store/ir4k3n5q7nmb2wh533pq1ma1cabyr8h7-openAV-ArtyFX-8c542627d9-src.drv'...

trying https://github.com/openAVproductions/openAV-ArtyFX/archive/8c542627d936a01b1d97825e7f26a8e95633f7aa.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   173  100   173    0     0    754      0 --:--:-- --:--:-- --:--:--   755
100  627k    0  627k    0     0   604k      0 --:--:--  0:00:01 --:--:-- 1014k
unpacking source archive /build/8c542627d936a01b1d97825e7f26a8e95633f7aa.tar.gz
/nix/store/dkvcfm90ckrlgmv89s8sr15vcidwlxhs-openAV-ArtyFX-8c542627d9-src
Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.05 Release Notes (or backporting 21.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@github-actions github-actions bot added the 6.topic: fetch Fetchers (e.g. fetchgit, fetchsvn, ...) label Jan 3, 2022
@jonringer
Copy link
Contributor Author

cc @infinisil who has lead RFCs trying to get around this

cc @domenkozar who had concerns around flake usage

cc @edolstra to make sure I'm not dumb :)

@jonringer
Copy link
Contributor Author

I believe ofborg timed out. As this is essentially a stdenv rebuild

@jonringer
Copy link
Contributor Author

@GrahamcOfBorg eval

@github-actions github-actions bot added 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 8.has: documentation This PR adds or changes documentation labels Jan 3, 2022
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/merge-fast-and-break-things/16957/10

@github-actions github-actions bot added 6.topic: emacs Text editor 6.topic: ocaml OCaml is a general-purpose, high-level, multi-paradigm programming language. labels Jan 3, 2022
@adisbladis adisbladis removed their request for review January 3, 2022 23:35
@github-actions github-actions bot added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` labels Jan 3, 2022
@ofborg ofborg bot added 2.status: merge conflict This PR has merge conflicts with the target branch and removed 2.status: merge conflict This PR has merge conflicts with the target branch labels Jan 4, 2022
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/getting-rid-of-source-as-default-pname-of-fetchfromgithub/16966/1

@github-actions github-actions bot added the 8.has: changelog This PR adds or changes release notes label Jan 4, 2022
@ofborg ofborg bot added 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. labels Jan 4, 2022
@FRidh
Copy link
Member

FRidh commented Jan 4, 2022

Using source was introduced in c3255fe to get similar store paths as the builtin fetchers.

@edolstra
Copy link
Member

edolstra commented Jan 4, 2022

Strong 👎. We switched to -source to avoid the same source tree having different names when fetched via different mechanisms, or via different branches/tags (see NixOS/nix#904, NixOS/nix@65b5f17, c3255fe). Going back to computed names also harms content-addressability, which given all the recent work on CAS is exactly what we don't want.

If we do switch, it has to be done in a consistent way across the Nix ecosystem, e.g. Nix's builtin fetchers should use the same naming convention.

@jonringer
Copy link
Contributor Author

jonringer commented Jan 4, 2022

Going back to computed names also harms content-addressability, which given all the recent work on CAS is exactly what we don't want.

But the content never changed, I don't have to recompute already correct FODs. fetchFromGitHub already unpacks the contents, so there's no source archive which influences the sha. The sha changes in this PR are from incorrectly updated packages.

If I was influencing the contents, it would be a whole lot more than ~2 dozen sha updates:

[08:28:30] jon@jon-desktop /home/jon/projects/nixpkgs (master)
$ rg fetchFromGitHub | wc -l
19547

@jonringer
Copy link
Contributor Author

jonringer commented Jan 4, 2022

Using source was introduced in c3255fe to get similar store paths as the builtin fetchers.

This is only true of the fetchers which don't unpack the contents. When you fetch an archive, generally it already has project and version information which upstream determined.

[08:19:47] jon@jon-desktop /home/jon/projects/nixpkgs (avoid-fetchfromgithub-footgun)
$ nix-build -A python3Packages.requests.src
/nix/store/z5aq7a1gd57hpdsvv90rsq6vmw9w0lb9-requests-2.26.0.tar.gz

For fetchFromGitHub, it doesn't behave like the builtin fetchers anyway:

# master
[08:22:25] jon@jon-desktop /home/jon/projects/nixpkgs (master)
$ nix-build -A python3Packages.angr.src
/nix/store/k4m51b5rvx6mhdrraq5in3nfj6nvjp09-source

# with PR changes
[08:21:55] jon@jon-desktop /home/jon/projects/nixpkgs (avoid-fetchfromgithub-footgun)
$ nix-build -A python3Packages.angr.src
/nix/store/qpzd5wb5g7kpviv7csd8qzjglqry2lhh-angr-v9.1.10913-src

For Content-addressability, the FODs compute to the same contents:

[08:21:22] jon@jon-desktop /home/jon/projects/nixpkgs/pkgs/development/python-modules (avoid-fetchfromgithub-footgun)
$ nix-hash /nix/store/qpzd5wb5g7kpviv7csd8qzjglqry2lhh-angr-v9.1.10913-src
c991903bf31ef3dd7975919005e19b65
[08:23:41] jon@jon-desktop /home/jon/projects/nixpkgs/pkgs/development/python-modules (master)
$ nix-hash /nix/store/k4m51b5rvx6mhdrraq5in3nfj6nvjp09-source
c991903bf31ef3dd7975919005e19b65

I'm not super familiar to how CAS is being implemented, but I feel like this should be a handled use case.

@jonringer
Copy link
Contributor Author

jonringer commented Jan 4, 2022

On a tangential note, fetching from multiple sources is becoming a much more rare occurrence:

$ rg urls | wc -l
818

I understand there's also plans to incorporate ipfs and other means of referring to nix store objects, but we should also be aware that for every current usage of multiple sources, there's 40 other usages of fetchFromGitHub, each potentially having unknown realization problems until a system which doesn't have the stale references attempts to download the sources.

@jonringer
Copy link
Contributor Author

cc @Ericson2314 for CAS input

@domenkozar
Copy link
Member

Drawback is that if you fetch the same tarball via another method, you'll get a different hash.

Ideally derivation name wouldn't be part of the hash, but here we are today.

I also understand the need to figure out whats in the derivation, so it's a tradeoff.

# List generated from home-assistant documentation:
# git clone https://github.com/home-assistant/home-assistant.io/
# cd source/_integrations
# cd ${src.name}/_integrations
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please drop this change.

Copy link
Contributor Author

@jonringer jonringer Jan 31, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to try and factor out all of the package updates to separate PRs, eventually this should just be the fetcher change and sha fixes

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I could mark this as draft until then

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is editing a comment that isn't fetcher related at all.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

correct, but eventually I'll fix it when pruning the commits :)

@edolstra
Copy link
Member

edolstra commented Feb 1, 2022

We could do something like this temporarily

No, we shouldn't do it even temporarily (since temporary things have a tendency to become permanent). Like I said before, I don't want to go back to every fetcher in the Nix ecosystem producing inconsistent names. And it shouldn't be the case that changing the name of a repo or switching from a tag to a revision triggers a rebuild.

@jonringer
Copy link
Contributor Author

jonringer commented Feb 1, 2022

No, we shouldn't do it even temporarily (since temporary things have a tendency to become permanent). Like I said before, I don't want to go back to every fetcher in the Nix ecosystem producing inconsistent names. And it shouldn't be the case that changing the name of a repo or switching from a tag to a revision triggers a rebuild.

I agree that this isn't ideal. However, there's not a single instance (that I could find) of fetchFromGithub being used as a mirror with other sources. So the desire to have fetchFromGitHub act like the other fetchers by default doesn't seem to provide value in the normal use case.

I guess I'm optimizing for the human experience, and trying to avoid stale FODs. While retaining "source" as the derivation name is optimising for the nix experience.

I think it makes sense for the exception be: "To use alongside builtins.fetch*, please pass name = "source";". Rather than the default be: "When updating a fetchFromGitHub FOD, be sure to invalidate the existing hash, then run the build to determine the new hash, then replace hash. If you forget to update the hash, it's likely that you will be unaware of it; and a reviewer may have the existing FOD in their nix store and unaware that it's stale as well. This can result in stale packages existing with mismatching metadata."

With the changes in this PR, the default is: "fetchFromGitHub will faill with the hash difference if stale". Which I think is a much better user experience.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/how-to-reference-src-directory-in-nix/18956/4

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/why-is-the-r-ryantm-bot-using-refs-tags-in-the-version/20519/7

@infinisil infinisil added the 1.severity: significant Novel ideas, large API changes, notable refactorings, issues with RFC potential, etc. label Apr 19, 2023
@rhendric
Copy link
Member

Over a year ago, @Ericson2314 suggested waiting up to a year and then revisiting this. Can we revisit this? I would love to lose both the footgun of forgetting to update a hash and the confusion of looking at a list of paths named *-source and wondering what they correspond to.

@jonringer
Copy link
Contributor Author

bump, I still think this is a major QoL win

@mweinelt
Copy link
Member

Building towards element-desktop this is what I see. 🤡

copying path '/nix/store/03sl8q6ydfqy5k82lnxx7zdvskf24qhp-source' from 'https://cache.nixos.org'
copying path '/nix/store/080hwqs10yqm69yc8qr2060gspa0w1vn-source' from 'https://cache.nixos.org'
copying path '/nix/store/09ynj2zx2nm42iz2g4jwbcz966cr4ja6-source' from 'https://cache.nixos.org'
copying path '/nix/store/0ddypmxd3xa13f22z6qa0whvx7wzfmby-source' from 'https://cache.nixos.org'
copying path '/nix/store/0g651a9i4v3gkm3d431r41s9h5acrfha-source' from 'https://cache.nixos.org'
copying path '/nix/store/0mkivvgidw086gfclshz4ijvaqyz1amj-source' from 'https://cache.nixos.org'
copying path '/nix/store/pv2knl4xg57rriah0zjmdm3917xx0fq7-librsvg-2.57.0-dev' from 'https://cache.nixos.org'
copying path '/nix/store/0s4xv9sxdzv11ss1gx178129cc8x86j6-source' from 'https://cache.nixos.org'
copying path '/nix/store/0zajqwm1fi3vyn433lmcll15kspif7im-source' from 'https://cache.nixos.org'
copying path '/nix/store/116byy3rdvs7kmk89cw7242g8pwspv9w-source' from 'https://cache.nixos.org'
copying path '/nix/store/1231kyf28bpgqrvc6x549a7h334gcx15-source' from 'https://cache.nixos.org'
copying path '/nix/store/15j9fji0xb63cxwhnn641gjla2i7v9w2-source' from 'https://cache.nixos.org'
copying path '/nix/store/197nc04cxiy7y8c77zsvyii9mk7kd5i0-source' from 'https://cache.nixos.org'
copying path '/nix/store/1hiw1s7xl7l7fz893dp1hzj2pcz27cy7-source' from 'https://cache.nixos.org'
copying path '/nix/store/1rp262cy19r0ss9v79zbx3igvxr8l9l2-source' from 'https://cache.nixos.org'
copying path '/nix/store/1x9ssa6xi4n9sdr2z8syd0q9c0pr9fvj-source' from 'https://cache.nixos.org'
copying path '/nix/store/2aakbv0rmsdrjqm6m2vwr9bv36ys5bn4-source' from 'https://cache.nixos.org'
copying path '/nix/store/2cb1ha40m36860v83lfrvvyhzx33m4kd-source' from 'https://cache.nixos.org'
copying path '/nix/store/2qzj9fj6fm8qlqx982ikbmv6ss6n35cz-source' from 'https://cache.nixos.org'
copying path '/nix/store/2xv8by7iypiw9h20yan4q19jw4ly1xg3-source' from 'https://cache.nixos.org'
copying path '/nix/store/2zrzrm1c7jwcbjjmrh2xhvqrnzifbvv9-source' from 'https://cache.nixos.org'
copying path '/nix/store/3a9df4apdrqhqafn40agw6dnl29nbzfb-source' from 'https://cache.nixos.org'
copying path '/nix/store/3s5p5klkd23fza85am7nvf9fmix9vl3f-source' from 'https://cache.nixos.org'
copying path '/nix/store/4085dmcqv8fqnmcnrgqbbhjnr87qknaw-source' from 'https://cache.nixos.org'
copying path '/nix/store/4cmca9bja6rsddmjz5086576kbf6gkbs-source' from 'https://cache.nixos.org'
copying path '/nix/store/4ppk9852ljhkdafsjvxslbz6g432xn1s-source' from 'https://cache.nixos.org'
copying path '/nix/store/56qv5zgdzwbw58i2b0bgpbmrqq09437c-source' from 'https://cache.nixos.org'
copying path '/nix/store/5fcmkqz6h711ykip9w9alksc8qdd5wgy-source' from 'https://cache.nixos.org'
copying path '/nix/store/5g7w3inwx28dpnyfnwq8l15g99b309p1-source' from 'https://cache.nixos.org'
copying path '/nix/store/5wgaqjwzfp6ifza25wladffask39nrzy-source' from 'https://cache.nixos.org'
copying path '/nix/store/62wabkvaihagx0bgwdd6mdjv5z8689hi-source' from 'https://cache.nixos.org'
copying path '/nix/store/6b68ppvwh2fmg1zqval5hv26hqrrndcg-source' from 'https://cache.nixos.org'
copying path '/nix/store/6d0pd227mn6i83s4pnggk7pkglfk39jn-source' from 'https://cache.nixos.org'
copying path '/nix/store/6dbd4ab23xjq0ha3bdbz7faddwd1a2c1-source' from 'https://cache.nixos.org'
copying path '/nix/store/6kgx58njp0hdv2z1s9ib0z53f2iynn7v-source' from 'https://cache.nixos.org'
copying path '/nix/store/720p65hq8aiy4jzvcf00sd6cdwj8rw5d-source' from 'https://cache.nixos.org'
copying path '/nix/store/76wcklzkzy6l8ql0frd9i1gp95yqkb1d-source' from 'https://cache.nixos.org'
copying path '/nix/store/7ynh019apk1z2xang95nnhns5ykyb5gy-source' from 'https://cache.nixos.org'
copying path '/nix/store/81fi8xmf2rj75474gmafkw46m61wz141-source' from 'https://cache.nixos.org'
copying path '/nix/store/81zm897d3ifrfqxbyy2nh4v1hjqpsl98-source' from 'https://cache.nixos.org'
copying path '/nix/store/86xny3w5j8l7jyawj7j94rzgxr5lf70d-source' from 'https://cache.nixos.org'
copying path '/nix/store/8jqd9sskdvvl7yddiakfg6dx42xkj12m-source' from 'https://cache.nixos.org'
copying path '/nix/store/8dpyv6ybl9wi1hf3pc7m9bbqsknj0hyn-source' from 'https://cache.nixos.org'
copying path '/nix/store/8xcm80g4wvv7dczmwpiwdrfnd5zawavg-source' from 'https://cache.nixos.org'
copying path '/nix/store/waq6fnibkdvq7rmglm86yk95dfg87lj5-llvm-16.0.6-dev' from 'https://cache.nixos.org'
copying path '/nix/store/8wdy19pya1n7wrn2664d2819m3pyamg4-llvm-binutils-16.0.6' from 'https://cache.nixos.org'
copying path '/nix/store/9bvdx1vrgqrglx0advvd5ripl01b1nz1-source' from 'https://cache.nixos.org'
copying path '/nix/store/9gwjs8rg9jj8m80vzdim9rxki6z8f331-source' from 'https://cache.nixos.org'
copying path '/nix/store/l2hs8v72sa5c8jcnwvm9ln6isxpyv4fa-llvm-binutils-wrapper-16.0.6' from 'https://cache.nixos.org'
copying path '/nix/store/a6z19p23x8gnbxkpl6qzxq5f4hb90xmj-source' from 'https://cache.nixos.org'
copying path '/nix/store/ab3bf3qicclpc959mcs6ci6jdzm62z8s-source' from 'https://cache.nixos.org'
copying path '/nix/store/b9lks939q5r0a4qh6vsg159fapwiskx5-source' from 'https://cache.nixos.org'
copying path '/nix/store/bcxicdkr91j8f4ycam7x21hj6f6gzrry-source' from 'https://cache.nixos.org'
copying path '/nix/store/bnkwd4advdmi0hlh80wa7jdrxz0bjjrh-source' from 'https://cache.nixos.org'
copying path '/nix/store/bp866vg6sirdh55vzciw1fjrw0p5296n-source' from 'https://cache.nixos.org'
copying path '/nix/store/c45l0vgpp7sxn80wsd56ffw16ljcwc8a-source' from 'https://cache.nixos.org'
copying path '/nix/store/hywr2z0bbf7vrhii1bwp09xcinmzy3n4-rustc-1.73.0' from 'https://cache.nixos.org'
copying path '/nix/store/cxnafvwkbqzg4z8wn4xxq3qqggawc7kf-source' from 'https://cache.nixos.org'
copying path '/nix/store/czldgkb2j3absrd1w5i5cml496rnm9dr-source' from 'https://cache.nixos.org'
copying path '/nix/store/d44rf86yivvv51h7hkn8smv5vdf9wwxx-source' from 'https://cache.nixos.org'
copying path '/nix/store/d4mvhw6z2gb4n83fdfa1i68drxdfmw4z-source' from 'https://cache.nixos.org'
copying path '/nix/store/d9yz88jnxk3ya6aw79y27bcbsll17s9x-source' from 'https://cache.nixos.org'
copying path '/nix/store/dbn5q72wl4g3amjqaclfsz3rqikg27r8-source' from 'https://cache.nixos.org'
copying path '/nix/store/dgaksmigfhwzg150633dnds7nbl2njah-source' from 'https://cache.nixos.org'
copying path '/nix/store/dgpqy6cpmw0wbnhx9r0pmg0krbbn018n-source' from 'https://cache.nixos.org'
copying path '/nix/store/f2f3h0l1y6iskpasayz3nh2gd7v55cbk-source' from 'https://cache.nixos.org'
copying path '/nix/store/f3dr9v1mnk6nvfgairb4ypxg7lz72g6x-source' from 'https://cache.nixos.org'
copying path '/nix/store/f5rp4slr54x8jph1xkvjgpd6alkjrkks-source' from 'https://cache.nixos.org'
copying path '/nix/store/fqar7w5wwc7rvw4k4z9ygcahh6ywh5cb-source' from 'https://cache.nixos.org'
copying path '/nix/store/frzdxkq4hqwy79q7x5hci2am69xba5nr-source' from 'https://cache.nixos.org'
copying path '/nix/store/fycb6wdvgxa4hmmz4gj3yknx77gb3sqb-source' from 'https://cache.nixos.org'
copying path '/nix/store/fym2gnib61nn8x8xa6v0ds4zxxph1j33-source' from 'https://cache.nixos.org'
copying path '/nix/store/g64rm75yb41cpb3fgrxahv5j7aj25sx2-source' from 'https://cache.nixos.org'
copying path '/nix/store/g65bi34k6k7frz5m578wf73y8216c9jq-source' from 'https://cache.nixos.org'
copying path '/nix/store/g8mfnw84yavkvq9fay51kz3jcssp8qk7-source' from 'https://cache.nixos.org'
copying path '/nix/store/gajbvbndd0wr6y3dmign2gwcyapyvd27-source' from 'https://cache.nixos.org'
copying path '/nix/store/gfhmjjgps7m5749djp60giqj2jan4l5j-source' from 'https://cache.nixos.org'
copying path '/nix/store/h804lsgn8m24pvn1n4kqydl5269wx2xa-source' from 'https://cache.nixos.org'
copying path '/nix/store/hjw70p7jynr7gv4ip4axag4gv41jdffz-source' from 'https://cache.nixos.org'
copying path '/nix/store/icyyqf4qqhqngqijyw0xjf3qk6r9v3y8-source' from 'https://cache.nixos.org'
copying path '/nix/store/ifi9apnqyy1l756abqph5rhpmrr5d7dw-source' from 'https://cache.nixos.org'
copying path '/nix/store/ins6jh3x1408p16cprr3by9ixb4rxavn-source' from 'https://cache.nixos.org'
copying path '/nix/store/ivm53ziljskfs2781hjxfldn74xkhii3-source' from 'https://cache.nixos.org'
copying path '/nix/store/iw3ix95v94ss8f5zh8sjcviwym26gg9x-source' from 'https://cache.nixos.org'
copying path '/nix/store/j1xrq8604v0w1fxc8jjjrxbr2kh2f5p5-source' from 'https://cache.nixos.org'
copying path '/nix/store/j3h99l8i598smg0s00g9fmr5zjkg07xj-source' from 'https://cache.nixos.org'
copying path '/nix/store/j6641rw49ymmbyk09fxs995q91bwkzww-source' from 'https://cache.nixos.org'
copying path '/nix/store/5ql31bfsgynanf794wnl2wlbs23q7b8h-clang-16.0.6' from 'https://cache.nixos.org'
copying path '/nix/store/j72jw313p9jc18prmqxbvxs477jcj1p0-source' from 'https://cache.nixos.org'
copying path '/nix/store/jdcmjw86yzfvg43kj57xsb383sy5cy4m-source' from 'https://cache.nixos.org'
copying path '/nix/store/jm49v9lkc9cdm9ql6bbqdscvqiwmc751-source' from 'https://cache.nixos.org'
copying path '/nix/store/k884kw86j9yvgjdsvmydlz43lq1n2jp2-source' from 'https://cache.nixos.org'
copying path '/nix/store/kl1qfa581ps57krzw2xc2pn7yc6vqpx1-source' from 'https://cache.nixos.org'
copying path '/nix/store/kpks0zdwc4hh89f0mxawadrdxbvg1hfl-source' from 'https://cache.nixos.org'
copying path '/nix/store/krhmy4n4na7riwrryhvgzr1yn8kzzddf-source' from 'https://cache.nixos.org'
copying path '/nix/store/lbqp0s789js2lwwad5xphr2x3rchgcmg-source' from 'https://cache.nixos.org'
copying path '/nix/store/cpaw2fx5vdf7f2m552klp8ldasfn5mga-clang-wrapper-16.0.6' from 'https://cache.nixos.org'
copying path '/nix/store/n37gxbg343hxin3wdryx092mz2dkafy8-clang-wrapper-16.0.6' from 'https://cache.nixos.org'
copying path '/nix/store/lgxpg7xa14rwirhlsgf6zqk8wi0l2c96-source' from 'https://cache.nixos.org'
copying path '/nix/store/m0r8w2zsmpz7699ap0v9bbydqkpjz7dn-source' from 'https://cache.nixos.org'
copying path '/nix/store/m1zacskc3bfzii0lgb9j783j1v2zfn5b-source' from 'https://cache.nixos.org'
copying path '/nix/store/m6lj9h27mhjpqpmclrpwyj9vx944wf94-source' from 'https://cache.nixos.org'
copying path '/nix/store/m8cvvwky5ahcrazqdslklz0kvlspxh9q-source' from 'https://cache.nixos.org'
copying path '/nix/store/m8d9b78gzxprxvv410nxc7ykpkgdsksp-source' from 'https://cache.nixos.org'
copying path '/nix/store/mbanf2s69vf3aghvafqfk6zsaa7m93pj-source' from 'https://cache.nixos.org'
copying path '/nix/store/mxpn5xw6pmdmp3mzrcaa55b9wxznmkxx-source' from 'https://cache.nixos.org'
copying path '/nix/store/n2gfnf7hsjgf5080nmvbx4salc8rc73i-source' from 'https://cache.nixos.org'
copying path '/nix/store/nck9041zfjvw3bwpv238dpyb9337jzp4-source' from 'https://cache.nixos.org'
copying path '/nix/store/nhrb7vm7l8aa2ppyfacgjhgjs5jkhxvg-source' from 'https://cache.nixos.org'
copying path '/nix/store/pbnr9hlab89p9q11fjix46lbzz0dq111-source' from 'https://cache.nixos.org'
copying path '/nix/store/pq63aqra5ah9sk7f4qvh527ax4wyshjm-source' from 'https://cache.nixos.org'
copying path '/nix/store/pqp7kfcwz038jrrvx10ig3kqixxm80ad-source' from 'https://cache.nixos.org'
copying path '/nix/store/q4k3jwk4hfs8gwpmx6pspga5a8zq51vb-source' from 'https://cache.nixos.org'
copying path '/nix/store/qghy3wjzjfgz2nw22rki16hhrqpqlvfg-source' from 'https://cache.nixos.org'
copying path '/nix/store/qicga449vxglcgdz1qs559rzjif9r00s-source' from 'https://cache.nixos.org'
copying path '/nix/store/qlia648835njfgjs0lnnl9s89k1npj46-source' from 'https://cache.nixos.org'
copying path '/nix/store/qrcn3ml1faxmdz33d26iclvgnin7s25l-source' from 'https://cache.nixos.org'
copying path '/nix/store/r4yzim8lck7qj5dmw8v5hihn7b5hr9w3-source' from 'https://cache.nixos.org'
copying path '/nix/store/rc5x2w9rkvr0x4b5nipgrahns0lzpv9y-source' from 'https://cache.nixos.org'
copying path '/nix/store/rdqa9ijv6hn31vly9lx4brkw21bycmlw-source' from 'https://cache.nixos.org'
copying path '/nix/store/rj70j21wx4yf6wknhnm65czww0kqzq29-source' from 'https://cache.nixos.org'
copying path '/nix/store/rp27wpqv2hjl49j8niwcf7qj61xb4vsg-source' from 'https://cache.nixos.org'
copying path '/nix/store/rsqajs9q5658w9x98kl76mvgn2w9qv5n-source' from 'https://cache.nixos.org'
copying path '/nix/store/s5m9v3pysvq7pf5sbqp0swcfvd62ij1h-source' from 'https://cache.nixos.org'
copying path '/nix/store/s9931512l40y46q28b77gd9x8khqlxdi-source' from 'https://cache.nixos.org'
copying path '/nix/store/sdh0pf5h18fbrx9wjg348cs4hcgbprjm-source' from 'https://cache.nixos.org'
copying path '/nix/store/sdvalm21zlycpnm4d0rc8wxrjqi4k9ly-source' from 'https://cache.nixos.org'
copying path '/nix/store/smhrjm7dklj8d1p3rfxdwqn0xdf9pbcc-source' from 'https://cache.nixos.org'
copying path '/nix/store/vlidbqcrgzfdq1sy1kx7mpffk6fpyypp-source' from 'https://cache.nixos.org'
copying path '/nix/store/vx14p89yh7f1xw30n9fzxdxrfbkdidvd-source' from 'https://cache.nixos.org'
copying path '/nix/store/wll25hwhqvzjivycfafmcs66iwmxwifd-source' from 'https://cache.nixos.org'
copying path '/nix/store/xkfd21jcbqkqgbf4qnklhg5a2ds7mg39-source' from 'https://cache.nixos.org'
copying path '/nix/store/xvxp9zway1vdzlwm1l75gh2v6lsnkhqa-source' from 'https://cache.nixos.org'
copying path '/nix/store/y3vs7616xyszamhvfm3pd70xzzialbgv-source' from 'https://cache.nixos.org'
copying path '/nix/store/yalsmmz2dbz6y8kafq7p6lh6jjnwzaml-source' from 'https://cache.nixos.org'
copying path '/nix/store/yijk4p7iplna4n68i42jdd1zq3nb997i-source' from 'https://cache.nixos.org'
copying path '/nix/store/yngsdq33smc1b0vg1nc7fzyn674r1hx6-source' from 'https://cache.nixos.org'
copying path '/nix/store/yv375x1p6wysn0rx5yi7sx8mnxz96q4d-source' from 'https://cache.nixos.org'
copying path '/nix/store/yynx68xvjjxr7ghw0i0ij1qnfv5f3bf1-source' from 'https://cache.nixos.org'
copying path '/nix/store/yysja78jwh4722dgk9xg0rn9pzgy3pkq-source' from 'https://cache.nixos.org'
copying path '/nix/store/z4iab81zgpmaqpmsda7y69hrqgwgd5j0-source' from 'https://cache.nixos.org'
copying path '/nix/store/z5qc7h77jk7vxi1bdnxdlr6j1dqpjr1k-source' from 'https://cache.nixos.org'
copying path '/nix/store/zrmx8ry3mqkfzgvyw3i3n47jb4867ikx-source' from 'https://cache.nixos.org'
copying path '/nix/store/zwbp66wh31bq8q8avcrc53w7jd782kry-source' from 'https://cache.nixos.org'

@wegank wegank added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Mar 19, 2024
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Mar 20, 2024
@github-actions github-actions bot added 6.topic: Lumina DE The Lumina Desktop Environment 6.topic: php PHP is a general-purpose scripting language geared towards web development. labels Mar 20, 2024
@wegank wegank added the 2.status: merge conflict This PR has merge conflicts with the target branch label Mar 20, 2024
];

patchPhase = ''sed "s@ldconfig.*@@" -i source/Makefile'';
patchPhase = ''sed "s@ldconfig.*@@" -i ${src.name}/Makefile'';
Copy link
Contributor

@ShamrockLee ShamrockLee Apr 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default name of the FOD produced by fetchurl is the basename of the URL, with file name extension included. In this case, it is currently "aeolus-0.10.4.tar.bz2", and the sensible value is "aeolus-0.10.4".

In my opinion, commands in phases should respect "$sourceRoot", so that overriding with src from a different fetcher is possible. I'll put the discussion under the RFC PR.

@infinisil
Copy link
Member

Btw note also @oxij's recent work which is very related: #49862

@oxij
Copy link
Member

oxij commented Apr 4, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1.severity: significant Novel ideas, large API changes, notable refactorings, issues with RFC potential, etc. 2.status: merge conflict This PR has merge conflicts with the target branch 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 6.topic: emacs Text editor 6.topic: fetch Fetchers (e.g. fetchgit, fetchsvn, ...) 6.topic: haskell General-purpose, statically typed, purely functional programming language 6.topic: Lumina DE The Lumina Desktop Environment 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 6.topic: ocaml OCaml is a general-purpose, high-level, multi-paradigm programming language. 6.topic: php PHP is a general-purpose scripting language geared towards web development. 6.topic: python Python is a high-level, general-purpose programming language. 6.topic: rust General-purpose programming language emphasizing performance, type safety, and concurrency. 8.has: changelog This PR adds or changes release notes 8.has: documentation This PR adds or changes documentation 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches.

Projects

None yet

Development

Successfully merging this pull request may close these issues.