aboutsummaryrefslogtreecommitdiff
path: root/misc
AgeCommit message (Collapse)Author
2022-03-29nix-daemon.service: require mounts for /nix/var/nix/dbGraham Christensen
Users may want to mount a filesystem just for the Nix database, with the filesystem's parameters specially tuned for sqlite. For example, on ZFS you might set the recordsize to 64k after changing the database's page size to 65536.
2022-03-18nix-daemon.conf.in: add tmpfiles file to create nix/daemon-socket directoryFlorian Klink
nix-daemon.socket is used to socket-activate nix-daemon.service when /nix/var/nix/daemon-socket/socket is accessed. In container usecases, sometimes /nix/var/nix/daemon-socket is bind-mounted read-only into the container. In these cases, we want to skip starting nix-daemon.socket. However, since systemd 250, `ConditionPathIsReadWrite` is also not met if /nix/var/nix/daemon-socket doesn't exist at all. This means, a regular NixOS system will skip starting nix-daemon.socket: > [ 237.187747] systemd[1]: Nix Daemon Socket was skipped because of a failed condition check (ConditionPathIsReadWrite=/nix/var/nix/daemon-socket). To prevent this from happening, ship a tmpfiles file that'll cause the directory to be created if it doesn't exist already. In the case of NixOS, we can just add Nix to `systemd.tmpfiles.packages` and have these files picked up automatically.
2022-03-13Add documentation= entry to systemd unit filethkoch2001
Closes: #6246
2022-02-04completions: pipe stderr to /dev/nullMaximilian Bosch
This fixes weird issues where e.g. nix build -L .#<tab> deletes the current line from the prompt.
2021-12-22Merge pull request #5820 from ncfavier/completion-nospaceEelco Dolstra
Don't insert spaces when completing attribute paths
2021-12-22Don't insert spaces when completing attribute pathsNaïm Favier
2021-12-22Make bash completion work when nix is invoked as ~/.../nixEelco Dolstra
2021-12-04launchd: Set NumberOfFiles to 4096Zhong Jianxin
The default maxfiles on macOS 11 and macOS 12 is 256, which is too low for nix to work: ``` $ launchctl limit maxfiles maxfiles 256 unlimited ``` Set NumberOfFiles of nix-daemon to 4096 to avoid `Too many open files` error.
2021-07-08Merge pull request #4935 from alyssais/host_osEelco Dolstra
Apply OS checks to host platform, not build
2021-06-23Add a fish completion scriptJan Tojnar
This is only rudimentary support as allowed by `NIX_GET_COMPLETIONS`. In the future, we could use complete’s `--wraps` argument to autocomplete arguments for programs after `nix shell -c`.
2021-06-23Apply OS checks to host platform, not buildAlyssa Ross
Previously, the build system used uname(1) output when it wanted to check the operating system it was being built for, which meant that it didn't take into-account cross-compilation when the build and host operating systems were different. To fix this, instead of consulting uname output, we consult the host triple, specifically the third "kernel" part. For "kernel"s with stable ABIs, like Linux or Cygwin, we can use a simple ifeq to test whether we're compiling for that system, but for other platforms, like Darwin, FreeBSD, or Solaris, we have to use a more complicated check to take into account the version numbers at the end of the "kernel"s. I couldn't find a way to just strip these version numbers in GNU Make without shelling out, which would be even more ugly IMO. Because these checks differ between kernels, and the patsubst ones are quite fiddly, I've added variables for each host OS we might want to check to make them easier to reuse.
2021-06-12Fix zsh completion scriptMatthew Bauer
Installed site-functions need to be run directly, not via compdef.
2021-06-02Install zsh completion scriptChua Hou
2021-05-04launchd: Use exec to avoid leaving the extra shell wrapper runningAnders Kaseorg
Before: UID PID PPID C STIME TTY TIME CMD 0 1737 1 0 2:28PM ?? 0:00.00 /bin/sh -c /bin/wait4path /nix/var/nix/profiles/default/bin/nix-daemon && /nix/var/nix/profiles/default/bin/nix-daemon 0 1739 1737 0 2:28PM ?? 0:00.05 /nix/var/nix/profiles/default/bin/nix-daemon After: UID PID PPID C STIME TTY TIME CMD 0 1763 1 0 2:29PM ?? 0:00.05 /nix/var/nix/profiles/default/bin/nix-daemon Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2020-10-18Add some missing clean-filesEelco Dolstra
2020-10-09Add a zsh completion scriptregnat
Based on @clhodapp's suggestion in https://github.com/spwhitt/nix-zsh-completions/issues/32#issuecomment-705315356 and adapted to use the description of the completions
2020-10-09Add a description in the completion outputsregnat
Make nix output completions in the form `completion\tdescription`. This can't be used by bash (afaik), but other shells like zsh or fish can display it along the completion choices
2020-09-16Fix the nix-daemon Mac OS SSL CA certMarwan Aljubeh
Mac OS multi-user installations are currently broken because all requests made by nix-daemon to the binary cache fail with: ``` unable to download ... Problem with the SSL CA cert (path? access rights?) (77). ``` This change ensures that the nix-daemon knows where to find the SSL CA cert file. Fixes #2899 and #3261.
2020-06-04Fix completion script install nameEelco Dolstra
2020-05-11Bash completion: Don't break on ':'Eelco Dolstra
2020-05-10Add completion for pathsEelco Dolstra
2020-05-10nix: Implement basic bash completionEelco Dolstra
2019-10-09Make nix-daemon.plist less fragile on macOSDan Callahan
We're calling `wait4path` on the full, resolved `@bindir@/nix-daemon` path. That means we're hardcoding something like: /bin/wait4path /nix/store/zs9c5xhp3zv9p23qnjxp87nl5injsi1i-nix-2.3/bin/nix-daemon &amp;&amp; /nix/var/nix/profiles/default/bin/nix-daemon That seems unnecessarily fragile. It might be better to wait4path on the path we intend to call.
2019-10-08Copy instead of linking launch agentMatthew Bauer
On Catalina, the /nix filesystem might not be mounted at start time. To avoid this service not starting, we need to keep the launch agent outside of the Nix store. A wait4pid will hold for our /nix dir to be mounted. Fixes #3125.
2019-09-03Merge pull request #3066 from matthewbauer/wait4pathEelco Dolstra
Use wait4path on org.nixos.nix-daemon.plist
2019-09-02Fix launchd program argsMatthew Bauer
launchd has some weird syntx. Apparently the program needs to be in the ProgramArguments, as Program appears to be ignored.
2019-08-27Use wait4path on org.nixos.nix-daemon.plistMatthew Bauer
When using a volume, the nix-daemon path may not exist. To avoid this issue, we must use the wait4path tool. This should solve one of the issues in multi-user on macOS Catalina.
2019-08-27nix-daemon.service: add install section.Piotr Szubiakowski
Signed-off-by: Piotr Szubiakowski <pszubiak@eso.org>
2019-02-09nix-daemon: add variable to disable fork safetyDaiderd Jordan
Since macOS 10.14 this has become an error, causing problems if the nix-daemon loads nix during substitution (this is a forked process). Workaround for #2523.
2018-06-21docker: move the docker file to https://github.com/NixOS/dockerPeter Simons
We have automated builds at https://hub.docker.com/r/nixos/nix/ now. The master branch of the "docker" repository is available as "latest". Branches that match the regular expression "^[0-9.]+$" are pushed to the tag that corresponds to their branch name. Other branches are ignored.
2018-06-06Dockerfile: 2.0.4Lorenzo Manacorda
2018-05-08docker readme: simplifyDomen Kožar
2018-05-08Dockerfile: 2.0.2Domen Kožar
2018-05-08Add README for dockerDomen Kožar
2018-05-08Dockerfile: update to 2.0.1Domen Kožar
2018-03-19Dockerfile: verify tar file with sha256sumBen Challenor
2018-03-18Dockerfile: 1.11.14 -> 2.0Ben Challenor
2018-02-28launchd: enable keepalive for the nix-daemon serviceDaiderd Jordan
Without this the daemon won't be restarted if the process ever dies, for example when sending a SIGHUP to reload nix.conf.
2017-10-07docker: ensure that the installation works for users other than 'root', tooPeter Simons
The path /root/.nix-profile is a sym-link to /nix/var/nix/profiles/default. The latter path, however, works for everyone while the former path works only for root, so we prefer the public path whenever possible.
2017-09-11docker: update to Nix 1.11.14Peter Simons
- Use the latest Nix version 1.11.14. - Attempts to download the Nix installation tarball from http://nixos.org redirect to https these days, which wget doesn't support unless OpenSSL is available. - Use addgroup and adduser commands to create the Nix build users. - Link the Nix profile script into /etc/profile.d, where it's run automatically. - Dropped installation of bash and tar. Neither tool is essential for running Nix. Use the command "docker build -t nix . && docker run -it --rm nix sh -" to build and run the Nix docker container.
2017-08-19Remove nix-mode.el from Nix.Matthew Bauer
This removes the file nix-mode.el from Nix. The file is now available within the repository https://github.com/NixOS/nix-mode. Fixes #662 Fixes #1040 Fixes #1054 Fixes #1055 Closes #1119 Fixes #1419 NOTE: all of the above should be fixed within NixOS/nix-mode. If one of those hasn’t please reopen within NixOS/nix-mode and not within NixOS/nix.
2017-06-12Provide a builtin default for $NIX_SSL_CERT_FILEEelco Dolstra
This is mostly to ensure that when Nix is started on macOS via a launchd service or sshd (for a remote build), it gets a certificate bundle.
2017-05-05Figure out the user's home directory if $HOME is not setEelco Dolstra
2017-04-29nix-daemon.service: set XDG_CONFIG_HOMEJörg Thalheim
Otherwise starting nix-daemon fails ● nix-daemon.service - Nix Daemon Loaded: loaded (/nix/store/mnf00a6gc55xl47smk0b32gmi7xpvlfp-nix-1.12pre5308_2f21d522/lib/systemd/system/nix-daemon.service; enabled; vendor preset: enabled) Drop-In: /nix/store/m2rgjp71n4kyp8j5fxgbrlv13scd5vvv-system-units/nix-daemon.service.d └─overrides.conf Active: failed (Result: exit-code) since Sat 2017-04-29 11:29:21 CEST; 9s ago Process: 7299 ExecStart=nix-daemon --daemon (code=exited, status=1/FAILURE) Main PID: 7299 (code=exited, status=1/FAILURE) CPU: 19ms ... systemd[1]: Started Nix Daemon. ... nix-daemon[7299]: error: $XDG_CONFIG_HOME and $HOME are not set ... systemd[1]: nix-daemon.service: Main process exited, code=exited, status=1/FAILURE ... systemd[1]: nix-daemon.service: Unit entered failed state. ... systemd[1]: nix-daemon.service: Failed with result 'exit-code'. ... systemd[1]: nix-daemon.service: Start request repeated too quickly. ... systemd[1]: Failed to start Nix Daemon. ... systemd[1]: nix-daemon.service: Failed with result 'exit-code'.
2017-03-11Dockerfile: 1.11.2 -> 1.11.7Domen Kožar
2017-03-05nix-daemon.plist: Set XDG_CACHE_HOMEShea Levy
2016-10-13SSL_CERT_FILE -> NIX_SSL_CERT_FILEEelco Dolstra
This prevents collisions with the "native" OpenSSL, in particular on OS X. Fixes #921.
2016-08-31nix-daemon.service: Set $XDG_CACHE_HOMEEelco Dolstra
Nix requires either $HOME or $XDG_CACHE_HOME to be set.
2016-08-12launchd: Set $SSL_CERT_FILEEelco Dolstra
Otherwise in particular https://cache.nixos.org won't work in the daemon.
2016-08-04Dockerfile: Add alpine dependencies (#1011)Aneesh Agrawal
* Dockerfile: add GNU tar native dependency `builtins.fetchTarball` requires GNU tar to be available in the $PATH in order to unpack the fetched tarball (there is a FIXME comment for this), which Alpine does not ship by default (it ships BusyBox tar). * Dockerfile: add GNU bash native dependency `nix-shell` defaults to invoking `bash` from the $PATH for the subshell. In theory this can be overriden with the NIX_BUILD_SHELL environment variable, but this does not work properly. `nix-shell` generates and passes a script (`$rcFile`) to be executed by the subshell which uses bashisms (`source` and `shopt`). Additionally, in interactive mode, `nix-shell` passes the `--rcfile` argument to the shell, which is another bashism. Because `bash` is thus de-facto required, add `bash` as a native package dependency to make it available for `nix-shell`.