Skip to content

Comparing .drv files appends .drv prefix to all versions #58

@diogotcorreia

Description

@diogotcorreia

It appears dix already supports comparing two .drv files (e.g., dix /nix/store/7iljc0gc1k0qa047922nhh5i540r1m62-nixos-system-phobos-25.11.20260504.41a7bd5.drv /nix/store/jw2flz83fkv1q0k6a9lam625z7h8k2p4-nixos-system-phobos-25.11.20260505.0c88e1f.drv)

However, all the versions in the output include .drv:

❯ dix /nix/store/7iljc0gc1k0qa047922nhh5i540r1m62-nixos-system-phobos-25.11.20260504.41a7bd5.drv /nix/store/jw2flz83fkv1q0k6a9lam625z7h8k2p4-nixos-system-phobos-25.11.20260505.0c88e1f.drv
<<< /nix/store/7iljc0gc1k0qa047922nhh5i540r1m62-nixos-system-phobos-25.11.20260504.41a7bd5.drv
>>> /nix/store/jw2flz83fkv1q0k6a9lam625z7h8k2p4-nixos-system-phobos-25.11.20260505.0c88e1f.drv

CHANGED
[C.] CVE                                                   <others> -> 2026-3184.patch.drv, 2026-4539.patch, 2026-27448.patch.drv, 2026-27459.patch.drv, 2026-32316.patch, 2026-33947.patch, 2026-33948.patch, 2026-39979.patch, 2026-40164.patch, 2026-40192.patch.drv, <others>
[U.] aws-c-event-stream                                    0.5.7.drv -> 0.7.0.drv
[U.] cryptography                                          46.0.5-vendor.drv, 46.0.5-vendor-staging.drv -> 46.0.7-vendor.drv, 46.0.7-vendor-staging.drv
[U.] cryptsetup                                            2.8.4.drv, 2.8.4.tar.xz.drv -> 2.8.6.drv, 2.8.6.tar.xz.drv
[D.] dash                                                  0.5.13.2.drv, 0.5.13.2.tar.gz.drv, 0.5.13.1.drv, 0.5.13.1.tar.gz.drv -> 0.5.13.2.drv ×2, 0.5.13.2.tar.gz.drv ×2
[U.] fmt                                                   12.0.0.drv -> 12.1.0.drv
[U.] gdk-pixbuf                                            2.44.5.drv, 2.44.5.tar.xz.drv -> 2.44.6.drv, 2.44.6.tar.xz.drv
[U.] getconf-glibc                                         2.40-218.drv -> 2.40-224.drv
[U.] getent-glibc                                          2.40-218.drv -> 2.40-224.drv
[U.] glibc                                                 2.40-218.drv, 2.40-218-source-unsecvars.drv, <others> -> 2.40-224.drv, 2.40-224-source-unsecvars.drv, <others>
[U.] glibc-locales                                         2.40-218.drv ×4, <others> -> 2.40-224.drv ×4, <others>
[U.] go                                                    1.25.8.drv, <others> -> 1.25.9.drv, <others>
[U.] hexdump-util-linux-minimal                            2.41.3.drv -> 2.41.4.drv
[U.] imagemagick                                           7.1.2-18.drv -> 7.1.2-19.drv
[U.] libXpm                                                3.5.17.tar.xz.drv -> 3.5.19.tar.xz.drv
[U.] libarchive                                            3.8.6.drv ×2 -> 3.8.6.drv, 3.8.7.drv
[U.] libde265                                              1.0.16.drv -> 1.0.18.drv
[U.] libjpeg-turbo                                         3.1.2.drv -> 3.1.4.drv
[U.] libopenmpt                                            0.8.5.drv, 0.8.5+release.autotools.tar.gz.drv -> 0.8.6.drv, 0.8.6+release.autotools.tar.gz.drv
[U.] libpng                                                1.6.54-apng.patch.gz.drv, 1.6.55.tar.xz.drv -> 1.6.56-apng.patch.gz.drv, 1.6.56.tar.xz.drv
[U.] libpng-apng                                           1.6.55.drv -> 1.6.56.drv
[U.] libxpm                                                3.5.17.drv -> 3.5.19.drv
[U.] locale-glibc                                          2.40-218.drv -> 2.40-224.drv
[D.] nghttp2                                               1.68.1.drv ×3, 1.68.1.tar.bz2.drv ×2, 1.67.1.drv, 1.67.1.tar.bz2.drv -> 1.68.1.drv ×5, 1.68.1.tar.bz2.drv ×3
[D.] nghttp3                                               1.15.0.drv, 1.15.0.tar.bz2.drv, 1.12.0.drv, 1.12.0.tar.bz2.drv -> 1.15.0.drv ×2, 1.15.0.tar.bz2.drv ×2
[U.] ngtcp2                                                1.17.0.drv, 1.17.0.tar.bz2.drv, <others> -> 1.22.1.drv, 1.22.1.tar.bz2.drv, <others>
[U.] nixos-system-phobos                                   25.11.20260504.41a7bd5.drv -> 25.11.20260505.0c88e1f.drv
[U.] nss-cacert                                            3.121.drv ×2 -> 3.121.drv, 3.123.drv
[U.] openssh                                               10.2p1.drv, 10.2p1.tar.gz.drv -> 10.3p1.drv, 10.3p1.tar.gz.drv
[U.] openssl                                               3.6.1.drv ×4, 3.6.1.tar.gz.drv ×3 -> 3.6.1.drv ×2, 3.6.1.tar.gz.drv ×2, 3.6.2.drv, 3.6.2.tar.gz.drv
[U.] python3.13-aiohttp                                    3.13.3.drv -> 3.13.4.drv
[U.] python3.13-cryptography                               46.0.5.drv -> 46.0.7.drv
[U.] python3.13-cryptography-vectors                       46.0.5.drv -> 46.0.7.drv
[D.] python3.13-requests                                   2.33.1.drv, 2.32.5.drv -> 2.33.1.drv ×2
[U.] systemd                                               258.5.drv -> 258.7.drv
[U.] systemd-minimal                                       258.5.drv -> 258.7.drv
[U.] systemd-minimal-libs                                  258.5.drv -> 258.7.drv
[U.] uptime-kuma                                           2.2.1.drv, 2.2.1-npm-deps.drv -> 2.3.0.drv, 2.3.0-npm-deps.drv
[U.] util-linux                                            2.41.3.drv, 2.41.3.tar.xz.drv ×2, <others> -> 2.41.4.drv, 2.41.4.tar.xz.drv ×2, <others>
[U.] util-linux-minimal                                    2.41.3.drv, <others> -> 2.41.4.drv, <others>
[U.] vim                                                   9.1.2148.drv -> 9.2.0340.drv
[D.] xz                                                    5.8.3.drv ×2, 5.8.1.drv, 5.8.1.tar.xz.drv, <others> -> 5.8.3.drv ×4, <others>

ADDED
[A.] 62b8f9fd0bb3b862823cd34afce4b389fbd27569.patch.drv    <none>
[A.] go1.25.9.src.tar.gz.drv                               <none>
[A.] pam_lastlog2-add-lpam-to-Makemodule.am.patch          <none>
[A.] unit-modprobe-.service.drv                            <none>

REMOVED
[R.] bits-only-build-when-cpu_set_t-is-available.patch.drv <none>
[R.] go1.25.8.src.tar.gz.drv                               <none>
[R.] pkcs11-fetchkey-error-to-debug.patch.drv              <none>
[R.] pkcs11-fix-pinentry.patch.drv                         <none>
[R.] pkcs11-tests-allow-module-path.patch.drv              <none>
[R.] ssh-agent-tests-increase-timeout.patch.drv            <none>

SIZE: 46.5 MiB -> 46.5 MiB
DIFF: 44.4 KiB

nvd seems to handle it a bit better, by removing the .drv suffix:

❯ nvd diff /nix/store/7iljc0gc1k0qa047922nhh5i540r1m62-nixos-system-phobos-25.11.20260504.41a7bd5.drv /nix/store/jw2flz83fkv1q0k6a9lam625z7h8k2p4-nixos-system-phobos-25.11.20260505.0c88e1f.drv
<<< /nix/store/7iljc0gc1k0qa047922nhh5i540r1m62-nixos-system-phobos-25.11.20260504.41a7bd5.drv
>>> /nix/store/jw2flz83fkv1q0k6a9lam625z7h8k2p4-nixos-system-phobos-25.11.20260505.0c88e1f.drv
Version changes:
[C.]  #01  CVE                              2014-8139.diff, 2014-8140.diff, 2014-8141.diff, 2014-9636.diff, 2014-9913.patch, 2015-7696.diff, 2015-7697.diff, 2016-9844.patch, 2017-10140-cwd-db_config.patch, 2017-10140-4.8-cwd-db_config.patch, 2018-18384.patch, 2019-13232-1.patch x2, 2019-13232-2.patch x2, 2019-13232-3.patch x2, 2021-3468.patch, 2021-3502.patch, 2021-4217.patch, 2021-40633.patch, 2022-28391.patch x2, 2022-48174.patch, 2023-1981.patch, 2023-38469.patch, 2023-38470.patch, 2023-38471.patch, 2023-38471-2.patch, 2023-38472.patch, 2023-38473.patch, 2023-39810.patch, 2023-42363.patch, 2023-42364_CVE-2023-42365.patch, 2023-42366.patch, 2024-52616.patch, 2024-56406.patch, 2025-5244.diff, 2025-5245.diff, 2025-15269.patch, 2025-15275.patch, 2025-15279_1.patch, 2025-15279_2.patch, 2025-26519_0.patch, 2025-26519_1.patch, 2025-31344.patch, 2025-40909.patch, 2025-46836.patch, 2025-62813.patch, 2025-66418.patch, 2025-66471.patch, 2026-0989.patch x2, 2026-0990.patch x2, 2026-0992.patch x2, 2026-2903.patch, 2026-22693.patch, 2026-25068.patch, 2026-26157_CVE-2026-26158.patch -> 2014-8139.diff, 2014-8140.diff, 2014-8141.diff, 2014-9636.diff, 2014-9913.patch, 2015-7696.diff, 2015-7697.diff, 2016-9844.patch, 2017-10140-cwd-db_config.patch, 2017-10140-4.8-cwd-db_config.patch, 2018-18384.patch, 2019-13232-1.patch x2, 2019-13232-2.patch x2, 2019-13232-3.patch x2, 2021-3468.patch, 2021-3502.patch, 2021-4217.patch, 2021-40633.patch, 2022-28391.patch x2, 2022-48174.patch, 2023-1981.patch, 2023-38469.patch, 2023-38470.patch, 2023-38471.patch, 2023-38471-2.patch, 2023-38472.patch, 2023-38473.patch, 2023-39810.patch, 2023-42363.patch, 2023-42364_CVE-2023-42365.patch, 2023-42366.patch, 2024-52616.patch, 2024-56406.patch, 2025-5244.diff, 2025-5245.diff, 2025-15269.patch, 2025-15275.patch, 2025-15279_1.patch, 2025-15279_2.patch, 2025-26519_0.patch, 2025-26519_1.patch, 2025-31344.patch, 2025-40909.patch, 2025-46836.patch, 2025-62813.patch, 2025-66418.patch, 2025-66471.patch, 2026-0989.patch x2, 2026-0990.patch x2, 2026-0992.patch x2, 2026-2903.patch, 2026-3184.patch x2, 2026-4539.patch, 2026-22693.patch, 2026-25068.patch, 2026-26157_CVE-2026-26158.patch, 2026-27448.patch, 2026-27459.patch, 2026-32316.patch, 2026-33947.patch, 2026-33948.patch, 2026-39979.patch, 2026-40164.patch, 2026-40192.patch
[U.]  #02  aws-c-event-stream               0.5.7 -> 0.7.0
[U.]  #03  cryptography                     46.0.5-vendor, 46.0.5-vendor-staging -> 46.0.7-vendor, 46.0.7-vendor-staging
[U.]  #04  cryptsetup                       2.8.4, 2.8.4.tar.xz -> 2.8.6, 2.8.6.tar.xz
[C.]  #05  dash                             0.5.13.1, 0.5.13.1.tar.gz, 0.5.13.2, 0.5.13.2.tar.gz -> 0.5.13.2 x2, 0.5.13.2.tar.gz x2
[U.]  #06  fmt                              12.0.0 -> 12.1.0
[U.]  #07  gdk-pixbuf                       2.44.5, 2.44.5.tar.xz -> 2.44.6, 2.44.6.tar.xz
[U.]  #08  getconf-glibc                    2.40-218 -> 2.40-224
[U*]  #09  getent-glibc                     2.40-218 -> 2.40-224
[C*]  #10  glibc                            2.26.patch, 2.40.tar.xz x2, 2.40-218, 2.40-218-source-unsecvars, 2.42, 2.42.tar.xz x3, 2.42-61 -> 2.26.patch, 2.40.tar.xz x2, 2.40-224, 2.40-224-source-unsecvars, 2.42, 2.42.tar.xz x3, 2.42-61
[C*]  #11  glibc-locales                    2.40-218 x4, 2.42-61 x2 -> 2.40-224 x4, 2.42-61 x2
[C.]  #12  go                               1.22.12-linux-amd64-bootstrap, 1.25.8 -> 1.22.12-linux-amd64-bootstrap, 1.25.9
[U.]  #13  hexdump-util-linux-minimal       2.41.3 -> 2.41.4
[U.]  #14  imagemagick                      7.1.2-18 -> 7.1.2-19
[U.]  #15  libXpm                           3.5.17.tar.xz -> 3.5.19.tar.xz
[C.]  #16  libarchive                       3.8.6 x2 -> 3.8.6, 3.8.7
[U.]  #17  libde265                         1.0.16 -> 1.0.18
[U.]  #18  libjpeg-turbo                    3.1.2 -> 3.1.4
[U.]  #19  libopenmpt                       0.8.5, 0.8.5+release.autotools.tar.gz -> 0.8.6, 0.8.6+release.autotools.tar.gz
[U.]  #20  libpng                           1.6.54-apng.patch.gz, 1.6.55.tar.xz -> 1.6.56-apng.patch.gz, 1.6.56.tar.xz
[U.]  #21  libpng-apng                      1.6.55 -> 1.6.56
[U.]  #22  libxpm                           3.5.17 -> 3.5.19
[U.]  #23  locale-glibc                     2.40-218 -> 2.40-224
[C.]  #24  nghttp2                          1.67.1 x2, 1.67.1.tar.bz2 x2, 1.68.1 x3, 1.68.1.tar.bz2 x2 -> 1.68.1 x5, 1.68.1.tar.bz2 x3
[C.]  #25  nghttp3                          1.12.0, 1.12.0.tar.bz2, 1.15.0, 1.15.0.tar.bz2 -> 1.15.0 x2, 1.15.0.tar.bz2 x2
[C.]  #26  ngtcp2                           1.17.0, 1.17.0.tar.bz2, 1.22.0, 1.22.0.tar.bz2 -> 1.22.0, 1.22.0.tar.bz2, 1.22.1, 1.22.1.tar.bz2
[U.]  #27  nixos-system-phobos              25.11.20260504.41a7bd5 -> 25.11.20260505.0c88e1f
[C.]  #28  nss-cacert                       3.121 x2 -> 3.121, 3.123
[U.]  #29  openssh                          10.2p1, 10.2p1.tar.gz -> 10.3p1, 10.3p1.tar.gz
[C.]  #30  openssl                          3.6.1 x4, 3.6.1.tar.gz x3 -> 3.6.1 x2, 3.6.1.tar.gz x2, 3.6.2 x2, 3.6.2.tar.gz x2
[U.]  #31  python3.13-aiohttp               3.13.3 -> 3.13.4
[U.]  #32  python3.13-cryptography          46.0.5 -> 46.0.7
[U.]  #33  python3.13-cryptography-vectors  46.0.5 -> 46.0.7
[C.]  #34  python3.13-requests              2.32.5, 2.33.1 -> 2.33.1 x2
[C*]  #35  systemd                          <none>, 258.5 -> <none>, 258.7
[U.]  #36  systemd-minimal                  258.5 -> 258.7
[U.]  #37  systemd-minimal-libs             258.5 -> 258.7
[U.]  #38  uptime-kuma                      2.2.1, 2.2.1-npm-deps -> 2.3.0, 2.3.0-npm-deps
[C*]  #39  util-linux                       2.41.3, 2.41.3.tar.xz x2, 2.42.tar.xz -> 2.41.4, 2.41.4.tar.xz x2, 2.42.tar.xz
[C.]  #40  util-linux-minimal               2.41.3, 2.42 -> 2.41.4, 2.42
[U.]  #41  vim                              9.1.2148 -> 9.2.0340
[C.]  #42  xz                               5.4.7, 5.4.7.tar.gz, 5.8.1 x2, 5.8.1.tar.xz, 5.8.2, 5.8.2.tar.gz, 5.8.3 x2, 5.8.3.tar.xz -> 5.4.7, 5.4.7.tar.gz, 5.8.2, 5.8.2.tar.gz, 5.8.3 x4, 5.8.3.tar.xz
Added packages:
[A.]  #1  62b8f9fd0bb3b862823cd34afce4b389fbd27569.patch  <none>
[A.]  #2  go1.25.9.src.tar.gz                             <none>
[A.]  #3  pam_lastlog2-add-lpam-to-Makemodule.am.patch    <none>
[A.]  #4  unit-modprobe-.service                          <none>
Removed packages:
[R.]  #1  bits-only-build-when-cpu_set_t-is-available.patch  <none> x2
[R.]  #2  go1.25.8.src.tar.gz                                <none>
[R.]  #3  pkcs11-fetchkey-error-to-debug.patch               <none>
[R.]  #4  pkcs11-fix-pinentry.patch                          <none>
[R.]  #5  pkcs11-tests-allow-module-path.patch               <none>
[R.]  #6  ssh-agent-tests-increase-timeout.patch             <none>
Closure size: 7529 -> 7536 (5054 paths added, 5047 paths removed, delta +7, disk usage +44.4KiB).

Would it be possible to strip the .drv prefix?

Thank you for this awesome tool!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions