Compare commits

...
Sign in to create a new pull request.

23 commits

Author SHA1 Message Date
Jens Petersen
c6ba971f4a rebuild for https://fedoraproject.org/wiki/Changes/F44_Boost_1_90 2026-01-14 22:58:18 +08:00
Jens Petersen
5fe7386873 ghost /nix/var/nix/* and sockets
- add builds/ ghost back to daemon (since it creates it)
- db/ and gcroots/auto/ remain after uninstalling
2025-11-28 15:26:01 +08:00
Jens Petersen
98df99f77c readme: for singleuser setup check id output 2025-11-28 12:29:05 +08:00
Jens Petersen
eef01d8c8e devel description: note that API is unstable 2025-11-28 12:28:25 +08:00
Jens Petersen
3de48dcfc0 readme: mention channel setup 2025-11-28 11:56:23 +08:00
Jens Petersen
6aed6c629d reformat description 2025-11-28 11:56:23 +08:00
Jens Petersen
1115ba9601 trivial spec changes 2025-11-28 11:56:23 +08:00
Jens Petersen
80d23ca87a nix-daemon requires systemd 2025-11-28 11:56:23 +08:00
Jens Petersen
0d43c98794 base package now requires nix-system: drop owning /nix/var/nix/*
This allows nix-system to work for both nix-daemon and single-user setups
(following discussion in #nix-dev)
2025-11-28 11:56:23 +08:00
Jens Petersen
64346930c9 only stick bit for /nix/store; move /nix/var/nix/builds to nix-system 2025-11-28 11:55:36 +08:00
Jens Petersen
dfa17d8c50 nix-daemon: requires nix-core instead of base package 2025-11-28 11:08:59 +08:00
Jens Petersen
80a7a7982b move /nix/var dirs to nix-filesystem
where they are actually created
2025-11-28 11:08:47 +08:00
Jens Petersen
901563692b remove unicode RLO chars from rl-2.26.md
https://github.com/NixOS/nix/issues/14666

rpminspect says:
BAD A forbidden code point, 0x202E, was found in the nix-2.31.2/doc/manual/source/release-notes/rl-2.26.md source file on line 115 at column 2. This source file is used by nix.spec. [Security]
2025-11-28 11:06:04 +08:00
Jens Petersen
8565b643b0 trivial: drop %name usage
Seems redundant
2025-11-25 19:23:13 +08:00
Jens Petersen
b039f0f78e nix-system: drop the explicit nix requires
In principle one could install nix-system and then use a custom nix binary.

The Requires was a leftover from the old multiuser toplevel subpackage
2025-11-25 19:16:40 +08:00
Jens Petersen
dc975f57c6 filter out rellinks from manpages (#2415126)
thanks Dennis Schridde for reporting

sed expression generation assisted by Gemini Pro
2025-11-19 16:49:12 +08:00
Jens Petersen
d14e25bc8b simplify nix-disable-mdbook.patch: disable 2 more manual cmds 2025-11-13 22:40:02 +08:00
Jens Petersen
4ff55bf8c7 enable manpages by patch to disable mdbook manual 2025-11-13 16:52:04 +08:00
Jens Petersen
bc56050014 add core and legacy commands subpackages 2025-11-04 18:55:33 +08:00
Jens Petersen
eedfe652da Convert to %autorelease and %autochangelog
[skip changelog]
2025-11-03 01:30:13 +08:00
Jens Petersen
3745d1e7f1 readme: rewrite home hack as rootless nix mode 2025-11-02 21:28:22 +08:00
Jens Petersen
1c9e64f566 fix example/flake with flake-utils 2025-11-02 21:10:29 +08:00
Jens Petersen
f96e840bbc few more readme tweaks 2025-11-01 21:17:22 +08:00
6 changed files with 335 additions and 167 deletions

61
14593.patch Normal file
View file

@ -0,0 +1,61 @@
From ef6dbe76dc25e67b47dc9a8caa6dd29ff5996a20 Mon Sep 17 00:00:00 2001
From: Jens Petersen <petersen@redhat.com>
Date: Wed, 19 Nov 2025 15:50:43 +0800
Subject: [PATCH] docs: fixup some rellinks to use ./ prefix for consistency
"./" prefix is already used almost everywhere
---
doc/manual/source/command-ref/nix-build.md | 6 +++---
doc/manual/source/command-ref/nix-instantiate.md | 2 +-
src/nix/profile-diff-closures.md | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/doc/manual/source/command-ref/nix-build.md b/doc/manual/source/command-ref/nix-build.md
index 3bb59cbed12..860a1fc9745 100644
--- a/doc/manual/source/command-ref/nix-build.md
+++ b/doc/manual/source/command-ref/nix-build.md
@@ -36,7 +36,7 @@ to a temporary location. The tarball must include a single top-level
directory containing at least a file named `default.nix`.
`nix-build` is essentially a wrapper around
-[`nix-instantiate`](nix-instantiate.md) (to translate a high-level Nix
+[`nix-instantiate`](./nix-instantiate.md) (to translate a high-level Nix
expression to a low-level [store derivation]) and [`nix-store
--realise`](@docroot@/command-ref/nix-store/realise.md) (to build the store
derivation).
@@ -52,8 +52,8 @@ derivation).
# Options
All options not listed here are passed to
-[`nix-store --realise`](nix-store/realise.md),
-except for `--arg` and `--attr` / `-A` which are passed to [`nix-instantiate`](nix-instantiate.md).
+[`nix-store --realise`](./nix-store/realise.md),
+except for `--arg` and `--attr` / `-A` which are passed to [`nix-instantiate`](./nix-instantiate.md).
- <span id="opt-no-out-link">[`--no-out-link`](#opt-no-out-link)<span>
diff --git a/doc/manual/source/command-ref/nix-instantiate.md b/doc/manual/source/command-ref/nix-instantiate.md
index 38454515d57..bac9f365933 100644
--- a/doc/manual/source/command-ref/nix-instantiate.md
+++ b/doc/manual/source/command-ref/nix-instantiate.md
@@ -32,7 +32,7 @@ standard input.
- `--add-root` *path*
- See the [corresponding option](nix-store.md) in `nix-store`.
+ See the [corresponding option](./nix-store.md) in `nix-store`.
- `--parse`
diff --git a/src/nix/profile-diff-closures.md b/src/nix/profile-diff-closures.md
index 295d1252bcd..1cfed160f31 100644
--- a/src/nix/profile-diff-closures.md
+++ b/src/nix/profile-diff-closures.md
@@ -23,6 +23,6 @@ R""(
This command shows the difference between the closures of subsequent
versions of a profile. See [`nix store
-diff-closures`](nix3-store-diff-closures.md) for details.
+diff-closures`](./nix3-store-diff-closures.md) for details.
)""

View file

@ -5,38 +5,52 @@ Nix has two different modes of operation:
## Daemon mode for multi-user setup
This is recommended by upstream and more seamless.
The `nix-daemon` requires functioning systemd.
Just install the `nix` or `nix-daemon` package
(the latter is recommended by the `nix` package) and run:
Just install the `nix` package, which pulls in `nix-daemon`,
by running:
```
$ sudo dnf install nix-daemon
$ sudo dnf install nix nix-daemon
$ sudo systemctl enable --now nix-daemon
```
## Single-user mode without nix-daemon
This mode works in rootless containers without systemd.
This mode also works in rootless containers and without systemd.
Run:
```
$ sudo dnf install nix nix-system --exclude nix-daemon
$ sudo usermod -G nixbld -a $USER
$ sudo dnf install nix --exclude nix-daemon
$ sudo usermod -aG nixbld $USER
```
and restart your login session:
make sure the `nixbld` group appears in `id` output.
Alternatively you can try this hack to have the nix store within your homedir:
This avoids the need to run nix-daemon.
## Rootless nix store under /home
Alternatively one can run rootless nix (which uses chroots) with just:
```
$ dnf install nix nix-filesystem --exclude nix-daemon --exclude nix-system
$ sudo ln -s ~/.local/share/nix/root/nix/store /nix/
$ dnf install nix-core nix-legacy
```
(the symlink is needed for interactive bash - otherwise one gets error like:
`error: executing shell '/nix/store/2j7r5np0vaz4cnqkymp1mqivmjj1x9xl-bash-interactive-5.3p3/bin/bash': No such file or directory`).
(Note this only works without `/nix/var/nix/`.)
The user nix store is: `~/.local/share/nix/root/nix/store`.
This also allows sharing one's nix store with toolboxes, etc.
However then nix profiles can only be used inside nix shells.
## Nixpkgs
You may want to setup a default nix channel.
```
$ nix-channel add https://nixos.org/channels/nixos-25.11 nixpkgs
```
for legacy commands, if you don't want to use rolling nixos-unstable.
# Testing
A simple way to check nix is working is to run e.g. `nix-shell -p hello`.
After a short while of downloading, this should put you in
After a while of downloading, this should put you in
a nix shell subprocess where you should be able to run `hello`.
Run `nix help` to learn more about the nix CLI
or read <https://nix.dev/reference/nix-manual>.
Run `nix --help` to learn more about the nix CLI
or read <https://nix.dev/>.

68
changelog Normal file
View file

@ -0,0 +1,68 @@
* Mon Oct 27 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-8
- drop redundant sysusers and tmpfiles.d scriptlets (#2388768)
- add obsoletes for petersen/nix copr subpackages
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-7
- recommends nix-daemon if systemd
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-6
- rename users subpackage to system
- improve /nix/var dirs ownership and perms
- rename sysusers file to nix.conf
- move nix-daemon tmpfiles.d to nix-daemon
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-5
- split nix-users from nix-daemon and drop nix-singleuser
- drop all conflicts
* Fri Oct 24 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-4
- drop filesystem subpackage and ghost singleuser dirs
- nix-daemon and nix-singleuser conflict with each other
* Thu Oct 23 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-3
- use tmpfiles.d for nix-filesystem
- improve the readme
- list bin files explicitly
- nix-singleuser now owns its dirs
- add nix-daemon conflicts for ostree and containers
- add nix-singleuser recommends for containers
* Sat Oct 18 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-2
- FHS Exception for /nix was approved (https://pagure.io/fesco/issue/3473)
- add multiuser setup to daemon subpackage
- add singleuser and nix-filesystem subpackages
* Mon Sep 22 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-1
- update to 2.31.2
* Wed Sep 17 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-6
- list .so files explicitly without globbing (#2388768)
- disable /usr/lib/tmpfiles.d/nix-daemon.conf for now (#2388768)
* Mon Sep 15 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-5
- set the soversion to the nix version (#13995, #14001, #14005)
* Sun Sep 14 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-4
- add simple check with LD_LIBRARY_PATH
* Fri Sep 12 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-3
- revert to shared libs, add libs subpackage and restore devel
- apply upstream submitted PR to enable soname versioning (#13966)
* Thu Sep 11 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-2
- noarch nix-daemon subpackage cannot use _isa requires
* Wed Sep 10 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-1
- https://github.com/NixOS/nix/blob/2.31.1/doc/manual/source/release-notes/rl-2.31.md
- rename nix-core to base package
- use readline (#2388768)
- improve MESON_OPTS setup (zbyszek, #2388768)
- use static libs and drop devel package
- disable perl binding
* Sat Aug 16 2025 Jens Petersen <petersen@redhat.com> - 2.30.2-2
- fix nix-devel requires
- add systemd scriptlets for nix-daemon
* Fri Aug 15 2025 Jens Petersen <petersen@redhat.com> - 2.30.2-1
- initial packaging of nix programs without /nix

View file

@ -1,20 +1,13 @@
{
description = "A basic dev shell for a single system.";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
};
outputs = { self, nixpkgs, builtins }:
let
# or hardcode "x86_64-linux"
system = builtins.currentSystem;
pkgs = import nixpkgs { inherit system; };
in
{
devShells.${system}.default = pkgs.mkShell {
packages = with pkgs; [ hello ];
};
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; };
in
{
devShells.default = pkgs.mkShell {
packages = with pkgs; [ hello ];
};
});
}
# Run with: nix develop

46
nix-disable-mdbook.patch Normal file
View file

@ -0,0 +1,46 @@
--- nix-2.31.2/doc/manual/meson.build~ 2025-09-18 04:25:38.000000000 +0800
+++ nix-2.31.2/doc/manual/meson.build 2025-11-13 00:26:04.673032194 +0800
@@ -7,7 +7,7 @@
nix = find_program('nix', native : true)
-mdbook = find_program('mdbook', native : true)
+# mdbook = find_program('mdbook', native : true)
bash = find_program('bash', native : true)
rsync = find_program('rsync', required : true, native : true)
@@ -89,13 +89,12 @@
- @0@ @INPUT1@ summary @2@ < @CURRENT_SOURCE_DIR@/source/SUMMARY.md.in > @2@/source/SUMMARY.md
- sed -e 's|@version@|@3@|g' < @INPUT2@ > @2@/book.toml
@4@ -r --include='*.md' @CURRENT_SOURCE_DIR@/ @2@/
- (cd @2@; RUST_LOG=warn @1@ build -d @2@ 3>&2 2>&1 1>&3) | { grep -Fv "because fragment resolution isn't implemented" || :; } 3>&2 2>&1 1>&3
- rm -rf @2@/manual
- mv @2@/html @2@/manual
- find @2@/manual -iname meson.build -delete
+ # (cd @2@; RUST_LOG=warn @1@ build -d @2@ 3>&2 2>&1 1>&3) | { grep -Fv "because fragment resolution isn't implemented" || :; } 3>&2 2>&1 1>&3
+ #rm -rf @2@/manual
+ #mv @2@/html @2@/manual
+ #find @2@/manual -iname meson.build -delete
+ ln -s source @2@/markdown
'''.format(
python.full_path(),
- mdbook.full_path(),
+ 'no-mdbk',
meson.current_build_dir(),
meson.project_version(),
rsync.full_path(),
@@ -130,10 +130,10 @@
manual_html = manual[0]
manual_md = manual[1]
-install_subdir(
- manual_html.full_path(),
- install_dir : get_option('datadir') / 'doc/nix',
-)
+# install_subdir(
+# manual_html.full_path(),
+# install_dir : get_option('datadir') / 'doc/nix',
+# )
nix_nested_manpages = [
[

256
nix.spec
View file

@ -1,7 +1,7 @@
%global nixbld_group nixbld
# needs mdbook: https://bugzilla.redhat.com/show_bug.cgi?id=2332609
%bcond docs 0
%bcond docs 1
# test failures complain NIX_STORE undefined
# and missing rapidcheck
%bcond tests 0
@ -10,7 +10,7 @@ Name: nix
# 2.32 needs boost >= 1.87 (https://bugzilla.redhat.com/show_bug.cgi?id=2406036)
# (https://github.com/NixOS/nix/pull/14340)
Version: 2.31.2
Release: 8%{?dist}
Release: %autorelease
Summary: A purely functional package manager
License: LGPL-2.1-or-later
@ -30,6 +30,11 @@ Patch1: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/1400
Patch2: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14005.patch
# https://github.com/NixOS/nix/pull/14018
Patch3: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14018.patch
# disable mdbook
# https://github.com/NixOS/nix/issues/14548
Patch4: nix-disable-mdbook.patch
# https://github.com/NixOS/nix/pull/14593
Patch5: https://patch-diff.githubusercontent.com/raw/NixOS/nix/pull/14593.patch
# https://nixos.org/manual/nix/unstable/installation/prerequisites-source
# missing aws-cpp-sdk-s3 aws-c-auth aws-c-s3
@ -47,6 +52,7 @@ BuildRequires: busybox
BuildRequires: cmake
%if %{with docs}
BuildRequires: doxygen
BuildRequires: rsync
%endif
BuildRequires: flex
BuildRequires: gc-devel
@ -78,22 +84,35 @@ BuildRequires: sqlite-devel
BuildRequires: systemd-rpm-macros
BuildRequires: toml11-devel
BuildRequires: xz-devel
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Recommends: (%{name}-daemon = %{version}-%{release} if systemd)
Recommends: %{name}-system = %{version}-%{release}
Requires: nix-core = %{version}-%{release}
Requires: nix-system = %{version}-%{release}
Recommends: (nix-daemon = %{version}-%{release} if systemd)
Recommends: nix-legacy = %{version}-%{release}
%description
Nix is a purely functional package manager.
It allows multiple versions of a package to be installed side-by-side,
ensures that dependency specifications are complete,
supports atomic upgrades and rollbacks,
allows non-root users to install software, and has many other features.
It is the basis of the NixOS Linux distribution,
but it can be used equally well under other Unix systems.
See the README.fedora.md file for setup instructions.
%package core
Summary: Core nix tool
Requires: nix-libs%{?_isa} = %{version}-%{release}
%ifarch x86_64 aarch64 ppc64le
Recommends: busybox
%endif
# added at F43
Obsoletes: nix-core < %{version}-%{release}
%description
Nix is a purely functional package manager. It allows multiple
versions of a package to be installed side-by-side, ensures that
dependency specifications are complete, supports atomic upgrades and
rollbacks, allows non-root users to install software, and has many
other features. It is the basis of the NixOS Linux distribution, but
it can be used equally well under other Unix systems.
%description core
This package provides the core nix tool for modern flake-based commands.
Most users should probably install nix-legacy as well,
or the main nix package for a complete default setup.
See the README.fedora.md file for setup instructions.
@ -101,34 +120,37 @@ See the README.fedora.md file for setup instructions.
%package daemon
Summary: The nix daemon for multiuser mode
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: %{name}-system = %{version}-%{release}
Requires: nix-core = %{version}-%{release}
Requires: nix-system = %{version}-%{release}
Requires: systemd
%description daemon
This package provides nix-daemon and associated files.
%package devel
Summary: Development files for %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Summary: Development files for nix
Requires: nix-libs%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
This package contains library and header files for
developing applications that use nix.
Note the API is considered unstable and upstream does not recommend its usage.
%if %{with docs}
%package doc
Summary: Documentation files for %{name}
Summary: Documentation files for nix
BuildArch: noarch
%description doc
The %{name}-doc package contains documentation files for %{name}.
This package contains documentation files for nix.
%endif
%package filesystem
Summary: Filesystem for %{name}
Summary: Filesystem for nix
BuildArch: noarch
# added at f43
Obsoletes: nix-singleuser < %{version}-%{release}
@ -137,17 +159,26 @@ Obsoletes: nix-singleuser < %{version}-%{release}
The package provides the /nix root directory for the nix package manager.
%package legacy
Summary: nix classical commands
BuildArch: noarch
Requires: nix-core = %{version}-%{release}
%description legacy
This package provides the symlinks for the older nix-* commands.
%package libs
Summary: Runtime libraries for %{name}
Summary: Runtime libraries for nix
%description libs
The package provides the the runtime libraries for %{name}.
The package provides the the runtime libraries for nix.
%if %{with tests}
%package test
Summary: Nix test programs
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: nix%{?_isa} = %{version}-%{release}
%description test
This package provides the nix-test programs.
@ -157,8 +188,7 @@ This package provides the nix-test programs.
%package system
Summary: Nix directories and sysusers setup
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
Requires: %{name}-filesystem = %{version}-%{release}
Requires: nix-filesystem = %{version}-%{release}
%description system
This package sets up the nix directories and sysusers.
@ -169,6 +199,10 @@ This package sets up the nix directories and sysusers.
install -p -m 0644 %{SOURCE3} README.fedora.md
# https://github.com/NixOS/nix/issues/14666
# remove unicode RLO (0x202E) characters
sed -i 's/\xe2\x80\xae//g' doc/manual/source/release-notes/rl-2.26.md
%build
MESON_OPTS=(
@ -202,20 +236,22 @@ MESON_OPTS=(
mkdir -p %{buildroot}/etc/nix
cp %{SOURCE1} %{SOURCE2} %{buildroot}/etc/nix/
# Nix has multiuser and singleuser installation modes
# https://nix.dev/manual/nix/stable/installation/nix-security.html
mkdir -p %{buildroot}/nix/store
mkdir -p %{buildroot}/nix/var/log/nix/drvs
# make per-user directories
mkdir -p %{buildroot}/nix/var/nix/{gcroots,profiles}/per-user
mkdir %{buildroot}/nix/var/nix/{db,temproots}
touch %{buildroot}/nix/var/nix/gc.lock
mkdir -p %{buildroot}/nix/var/nix
install -p -D -m 0644 %{SOURCE4} %{buildroot}%{_sysusersdir}/nix.conf
install -p -D -m 0644 %{SOURCE5} %{buildroot}%{_tmpfilesdir}/nix-filesystem.conf
# filter out relative doc links
# https://bugzilla.redhat.com/show_bug.cgi?id=2415126
# https://github.com/kristapsdz/lowdown/issues/170
# (sed expression generated by Gemini Pro: removes pairs of .UR and .UE lines)
sed -i -e '/^\.UR [@#.]/,/^\.UE/{ /^\.UR [@#.]/d; /^\.UE/d}' %{buildroot}%{_mandir}/man*/*
%check
LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
@ -238,22 +274,11 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
%files
%files core
%doc README.md README.fedora.md
%{_bindir}/nix
%{_bindir}/nix-build
%{_bindir}/nix-channel
%{_bindir}/nix-collect-garbage
%{_bindir}/nix-copy-closure
%{_bindir}/nix-env
%{_bindir}/nix-hash
%{_bindir}/nix-instantiate
%{_bindir}/nix-prefetch-url
%{_bindir}/nix-shell
%{_bindir}/nix-store
%if %{with tests}
%exclude %{_bindir}/nix*-test
%endif
%exclude %{_bindir}/nix-daemon
%{_libexecdir}/nix
%config(noreplace) %{_sysconfdir}/nix/nix.conf
%config(noreplace) %{_sysconfdir}/nix/registry.json
@ -263,6 +288,12 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
%{fish_completions_dir}/nix.fish
%{zsh_completions_dir}/_nix
%{zsh_completions_dir}/run-help-nix
%if %{with docs}
%{_mandir}/man1/nix.1*
%{_mandir}/man1/nix3-*.1*
%{_mandir}/man5/nix.conf.5*
%{_mandir}/man5/nix-profiles.5*
%endif
%files daemon
@ -270,8 +301,12 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
%{_sysconfdir}/profile.d/nix-daemon.*sh
%{_unitdir}/nix-daemon.*
%{_tmpfilesdir}/nix-daemon.conf
%ghost /nix/var/nix/daemon-socket
%ghost /nix/var/nix/builds
%ghost %dir /nix/var/nix/builds
%ghost %dir /nix/var/nix/daemon-socket
%ghost /nix/var/nix/daemon-socket/socket
%if %{with docs}
%{_mandir}/man8/nix-daemon.8*
%endif
%files devel
@ -296,7 +331,7 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
%if %{with docs}
%files doc
%{_defaultdocdir}/%{name}
%{_defaultdocdir}/nix
%endif
@ -304,6 +339,25 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
# FHS Exception: https://pagure.io/fesco/issue/3473
%{_tmpfilesdir}/nix-filesystem.conf
%ghost %dir /nix
%ghost %dir /nix/var
%ghost %dir /nix/var/log
%ghost %dir /nix/var/log/nix
%files legacy
%{_bindir}/nix-build
%{_bindir}/nix-channel
%{_bindir}/nix-collect-garbage
%{_bindir}/nix-copy-closure
%{_bindir}/nix-env
%{_bindir}/nix-hash
%{_bindir}/nix-instantiate
%{_bindir}/nix-prefetch-url
%{_bindir}/nix-shell
%{_bindir}/nix-store
%if %{with docs}
%{_mandir}/man1/nix-*.1*
%endif
%files libs
@ -323,95 +377,27 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} %{buildroot}%{_bindir}/nix --help
%{_libdir}/libnixutilc.so.%{version}
%files system
%{_sysusersdir}/nix.conf
%dir %attr(1775,root,%{nixbld_group}) /nix/store
%dir %attr(775,root,%{nixbld_group}) /nix/var/log/nix/drvs
%dir %attr(775,root,%{nixbld_group}) /nix/var/nix
%ghost %dir /nix/var/nix/db
%ghost /nix/var/nix/gc.lock
%ghost %dir /nix/var/nix/gcroots
%ghost %dir /nix/var/nix/gcroots/per-user
%ghost %dir /nix/var/nix/gc-socket
%ghost /nix/var/nix/gc-socket/socket
%ghost %dir /nix/var/nix/profiles
%ghost %dir /nix/var/nix/profiles/per-user
%ghost %dir /nix/var/nix/temproots
%if %{with tests}
%files test
%{_bindir}/nix*-test
%endif
%files system
%{_sysusersdir}/nix.conf
%dir %attr(1775,root,%{nixbld_group}) /nix/store
%dir /nix/var
%dir /nix/var/log
%dir /nix/var/log/nix
%dir %attr(1775,root,%{nixbld_group}) /nix/var/log/nix/drvs
%dir %attr(775,root,%{nixbld_group}) /nix/var/nix
%dir %attr(775,root,%{nixbld_group}) /nix/var/nix/db
%attr(664,root,%{nixbld_group}) /nix/var/nix/gc.lock
%dir %attr(775,root,%{nixbld_group}) /nix/var/nix/gcroots
%dir %attr(1755,root,%{nixbld_group}) /nix/var/nix/gcroots/per-user
%dir %attr(775,root,%{nixbld_group}) /nix/var/nix/profiles
%dir %attr(1755,root,%{nixbld_group}) /nix/var/nix/profiles/per-user
%attr(775,root,%{nixbld_group}) /nix/var/nix/temproots
%changelog
* Mon Oct 27 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-8
- drop redundant sysusers and tmpfiles.d scriptlets (#2388768)
- add obsoletes for petersen/nix copr subpackages
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-7
- recommends nix-daemon if systemd
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-6
- rename users subpackage to system
- improve /nix/var dirs ownership and perms
- rename sysusers file to nix.conf
- move nix-daemon tmpfiles.d to nix-daemon
* Sat Oct 25 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-5
- split nix-users from nix-daemon and drop nix-singleuser
- drop all conflicts
* Fri Oct 24 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-4
- drop filesystem subpackage and ghost singleuser dirs
- nix-daemon and nix-singleuser conflict with each other
* Thu Oct 23 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-3
- use tmpfiles.d for nix-filesystem
- improve the readme
- list bin files explicitly
- nix-singleuser now owns its dirs
- add nix-daemon conflicts for ostree and containers
- add nix-singleuser recommends for containers
* Sat Oct 18 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-2
- FHS Exception for /nix was approved (https://pagure.io/fesco/issue/3473)
- add multiuser setup to daemon subpackage
- add singleuser and nix-filesystem subpackages
* Mon Sep 22 2025 Jens Petersen <petersen@redhat.com> - 2.31.2-1
- update to 2.31.2
* Wed Sep 17 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-6
- list .so files explicitly without globbing (#2388768)
- disable /usr/lib/tmpfiles.d/nix-daemon.conf for now (#2388768)
* Mon Sep 15 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-5
- set the soversion to the nix version (#13995, #14001, #14005)
* Sun Sep 14 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-4
- add simple check with LD_LIBRARY_PATH
* Fri Sep 12 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-3
- revert to shared libs, add libs subpackage and restore devel
- apply upstream submitted PR to enable soname versioning (#13966)
* Thu Sep 11 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-2
- noarch nix-daemon subpackage cannot use _isa requires
* Wed Sep 10 2025 Jens Petersen <petersen@redhat.com> - 2.31.1-1
- https://github.com/NixOS/nix/blob/2.31.1/doc/manual/source/release-notes/rl-2.31.md
- rename nix-core to base package
- use readline (#2388768)
- improve MESON_OPTS setup (zbyszek, #2388768)
- use static libs and drop devel package
- disable perl binding
* Sat Aug 16 2025 Jens Petersen <petersen@redhat.com> - 2.30.2-2
- fix nix-devel requires
- add systemd scriptlets for nix-daemon
* Fri Aug 15 2025 Jens Petersen <petersen@redhat.com> - 2.30.2-1
- initial packaging of nix programs without /nix
%autochangelog