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();
}
elines): ... here. Turn into a section. Adjust references to "Contributing". Ludovic Courtès 2018-12-15doc: Replace @command by @code for packages...* doc/contributing.texi (Submitting Patches): Replace @command by @code for packages. Pierre Neidhardt 2018-12-15doc: Merge "discourage use of texlive" with existing paragraph on "guix size"...* doc/contributing.texi (Submitting Patches): Merge "discourage use of texlive" with existing paragraph on "guix size". Pierre Neidhardt 2018-12-14doc: Discourage the use of texlive as input...* doc/contributing.texi (Submitting Patches): Discourage the use of texlive as input. Pierre Neidhardt 2018-12-04Remove most references to hydra.gnu.org....* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org in comment. * build-aux/check-available-binaries.scm: Likewise. * build-aux/check-final-inputs-self-contained.scm: Likewise. * doc/guix.texi (SUBSTITUTE-SERVER): New variable. Use it throughout instead of "mirror.hydra.gnu.org". * doc/contributing.texi (Submitting Patches): Likewise. * gnu/services/base.scm (hydra-key-authorization) (guix-activation): Remove mentions of "hydra.gnu.org" in comments and messages. * gnu/system/install.scm (%installation-services): Likewise. * guix/scripts/size.scm (guix-size): Likewise. Ludovic Courtès 2018-11-16doc: Mention that ./pre-inst-env is generated....Suggested by swedebugia <swedebugia@riseup.net>. * doc/contributing.texi (Running Guix Before It Is Installed): Mention that ./pre-inst-env is generated. Ludovic Courtès 2018-10-10doc: Add recommendations for good origin URLs....* doc/contributing.texi (Submitting Patches): URL recommendations. Pierre Neidhardt 2018-07-13etc: snippets: Add guix-commit-message-use-https-home-page....* etc/snippets/text-mode/guix-commit-message-use-https-home-page: New file. * doc/contributing.texi (The Perfect Setup): Document new snippet. Arun Isaac 2018-07-04doc: Mention the build environment....* doc/contributing.texi (Running Guix Before It Is Installed): Add a note about having the dependencies available. Ludovic Courtès 2018-06-16doc: Clarify when branches are "frozen"....* doc/contributing.texi (Submitting Patches): Provide a link to Hydra. Add section about freezing branches. Marius Bakke 2018-06-09pull: Install the new Guix in a profile....* guix/scripts/pull.scm (%pull-version): New variable. (build-from-source): Pass #:pull-version to BUILD. (whole-package-for-legacy, derivation->manifest-entry): New procedure. (build-and-install): Rewrite in terms of 'build-and-use-profile'. * guix/scripts/system.scm (maybe-suggest-running-guix-pull)[latest]: Switch to "/current". * scripts/guix.in (augment-load-paths!): Remove use of ~/.config/guix/latest. * build-aux/compile-as-derivation.scm: Replace "/guix/latest/" with "/current/share/guile/site/X.Y" * guix/scripts.scm (warn-about-old-distro)[age]: Check "/current" instead of "/latest". * doc/guix.texi (Invoking guix pull): Document it. * doc/contributing.texi (Running Guix Before It Is Installed): Remove footnote about abusing ~/.config/guix/latest. Ludovic Courtès 2018-04-27doc: Add tips for Vim users....* doc/contributing.texi (Formatting Code): Add a paragraph about Vim. Ludovic Courtès 2018-01-17doc: Suggest running guix-daemon with 'sudo -E'....Suggested by Martin H. <maze@strahlungsfrei.de>. * doc/contributing.texi (Running Guix Before It Is Installed): Suggest 'sudo -E'. Ludovic Courtès