From dc1f4a89bdd34b5656a9ee39fbfd20f2cb2d035f Mon Sep 17 00:00:00 2001 From: Daniel Langbein Date: Wed, 24 Jan 2024 15:33:48 +0100 Subject: [PATCH] docs --- NixOS.md | 254 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 11 ++- 2 files changed, 263 insertions(+), 2 deletions(-) diff --git a/NixOS.md b/NixOS.md index 8df55fe..9368ec7 100644 --- a/NixOS.md +++ b/NixOS.md @@ -18,6 +18,7 @@ This document contains general notes about NixOS that are independent of my NixO * [Search for options](#search-for-options) * [Search which package owns a file](#search-which-package-owns-a-file) * [List files of package](#list-files-of-package) + * [Package runtime dependency report](#package-runtime-dependency-report) * [Compare two versions of NixOS system profile](#compare-two-versions-of-nixos-system-profile) * [NixOS configuration debugging](#nixos-configuration-debugging) * [Show Nix configuration](#show-nix-configuration) @@ -221,6 +222,259 @@ Excerpt of the result: /nix/store/jqvxmx65mfinbsm6db9kmcqmphl44xhp-nano-7.2/share/nano/autoconf.nanorc ``` +## Package runtime dependency report + +- https://github.com/nix-how/nix-demos#runtimereport -> https://www.nmattia.com/posts/2019-10-08-runtime-dependencies/ + +Example: Licenses and maintainers of runtime dependencies of package `hello`: + +```shell +nix --extra-experimental-features flakes --extra-experimental-features nix-command bundle --bundler github:nix-how/nix-demos#runtimeReport nixpkgs#hello +cat hello-*-report +``` +```console + --------------------------------- + | OFFICIAL REPORT | + | requested by: the lawyers | + | written by: yours truly | + | TOP SECRET - TOP SECRET | + --------------------------------- + +runtime dependencies of hello-2.12.1: + - libunistring-1.1 (lgpl3Plus) maintained by + - xgcc-13.2.0 (gpl3Plus) maintained by Patrick Hilhorst, Vladimír Čunát, John Ericson + - hello-2.12.1 (gpl3Plus) maintained by Eelco Dolstra + - libidn2-2.3.4 (lgpl3Plus, gpl2Plus, gpl3Plus) maintained by Franz Pletz + - glibc-2.38-27 (lgpl2Plus) maintained by Eelco Dolstra, Maximilian Bosch, Connor Baker +``` + +Example: `nano` + +```console + --------------------------------- + | OFFICIAL REPORT | + | requested by: the lawyers | + | written by: yours truly | + | TOP SECRET - TOP SECRET | + --------------------------------- + +runtime dependencies of nano-7.2: + - libunistring-1.1 (lgpl3Plus) maintained by + - file-5.45 (bsd2) maintained by Doron Behar + - xgcc-13.2.0 (gpl3Plus) maintained by Patrick Hilhorst, Vladimír Čunát, John Ericson + - nano-7.2 (gpl3Plus) maintained by Joachim Fasting, Tim Steinbach + - libidn2-2.3.4 (lgpl3Plus, gpl2Plus, gpl3Plus) maintained by Franz Pletz + - zlib-1.3 (zlib) maintained by nobody + - glibc-2.38-27 (lgpl2Plus) maintained by Eelco Dolstra, Maximilian Bosch, Connor Baker + - ncurses-6.4 (mit) maintained by nobody +``` + +Example: `firefox` + +```console + --------------------------------- + | OFFICIAL REPORT | + | requested by: the lawyers | + | written by: yours truly | + | TOP SECRET - TOP SECRET | + --------------------------------- + +runtime dependencies of firefox-121.0.1: + - libunistring-1.1 (lgpl3Plus) maintained by + - perl5.38.2-WWW-RobotRules-6.02 (artistic1, gpl1Plus) maintained by nobody + - gdbm-1.23 (gpl3Plus) maintained by Rahul Gopinath + - perl5.38.2-HTTP-CookieJar-0.014 (asl20) maintained by nobody + - gmp-with-cxx-6.3.0 (lgpl3Only, gpl2Only) maintained by Rahul Gopinath + - libXdamage-1.1.6 (no license) maintained by nobody + - expat-2.5.0 (mit) maintained by nobody + - gnutls-3.8.2 (lgpl21Plus) maintained by Vladimír Čunát + - dbus-1.14.10 (gpl2Plus) maintained by Jan Tojnar + - systemd-minimal-libs-254.6 (lgpl21Plus) maintained by Florian Klink, Finn Behrens + - gnutar-1.35 (gpl3Plus) maintained by + - util-linux-minimal-2.39.3 (gpl2Only, gpl2Plus, gpl3Plus, lgpl21Plus, bsd3, bsdOriginalUC, publicDomain) maintained by nobody + - gdk-pixbuf-2.42.10 (lgpl21Plus) maintained by Eelco Dolstra, Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - tracker-3.6.0 (gpl2Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - libXext-1.3.5 (no license) maintained by nobody + - openssl-3.0.12 (asl20) maintained by Markus Theil + - at-spi2-core-2.50.0 (lgpl21Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey, Michael Raskin + - libXtst-1.2.4 (no license) maintained by nobody + - gcc-13.2.0 (gpl3Plus) maintained by Patrick Hilhorst, Vladimír Čunát, John Ericson + - bzip2-1.0.8 (bsdOriginal) maintained by Jörg Thalheim + - perl5.38.2-TimeDate-2.33 (artistic1, gpl1Plus) maintained by nobody + - libsoup-3.4.4 (lgpl2Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey, Jason O'Conal, Michael Raskin + - dconf-0.40.0 (lgpl21Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - cairo-1.18.0 (lgpl2Plus, mpl10) maintained by nobody + - libxcrypt-4.4.36 (lgpl21Plus) maintained by Misha Gusarov, Martin Weinelt + - libxml2-2.12.3-unstable-2023-12-14 (mit) maintained by Eelco Dolstra, Jan Tojnar + - libffi-3.4.4 (mit) maintained by Matthew Bauer + - perl5.38.2-Test-Fatal-0.017 (artistic1, gpl1Plus) maintained by nobody + - gcc-13.2.0 (gpl3Plus) maintained by Patrick Hilhorst, Vladimír Čunát, John Ericson + - libnetfilter_conntrack-1.0.9 (gpl2Plus) maintained by nobody + - shadow-4.14.2 (bsd3) maintained by nobody + - util-linux-minimal-2.39.3 (gpl2Only, gpl2Plus, gpl3Plus, lgpl21Plus, bsd3, bsdOriginalUC, publicDomain) maintained by nobody + - zstd-1.5.5 (bsd3) maintained by Orivej Desh + - libyaml-0.2.5 (mit) maintained by nobody + - db-4.8.30 (sleepycat) maintained by nobody + - json-c-0.17 (mit) maintained by Jason O'Conal + - avahi-0.8 (lgpl2Plus) maintained by Jason O'Conal, Robin Gloster + - libXfixes-6.0.1 (no license) maintained by nobody + - libsoup-2.74.3 (lgpl2Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey, Jason O'Conal, Michael Raskin + - libapparmor-3.1.6 (gpl2Only, lgpl21Only) maintained by Julien Moutinho, Austin Seipp, Andreas Schrägle, Janne Heß + - cups-2.4.7 (asl20) maintained by Matthew Bauer + - wayland-1.22.0 (mit) maintained by Michael Weiss, Cody Opel, Alyssa Ross + - libXrandr-1.5.4 (no license) maintained by nobody + - cryptsetup-2.6.1 (gpl2) maintained by Ryan Lahfa + - nghttp2-1.57.0 (mit) maintained by Renaud + - file-5.45 (bsd2) maintained by Doron Behar + - gtk+3-3.24.39 (lgpl2Plus) maintained by Michael Raskin, Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - giflib-5.2.1 (mit) maintained by + - gmp-with-cxx-6.3.0 (lgpl3Only, gpl2Only) maintained by Rahul Gopinath + - libselinux-3.3 (gpl2Plus) maintained by + - freetype-2.13.2 (gpl2Plus) maintained by Thomas Tuegel + - graphite2-1.3.14 (lgpl21) maintained by Michael Raskin + - bash-5.2-p21 (gpl3Plus) maintained by Will Dietz + - perl5.38.2-Net-HTTP-6.23 (artistic1, gpl1Plus) maintained by nobody + - xkeyboard-config-2.40 (no license) maintained by nobody + - audit-3.1.2 (gpl2Plus) maintained by Anderson Torres + - libXrender-0.9.11 (no license) maintained by nobody + - gnum4-1.4.19 (gpl3Plus) maintained by nobody + - libdeflate-1.19 (mit) maintained by Orivej Desh, Dmitry Bogatov + - perl5.38.2-HTTP-Cookies-6.10 (artistic1, gpl1Plus) maintained by nobody + - fribidi-1.0.13 (lgpl21) maintained by nobody + - libfido2-1.14.0 (bsd2) maintained by Will Dietz, Pavol Rusnak + - libuv-1.47.0 (mit, isc, bsd2, bsd3, cc-by-40) maintained by Mario Rodas + - python3-3.11.7 (psfl) maintained by Frederik Rietdijk + - xgcc-13.2.0 (gpl3Plus) maintained by Patrick Hilhorst, Vladimír Čunát, John Ericson + - libmnl-1.0.5 (lgpl21Plus) maintained by nobody + - util-linux-minimal-2.39.3 (gpl2Only, gpl2Plus, gpl3Plus, lgpl21Plus, bsd3, bsdOriginalUC, publicDomain) maintained by nobody + - libthai-0.1.29 (lgpl21Plus) maintained by + - gawk-5.2.2 (gpl3Plus) maintained by + - libXmu-1.1.4 (no license) maintained by nobody + - unbound-1.19.0 (bsd3) maintained by Andreas Schrägle, Janne Heß + - perl5.38.2-HTTP-Message-6.45 (artistic1, gpl1Plus) maintained by nobody + - libbpf-1.3.0 (lgpl21, bsd2) maintained by Austin Seipp, Vladimír Čunát, Sascha Grunert, Dominique Martinet + - pixman-0.42.2 (mit) maintained by nobody + - libXft-2.3.8 (no license) maintained by nobody + - libGL-1.7.0 (mit, bsd1, bsd3, gpl3Only, asl20) maintained by nobody + - firefox-121.0.1 (mpl20) maintained by Bernardo Meurer, Martin Weinelt + - util-linux-minimal-2.39.3 (gpl2Only, gpl2Plus, gpl3Plus, lgpl21Plus, bsd3, bsdOriginalUC, publicDomain) maintained by nobody + - perl5.38.2-Clone-0.46 (artistic1, gpl1Plus) maintained by nobody + - iptables-1.8.10 (gpl2) maintained by Franz Pletz + - libssh2-1.11.0 (bsd3, libssh2) maintained by Sandro Jäckel + - systemd-minimal-254.6 (lgpl21Plus) maintained by Florian Klink, Finn Behrens + - icu4c-73.2 (no license) maintained by Michael Raskin + - pango-1.51.0 (lgpl2Plus) maintained by Michael Raskin, Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - libmicrohttpd-0.9.71 (lgpl2Plus) maintained by Eelco Dolstra, Rahul Gopinath, Franz Pletz + - libcbor-unstable-2023-01-29 (mit) maintained by Will Dietz + - attr-2.5.1 (gpl2Plus) maintained by nobody + - perl5.38.2-HTML-Parser-3.81 (artistic1, gpl1Plus) maintained by nobody + - libSM-1.2.4 (no license) maintained by nobody + - libpng-apng-1.6.40 (libpng2) maintained by Vladimír Čunát + - glib-2.78.3 (lgpl21Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey, Jason O'Conal, Michael Raskin + - gsettings-desktop-schemas-45.0 (lgpl21Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - nettle-3.9.1 (gpl2Plus) maintained by Vladimír Čunát + - perl5.38.2-HTTP-Date-6.06 (artistic1, gpl1Plus) maintained by nobody + - libusb-1.0.26 (lgpl21Plus) maintained by Pavol Rusnak, Ido Samuelson + - libargon2-20190702 (asl20, cc0) maintained by Taeer Bar-Yam, Owen Lynch + - brotli-1.1.0 (mit) maintained by freezeboy + - glibc-2.38-27 (lgpl2Plus) maintained by Eelco Dolstra, Maximilian Bosch, Connor Baker + - libcap-ng-0.8.3 (lgpl21) maintained by nobody + - libnftnl-1.2.6 (gpl2Plus) maintained by Franz Pletz, Andreas Schrägle, Janne Heß + - libxcb-1.16 (no license) maintained by nobody + - glibc-2.38-27 (lgpl2Plus) maintained by Eelco Dolstra, Maximilian Bosch, Connor Baker + - libpcap-1.10.4 (bsd3) maintained by Franz Pletz + - libXt-1.3.0 (no license) maintained by nobody + - publicsuffix-list-unstable-2023-02-16 (mpl20) maintained by Renaud + - libepoxy-1.5.10 (mit) maintained by Cillian de Róiste + - libX11-1.8.7 (no license) maintained by nobody + - keyutils-1.6.3 (gpl2Plus) maintained by nobody + - libXcursor-1.2.1 (no license) maintained by nobody + - fontconfig-2.14.2 (bsd2) maintained by Jan Tojnar + - tzdata-2023d (bsd3, publicDomain) maintained by Andreas Schrägle, Franz Pletz + - tpm2-tss-4.0.1 (bsd2) maintained by Arthur Gautier + - libxkbcommon-1.5.0 (mit) maintained by Michael Weiss, Thomas Tuegel + - bash-interactive-5.2-p21 (gpl3Plus) maintained by Will Dietz + - sqlite-3.44.2 (publicDomain) maintained by Eelco Dolstra, Nicolas Pouillard + - perl5.38.2-XML-Parser-2.46 (artistic1, gpl1Plus) maintained by nobody + - perl5.38.2-HTTP-Daemon-6.16 (artistic1, gpl1Plus) maintained by nobody + - getent-glibc-2.38-27 (no license) maintained by nobody + - libcap-2.69 (bsd3) maintained by nobody + - xz-5.4.5 (gpl2Plus, lgpl21Plus) maintained by Sander van der Burg + - perl5.38.2-Test-Needs-0.002010 (artistic1, gpl1Plus) maintained by nobody + - perl5.38.2-File-Listing-6.16 (artistic1, gpl1Plus) maintained by nobody + - libdatrie-2019-12-20 (lgpl21Plus) maintained by + - readline-8.2p7 (gpl3Plus) maintained by Will Dietz + - libXcomposite-0.4.6 (no license) maintained by nobody + - perl5.38.2-IO-HTML-1.004 (artistic1, gpl1Plus) maintained by nobody + - coreutils-9.4 (gpl3Plus) maintained by Janne Heß + - dejavu-fonts-minimal-2.37 (free) maintained by nobody + - glib-2.78.3 (lgpl21Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey, Jason O'Conal, Michael Raskin + - libpsl-0.21.2 (mit) maintained by Renaud + - libgpg-error-1.47 (lgpl2Plus) maintained by Rahul Gopinath + - libnl-3.8.0 (lgpl21) maintained by Franz Pletz + - openssl-3.0.12 (asl20) maintained by Markus Theil + - pcre-8.45 (bsd3) maintained by + - perl5.38.2-Try-Tiny-0.31 (mit) maintained by nobody + - libidn2-2.3.4 (lgpl3Plus, gpl2Plus, gpl3Plus) maintained by Franz Pletz + - libtool-2.4.7 (gpl2Plus) maintained by + - p11-kit-0.25.3 (bsd3) maintained by nobody + - harfbuzz-7.3.0 (mit) maintained by Eelco Dolstra + - gnugrep-3.11 (gpl3Plus) maintained by Janne Heß, Moritz Lumme + - zlib-1.3 (zlib) maintained by nobody + - gnused-4.9 (gpl3Plus) maintained by Jörg Thalheim + - libXdmcp-1.1.4 (no license) maintained by nobody + - libnfnetlink-1.0.2 (gpl2) maintained by nobody + - libevent-2.1.12 (bsd3) maintained by nobody + - libICE-1.1.1 (no license) maintained by nobody + - libmd-1.1.0 (bsd3, bsd2, isc, beerware, publicDomain) maintained by Michael Weiss + - lvm2-2.03.22 (gpl2, bsd2, lgpl21) maintained by Michael Raskin, Andreas Schrägle, Janne Heß + - lz4-1.9.4 (bsd2, gpl2Plus) maintained by nobody + - glibc-2.38-27 (lgpl2Plus) maintained by Eelco Dolstra, Maximilian Bosch, Connor Baker + - libdaemon-0.14 (lgpl2Plus) maintained by nobody + - elfutils-0.190 (gpl2Only, lgpl3Plus, gpl3Plus) maintained by Eelco Dolstra, Ryan Burns + - libwebp-1.3.2 (bsd3) maintained by Andreas Schrägle + - libXi-1.8.1 (no license) maintained by nobody + - gobject-introspection-1.78.1 (gpl2, lgpl2) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey, Jason O'Conal, Artturi N + - json-glib-1.8.0 (lgpl21Plus) maintained by Bobby Rong, Tor Hedin Brønner, Jan Tojnar, Daniel Șerbănescu, Maxine Aubrey + - xz-5.4.5 (gpl2Plus, lgpl21Plus) maintained by Sander van der Burg + - tcb-1.2 (bsd3) maintained by Yurii Izorkin + - pcre2-10.42 (bsd3) maintained by Thomas Tuegel + - kexec-tools-2.0.26 (gpl2) maintained by nobody + - kmod-31 (lgpl21Plus, gpl2Plus) maintained by Artturi N + - libunwind-1.6.2 (mit) maintained by Orivej Desh + - perl-5.38.2 (artistic1) maintained by Eelco Dolstra + - libseccomp-2.5.5 (lgpl21Only) maintained by Austin Seipp + - perl5.38.2-Encode-Locale-1.05 (artistic1, gpl1Plus) maintained by nobody + - perl5.38.2-Test-RequiresInternet-0.05 (artistic1, gpl1Plus) maintained by nobody + - ncurses-6.4 (mit) maintained by nobody + - zstd-1.5.5 (bsd3) maintained by Orivej Desh + - curl-8.4.0 (curl) maintained by Jason O'Conal + - perl5.38.2-HTTP-Negotiate-6.01 (artistic1, gpl1Plus) maintained by nobody + - perl5.38.2-libwww-perl-6.72 (artistic1, gpl1Plus) maintained by nobody + - systemd-254.6 (lgpl21Plus) maintained by Florian Klink, Finn Behrens + - popt-1.19 (mit) maintained by Alyssa Ross + - kmod-31 (lgpl21Plus, gpl2Plus) maintained by Artturi N + - libXinerama-1.1.5 (no license) maintained by nobody + - libgcrypt-1.10.3 (lgpl2Plus) maintained by Rahul Gopinath + - acl-2.3.1 (gpl2Plus) maintained by nobody + - libtasn1-4.19.0 (lgpl2Plus) maintained by nobody + - perl5.38.2-HTML-Tagset-3.20 (artistic1, gpl1Plus) maintained by nobody + - pcsclite-2.0.1 (bsd3) maintained by Anthony Roussel + - libtiff-4.6.0 (libtiff) maintained by nobody + - bzip2-1.0.8 (bsdOriginal) maintained by Jörg Thalheim + - libbsd-unstable-2023-04-29 (beerware, bsd2, bsd3, bsdOriginal, isc, mit) maintained by Matthew Bauer + - libkrb5-1.21.2 (mit) maintained by nobody + - iso-codes-4.15.0 (lgpl21) maintained by nobody + - fontconfig-2.14.2 (bsd2) maintained by Jan Tojnar + - gzip-1.13 (gpl3Plus) maintained by nobody + - linux-pam-1.5.2 (bsd3) maintained by nobody + - libjpeg-turbo-2.1.5.1 (ijg) maintained by Vladimír Čunát, Cole Mickens, Kevin Amado + - perl5.38.2-URI-5.21 (artistic1, gpl1Plus) maintained by nobody + - dav1d-1.2.1 (bsd2) maintained by Michael Weiss + - perl5.38.2-LWP-MediaTypes-6.04 (artistic1, gpl1Plus) maintained by nobody + - libXau-1.0.11 (no license) maintained by nobody +``` + ## Compare two versions of NixOS system profile Get latest system profile. This is the profile (usually) being active after booting the system: diff --git a/README.md b/README.md index 1d9f631..a04af0d 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ See also: * [BTRFS swap file](#btrfs-swap-file) * [BTRFS CoW](#btrfs-cow) * [Automount encrypted drive](#automount-encrypted-drive) - * [List failed services](#list-failed-services) + * [List active and failed services](#list-active-and-failed-services) ## NixOS installation @@ -312,7 +312,7 @@ sudo nixos-generate-config --dir hosts/$(hostname) * If it is an SSD, enable `boot.initrd.luks.devices..allowDiscards` -## List failed services +## List active and failed services If there are e.g. file conflicts due to preexisting dotfiles, the Home Manager user service might fail. To list all failed services, run: @@ -320,3 +320,10 @@ To list all failed services, run: ```shell systemctl --failed ``` + +List all active services: + +```shell +systemctl list-units --type=service --state=running +systemctl --user list-units --type=service --state=running +```