You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think that the default home path, /homeless-shelter, should be replaced with a more neutral path. Some suggestions would be /nowhere or /nonexistent, matching conventions for HOME of the nobody user.
The reason for this change is the global crisis of housing affordability. I do not think that having "homeless-shelter" so prominently featured is a desirable thing to have.
As a secondary benefit, a path like /nonexistent is also more obvious to understand; it is a path that does not exist. To clarify that it is a non-existing home folder, we could use /nonexistent-home. With /homeless-shelter, one has to think to understand what the meaning of /homeless-shelter would be (and such thinking brings up thoughts of the very real global issues).
In nixpkgs, I've done a simple grep of occurences of this string. Most of these are in comments or using it as a constant value, but there are some instances where a variable is checked against this string. These will need to be changed to either check for both the new and old paths, or do a more robust check (EACCESS, maybe).
$ git show | cat commit 3d41404dfd83f56844b2a16fcd3d5c4420456948Merge: e70f156987ac c25c2933a7a8Author: Martin Weinelt <[email protected]>Date: Fri Feb 7 01:38:50 2025 +0100 nss_latest: 3.107 -> 3.108 (#379643)
$ grep -R '/homeless-shelter'. --context=1--./nixos/lib/make-disk-image.nix- # clobbers $HOME/.nix-defexpr/channels/nixos This would cause a folder./nixos/lib/make-disk-image.nix: # /homeless-shelter to show up in the final image which in turn breaks./nixos/lib/make-disk-image.nix- # nix builds in the target image if sandboxing is turned off (through--./nixos/modules/services/misc/felix.nix- description = "OSGi user";./nixos/modules/services/misc/felix.nix: home = "/homeless-shelter";./nixos/modules/services/misc/felix.nix- };--./nixos/modules/services/networking/ircd-hybrid/control.in- cd /home/ircd./nixos/modules/services/networking/ircd-hybrid/control.in: env - HOME=/homeless-shelter $extraEnv \./nixos/modules/services/networking/ircd-hybrid/control.in- @su@/bin/su ircd --shell=/bin/sh -c ' @ircdHybrid@/bin/ircd -configfile @out@/conf/ircd.conf </dev/null -logfile /home/ircd/ircd.log' 2>&1 >/var/log/ircd-hybrid.out--./nixos/modules/services/networking/vsftpd.nix- else./nixos/modules/services/networking/vsftpd.nix: "/homeless-shelter";./nixos/modules/services/networking/vsftpd.nix- };--./nixos/modules/services/web-servers/tomcat.nix- description = "Tomcat user";./nixos/modules/services/web-servers/tomcat.nix: home = "/homeless-shelter";./nixos/modules/services/web-servers/tomcat.nix- group = "tomcat";--./nixos/tests/qemu-vm-external-disk-image.nix- # Make sure systemd boot didn't clobber this./nixos/tests/qemu-vm-external-disk-image.nix: machine.succeed("[ ! -e /homeless-shelter ]")./nixos/tests/qemu-vm-external-disk-image.nix- '';--./pkgs/applications/networking/cloudflared/default.nix- preCheck = ''./pkgs/applications/networking/cloudflared/default.nix: # Workaround for: sshgen_test.go:74: mkdir /homeless-shelter/.cloudflared: no such file or directory./pkgs/applications/networking/cloudflared/default.nix- export HOME="$(mktemp -d)"--./pkgs/applications/networking/gns3/server.nix- # Otherwise tests will fail to create directory./pkgs/applications/networking/gns3/server.nix: # Permission denied: '/homeless-shelter'./pkgs/applications/networking/gns3/server.nix- preCheck = ''--./pkgs/applications/networking/protonvpn-gui/default.nix- preCheck = ''./pkgs/applications/networking/protonvpn-gui/default.nix: # Needed for Permission denied: '/homeless-shelter'./pkgs/applications/networking/protonvpn-gui/default.nix- export HOME=$(mktemp -d)--./pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch-- '/home/' + Settings.gitlab['user']./pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch:+ '/homeless-shelter'./pkgs/applications/version-management/gitlab/remove-hardcoded-locations.patch- end--./pkgs/applications/video/jellyfin-mpv-shim/default.nix- # override $HOME directory:./pkgs/applications/video/jellyfin-mpv-shim/default.nix: # error: [Errno 13] Permission denied: '/homeless-shelter'./pkgs/applications/video/jellyfin-mpv-shim/default.nix- #--./pkgs/applications/virtualization/lima/default.nix- preCheck = ''./pkgs/applications/virtualization/lima/default.nix: # Workaround for: could not create "/homeless-shelter/.lima/_config" directory: mkdir /homeless-shelter: permission denied./pkgs/applications/virtualization/lima/default.nix- export LIMA_HOME="$(mktemp -d)"--./pkgs/build-support/docker/examples.nix- drv = pkgs.mkShell { };./pkgs/build-support/docker/examples.nix: homeDirectory = "/homeless-shelter";./pkgs/build-support/docker/examples.nix- run = ''--./pkgs/build-support/docker/nix-prefetch-docker.nix- --prefix PATH : ${lib.makeBinPath [ nix skopeo jq coreutils ]} \./pkgs/build-support/docker/nix-prefetch-docker.nix: --set HOME /homeless-shelter./pkgs/build-support/docker/nix-prefetch-docker.nix- '';--./pkgs/by-name/_4/_4d-minesweeper/package.nix-./pkgs/by-name/_4/_4d-minesweeper/package.nix: # Cannot create file '/homeless-shelter/.config/godot/projects/...'./pkgs/by-name/_4/_4d-minesweeper/package.nix- export HOME=$TMPDIR--./pkgs/by-name/ba/base16-shell-preview/package.nix- # If enabled, it will attempt to run '__init__.py, failing by trying to write./pkgs/by-name/ba/base16-shell-preview/package.nix: # at "/homeless-shelter" as HOME./pkgs/by-name/ba/base16-shell-preview/package.nix- doCheck = false;--./pkgs/by-name/ba/backblaze-b2/package.nix- (old: {./pkgs/by-name/ba/backblaze-b2/package.nix: # workaround the error: Permission denied: '/homeless-shelter'./pkgs/by-name/ba/backblaze-b2/package.nix- # backblaze-b2 fails to create a 'b2' directory under the XDG config path--./pkgs/by-name/ci/cilium-cli/package.nix- # Required to workaround install check error:./pkgs/by-name/ci/cilium-cli/package.nix: # 2022/06/25 10:36:22 Unable to start gops: mkdir /homeless-shelter: permission denied./pkgs/by-name/ci/cilium-cli/package.nix- HOME = "$TMPDIR";--./pkgs/by-name/do/doctl/package.nix- postInstall = ''./pkgs/by-name/do/doctl/package.nix: export HOME=$(mktemp -d) # attempts to write to /homeless-shelter./pkgs/by-name/do/doctl/package.nix- for shell in bash fish zsh; do--./pkgs/by-name/do/dooit/package.nix-./pkgs/by-name/do/dooit/package.nix: # /homeless-shelter./pkgs/by-name/do/dooit/package.nix- preBuild = ''--./pkgs/by-name/en/ente-cli/package.nix- # running ente results in the following errors:./pkgs/by-name/en/ente-cli/package.nix: # > mkdir /homeless-shelter: permission denied./pkgs/by-name/en/ente-cli/package.nix- # > error getting password from keyring: exec: "dbus-launch": executable file not found in $PATH--./pkgs/by-name/fi/find-billy/package.nix-./pkgs/by-name/fi/find-billy/package.nix: # Cannot create file `/homeless-shelter/.config/godot/projects/...`./pkgs/by-name/fi/find-billy/package.nix- export HOME=$TMPDIR--./pkgs/by-name/fl/fluxcd/package.nix- # Required to workaround test error:./pkgs/by-name/fl/fluxcd/package.nix: # panic: mkdir /homeless-shelter: permission denied./pkgs/by-name/fl/fluxcd/package.nix- HOME = "$TMPDIR";--./pkgs/by-name/ic/icdiff/package.nix-./pkgs/by-name/ic/icdiff/package.nix: # error: could not lock config file /homeless-shelter/.gitconfig: No such file or directory./pkgs/by-name/ic/icdiff/package.nix- doCheck = false;--./pkgs/by-name/li/libguestfs/package.nix-./pkgs/by-name/li/libguestfs/package.nix: export HOME=$(mktemp -d) # avoid access to /homeless-shelter/.guestfish./pkgs/by-name/li/libguestfs/package.nix---./pkgs/by-name/oa/oauth2l/package.nix-./pkgs/by-name/oa/oauth2l/package.nix: # Fix tests by preventing them from writing to /homeless-shelter../pkgs/by-name/oa/oauth2l/package.nix- preCheck = "export HOME=$(mktemp -d)";--./pkgs/by-name/pa/patroni/package.nix-./pkgs/by-name/pa/patroni/package.nix: # Fix tests by preventing them from writing to /homeless-shelter../pkgs/by-name/pa/patroni/package.nix- preCheck = "export HOME=$(mktemp -d)";--./pkgs/by-name/ru/rustdesk-flutter/package.nix- strictDeps = true;./pkgs/by-name/ru/rustdesk-flutter/package.nix: env.VCPKG_ROOT = "/homeless-shelter"; # idk man, makes the build go since https://github.com/21pages/hwcodec/commit/1873c34e3da070a462540f61c0b782b7ab15dc84./pkgs/by-name/ru/rustdesk-flutter/package.nix---./pkgs/by-name/ti/tinysparql/package.nix- ''./pkgs/by-name/ti/tinysparql/package.nix: # (tracker-store:6194): Tracker-CRITICAL **: 09:34:07.722: Cannot initialize database: Could not open sqlite3 database:'/homeless-shelter/.cache/tracker/meta.db': unable to open database file./pkgs/by-name/ti/tinysparql/package.nix- export HOME=$(mktemp -d)--./pkgs/by-name/vi/vikunja/package.nix-./pkgs/by-name/vi/vikunja/package.nix: # Fixes "mkdir /homeless-shelter: permission denied" - "Error: error compiling magefiles" during build./pkgs/by-name/vi/vikunja/package.nix- export HOME=$(mktemp -d)--./pkgs/by-name/wi/wipeout-rewrite/package.nix-./pkgs/by-name/wi/wipeout-rewrite/package.nix: # I can't get --chdir to not expand the bash variables in datadir at build time (so they point to /homeless-shelter)./pkgs/by-name/wi/wipeout-rewrite/package.nix- # or put them inside single quotes (breaking the expansion at runtime)--./pkgs/by-name/gl/glab/package.nix- preCheck = ''./pkgs/by-name/gl/glab/package.nix: # failed to read configuration: mkdir /homeless-shelter: permission denied./pkgs/by-name/gl/glab/package.nix- export HOME=$TMPDIR--./pkgs/by-name/lo/lorien/package.nix-./pkgs/by-name/lo/lorien/package.nix: # Cannot create file '/homeless-shelter/.config/godot/projects/...'./pkgs/by-name/lo/lorien/package.nix- export HOME=$TMPDIR--./pkgs/by-name/hu/hullcaster/package.nix-./pkgs/by-name/hu/hullcaster/package.nix: # work around error: Could not create filepath: /homeless-shelter/.local/share./pkgs/by-name/hu/hullcaster/package.nix- checkFlags = [--./pkgs/by-name/oh/oh-my-git/package.nix-./pkgs/by-name/oh/oh-my-git/package.nix: # Cannot create file '/homeless-shelter/.config/godot/projects/...'./pkgs/by-name/oh/oh-my-git/package.nix- export HOME=$TMPDIR--./pkgs/by-name/vc/vcpkg-tool/package.nix- cat "$out" | head -n 4 | diff - ${writeText "vcpkg-tool-test-wrapper-expected" ''./pkgs/by-name/vc/vcpkg-tool/package.nix: NIX_VCPKG_DOWNLOADS_ROOT = /homeless-shelter/.vcpkg/root/downloads./pkgs/by-name/vc/vcpkg-tool/package.nix: NIX_VCPKG_BUILDTREES_ROOT = /homeless-shelter/.vcpkg/root/buildtrees./pkgs/by-name/vc/vcpkg-tool/package.nix- NIX_VCPKG_PACKAGES_ROOT = test--./pkgs/by-name/za/zabbix-cli/package.nix- # Otherwise tests will fail to create directory./pkgs/by-name/za/zabbix-cli/package.nix: # Permission denied: '/homeless-shelter'./pkgs/by-name/za/zabbix-cli/package.nix- preCheck = ''--./pkgs/by-name/is/iscc/package.nix-./pkgs/by-name/is/iscc/package.nix: # Solves PermissionError: [Errno 13] Permission denied: '/homeless-shelter/.wine'./pkgs/by-name/is/iscc/package.nix- export HOME=$(mktemp -d)--./pkgs/by-name/k9/k9s/package.nix- # For arch != x86./pkgs/by-name/k9/k9s/package.nix: # {"level":"fatal","error":"could not create any of the following paths: /homeless-shelter/.config, /etc/xdg","time":"2022-06-28T15:52:36Z","message":"Unable to create configuration directory for k9s"}./pkgs/by-name/k9/k9s/package.nix- passthru = {--./pkgs/development/compilers/rust/setup-hook.sh:# Fix 'failed to open: /homeless-shelter/.cargo/.package-cache' in rust 1.36../pkgs/development/compilers/rust/setup-hook.sh-if [[ -z ${IN_NIX_SHELL-} && -z ${CARGO_HOME-} ]]; then--./pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch- }./pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch:+ if (std::equal(result.begin(), result.end(), "/homeless-shelter")) {./pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch-+ return false;--./pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch- }./pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch:+ if (std::equal(result.begin(), result.end(), "/homeless-shelter")) {./pkgs/development/compilers/swift/compiler/patches/llvm-module-cache.patch-+ system_temp_directory(true/*ErasedOnReboot*/, result);--./pkgs/development/haskell-modules/configuration-nix.nix- # Tests attempt to use NPM to install from the network into./pkgs/development/haskell-modules/configuration-nix.nix: # /homeless-shelter. Disabled../pkgs/development/haskell-modules/configuration-nix.nix- purescript = dontCheck super.purescript;--./pkgs/development/ocaml-modules/lambdapi/default.nix- ];./pkgs/development/ocaml-modules/lambdapi/default.nix: doCheck = false; # anomaly: Sys_error("/homeless-shelter/.why3.conf: No such file or directory")./pkgs/development/ocaml-modules/lambdapi/default.nix---./pkgs/development/python-modules/ansible-vault-rw/default.nix- # Otherwise tests will fail to create directory./pkgs/development/python-modules/ansible-vault-rw/default.nix: # Permission denied: '/homeless-shelter'./pkgs/development/python-modules/ansible-vault-rw/default.nix- preCheck = ''--./pkgs/development/python-modules/argostranslate/default.nix- # required for import check to work./pkgs/development/python-modules/argostranslate/default.nix: # PermissionError: [Errno 13] Permission denied: '/homeless-shelter'./pkgs/development/python-modules/argostranslate/default.nix- env.HOME = "/tmp";--./pkgs/development/python-modules/crytic-compile/default.nix- # required for import check to work./pkgs/development/python-modules/crytic-compile/default.nix: # PermissionError: [Errno 13] Permission denied: '/homeless-shelter'./pkgs/development/python-modules/crytic-compile/default.nix- env.HOME = "/tmp";--./pkgs/development/python-modules/fsspec/default.nix- # Test assumes user name is part of $HOME./pkgs/development/python-modules/fsspec/default.nix: # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'./pkgs/development/python-modules/fsspec/default.nix- "test_strip_protocol_expanduser"--./pkgs/development/python-modules/geeknote/default.nix- build with tests fails with "Can not create application dirictory :./pkgs/development/python-modules/geeknote/default.nix: /homeless-shelter/.geeknotebuilder"../pkgs/development/python-modules/geeknote/default.nix- */--./pkgs/development/python-modules/gradient/default.nix-./pkgs/development/python-modules/gradient/default.nix: # Tries to use /homeless-shelter to mimic container usage, etc./pkgs/development/python-modules/gradient/default.nix- doCheck = false;--./pkgs/development/python-modules/hyperopt/default.nix-./pkgs/development/python-modules/hyperopt/default.nix: # tries to use /homeless-shelter to mimic container usage, etc./pkgs/development/python-modules/hyperopt/default.nix- doCheck = false;--./pkgs/development/python-modules/mhcflurry/default.nix- disabledTests = [./pkgs/development/python-modules/mhcflurry/default.nix: # RuntimeError: Missing MHCflurry downloadable file: /homeless-shelter/.local..../pkgs/development/python-modules/mhcflurry/default.nix- "test_a1_mage_epitope_downloaded_models"--./pkgs/development/python-modules/mhcflurry/default.nix- disabledTestPaths = [./pkgs/development/python-modules/mhcflurry/default.nix: # RuntimeError: Missing MHCflurry downloadable file: /homeless-shelter/.local..../pkgs/development/python-modules/mhcflurry/default.nix- "test/test_changing_allele_representations.py"--./pkgs/development/python-modules/molecule/default.nix- (old: {./pkgs/development/python-modules/molecule/default.nix: # workaround the error: Permission denied: '/homeless-shelter'./pkgs/development/python-modules/molecule/default.nix- HOME = "$(mktemp -d)";--./pkgs/development/python-modules/ofxtools/default.nix- # override $HOME directory:./pkgs/development/python-modules/ofxtools/default.nix: # error: [Errno 13] Permission denied: '/homeless-shelter'./pkgs/development/python-modules/ofxtools/default.nix- preCheck = ''--./pkgs/development/python-modules/pydicom/default.nix- # Setting $HOME to prevent pytest to try to create a folder inside./pkgs/development/python-modules/pydicom/default.nix: # /homeless-shelter which is read-only../pkgs/development/python-modules/pydicom/default.nix- # Linking pydicom-data dicom files to $HOME/.pydicom/data--./pkgs/development/python-modules/softlayer/default.nix- # Otherwise soap_tests.py will fail to create directory./pkgs/development/python-modules/softlayer/default.nix: # Permission denied: '/homeless-shelter'./pkgs/development/python-modules/softlayer/default.nix- preCheck = ''--./pkgs/development/python-modules/proton-vpn-api-core/default.nix- postInstall = ''./pkgs/development/python-modules/proton-vpn-api-core/default.nix: # Needed for Permission denied: '/homeless-shelter'./pkgs/development/python-modules/proton-vpn-api-core/default.nix- export HOME=$(mktemp -d)--./pkgs/development/python-modules/proton-vpn-network-manager/default.nix- preCheck = ''./pkgs/development/python-modules/proton-vpn-network-manager/default.nix: # Needed for Permission denied: '/homeless-shelter'./pkgs/development/python-modules/proton-vpn-network-manager/default.nix- export HOME=$(mktemp -d)--./pkgs/development/python-modules/dfdiskcache/default.nix- preCheck = ''./pkgs/development/python-modules/dfdiskcache/default.nix: # Needed for Permission denied: '/homeless-shelter'./pkgs/development/python-modules/dfdiskcache/default.nix- export HOME=$(mktemp -d)--./pkgs/development/python-modules/triton/default.nix- if __name__ == "__main__":./pkgs/development/python-modules/triton/default.nix: if os.environ.get("HOME", None) == "/homeless-shelter":./pkgs/development/python-modules/triton/default.nix- os.environ["HOME"] = os.environ.get("TMPDIR", "/tmp")--./pkgs/development/tools/build-managers/gradle/update-deps.nix- bwrap \./pkgs/development/tools/build-managers/gradle/update-deps.nix: --unshare-all --share-net --clearenv --chdir / --setenv HOME /homeless-shelter \./pkgs/development/tools/build-managers/gradle/update-deps.nix- --tmpfs /home --bind /tmp /tmp --ro-bind /nix /nix --ro-bind /run /run --proc /proc --dev /dev \--./pkgs/development/tools/rover/default.nix- # Some tests try to write configuration data to a location in the user's home./pkgs/development/tools/rover/default.nix: # directory. Since this would be /homeless-shelter during the build, point at./pkgs/development/tools/rover/default.nix- # a writeable location instead.--./pkgs/development/tools/wrangler_1/default.nix-./pkgs/development/tools/wrangler_1/default.nix: # tries to use "/homeless-shelter" and fails./pkgs/development/tools/wrangler_1/default.nix- doCheck = false;--./pkgs/tools/networking/opendrop/default.nix- preCheck = ''./pkgs/tools/networking/opendrop/default.nix: # Solves PermissionError: [Errno 13] Permission denied: '/homeless-shelter'./pkgs/tools/networking/opendrop/default.nix- export HOME=$(mktemp -d)--./pkgs/tools/package-management/nix-prefetch-scripts/default.nix- --prefix PATH : ${lib.makeBinPath (deps ++ [ coreutils gnused nix ])} \./pkgs/tools/package-management/nix-prefetch-scripts/default.nix: --set HOME /homeless-shelter./pkgs/tools/package-management/nix-prefetch-scripts/default.nix- '';--./pkgs/tools/typesetting/tex/texlive/bin.nix-./pkgs/tools/typesetting/tex/texlive/bin.nix: # If unset, xindy will try to mkdir /homeless-shelter./pkgs/tools/typesetting/tex/texlive/bin.nix- HOME = ".";--./pkgs/top-level/all-packages.nix- # If instantiated directly, it will use $HOME/.ccache as the cache directory,./pkgs/top-level/all-packages.nix: # i.e. /homeless-shelter/.ccache using the Nix daemon../pkgs/top-level/all-packages.nix- # You should specify a different directory using an override in
git log -S 'homeless-shelter' --source --all tells me that this path dates back to the very early days of 2003 (a881442) - a different time, for sure.
The text was updated successfully, but these errors were encountered:
Semi-related PR: #11300 (mostly about moving it to another location, but also has some very brief discussion on a better name in a similar vein to this ticket)
I think that the default home path,
/homeless-shelter
, should be replaced with a more neutral path. Some suggestions would be/nowhere
or/nonexistent
, matching conventions for HOME of the nobody user.The reason for this change is the global crisis of housing affordability. I do not think that having "homeless-shelter" so prominently featured is a desirable thing to have.
As a secondary benefit, a path like
/nonexistent
is also more obvious to understand; it is a path that does not exist. To clarify that it is a non-existing home folder, we could use/nonexistent-home
. With/homeless-shelter
, one has to think to understand what the meaning of /homeless-shelter would be (and such thinking brings up thoughts of the very real global issues).I expect this could be changed without too much difficulty. The string appears to be defined in only a handful of places in nix: https://github.com/search?q=repo%3ANixOS%2Fnix+%22homeless-shelter%22&type=code
In nixpkgs, I've done a simple grep of occurences of this string. Most of these are in comments or using it as a constant value, but there are some instances where a variable is checked against this string. These will need to be changed to either check for both the new and old paths, or do a more robust check (EACCESS, maybe).
git log -S 'homeless-shelter' --source --all
tells me that this path dates back to the very early days of 2003 (a881442) - a different time, for sure.The text was updated successfully, but these errors were encountered: