blob: 01b1d42b6995e9bdbeafe3e198ef8b0a7f94e41b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
PORTNAME= nix
DISTVERSION= 2.20.2
PORTREVISION= 7
CATEGORIES= sysutils
MAINTAINER= ashish@FreeBSD.org
COMMENT= Purely functional package manager
WWW= https://nixos.org/nix/
LICENSE= LGPL21
LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN= Fails to build, error: field designator 'cols' does not refer to any field in type 'struct lowdown_opts'
DEPRECATED= Outdated version and broken for months
EXPIRATION_DATE=2025-03-31
BUILD_DEPENDS= ${LOCALBASE}/share/aclocal/ax_cxx_compile_stdcxx.m4:devel/autoconf-archive \
gsed:textproc/gsed \
bash:shells/bash \
docbook-xsl-ns>=0:textproc/docbook-xsl-ns \
gnustat:sysutils/coreutils \
grealpath:sysutils/coreutils \
xmllint:textproc/libxml2 \
xsltproc:textproc/libxslt \
jq:textproc/jq \
nlohmann-json>=3.9:devel/nlohmann-json
LIB_DEPENDS= libaws-cpp-sdk-core.so:devel/aws-sdk-cpp \
libaws-crt-cpp.so:devel/aws-crt-cpp \
libboost_context.so:devel/boost-libs \
libbrotlienc.so:archivers/brotli \
libcurl.so:ftp/curl \
libeditline.so:devel/editline \
libgc.so:devel/boehm-gc \
libsodium.so:security/libsodium \
libcpuid.so:sysutils/libcpuid \
libgit2.so:devel/libgit2 \
liblowdown.so:textproc/lowdown
TEST_DEPENDS= dot:graphics/graphviz \
git:devel/git \
gxargs:misc/findutils \
hg:devel/mercurial
USES= autoreconf bison compiler:c++17-lang cpe gmake localbase libarchive \
pkgconfig sqlite:3 ssl
USE_GITHUB= yes
GH_ACCOUNT= NixOS
USE_LDCONFIG= yes
CPE_VENDOR= nix_project
HAS_CONFIGURE= yes
# Workaround for bashisms in the configure script.
CONFIGURE_SHELL= ${_BASH}
CONFIGURE_ARGS= --disable-seccomp-sandboxing \
--enable-gc \
--disable-unit-tests
CONFIGURE_ENV= OPENSSL_CFLAGS="-I ${OPENSSLINC}" \
OPENSSL_LIBS="-L ${OPENSSLLIB}"
# Workaround for:
# /usr/bin/ld: error: undefined symbol: SHA512_Update
MAKE_ARGS= libutil_ALLOW_UNDEFINED=yes V=s
# XXX: Tests require the port to be installed on the system. It is not enough
# to have the port staged.
TEST_ARGS= nix_tests="${_PASSING_TESTS}"
TEST_TARGET= installcheck
# grealpath and gnustat are needed for tests.
BINARY_ALIAS= realpath=grealpath stat=gnustat sed=gsed
SUB_FILES= pkg-message
GROUPS= nixbld
OPTIONS_DEFINE= DOCS
DOCS_CONFIGURE_ENABLE= doc-gen
DOCS_BUILD_DEPENDS= mdbook>=0:textproc/mdbook \
mdbook-linkcheck>=0:textproc/mdbook-linkcheck
_BASH= ${LOCALBASE}/bin/bash
_STRIP_TARGETS= bin/nix bin/nix-build bin/nix-channel bin/nix-collect-garbage \
bin/nix-copy-closure bin/nix-daemon bin/nix-env \
bin/nix-instantiate bin/nix-prefetch-url bin/nix-store \
lib/libnixexpr.so lib/libnixmain.so lib/libnixstore.so \
lib/libnixutil.so lib/libnixcmd.so lib/libnixfetchers.so
# Regenerate the list of all tests with:
# make patch && make -f $(make -V WRKSRC)/tests/local.mk -V nix_tests
_ALL_TESTS= test-infra.sh init.sh flakes/flakes.sh flakes/develop.sh \
flakes/run.sh flakes/mercurial.sh flakes/circular.sh \
flakes/init.sh flakes/inputs.sh flakes/follow-paths.sh \
flakes/bundle.sh flakes/check.sh flakes/unlocked-override.sh \
flakes/absolute-paths.sh flakes/absolute-attr-paths.sh \
flakes/build-paths.sh flakes/flake-in-submodule.sh gc.sh \
nix-collect-garbage-d.sh remote-store.sh legacy-ssh-store.sh \
lang.sh lang-test-infra.sh experimental-features.sh \
fetchMercurial.sh gc-auto.sh user-envs.sh \
user-envs-migration.sh binary-cache.sh multiple-outputs.sh \
nix-build.sh gc-concurrent.sh repair.sh fixed.sh export-graph.sh \
timeout.sh fetchGitRefs.sh gc-runtime.sh tarball.sh fetchGit.sh \
fetchurl.sh fetchPath.sh fetchTree-file.sh simple.sh referrers.sh \
optimise-store.sh substitute-with-invalid-ca.sh signing.sh hash.sh \
gc-non-blocking.sh check.sh nix-shell.sh check-refs.sh \
build-remote-input-addressed.sh secure-drv-outputs.sh restricted.sh \
fetchGitSubmodules.sh fetchGitVerification.sh flakes/search-root.sh \
readfile-context.sh nix-channel.sh recursive.sh dependencies.sh \
check-reqs.sh build-remote-content-addressed-fixed.sh \
build-remote-content-addressed-floating.sh \
build-remote-trustless-should-pass-0.sh \
build-remote-trustless-should-pass-1.sh \
build-remote-trustless-should-pass-2.sh \
build-remote-trustless-should-pass-3.sh \
build-remote-trustless-should-fail-0.sh \
build-remote-with-mounted-ssh-ng.sh \
nar-access.sh impure-eval.sh pure-eval.sh eval.sh repl.sh \
binary-cache-build-remote.sh search.sh logging.sh export.sh config.sh \
add.sh local-store.sh filter-source.sh misc.sh dump-db.sh \
linux-sandbox.sh supplementary-groups.sh build-dry.sh \
structured-attrs.sh shell.sh brotli.sh zstd.sh compression-levels.sh \
nix-copy-ssh.sh nix-copy-ssh-ng.sh post-hook.sh function-trace.sh \
flakes/config.sh fmt.sh eval-store.sh why-depends.sh derivation-json.sh \
import-derivation.sh nix_path.sh case-hack.sh placeholders.sh \
ssh-relay.sh build.sh build-delete.sh output-normalization.sh \
selfref-gc.sh db-migration.sh bash-profile.sh pass-as-file.sh \
nix-profile.sh suggestions.sh store-info.sh fetchClosure.sh completions.sh \
flakes/show.sh impure-derivations.sh path-from-hash-part.sh path-info.sh \
toString-path.sh read-only-store.sh nested-sandboxing.sh impure-env.sh \
compute-levels.sh test-libstoreconsumer.sh plugins.sh
# Remove problematic tests from the list:
# - restricted.sh is hanging and never finishes.
_PASSING_TESTS= ${_ALL_TESTS:Nrestricted.sh}
post-patch:
${REINPLACE_CMD} -e 's,=/dummy,=${WRKDIR}/dummy,g' \
${WRKSRC}/doc/manual/local.mk
post-install:
@${MKDIR} ${STAGEDIR}${DATADIR}
${INSTALL_SCRIPT} ${FILESDIR}/add-nixbld-users ${STAGEDIR}${DATADIR}
@${RM} ${STAGEDIR}${PREFIX}/libexec/nix/build-remote
@${RLN} ${STAGEDIR}${PREFIX}/bin/nix ${STAGEDIR}${PREFIX}/libexec/nix/build-remote
@cd ${STAGEDIR}${PREFIX} && ${STRIP_CMD} ${_STRIP_TARGETS}
pre-test:
${MKDIR} /tmp/nix-test
${REINPLACE_CMD} -e 's| xargs | gxargs |g' ${WRKSRC}/tests/push-to-store.sh
${REINPLACE_CMD} -e 's| touch | /usr/bin/touch |g' ${WRKSRC}/tests/timeout.nix
${REINPLACE_CMD} -e 's| touch | /usr/bin/touch |g' ${WRKSRC}/tests/check-reqs.nix
${REINPLACE_CMD} -e 's| touch | /usr/bin/touch |g' ${WRKSRC}/tests/nar-access.nix
${REINPLACE_CMD} -e 's| touch | /usr/bin/touch |g' ${WRKSRC}/tests/pass-as-file.sh
${REINPLACE_CMD} -e 's| date | ${LOCALBASE}/bin/gdate |g' ${WRKSRC}/tests/check.nix
${REINPLACE_CMD} -e 's| wc -l)| /usr/bin/grep -c .)|g' ${WRKSRC}/tests/gc-auto.sh
${REINPLACE_CMD} -e 's| tar c tarball)| tar -cf - tarball)|' ${WRKSRC}/tests/tarball.sh
${REINPLACE_CMD} -e 's|^grep |/usr/bin/grep |' ${WRKSRC}/tests/check.sh
post-test:
${RM} -r /tmp/nix-test
.include <bsd.port.mk>
|