Compare commits
23 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c6ba971f4a | ||
|
|
5fe7386873 | ||
|
|
98df99f77c | ||
|
|
eef01d8c8e | ||
|
|
3de48dcfc0 | ||
|
|
6aed6c629d | ||
|
|
1115ba9601 | ||
|
|
80d23ca87a | ||
|
|
0d43c98794 | ||
|
|
64346930c9 | ||
|
|
dfa17d8c50 | ||
|
|
80a7a7982b | ||
|
|
901563692b | ||
|
|
8565b643b0 | ||
|
|
b039f0f78e | ||
|
|
dc975f57c6 | ||
|
|
d14e25bc8b | ||
|
|
4ff55bf8c7 | ||
|
|
bc56050014 | ||
|
|
eedfe652da | ||
|
|
3745d1e7f1 | ||
|
|
1c9e64f566 | ||
|
|
f96e840bbc |
6 changed files with 335 additions and 167 deletions
61
14593.patch
Normal file
61
14593.patch
Normal 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.
|
||||
|
||||
)""
|
||||
44
README.md
44
README.md
|
|
@ -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
68
changelog
Normal 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
|
||||
|
|
@ -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
46
nix-disable-mdbook.patch
Normal 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
256
nix.spec
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue