Merge branch 'remove-perl' of https://github.com/shlevy/nix
This commit is contained in:
		
						commit
						c0745a2531
					
				
					 16 changed files with 220 additions and 111 deletions
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							|  | @ -1,4 +1,5 @@ | |||
| Makefile.config | ||||
| perl/Makefile.config | ||||
| 
 | ||||
| # / | ||||
| /aclocal.m4 | ||||
|  |  | |||
							
								
								
									
										1
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
										
									
									
									
								
							|  | @ -18,7 +18,6 @@ makefiles = \ | |||
|   src/nix-channel/local.mk \
 | ||||
|   src/nix-build/local.mk \
 | ||||
|   src/build-remote/local.mk \
 | ||||
|   perl/local.mk \
 | ||||
|   scripts/local.mk \
 | ||||
|   corepkgs/local.mk \
 | ||||
|   misc/systemd/local.mk \
 | ||||
|  |  | |||
|  | @ -24,9 +24,6 @@ libdir = @libdir@ | |||
| libexecdir = @libexecdir@ | ||||
| localstatedir = @localstatedir@ | ||||
| mandir = @mandir@ | ||||
| perl = @perl@ | ||||
| perlbindings = @perlbindings@ | ||||
| perllibdir = @perllibdir@ | ||||
| pkglibdir = $(libdir)/$(PACKAGE_NAME) | ||||
| prefix = @prefix@ | ||||
| storedir = @storedir@ | ||||
|  |  | |||
							
								
								
									
										52
									
								
								configure.ac
									
										
									
									
									
								
							
							
						
						
									
										52
									
								
								configure.ac
									
										
									
									
									
								
							|  | @ -120,7 +120,6 @@ AC_PATH_PROG(xmllint, xmllint, false) | |||
| AC_PATH_PROG(xsltproc, xsltproc, false) | ||||
| AC_PATH_PROG(flex, flex, false) | ||||
| AC_PATH_PROG(bison, bison, false) | ||||
| NEED_PROG(perl, perl) | ||||
| NEED_PROG(sed, sed) | ||||
| NEED_PROG(tar, tar) | ||||
| NEED_PROG(bzip2, bzip2) | ||||
|  | @ -131,23 +130,6 @@ AC_PATH_PROG(pv, pv, pv) | |||
| AC_PATH_PROG(bro, bro, bro) | ||||
| 
 | ||||
| 
 | ||||
| # Test that Perl has the open/fork feature (Perl 5.8.0 and beyond). | ||||
| AC_MSG_CHECKING([whether Perl is recent enough]) | ||||
| if ! $perl -e 'open(FOO, "-|", "true"); while (<FOO>) { print; }; close FOO or die;'; then | ||||
|     AC_MSG_RESULT(no) | ||||
|     AC_MSG_ERROR([Your Perl version is too old.  Nix requires Perl 5.8.0 or newer.]) | ||||
| fi | ||||
| AC_MSG_RESULT(yes) | ||||
| 
 | ||||
| 
 | ||||
| # Figure out where to install Perl modules. | ||||
| AC_MSG_CHECKING([for the Perl installation prefix]) | ||||
| perlversion=$($perl -e 'use Config; print $Config{version};') | ||||
| perlarchname=$($perl -e 'use Config; print $Config{archname};') | ||||
| AC_SUBST(perllibdir, [${libdir}/perl5/site_perl/$perlversion/$perlarchname]) | ||||
| AC_MSG_RESULT($perllibdir) | ||||
| 
 | ||||
| 
 | ||||
| NEED_PROG(cat, cat) | ||||
| NEED_PROG(tr, tr) | ||||
| AC_ARG_WITH(coreutils-bin, AC_HELP_STRING([--with-coreutils-bin=PATH], | ||||
|  | @ -213,40 +195,6 @@ if test "$gc" = yes; then | |||
| fi | ||||
| 
 | ||||
| 
 | ||||
| # Check for the required Perl dependencies (DBI, DBD::SQLite). | ||||
| perlFlags="-I$perllibdir" | ||||
| 
 | ||||
| AC_ARG_WITH(dbi, AC_HELP_STRING([--with-dbi=PATH], | ||||
|   [prefix of the Perl DBI library]), | ||||
|   perlFlags="$perlFlags -I$withval") | ||||
| 
 | ||||
| AC_ARG_WITH(dbd-sqlite, AC_HELP_STRING([--with-dbd-sqlite=PATH], | ||||
|   [prefix of the Perl DBD::SQLite library]), | ||||
|   perlFlags="$perlFlags -I$withval") | ||||
| 
 | ||||
| AC_MSG_CHECKING([whether DBD::SQLite works]) | ||||
| if ! $perl $perlFlags -e 'use DBI; use DBD::SQLite;' 2>&5; then | ||||
|     AC_MSG_RESULT(no) | ||||
|     AC_MSG_FAILURE([The Perl modules DBI and/or DBD::SQLite are missing.]) | ||||
| fi | ||||
| AC_MSG_RESULT(yes) | ||||
| 
 | ||||
| AC_SUBST(perlFlags) | ||||
| 
 | ||||
| 
 | ||||
| # Whether to build the Perl bindings | ||||
| AC_MSG_CHECKING([whether to build the Perl bindings]) | ||||
| AC_ARG_ENABLE(perl-bindings, AC_HELP_STRING([--enable-perl-bindings], | ||||
|   [whether to build the Perl bindings (recommended) [default=yes]]), | ||||
|   perlbindings=$enableval, perlbindings=yes) | ||||
| if test "$enable_shared" = no; then | ||||
|    # Perl bindings require shared libraries. | ||||
|    perlbindings=no | ||||
| fi | ||||
| AC_SUBST(perlbindings) | ||||
| AC_MSG_RESULT($perlbindings) | ||||
| 
 | ||||
| 
 | ||||
| AC_ARG_ENABLE(init-state, AC_HELP_STRING([--disable-init-state], | ||||
|   [do not initialise DB etc. in `make install']), | ||||
|   init_state=$enableval, init_state=yes) | ||||
|  |  | |||
|  | @ -14,6 +14,9 @@ in rec { | |||
|   nixBinDir = fromEnv "NIX_BIN_DIR" "@bindir@"; | ||||
|   nixPrefix = "@prefix@"; | ||||
|   nixLibexecDir = fromEnv "NIX_LIBEXEC_DIR" "@libexecdir@"; | ||||
|   nixLocalstateDir = "@localstatedir@"; | ||||
|   nixSysconfDir = "@sysconfdir@"; | ||||
|   nixStoreDir = fromEnv "NIX_STORE_DIR" "@storedir@"; | ||||
| 
 | ||||
|   # If Nix is installed in the Nix store, then automatically add it as | ||||
|   # a dependency to the core packages. This ensures that they work | ||||
|  |  | |||
|  | @ -42,7 +42,7 @@ purposes.  It uses <command>ssh</command> and | |||
| <command>nix-copy-closure</command> to copy the build inputs and | ||||
| outputs and perform the remote build.  To use it, you should set | ||||
| <envar>NIX_BUILD_HOOK</envar> to | ||||
| <filename><replaceable>prefix</replaceable>/libexec/nix/build-remote.pl</filename>. | ||||
| <filename><replaceable>prefix</replaceable>/libexec/nix/build-remote</filename>. | ||||
| You should also define a list of available build machines and point | ||||
| the environment variable <envar>NIX_REMOTE_SYSTEMS</envar> to | ||||
| it. <envar>NIX_REMOTE_SYSTEMS</envar> must be an absolute path. An | ||||
|  | @ -68,7 +68,7 @@ bits of information: | |||
|   should not have a passphrase!</para></listitem> | ||||
| 
 | ||||
|   <listitem><para>The maximum number of builds that | ||||
|   <filename>build-remote.pl</filename> will execute in parallel on the | ||||
|   <filename>build-remote</filename> will execute in parallel on the | ||||
|   machine.  Typically this should be equal to the number of CPU cores. | ||||
|   For instance, the machine <literal>itchy</literal> in the example | ||||
|   will execute up to 8 builds in parallel.</para></listitem> | ||||
|  | @ -80,7 +80,7 @@ bits of information: | |||
|   <listitem><para>A comma-separated list of <emphasis>supported | ||||
|   features</emphasis>.  If a derivation has the | ||||
|   <varname>requiredSystemFeatures</varname> attribute, then | ||||
|   <filename>build-remote.pl</filename> will only perform the | ||||
|   <filename>build-remote</filename> will only perform the | ||||
|   derivation on a machine that has the specified features.  For | ||||
|   instance, the attribute | ||||
| 
 | ||||
|  | @ -106,11 +106,11 @@ requiredSystemFeatures = [ "kvm" ]; | |||
| You should also set up the environment variable | ||||
| <envar>NIX_CURRENT_LOAD</envar> to point at a directory (e.g., | ||||
| <filename>/var/run/nix/current-load</filename>) that | ||||
| <filename>build-remote.pl</filename> uses to remember how many builds | ||||
| <filename>build-remote</filename> uses to remember how many builds | ||||
| it is currently executing remotely.  It doesn't look at the actual | ||||
| load on the remote machine, so if you have multiple instances of Nix | ||||
| running, they should use the same <envar>NIX_CURRENT_LOAD</envar> | ||||
| file.  Maybe in the future <filename>build-remote.pl</filename> will | ||||
| file.  Maybe in the future <filename>build-remote</filename> will | ||||
| look at the actual remote load.</para> | ||||
| 
 | ||||
| </chapter> | ||||
|  |  | |||
|  | @ -12,8 +12,6 @@ | |||
| 
 | ||||
|   <listitem><para>A version of GCC or Clang that supports C++11.</para></listitem> | ||||
| 
 | ||||
|   <listitem><para>Perl 5.8 or higher.</para></listitem> | ||||
| 
 | ||||
|   <listitem><para><command>pkg-config</command> to locate | ||||
|   dependencies.  If your distribution does not provide it, you can get | ||||
|   it from <link | ||||
|  | @ -34,11 +32,6 @@ | |||
|   or higher.  If your distribution does not provide it, please install | ||||
|   it from <link xlink:href="http://www.sqlite.org/" />.</para></listitem> | ||||
| 
 | ||||
|   <listitem><para>The Perl DBI and DBD::SQLite libraries, which are | ||||
|   available from <link | ||||
|   xlink:href="http://search.cpan.org/">CPAN</link> if your | ||||
|   distribution does not provide them.</para></listitem> | ||||
| 
 | ||||
|   <listitem><para>The <link | ||||
|   xlink:href="http://www.hboehm.info/gc/">Boehm | ||||
|   garbage collector</link> to reduce the evaluator’s memory | ||||
|  |  | |||
							
								
								
									
										2
									
								
								local.mk
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								local.mk
									
										
									
									
									
								
							|  | @ -3,7 +3,7 @@ ifeq ($(MAKECMDGOALS), dist) | |||
|   dist-files += $(shell git --git-dir=.git ls-files || find * -type f) | ||||
| endif | ||||
| 
 | ||||
| dist-files += configure config.h.in nix.spec | ||||
| dist-files += configure config.h.in nix.spec perl/configure | ||||
| 
 | ||||
| clean-files += Makefile.config | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										14
									
								
								perl/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								perl/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| makefiles = local.mk | ||||
| 
 | ||||
| GLOBAL_CXXFLAGS += -std=c++11 -g -Wall | ||||
| 
 | ||||
| -include Makefile.config | ||||
| 
 | ||||
| OPTIMIZE = 1 | ||||
| 
 | ||||
| ifeq ($(OPTIMIZE), 1) | ||||
|   GLOBAL_CFLAGS += -O3 | ||||
|   GLOBAL_CXXFLAGS += -O3 | ||||
| endif | ||||
| 
 | ||||
| include mk/lib.mk | ||||
							
								
								
									
										19
									
								
								perl/Makefile.config.in
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								perl/Makefile.config.in
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| CC = @CC@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CXX = @CXX@ | ||||
| CXXFLAGS = @CXXFLAGS@ | ||||
| HAVE_SODIUM = @HAVE_SODIUM@ | ||||
| PACKAGE_NAME = @PACKAGE_NAME@ | ||||
| PACKAGE_VERSION = @PACKAGE_VERSION@ | ||||
| SODIUM_LIBS = @SODIUM_LIBS@ | ||||
| NIX_CFLAGS = @NIX_CFLAGS@ | ||||
| NIX_LIBS = @NIX_LIBS@ | ||||
| nixbindir = @nixbindir@ | ||||
| curl = @curl@ | ||||
| nixlibexecdir = @nixlibexecdir@ | ||||
| nixlocalstatedir = @nixlocalstatedir@ | ||||
| perl = @perl@ | ||||
| perllibdir = @perllibdir@ | ||||
| nixstoredir = @nixstoredir@ | ||||
| nixsysconfdir = @nixsysconfdir@ | ||||
| perlbindings = @perlbindings@ | ||||
							
								
								
									
										117
									
								
								perl/configure.ac
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								perl/configure.ac
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,117 @@ | |||
| AC_INIT(nix-perl, m4_esyscmd([bash -c "echo -n $(cat ../version)$VERSION_SUFFIX"])) | ||||
| AC_CONFIG_SRCDIR(MANIFEST) | ||||
| AC_CONFIG_AUX_DIR(../config) | ||||
| 
 | ||||
| CFLAGS= | ||||
| CXXFLAGS= | ||||
| AC_PROG_CC | ||||
| AC_PROG_CXX | ||||
| AX_CXX_COMPILE_STDCXX_11 | ||||
| 
 | ||||
| # Use 64-bit file system calls so that we can support files > 2 GiB. | ||||
| AC_SYS_LARGEFILE | ||||
| 
 | ||||
| AC_DEFUN([NEED_PROG], | ||||
| [ | ||||
| AC_PATH_PROG($1, $2) | ||||
| if test -z "$$1"; then | ||||
|     AC_MSG_ERROR([$2 is required]) | ||||
| fi | ||||
| ]) | ||||
| 
 | ||||
| NEED_PROG(perl, perl) | ||||
| NEED_PROG(curl, curl) | ||||
| NEED_PROG(bzip2, bzip2) | ||||
| NEED_PROG(xz, xz) | ||||
| 
 | ||||
| # Test that Perl has the open/fork feature (Perl 5.8.0 and beyond). | ||||
| AC_MSG_CHECKING([whether Perl is recent enough]) | ||||
| if ! $perl -e 'open(FOO, "-|", "true"); while (<FOO>) { print; }; close FOO or die;'; then | ||||
|     AC_MSG_RESULT(no) | ||||
|     AC_MSG_ERROR([Your Perl version is too old.  Nix requires Perl 5.8.0 or newer.]) | ||||
| fi | ||||
| AC_MSG_RESULT(yes) | ||||
| 
 | ||||
| 
 | ||||
| # Figure out where to install Perl modules. | ||||
| AC_MSG_CHECKING([for the Perl installation prefix]) | ||||
| perlversion=$($perl -e 'use Config; print $Config{version};') | ||||
| perlarchname=$($perl -e 'use Config; print $Config{archname};') | ||||
| AC_SUBST(perllibdir, [${libdir}/perl5/site_perl/$perlversion/$perlarchname]) | ||||
| AC_MSG_RESULT($perllibdir) | ||||
| 
 | ||||
| AC_ARG_WITH(store-dir, AC_HELP_STRING([--with-store-dir=PATH], | ||||
|   [path of the Nix store (defaults to /nix/store)]), | ||||
|   storedir=$withval, storedir='/nix/store') | ||||
| AC_SUBST(storedir) | ||||
| 
 | ||||
| # Look for libsodium, an optional dependency. | ||||
| PKG_CHECK_MODULES([SODIUM], [libsodium], | ||||
|   [AC_DEFINE([HAVE_SODIUM], [1], [Whether to use libsodium for cryptography.]) | ||||
|    CXXFLAGS="$SODIUM_CFLAGS $CXXFLAGS" | ||||
|    have_sodium=1], [have_sodium=]) | ||||
| AC_SUBST(HAVE_SODIUM, [$have_sodium]) | ||||
| 
 | ||||
| # Check for the required Perl dependencies (DBI, DBD::SQLite and WWW::Curl). | ||||
| perlFlags="-I$perllibdir" | ||||
| 
 | ||||
| AC_ARG_WITH(dbi, AC_HELP_STRING([--with-dbi=PATH], | ||||
|   [prefix of the Perl DBI library]), | ||||
|   perlFlags="$perlFlags -I$withval") | ||||
| 
 | ||||
| AC_ARG_WITH(dbd-sqlite, AC_HELP_STRING([--with-dbd-sqlite=PATH], | ||||
|   [prefix of the Perl DBD::SQLite library]), | ||||
|   perlFlags="$perlFlags -I$withval") | ||||
| 
 | ||||
| AC_ARG_WITH(www-curl, AC_HELP_STRING([--with-www-curl=PATH], | ||||
|   [prefix of the Perl WWW::Curl library]), | ||||
|   perlFlags="$perlFlags -I$withval") | ||||
| 
 | ||||
| AC_MSG_CHECKING([whether DBD::SQLite works]) | ||||
| if ! $perl $perlFlags -e 'use DBI; use DBD::SQLite;' 2>&5; then | ||||
|     AC_MSG_RESULT(no) | ||||
|     AC_MSG_FAILURE([The Perl modules DBI and/or DBD::SQLite are missing.]) | ||||
| fi | ||||
| AC_MSG_RESULT(yes) | ||||
| 
 | ||||
| AC_MSG_CHECKING([whether WWW::Curl works]) | ||||
| if ! $perl $perlFlags -e 'use WWW::Curl;' 2>&5; then | ||||
|     AC_MSG_RESULT(no) | ||||
|     AC_MSG_FAILURE([The Perl module WWW::Curl is missing.]) | ||||
| fi | ||||
| AC_MSG_RESULT(yes) | ||||
| 
 | ||||
| AC_SUBST(perlFlags) | ||||
| 
 | ||||
| PKG_CHECK_MODULES([NIX], [nix-store]) | ||||
| 
 | ||||
| NEED_PROG([NIX_INSTANTIATE_PROGRAM], [nix-instantiate]) | ||||
| 
 | ||||
| # Get nix configure values | ||||
| nixbindir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixBinDir | tr -d \") | ||||
| nixlibexecdir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixLibexecDir | tr -d \") | ||||
| nixlocalstatedir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixLocalstateDir | tr -d \") | ||||
| nixsysconfdir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixSysconfDir | tr -d \") | ||||
| nixstoredir=$("$NIX_INSTANTIATE_PROGRAM" --eval '<nix/config.nix>' -A nixStoreDir | tr -d \") | ||||
| AC_SUBST(nixbindir) | ||||
| AC_SUBST(nixlibexecdir) | ||||
| AC_SUBST(nixlocalstatedir) | ||||
| AC_SUBST(nixsysconfdir) | ||||
| AC_SUBST(nixstoredir) | ||||
| 
 | ||||
| AC_SUBST(perlbindings, "yes") | ||||
| 
 | ||||
| # Expand all variables in config.status. | ||||
| test "$prefix" = NONE && prefix=$ac_default_prefix | ||||
| test "$exec_prefix" = NONE && exec_prefix='${prefix}' | ||||
| for name in $ac_subst_vars; do | ||||
|     declare $name="$(eval echo "${!name}")" | ||||
|     declare $name="$(eval echo "${!name}")" | ||||
|     declare $name="$(eval echo "${!name}")" | ||||
| done | ||||
| 
 | ||||
| rm -f Makefile.config | ||||
| ln -s ../mk mk | ||||
| 
 | ||||
| AC_CONFIG_FILES([]) | ||||
| AC_OUTPUT | ||||
|  | @ -4,18 +4,18 @@ use MIME::Base64; | |||
| 
 | ||||
| $version = "@PACKAGE_VERSION@"; | ||||
| 
 | ||||
| $binDir = $ENV{"NIX_BIN_DIR"} || "@bindir@"; | ||||
| $libexecDir = $ENV{"NIX_LIBEXEC_DIR"} || "@libexecdir@"; | ||||
| $stateDir = $ENV{"NIX_STATE_DIR"} || "@localstatedir@/nix"; | ||||
| $logDir = $ENV{"NIX_LOG_DIR"} || "@localstatedir@/log/nix"; | ||||
| $confDir = $ENV{"NIX_CONF_DIR"} || "@sysconfdir@/nix"; | ||||
| $storeDir = $ENV{"NIX_STORE_DIR"} || "@storedir@"; | ||||
| $binDir = $ENV{"NIX_BIN_DIR"} || "@nixbindir@"; | ||||
| $libexecDir = $ENV{"NIX_LIBEXEC_DIR"} || "@nixlibexecdir@"; | ||||
| $stateDir = $ENV{"NIX_STATE_DIR"} || "@nixlocalstatedir@/nix"; | ||||
| $logDir = $ENV{"NIX_LOG_DIR"} || "@nixlocalstatedir@/log/nix"; | ||||
| $confDir = $ENV{"NIX_CONF_DIR"} || "@nixsysconfdir@/nix"; | ||||
| $storeDir = $ENV{"NIX_STORE_DIR"} || "@nixstoredir@"; | ||||
| 
 | ||||
| $bzip2 = "@bzip2@"; | ||||
| $xz = "@xz@"; | ||||
| $curl = "@curl@"; | ||||
| 
 | ||||
| $useBindings = "@perlbindings@" eq "yes"; | ||||
| $useBindings = 1; | ||||
| 
 | ||||
| %config = (); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,10 +1,10 @@ | |||
| nix_perl_sources := \
 | ||||
|   $(d)/lib/Nix/Store.pm \
 | ||||
|   $(d)/lib/Nix/Manifest.pm \
 | ||||
|   $(d)/lib/Nix/SSH.pm \
 | ||||
|   $(d)/lib/Nix/CopyClosure.pm \
 | ||||
|   $(d)/lib/Nix/Config.pm.in \
 | ||||
|   $(d)/lib/Nix/Utils.pm | ||||
|   lib/Nix/Store.pm \
 | ||||
|   lib/Nix/Manifest.pm \
 | ||||
|   lib/Nix/SSH.pm \
 | ||||
|   lib/Nix/CopyClosure.pm \
 | ||||
|   lib/Nix/Config.pm.in \
 | ||||
|   lib/Nix/Utils.pm | ||||
| 
 | ||||
| nix_perl_modules := $(nix_perl_sources:.in=) | ||||
| 
 | ||||
|  | @ -12,12 +12,12 @@ $(foreach x, $(nix_perl_modules), $(eval $(call install-data-in, $(x), $(perllib | |||
| 
 | ||||
| ifeq ($(perlbindings), yes) | ||||
| 
 | ||||
|   $(d)/lib/Nix/Store.cc: $(d)/lib/Nix/Store.xs | ||||
|   lib/Nix/Store.cc: lib/Nix/Store.xs | ||||
| 	$(trace-gen) xsubpp $^ -output $@ | ||||
| 
 | ||||
|   libraries += Store | ||||
| 
 | ||||
|   Store_DIR := $(d)/lib/Nix | ||||
|   Store_DIR := lib/Nix | ||||
| 
 | ||||
|   Store_SOURCES := $(Store_DIR)/Store.cc | ||||
| 
 | ||||
|  | @ -25,11 +25,10 @@ ifeq ($(perlbindings), yes) | |||
|     -I$(shell $(perl) -e 'use Config; print $$Config{archlibexp};')/CORE \
 | ||||
|     -D_FILE_OFFSET_BITS=64 \
 | ||||
|     -Wno-unknown-warning-option -Wno-unused-variable -Wno-literal-suffix \
 | ||||
|     -Wno-reserved-user-defined-literal -Wno-duplicate-decl-specifier -Wno-pointer-bool-conversion | ||||
|     -Wno-reserved-user-defined-literal -Wno-duplicate-decl-specifier -Wno-pointer-bool-conversion \
 | ||||
|     $(NIX_CFLAGS) | ||||
| 
 | ||||
|   Store_LIBS = libstore libutil | ||||
| 
 | ||||
|   Store_LDFLAGS := $(SODIUM_LIBS) | ||||
|   Store_LDFLAGS := $(SODIUM_LIBS) $(NIX_LIBS) | ||||
| 
 | ||||
|   ifeq (CYGWIN,$(findstring CYGWIN,$(OS))) | ||||
|     archlib = $(shell perl -E 'use Config; print $$Config{archlib};') | ||||
|  | @ -45,4 +44,4 @@ ifeq ($(perlbindings), yes) | |||
| 
 | ||||
| endif | ||||
| 
 | ||||
| clean-files += $(d)/lib/Nix/Config.pm $(d)/lib/Nix/Store.cc | ||||
| clean-files += lib/Nix/Config.pm lib/Nix/Store.cc Makefile.config | ||||
|  |  | |||
							
								
								
									
										49
									
								
								release.nix
									
										
									
									
									
								
							
							
						
						
									
										49
									
								
								release.nix
									
										
									
									
									
								
							|  | @ -24,7 +24,7 @@ let | |||
|         inherit officialRelease; | ||||
| 
 | ||||
|         buildInputs = | ||||
|           [ curl bison flex perl libxml2 libxslt | ||||
|           [ curl bison flex libxml2 libxslt | ||||
|             bzip2 xz brotli | ||||
|             pkgconfig sqlite libsodium boehmgc | ||||
|             docbook5 docbook5_xsl | ||||
|  | @ -32,11 +32,7 @@ let | |||
|             git | ||||
|           ]; | ||||
| 
 | ||||
|         configureFlags = '' | ||||
|           --with-dbi=${perlPackages.DBI}/${perl.libPrefix} | ||||
|           --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix} | ||||
|           --enable-gc | ||||
|         ''; | ||||
|         configureFlags = "--enable-gc"; | ||||
| 
 | ||||
|         postUnpack = '' | ||||
|           # Clean up when building from a working tree. | ||||
|  | @ -46,6 +42,7 @@ let | |||
|         ''; | ||||
| 
 | ||||
|         preConfigure = '' | ||||
|           (cd perl ; autoreconf --install --force --verbose) | ||||
|           # TeX needs a writable font cache. | ||||
|           export VARTEXFONTS=$TMPDIR/texfonts | ||||
|         ''; | ||||
|  | @ -74,7 +71,7 @@ let | |||
|         src = tarball; | ||||
| 
 | ||||
|         buildInputs = | ||||
|           [ curl perl | ||||
|           [ curl | ||||
|             bzip2 xz brotli | ||||
|             openssl pkgconfig sqlite boehmgc | ||||
|           ] | ||||
|  | @ -87,8 +84,6 @@ let | |||
| 
 | ||||
|         configureFlags = '' | ||||
|           --disable-init-state | ||||
|           --with-dbi=${perlPackages.DBI}/${perl.libPrefix} | ||||
|           --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix} | ||||
|           --enable-gc | ||||
|           --sysconfdir=/etc | ||||
|         ''; | ||||
|  | @ -106,6 +101,32 @@ let | |||
|       }); | ||||
| 
 | ||||
| 
 | ||||
|     perl = pkgs.lib.genAttrs systems (system: | ||||
| 
 | ||||
|       let pkgs = import <nixpkgs> { inherit system; }; in with pkgs; | ||||
| 
 | ||||
|       releaseTools.nixBuild { | ||||
|         name = "nix-perl"; | ||||
|         src = tarball; | ||||
| 
 | ||||
|         buildInputs = | ||||
|           [ (builtins.getAttr system jobs.build) curl bzip2 xz pkgconfig pkgs.perl ] | ||||
|           ++ lib.optional stdenv.isLinux libsodium; | ||||
| 
 | ||||
|         configureFlags = '' | ||||
|           --with-dbi=${perlPackages.DBI}/${pkgs.perl.libPrefix} | ||||
|           --with-dbd-sqlite=${perlPackages.DBDSQLite}/${pkgs.perl.libPrefix} | ||||
|           --with-www-curl=${perlPackages.WWWCurl}/${pkgs.perl.libPrefix} | ||||
|         ''; | ||||
| 
 | ||||
|         enableParallelBuilding = true; | ||||
| 
 | ||||
|         postUnpack = "sourceRoot=$sourceRoot/perl"; | ||||
| 
 | ||||
|         preBuild = "unset NIX_INDENT_MAKE"; | ||||
|       }); | ||||
| 
 | ||||
| 
 | ||||
|     binaryTarball = pkgs.lib.genAttrs systems (system: | ||||
| 
 | ||||
|       # FIXME: temporarily use a different branch for the Darwin build. | ||||
|  | @ -151,15 +172,13 @@ let | |||
|         src = tarball; | ||||
| 
 | ||||
|         buildInputs = | ||||
|           [ curl perl bzip2 openssl pkgconfig sqlite xz libsodium | ||||
|           [ curl bzip2 openssl pkgconfig sqlite xz libsodium | ||||
|             # These are for "make check" only: | ||||
|             graphviz libxml2 libxslt | ||||
|           ]; | ||||
| 
 | ||||
|         configureFlags = '' | ||||
|           --disable-init-state | ||||
|           --with-dbi=${perlPackages.DBI}/${perl.libPrefix} | ||||
|           --with-dbd-sqlite=${perlPackages.DBDSQLite}/${perl.libPrefix} | ||||
|         ''; | ||||
| 
 | ||||
|         dontInstall = false; | ||||
|  | @ -280,7 +299,7 @@ let | |||
|       src = jobs.tarball; | ||||
|       diskImage = (diskImageFun vmTools.diskImageFuns) | ||||
|         { extraPackages = | ||||
|             [ "perl-DBD-SQLite" "perl-devel" "sqlite" "sqlite-devel" "bzip2-devel" "emacs" "libcurl-devel" "openssl-devel" "xz-devel" ] | ||||
|             [ "sqlite" "sqlite-devel" "bzip2-devel" "emacs" "libcurl-devel" "openssl-devel" "xz-devel" ] | ||||
|             ++ extraPackages; }; | ||||
|       memSize = 1024; | ||||
|       meta.schedulingPriority = 50; | ||||
|  | @ -302,14 +321,14 @@ let | |||
|       src = jobs.tarball; | ||||
|       diskImage = (diskImageFun vmTools.diskImageFuns) | ||||
|         { extraPackages = | ||||
|             [ "libdbd-sqlite3-perl" "libsqlite3-dev" "libbz2-dev" "libwww-curl-perl" "libcurl-dev" "libcurl3-nss" "libssl-dev" "liblzma-dev" ] | ||||
|             [ "libsqlite3-dev" "libbz2-dev" "libcurl-dev" "libcurl3-nss" "libssl-dev" "liblzma-dev" ] | ||||
|             ++ extraPackages; }; | ||||
|       memSize = 1024; | ||||
|       meta.schedulingPriority = 50; | ||||
|       postInstall = "make installcheck"; | ||||
|       configureFlags = "--sysconfdir=/etc"; | ||||
|       debRequires = | ||||
|         [ "curl" "libdbd-sqlite3-perl" "libsqlite3-0" "libbz2-1.0" "bzip2" "xz-utils" "libwww-curl-perl" "libssl1.0.0" "liblzma5" ] | ||||
|         [ "curl" "libsqlite3-0" "libbz2-1.0" "bzip2" "xz-utils" "libssl1.0.0" "liblzma5" ] | ||||
|         ++ extraDebPackages; | ||||
|       debMaintainer = "Eelco Dolstra <eelco.dolstra@logicblox.com>"; | ||||
|       doInstallCheck = true; | ||||
|  |  | |||
|  | @ -882,7 +882,7 @@ static void opServe(Strings opFlags, Strings opArgs) | |||
|                 break; | ||||
|             } | ||||
| 
 | ||||
|             case cmdBuildPaths: { /* Used by build-remote.pl. */ | ||||
|             case cmdBuildPaths: { | ||||
| 
 | ||||
|                 if (!writeAllowed) throw Error("building paths is not allowed"); | ||||
|                 PathSet paths = readStorePaths<PathSet>(*store, in); | ||||
|  |  | |||
|  | @ -5,14 +5,14 @@ clearStore | |||
| outPath1=$(echo 'with import ./config.nix; mkDerivation { name = "foo1"; builder = builtins.toFile "builder" "mkdir $out; echo hello > $out/foo"; }' | nix-build - --no-out-link --option auto-optimise-store true) | ||||
| outPath2=$(echo 'with import ./config.nix; mkDerivation { name = "foo2"; builder = builtins.toFile "builder" "mkdir $out; echo hello > $out/foo"; }' | nix-build - --no-out-link --option auto-optimise-store true) | ||||
| 
 | ||||
| inode1="$(perl -e "print ((lstat('$outPath1/foo'))[1])")" | ||||
| inode2="$(perl -e "print ((lstat('$outPath2/foo'))[1])")" | ||||
| inode1="$(stat --format=%i $outPath1/foo)" | ||||
| inode2="$(stat --format=%i $outPath2/foo)" | ||||
| if [ "$inode1" != "$inode2" ]; then | ||||
|     echo "inodes do not match" | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| nlink="$(perl -e "print ((lstat('$outPath1/foo'))[3])")" | ||||
| nlink="$(stat --format=%h $outPath1/foo)" | ||||
| if [ "$nlink" != 3 ]; then | ||||
|     echo "link count incorrect" | ||||
|     exit 1 | ||||
|  | @ -20,7 +20,7 @@ fi | |||
| 
 | ||||
| outPath3=$(echo 'with import ./config.nix; mkDerivation { name = "foo3"; builder = builtins.toFile "builder" "mkdir $out; echo hello > $out/foo"; }' | nix-build - --no-out-link) | ||||
| 
 | ||||
| inode3="$(perl -e "print ((lstat('$outPath3/foo'))[1])")" | ||||
| inode3="$(stat --format=%i $outPath3/foo)" | ||||
| if [ "$inode1" = "$inode3" ]; then | ||||
|     echo "inodes match unexpectedly" | ||||
|     exit 1 | ||||
|  | @ -28,8 +28,8 @@ fi | |||
| 
 | ||||
| nix-store --optimise | ||||
| 
 | ||||
| inode1="$(perl -e "print ((lstat('$outPath1/foo'))[1])")" | ||||
| inode3="$(perl -e "print ((lstat('$outPath3/foo'))[1])")" | ||||
| inode1="$(stat --format=%i $outPath1/foo)" | ||||
| inode3="$(stat --format=%i $outPath3/foo)" | ||||
| if [ "$inode1" != "$inode3" ]; then | ||||
|     echo "inodes do not match" | ||||
|     exit 1 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue