Webkit 2.36.3 keeps trying to build from source (NixOS 22.05)

I currently have webkitgtk as a buildInput for another package and whenever I try to install that package it tries to build webkitgtk from source. Not sure how to debug why though.

My current channels are the following and I believe that in this case everything should be going through the nixos channel by default.

nixos https://nixos.org/channels/nixos-22.05
unstable https://nixos.org/channels/nixos-unstable

Output I see

these 3 derivations will be built:
  /nix/store/bg30d01il3278s2qg5hg1pm478rd599d-webkitgtk-2.36.3.drv
  /nix/store/9jmkkndiwawszgqsb3ig4khv7qpvlzy3-NetworkManager-openconnect-1.2.8.drv
  /nix/store/d0idlqv2n3rmjsmjg16ic7pdmxbzviv0-binary-eater.drv
building '/nix/store/bg30d01il3278s2qg5hg1pm478rd599d-webkitgtk-2.36.3.drv'...
unpacking sources
unpacking source archive /nix/store/65kl305q2jvacnaxm05j92305ivsb3z1-webkitgtk-2.36.3.tar.xz

I eval’d webkitgtk.drvPath on every released revision of 22.05 and the last 15 revisions of unstable, for both x86_64-linux and aarch64-linux (you didn’t mention what platform you’re on), and none of them matched the /nix/store/bg30d01il3278s2qg5hg1pm478rd599d-webkitgtk-2.36.3.drv that you’re trying to build.

#!/usr/bin/env bash

set -e

function evalRevs() {
    while read rev _; do
        echo -n "$rev: "
        nix eval --system "$1" github:NixOS/nixpkgs/$rev#webkitgtk.drvPath 2> /dev/null
    done
}

{
    curl https://channels.nix.gsc.io/nixos-22.05/history-v2 | evalRevs x86_64-linux
    curl https://channels.nix.gsc.io/nixos-22.05/history-v2 | evalRevs aarch64-linux
    curl https://channels.nix.gsc.io/nixos-unstable/history-v2 | tail -n 15 | evalRevs x86_64-linux
    curl https://channels.nix.gsc.io/nixos-unstable/history-v2 | tail -n 15 | evalRevs aarch64-linux
} | grep bg30d01il3278s2qg5hg1pm478rd599d

So I see two possibilities. 1) You have an overlay that is modifying one of its dependencies. 2) You are not using the channels you think you are, and are using something like the master or release-22.05 branches from GitHub by mistake somehow.

Sorry, I should have mentioned this. I am using x86_64-linux. Your points match what I was thinking, and I looked in hydra to see what builds were made. Noticed that none of them matched my derivation for webkitgtk. I do have a couple of overlays but don’t know how they could impact a webkitgtk dependency. Will post back after debugging more.

I dunno if this exactly would work, but something like it might point you in the right direction:

# modify this line if necessary to eval your config,
# but note that I'm trying to eval nixos, not nixpkgs
drv=$(nix-instantiate "<nixos/nixos>" -A pkgs.webkitgtk)
nix path-info --store https://cache.nixos.org $(nix-store -q --outputs $(nix-store -q --references $drv))

It should spit out complaints about the immediate dependencies of webkitgtk that aren’t on the cache.

1 Like

Also are you aware of the great tool nix-diff? That’s my go-to solution for these kind of problems.

The resulting diff usually provides me enough context to figure out where the problem is coming from.

2 Likes

Thanks, there seem to be quite a few. A bit confused about this… Disabled all the overlays I defined.

❯ drv=$(nix-instantiate "<nixos/nixos>" -A pkgs.webkitgtk)
warning: you did not specify '--add-root'; the result might be removed by the garbage collector

~ took 2s 
❯ nix --extra-experimental-features nix-command path-info --store https://cache.nixos.org $(nix-store -q --outputs $(nix-store -q --references $drv))
/nix/store/4h7k5d08a41vvmc8whmb7jfbghs4y26b-libtasn1-4.18.0
/nix/store/40iwnlr30ykqm5ynm0bbk6bsjjc750ad-bash-5.1-p16
/nix/store/c1h2br2ddpy7qswsjdnx6ismb0h38ibg-p11-kit-0.24.1
/nix/store/0837scszksx5v4ssxvr7pv43i9w3zrph-p11-kit-0.24.1-bin
/nix/store/f031q8z8qpxms2wz313fw7c23zklj80a-libgpg-error-1.42
/nix/store/09qk63yrd1hbsavj5yzrnykpr6hj5gsd-libgpg-error-1.42-dev
/nix/store/1a77yh2zszpqcz7q1k0i1z5xpqximc6s-woff2-1.0.2-lib
/nix/store/5dpz4gs6qc2ppkan80fi9w461l26fbh1-libGL-1.4.0
/nix/store/2mz0066lqjclasxpgh4f02avlh7wk2v3-libepoxy-1.5.10
/nix/store/6p5p4npgi4jads04kazvvbw72m2kka5m-pcre-8.45
/nix/store/nkmc0d5rchv8a4cn79c8p8vx72g7skf0-glib-2.72.2
/nix/store/w2qjjvhwnwhass0q540myhpy5mgxdy54-libxml2-2.9.14
/nix/store/yb8z23a857pj619b9lwfbq28ylxrb7r2-wayland-1.20.0
/nix/store/piz05w00ryv11jbwvr43dsgnc0xshw8v-libxkbcommon-1.4.0
/nix/store/1jbih74lf48mkvy4l1lkiv3wzpwi8a7s-gtk+3-3.24.34
/nix/store/ghrk4fjbml2sw7rll3bpj19ad2dl1agi-nettle-3.7.3
/nix/store/1lhggmsxz73c306rzcibww54396k39j9-gnutls-3.7.3
/nix/store/jnxcd9y0ad5iik0smny97bw4dl147h4g-libXtst-1.2.3
/nix/store/22p6hrdxbsl4bxf13p9qg3k8ydj202fw-at-spi2-core-2.44.1
/nix/store/dijrcqmqiac6vb7zlyr5kdspxwiyzm1r-gst-plugins-base-1.20.1
/nix/store/23spq233caxi151l2v9izpnlrvr4wnfx-gst-plugins-base-1.20.1-dev
/nix/store/2hai574babj0k1l489wqvfmfri6drd0s-pcre-8.45-doc
/nix/store/2iyfbbm6nw7kgqrsxnjzw0qrgz88624v-libGL-1.4.0-dev
/nix/store/2qdwkg3wr6r8xs9qwp6nbx6l10067vig-libxml2-2.9.14-man
/nix/store/2swsigmri78kvw3ms41jk3cgkddbb17r-libXdmcp-1.1.3
/nix/store/2vkyhqj822p8fbmysnhsi1vlr7blb0am-gtk+3-3.24.34-devdoc
/nix/store/324l971b7mc0lz8pw7c42xczmsahjsrg-fix-bubblewrap-paths.patch
/nix/store/h8xspsb1ncspskxknd52lpkzkaqxdw9r-libseccomp-2.5.3-lib
/nix/store/ldax5vvji2qqzi2yz51x8p8m74ryrsxp-libgcrypt-1.10.1
/nix/store/675hhg94xrfil460prl1fq90xhvjmyms-systemd-250.4
/nix/store/3399c1isar954bqk8sbgriaahavwfzc0-systemd-250.4-dev
/nix/store/kv8pn26ml8y5gpn5mddnkd5ajhdyldjr-libwpe-1.12.0
/nix/store/38dz4bknhvc7ip60c5p559hpad93xpfh-wpebackend-fdo-1.12.0
/nix/store/45ki7129cl533cqwr6441nmicdpsx8vf-libxml2-2.9.14-doc
/nix/store/rn74ygmkis3sy0lns67msqydjvnf5lfc-gobject-introspection-1.72.0
/nix/store/4lk6jx3zkimy651hyrb2vg87rnbwk7ji-sqlite-3.38.5
/nix/store/x0dihk0hk5yc50fzr0hy9iir4vcc4kcp-libsoup-2.74.2
/nix/store/4ha0g8dpkyp464nhgy0brylk514zmnm3-geoclue-2.5.7
/nix/store/4hqj2mm9r1zai29cinydlpxnr82bngxh-glu-9.0.2
/nix/store/80i001ag97fc3x88bggrzmprng71j6f8-gnutls-3.7.3-bin
/nix/store/n15ajja6ba6fkk8k764vlwh5fiiva3gh-nettle-3.7.3-dev
/nix/store/4rwr62iwr3029bazs5jffkgw65k3mri4-gnutls-3.7.3-dev
/nix/store/565w6b55fknm7377jxjvlvc114qv2bw0-libnotify-0.7.12
/nix/store/9xwy5qjj3r0hryicdv0sz078cxms9nb8-harfbuzz-icu-3.3.2
/nix/store/5djkykqv19dknya9hv9jkdzxxfy75p43-harfbuzz-icu-3.3.2-dev
/nix/store/9b5774d1a4l75hinl3x6w48kqdskimah-libxml2-2.9.14-bin
/nix/store/mn54xk8znflfiqdcj5qn9w5zz8n4687h-libxml2-2.9.14-dev
/nix/store/prdfc19zf5zlg9mpsi556q1v3dlfy8r9-libxml2-2.9.14-py
/nix/store/5fh7hw4k64zinj0317983kp9bypnh7af-libxslt-1.1.35-py
/nix/store/5gf8qha1wb06rz1gi8ja9432cd5srhwm-xdg-dbus-proxy-0.1.4
/nix/store/5ijpzafdxjlda23wm830qs4a9013k98m-gnutls-3.7.3-man
/nix/store/5ip81ybmwd73xqk8jckmkw5c66cakjz8-gnutls-3.7.3-devdoc
/nix/store/5jk9zrlqbsks4dk5vvrcvvjn44p521ab-wayland-1.20.0-doc
/nix/store/5l1dyda96i5fnqz8snd9knwzi6kks9fw-libsecret-0.20.5
/nix/store/5plr1zabwg6dgcv4636kwx302898x4r3-perl-5.34.1-man
/nix/store/5wa16gl0r24mg7jb7qhnl9zd4q1dhmc8-libsecret-0.20.5-devdoc
/nix/store/65kl305q2jvacnaxm05j92305ivsb3z1-webkitgtk-2.36.3.tar.xz
/nix/store/95xa1hlw6byvcxsdcvi9hc6q9xm00skp-sqlite-3.38.5-bin
/nix/store/6kfhz85ddl09jhzg7g5ybv4q0m36xkaj-sqlite-3.38.5-dev
/nix/store/d2l2fvnm1lcm9gcv765dn482lgmdyzlj-mesa-22.0.4
/nix/store/ri9l82lfkaiaw3rvp6iq63y8h8h6gl4l-mesa-22.0.4-drivers
/nix/store/6njyq9vq69yfmd5ipyy3zll59gvq918b-mesa-22.0.4-opencl
/nix/store/6vvylsdxx9ggx315x2ss75amy4r02jz0-perl5.34.1-File-Copy-Recursive-0.45
/nix/store/717kkirdpgyjcbwl29ma80n6b8dwpfih-bash-5.1-p16-man
/nix/store/z2zhiij28pvdrrw437h2b36g4j0j4cpp-pcre-8.45-bin
/nix/store/71zqd8i9cwl62f0sffybm1naljyk6chl-pcre-8.45-dev
/nix/store/76c313l0wynxdgfmxgjjhmncg13vpi8x-libXdamage-1.1.5
/nix/store/8fxwjg6q1a29cq6xpawisciy28i8p8h2-libXdamage-1.1.5-dev
/nix/store/wb8bhqzqjm8van1i554zbx53cggplyvy-mesa-22.0.4-dev
/nix/store/74gvd03rjbqv99301wlwm0k99i98dni0-mesa-22.0.4-driversdev
/nix/store/7a8bkf14r68i0yj0w3chci4s3r7x433f-gettext-0.21-info
/nix/store/ksnv8c9x5c5wrwj9921j6aibzvrmzcar-libidn-1.38
/nix/store/7ih930127h6djiw46yplcck54k4h45d2-libidn-1.38-bin
/nix/store/7qi7blhwkii6rnagk8v8vji092f4zclg-libxslt-1.1.35
/nix/store/7r9phvkav218az7sl7q3qkyka7i0p51b-stdenv-linux
/nix/store/gwlgfywzqypv91rxw916v81mpzhckdz5-python3-3.9.13
/nix/store/8vmnidjx8fd44n5w05ldd4085ildayz4-glib-2.72.2-bin
/nix/store/g8a9i38ad572qzc8pcbvybwvvx33wnh6-gettext-0.21
/nix/store/nffakga5zfdy4mghxmi07lxgyaknnkq2-glib-2.72.2-dev
/nix/store/8p0r61avzq2dyn4va3xi241pj1kjm5gb-gobject-introspection-1.72.0-dev
/nix/store/i4nq9cwixq9dm3m62qgb72qxrdvx7a7v-libmanette-0.2.6
/nix/store/8rd6b4ynlsvcr16jwhj72rf2dbf2s9xr-libmanette-0.2.6-dev
/nix/store/99mmc6xp20pv2diak3cmk96565ry5pgw-libxkbcommon-1.4.0-dev
/nix/store/9iyi63irnmi9rqprx0hqrjrapvlrbm8d-fdo-backend-path.patch
/nix/store/9kqa1msr4lvi7r5640yggypi6h32gy9g-libnotify-0.7.12-man
/nix/store/9krlzvny65gdc8s7kpb6lkx8cd02c25b-default-builder.sh
/nix/store/9m1kf0wlinq80hzn5wiffy2kk4z994b5-libgcrypt-1.10.1-info
/nix/store/9pm3rzxxal2f143nihcwglrigqspafp6-bash-5.1-p16-info
/nix/store/9wffdw0war8y4zz0dawrj48zcmyww8av-gobject-introspection-1.72.0-man
/nix/store/ajn9rcngjp796k52n5nl9x361j4gc2h1-libidn-1.38-devdoc
/nix/store/anhinjnxdil8zskc2adc2rccq52hcwr6-libepoxy-1.5.10-dev
/nix/store/b9188lwwhi83x3279zzrrwdwpnr98ds1-gettext-0.21-man
/nix/store/ijhv43rbmsrhj4d2bigx4mfsf1pxfm86-lcms2-2.13.1
/nix/store/md90343ncka839mv00zb4xis1yyhh8hj-lcms2-2.13.1-bin
/nix/store/byzd88q5mqkviv4s2ikgmiv91mi1kd14-lcms2-2.13.1-dev
/nix/store/d3d2mvb3kybgbh3qn0yh5r8k46d4gizw-libwebp-1.2.1
/nix/store/v8y51ykfazakc7d63qfsyaphq9yzcb85-openjpeg-2.4.0
/nix/store/msy978bm56vrc7p516bvclaq5x780g63-gst-plugins-bad-1.20.1
/nix/store/c0fh67jh895h9djp6k3d3wp8c3d7clxh-gst-plugins-bad-1.20.1-dev
/nix/store/c9dc7nd7wky7v262wj17qh4f7kvdzsn4-libseccomp-2.5.3-man
/nix/store/cjkp8hr8lnry1c3fscyz68dicb6vcbq9-wayland-1.20.0-bin
/nix/store/ckssrn3b55lfrqymcjad7qh3ri36ibrq-openjpeg-2.4.0-dev
/nix/store/cw8pbczckq9b56hlw1a5y4kjgw6qchxa-libXt-1.2.1
/nix/store/cx43vz99axng1cpp872ixxc4d47p67id-libidn-1.38-info
/nix/store/dlg2ji6fz3g1q5h4y7gcsv1rnhc5lqks-glib-2.72.2-debug
/nix/store/dyngr1m5klqln5ysd7y4f379fiqkz7gh-p11-kit-0.24.1-dev
/nix/store/sd2lsg9x67m6fahvimsm6qrs7cgxp7qk-wayland-1.20.0-dev
/nix/store/f1s5zgfz87kr3i06zknjfp4w8dmwfx5j-gtk+3-3.24.34-dev
/nix/store/f5wf20h4s0fsmkblrf03shvhiib0y8cr-libgpg-error-1.42-info
/nix/store/lbdlmxnvgl1bmrlijip5y5xha6ld6lgz-enchant-2.3.2
/nix/store/fhw8vk1aj0vkcsx8n353r3390q05ihk1-enchant-2.3.2-dev
/nix/store/gdsrqqs6caw287ycirp91jg7j2r00945-perl-5.34.1
/nix/store/gvfnj5clfklbnp605xyw2x9gr1jsh5zv-libseccomp-2.5.3
/nix/store/gw4hy7shi0mavsjfmy3g9kqknrw60max-gperf-3.1
/nix/store/h3rq7lmqcsv4sj0mw4dx4rgs1ynxa706-libXdmcp-1.1.3-doc
/nix/store/h4kcvjv8760dq6g9fi67qcmm8gq5pvyz-libgcrypt-1.10.1-dev
/nix/store/h561rls25iblhvq45v91hqbd8nqdb97q-ruby-2.7.6-devdoc
/nix/store/h5syp2hqwllnnngi3rwf3j5y2qxjxcnw-geoclue-2.5.7-dev
/nix/store/h80b1fmfi6x3g135zndc46nz5fa34bq0-libsecret-0.20.5-dev
/nix/store/hixgagndq9rzzh3ciypcf14cgvqaz08g-libidn-1.38-dev
/nix/store/hwfgc5xid4g5xg6vcfc9dg210mkhjfsq-libXt-1.2.1-dev
/nix/store/i6ipir2y19s85h7jiqglv8grb4i7c8vd-wayland-1.20.0-debug
/nix/store/ikmqczy0y20n04a2b8qfflzwihv8139g-separate-debug-info.sh
/nix/store/irywcji99ijkyp41317c0mk45gmbn5rc-geoclue-2.5.7-devdoc
/nix/store/iv5jrfv644hjky7vzcjn5grxjj0ddrax-libtasn1-4.18.0-dev
/nix/store/j013yhkkjmdmizjfngazj7s2bapi3if4-sqlite-3.38.5-debug
/nix/store/jrcfyidklsfa7y7wmgxlmvam56h32jd1-glib-2.72.2-devdoc
/nix/store/k6qd2i4c8cj17q1xc9bj8m9hja48fv6n-libxslt-1.1.35-bin
/nix/store/k9164icp6kx7ygabgar74bps6qxyb8am-libtasn1-4.18.0-devdoc
/nix/store/kym16fmc510mqa88dhqvii05b22zhvzl-mesa-22.0.4-osmesa
/nix/store/l3qr4r4c0dvsv335kvh3hg55sss43ind-libxslt-1.1.35-man
/nix/store/l8kwxp7x04ra7xr8y4ihx9s7wp9rkfra-perl5.34.1-File-Copy-Recursive-0.45-devdoc
/nix/store/lh6qkfavrnxnr3j570i0jgks9fawji93-gtk+3-3.24.34-debug
/nix/store/lxl7gr4ggc2darh3lpmmnyr8y2r7pb9h-ninja-1.10.2
/nix/store/lya1231jkayqnv4ww2r5spwqwd0331qa-libseccomp-2.5.3-pythonsrc
/nix/store/m67v2jz4agxr837l49y33rfvcnnbr1az-libnotify-0.7.12-dev
/nix/store/n8gvlg12cmxw3a37nvbafhri9pp4l494-ruby-2.7.6
/nix/store/ndn1lxbqxqm0nflni5a5f0sd040vyq79-woff2-1.0.2
/nix/store/nrpa0jgp3slqdm8y59jn8m0lnqn3rbin-wayland-1.20.0-man
/nix/store/p4nnlqr96935kk3x1wf7m44icxwwn9a9-glu-9.0.2-dev
/nix/store/pi1dqss5ixpmggncajvllw0vyvwy8390-libXt-1.2.1-devdoc
/nix/store/qaqds47xxvdjgg6kas7x1bwqyy09vv11-bash-5.1-p16-dev
/nix/store/qhi51x31bpbhairbppafwij9rgvkyz6j-libglvnd-headers.patch
/nix/store/qklja5z41qppv00s6fp5k3xqxn03p8hw-libxslt-1.1.35-dev
/nix/store/qkpk2k76ywf0sx694qq5pipy5xacz305-bash-5.1-p16-doc
/nix/store/r6d2w1kyjdnmlj877mavcy091csc6qw5-pcre-8.45-man
/nix/store/rvpak5f3gfkih0c80mn09qf8z3dq7cdy-bison-3.8.2
/nix/store/s3r8ybb85vzh1hhn35f36zmslyxhicf2-gobject-introspection-1.72.0-devdoc
/nix/store/sqqcxmihy6y27sjdv68ar35cgvyb54b7-woff2-1.0.2-dev
/nix/store/v5yripbdygspgiv2bmlymd2al4j9d9vb-libXdmcp-1.1.3-dev
/nix/store/v8yf5yaxf8i27k5v90g52ja006i27jl9-libpthread-stubs-0.4
/nix/store/vgsmq225ak7nr17azf3dy63wdbppk3g7-libsoup-2.74.2-dev
/nix/store/vlipk0z8jvcmjp583qvnrrbsrijb5njm-libseccomp-2.5.3-dev
/nix/store/vricq7h5ivf59sf61bpvlqhq66mwvn9a-pkg-config-wrapper-0.29.2
/nix/store/vrkp3hjvzsjbxkc633h0rjm7v21c2avz-at-spi2-core-2.44.1-dev
/nix/store/vw4swzwcqn6rif8frdha6wdwfrcw2z64-perl-5.34.1-devdoc
/nix/store/vwh46wj0bz4hrcyn59di18mykaxr69gv-cmake-3.22.3
/nix/store/w2j2wf5i2inrj2filw3386ppmilpcrkh-pkg-config-wrapper-0.29.2-doc
/nix/store/wcdk46pr8xw8ydp335i0s9g75lk33p8d-libxslt-1.1.35-doc
/nix/store/wix1zfm0b15difip8al86rxdx4kj9946-pkg-config-wrapper-0.29.2-man
/nix/store/wk2gh8qnjzp3gaqayry4hh456x0ykbhy-gettext-0.21-doc
/nix/store/x0qz5kqr8g63d7pxxi49b5pa2jxpcf0s-bubblewrap-0.6.2
/nix/store/x7psyfrzm519ji8r0fvblzb7mqrp1k73-harfbuzz-icu-3.3.2-devdoc
/nix/store/xrx0ym53gyhafgqn3imc8f2g1l1acspj-python3-3.9.13-debug
/nix/store/ymq83c4vam8a62gpg51kzvw9ar2qfmws-systemd-250.4-man
/nix/store/z0h3zsmv0c9qw2ky1hrqz2lh5g9q0zg4-libxkbcommon-1.4.0-doc
/nix/store/z9dnfkbwxdajv2sbwdw3ql0arc8623sk-libmanette-0.2.6-devdoc

For nix-diff to work, do I have to the derivation path built locally? One of the issues I have is building webkitgtk is an intense build job, which is why I want to rely on the cache. Tried it out in general and seems really useful.

EDIT: just read the README more carefully. Let me play with nix-instantiate.

This was helpful. Thanks so much.

nix-diff /nix/store/bg30d01il3278s2qg5hg1pm478rd599d-webkitgtk-2.36.3.drv /nix/store/nc6s68w808xqi61m2ksgyfzp2gcvpiry-webkitgtk-2.36.3.drv
- /nix/store/bg30d01il3278s2qg5hg1pm478rd599d-webkitgtk-2.36.3.drv:{out}
+ /nix/store/nc6s68w808xqi61m2ksgyfzp2gcvpiry-webkitgtk-2.36.3.drv:{out}
• The input derivation named `geoclue-2.5.7` differs
  - /nix/store/pphfssd07i2sf1229f07nhv6bph2jbih-geoclue-2.5.7.drv:{dev}
  + /nix/store/jgfk3jfljd7871v4nsy5sgy04jyyq1vy-geoclue-2.5.7.drv:{dev}
  • The input derivation named `glib-networking-2.72.0` differs
    - /nix/store/0p22yapy1br5y8ykha7qzalz1gf5ngi4-glib-networking-2.72.0.drv:{out}
    + /nix/store/vdhlz9vp2zl072x2zx7q5wl5psb137mk-glib-networking-2.72.0.drv:{out}
    • The input derivation named `libproxy-0.4.17` differs
      - /nix/store/n37kpqvddn91wb1n87gr5pavycfwdvl0-libproxy-0.4.17.drv:{dev}
      + /nix/store/w59z91mpg6g5q1v38ad47gzfrh4760rr-libproxy-0.4.17.drv:{dev}
      • The input derivation named `networkmanager-1.38.0` differs
        - /nix/store/mrmfv7sdd8sqmm4637d3rf4vjyq08z0h-networkmanager-1.38.0.drv:{dev}
        + /nix/store/4xdzga5qpjpmbkfhlvz0jx7w1jfif8qj-networkmanager-1.38.0.drv:{dev}
        • The input derivation named `fix-paths.patch` differs
          - /nix/store/i9krwm3z9p07j6jrqrhdcyvn7ghjkrxl-fix-paths.patch.drv:{out}
          + /nix/store/jfz0kl0wvwybfi8xy1qaqxpnijv6aal6-fix-paths.patch.drv:{out}
          • The set of input derivation names do not match:
              - openconnect-9.01
              + openconnect-8.20
          • The environments do not match:
              openconnect=''
              /nix/store/cdab6n9vjg2y3fmhjg6q8f5ra35jlb38-openconnect-9.01/nix/store/zjhja40j7yq7klcdb0vpi1pmzscvk1x6-openconnect-8.20
          ''
        • Skipping environment comparison
      • Skipping environment comparison
    • Skipping environment comparison
  • Skipping environment comparison
• Skipping environment comparison

This makes sense because I am working on some development work for openconnect. What doesn’t really make sense to me is why networkmanager is a buildInput for libproxy. Also, changing openconnect with an overlay should not impact networkmanager.

Once I disable my openconnect overlay. this behaves as expected… (sorry, I forgot about this. nix-diff is amazing)

copying path '/nix/store/nhgqm00yirr9hb7zlll0s9y4ikaik05g-webkitgtk-2.36.3-dev' from 'https://cache.nixos.org'...

openconnect shouldn’t really be an input for networkmanager tbh as well.

1 Like

That’s great news, glad I could be of help!

1 Like

Thanks to both you and @ElvishJerricco. Learned quite a bit from all the comments both of you provided. His example helped me pick up nix-instantiate usage (went through the manpage too).

NetworkManager requires the openconnect program so if we want to make that feature work, the most reliable way is to patch it in the source code. If we wanted to decouple it we would need to patch NM to look for the program on PATH and then have NixOS module add it to PATH of all the relevant NM services.

In the past, I have also talked with NM maintainers about the possibility of moving the VPN dependencies to the VPN plug-ins (e.g. GNOME / NetworkManager-openconnect · GitLab) and I believe they were not against it but we still have not gotten around to it.

1 Like

Can you share how you compiled just the derivations without building everything?

In my case I’m trying to do this in a flake configuration, so I feel nix-instantiate might not apply, but it should be helpful anyway, I’ve tried using nix path-info --derivation ~/.setup#laptop (nixFlakes: can't figure out nix-instantiate equivalent · Issue #3908 · NixOS/nix · GitHub) but I’m having trouble figuring out how to apply that to a flake with only nixosConfigurations

git+file:///home/yeshey/.setup
└───nixosConfigurations
    ├───arm-oracle: NixOS configuration
    ├───laptop: NixOS configuration
    ├───surface: NixOS configuration
    └───vm: NixOS configuration

I’m also not sure how to identify which derivation I’m currently using?

> find /nix/store/ -name "*webkitgtk*drv*"                    
/nix/store/kbj65x45aadzys3212kr1jw08z8yavsa-webkitgtk-2.40.5.tar.xz.drv
/nix/store/dznzk9mqkf8dxfjpbb0pb0vldjs7wqzx-webkitgtk-2.40.5+abi=4.1.drv
/nix/store/vqsxcs0l0hnaky1blgj6q6x33pfbdaa4-webkitgtk-2.40.5+abi=4.0.drv
/nix/store/bq281mrzbldyk6cjy8w8l265nibpg89b-webkitgtk-2.42.1.tar.xz.drv
/nix/store/30ccsjwsknja3s616f1g09v0r3d1alia-webkitgtk-2.42.1+abi=4.0.drv

Sorry if these are noobish questions and for reviving this old topic, if prompted I’ll make another topic but I feel this is at home here

thanks in advance!

So, for flakes, to get the derivation of my system configuration I had to use:

nix path-info --derivation .#nixosConfigurations.laptop.config.system.build.toplevel, with --impure too in my case
Thanks to Patryk27

Now I’m in a place where if I do an upgrade (sudo nixos-rebuild switch --flake ${location}#${host} --upgrade --update-input nixos-hardware --update-input nixos-nvidia-vgpu --update-input home-manager --update-input nixpkgs --impure), it’ll try to rebuild webkit (and a bunch of stuff) from source.

Is there a way to check what’s in cache to see why it’s not getting it from there, or maybe prevent the upgrade of a package if it’s not yet in cache?

If you mean the hydra binary cache, that sounds like you might be tracking master or staging rather than unstable. What is your nixpkgs source? github:nixos/nixpkgs? Or a specific branch?

Thanks for reaching out! I think I’m tracking 23.05 right now:

nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";

Might as well share my configuration

That looks fine at least from the nixpkgs release channel you’re tracking. It’s a big config so I can’t immediately see what else is happening, sorry to not be of more help. Godspeed!

ahaha np xd, I think ultimately I’d like to find a way to upgrade only the packages that are available in cache.
Thanks a lot anyway! Godspeed!

That’s what nixpkgs-unstable (and nixos-unstable) are, or any of the nixos-23.05, 23.11, … etc releases. Those channels are only updated after hydra builds everything successfully.

See https://status.nixos.org/ and Nix channels - NixOS Wiki

Stable channels (nixos-23.05) provide conservative updates for fixing bugs and security vulnerabilities, but do not receive major updates after initial release. New stable channels are released every six months.

You’re on a stable channel, which is even more guaranteed to only move forward when packages are built in Hydra. It’s likely you specify an overlay of some kind which overrides a base package into a new derivation that isn’t built by Hydra, and never will be.

1 Like

ohh, okay, I get it.
This basically guarantees that the problem is in my configuration somewhere then. That’s reassuring, I just have to find it. :upside_down_face: