# GNU Guix --- Functional package management for GNU # Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019 Ludovic Courtès # Copyright © 2016 Mathieu Lirzin # # This file is part of GNU Guix. # # GNU Guix is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # GNU Guix is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see . # # Integration of the `guix-daemon' code taken from upstream Nix. # BUILT_SOURCES += %D%/libstore/schema.sql.hh CLEANFILES += %D%/libstore/schema.sql.hh noinst_LI
aboutsummaryrefslogtreecommitdiff
/* GNU Guix --- Functional package management for GNU
   Copyright (C) 2016, 2017 Ludovic Courtès <ludo@gnu.org>

   This file is part of GNU Guix.

   GNU Guix is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or (at
   your option) any later version.

   GNU Guix is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.  */

/* Interface to built-in derivation builders.  */

#pragma once

#include <derivations.hh>
#include <map>
#include <string>

namespace nix {

    inline bool isBuiltin(const Derivation & drv)
    {
	return string(drv.builder, 0, 8) == "builtin:";
    }

    /* Build DRV, which lives at DRVPATH.  */
    typedef void (*derivationBuilder) (const Derivation &drv,
				       const std::string &drvPath,
				       const std::string &output);

    /* Return the built-in builder called BUILDER, or NULL if none was
       found.  */
    derivationBuilder lookupBuiltinBuilder(const std::string &builder);

    /* Return the list of supported built-in builder names.  */
    std::list<std::string> builtinBuilderNames();
}
%/libstore guix_daemon_LDADD = \ libstore.a libutil.a libformat.a -lz \ $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS) guix_daemon_headers = \ %D%/nix-daemon/shared.hh if HAVE_LIBBZ2 guix_daemon_LDADD += -lbz2 endif HAVE_LIBBZ2 noinst_HEADERS = \ $(libformat_headers) $(libutil_headers) $(libstore_headers) \ $(guix_daemon_headers) %D%/libstore/schema.sql.hh: guix/store/schema.sql $(AM_V_GEN)$(GUILE) --no-auto-compile -c \ "(use-modules (rnrs io ports)) \ (call-with-output-file \"$@\" \ (lambda (out) \ (call-with-input-file \"$^\" \ (lambda (in) \ (write (get-string-all in) out)))))" nodist_pkglibexec_SCRIPTS = \ %D%/scripts/list-runtime-roots \ %D%/scripts/substitute \ %D%/scripts/download if BUILD_DAEMON_OFFLOAD nodist_pkglibexec_SCRIPTS += \ %D%/scripts/offload endif BUILD_DAEMON_OFFLOAD nodist_pkglibexec_SCRIPTS += \ %D%/scripts/authenticate # The '.service' files for systemd. systemdservicedir = $(libdir)/systemd/system nodist_systemdservice_DATA = etc/guix-daemon.service etc/guix-publish.service etc/guix-%.service: etc/guix-%.service.in \ $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ $(SED) -e 's|@''localstatedir''@|$(localstatedir)|' < \ "$<" > "$@.tmp"; \ mv "$@.tmp" "$@" # The '.conf' jobs for Upstart. upstartjobdir = $(libdir)/upstart/system nodist_upstartjob_DATA = etc/guix-daemon.conf etc/guix-publish.conf etc/guix-%.conf: etc/guix-%.conf.in \ $(top_builddir)/config.status $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ $(SED) -e 's|@''localstatedir''@|$(localstatedir)|' < \ "$<" > "$@.tmp"; \ mv "$@.tmp" "$@" CLEANFILES += \ $(nodist_systemdservice_DATA) \ $(nodist_upstartjob_DATA) EXTRA_DIST += \ %D%/AUTHORS \ %D%/COPYING \ etc/guix-daemon.service.in \ etc/guix-daemon.conf.in \ etc/guix-publish.service.in \ etc/guix-publish.conf.in if CAN_RUN_TESTS AM_TESTS_ENVIRONMENT += \ top_builddir="$(abs_top_builddir)" TESTS += \ tests/guix-daemon.sh endif CAN_RUN_TESTS clean-local: -if test -d "$(GUIX_TEST_ROOT)"; then \ find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \ fi -rm -rf "$(GUIX_TEST_ROOT)"