aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-09-22Merge remote-tracking branch 'upstream/master' into ca-floating-upstreamJohn Ericson
2020-09-21fmt.hh: Don't include boost/algorithm/string/replace.hppEelco Dolstra
This cuts compilation time by ~49s. Issue #4045.
2020-09-21Random header cleanupEelco Dolstra
2020-09-21abstractsettingtojson.hh -> abstract-setting-to-json.hhEelco Dolstra
2020-09-21Don't include nlohmann/json.hpp in globals.hhEelco Dolstra
This reduces compilation time by 207s. Issue #4045.
2020-09-21Move Callback into its own headerEelco Dolstra
This gets rid of the inclusion of <future> in util.hh, cutting compilation time by ~20s (CPU time). Issue #4045.
2020-09-21Don't include <regex> in header filesEelco Dolstra
This reduces compilation time by ~15 seconds (CPU time). Issue #4045.
2020-09-21Merge pull request #4035 from Ma27/url-attrEelco Dolstra
libfetchers/github: allow `url` attribute
2020-09-21libfetchers/github: rename `url` to `host`Maximilian Bosch
2020-09-18nix-prefetch-url: Add --executable flagBryan Richter
pkgs.fetchurl supports an executable argument, which is especially nice when downloading a large executable. This patch adds the same option to nix-prefetch-url. I have tested this to work on the simple case of prefetching a little executable: 1. nix-prefetch-url --executable https://my/little/script 2. Paste the hash into a pkgs.fetchurl-based package, script-pkg.nix 3. Delete the output from the store to avoid any misidentified artifacts 4. Realise the package script-pkg.nix 5. Run the executable I repeated the above while using --name, as well. I suspect --executable would have no meaningful effect if combined with --unpack, but I have not tried it.
2020-09-18libfetchers/github: allow `url` attributeMaximilian Bosch
Since 108debef6f703aa3ca1f6d6c45428880624ec6f8 we allow a `url`-attribute for the `github`-fetcher to fetch tarballs from self-hosted `gitlab`/`github` instances. However it's not used when defining e.g. a flake-input foobar = { type = "github"; url = "gitlab.myserver"; /* ... */ } and breaks with an evaluation-error: error: --- Error --------------------------------------nix unsupported input attribute 'url' (use '--show-trace' to show detailed location information) This patch allows flake-inputs to be fetched from self-hosted instances as well.
2020-09-18nix build: find() -> get()Eelco Dolstra
find() returns an iterator so "!attr" doesn't work.
2020-09-17Merge remote-tracking branch 'upstream/master' into ca-floating-upstreamJohn Ericson
2020-09-17Merge pull request #3829 from obsidiansystems/remove-storetype-delegate-regStoreEelco Dolstra
Remove storetype delegate reg store -- contains #3736
2020-09-17Merge pull request #4027 from tweag/fix-gc-of-ca-derivationsEelco Dolstra
Fix garbage collection of CA derivations
2020-09-17Fix garbage collection of CA derivationsregnat
Fix #4026
2020-09-17Remove corepkgs/unpack-channel.nixEelco Dolstra
2020-09-17Remove corepkgs/derivation.nixEelco Dolstra
2020-09-16Merge remote-tracking branch 'upstream/master' into ↵John Ericson
remove-storetype-delegate-regStore
2020-09-16Ensure resolved CA derivations are writtenJohn Ericson
so we can link outputs to deriver and thus properly cache.
2020-09-16Start to fix floating CA + remote buildingJohn Ericson
2020-09-16Merge remote-tracking branch 'upstream/master' into ca-floating-upstreamJohn Ericson
2020-09-16Merge branch 'document-store-options' of https://github.com/tweag/nixEelco Dolstra
2020-09-16Fix doc generationEelco Dolstra
2020-09-16builtins.toFile: Fix indentationEelco Dolstra
2020-09-16Remove useless exception copyThéophane Hufschmitt
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
2020-09-16Fix the s3 storeregnat
Add some necessary casts in the initialisation of the store's config
2020-09-16Don't include nlohmann/json.hpp in config.hhregnat
Instead make a separate header with the template implementation of `BaseSetting<T>::toJSONObj` that can be included where needed
2020-09-16Include the full nlohmann/json header in config.hhregnat
It is apparently required for using `toJSONObject()`, which we do inside the header file (because it's in a template). This was accidentally working when building Nix itself (presumably because `config.hh` was always included after `nlohman/json.hpp`) but caused a (pretty dirty) build failure in the perl bindings package.
2020-09-16Add `(StoreConfig*)` casts to work around a GCC bugregnat
Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80431 that was already there in the code but was accidentally removed in the last commits
2020-09-16fixup! Add a default value for the settingsregnat
2020-09-16Fix build issues with gccregnat
2020-09-16Add a markdown output to `nix describe-stores`regnat
2020-09-16Add a name to the storesregnat
So that it can be printed by `nix describe-stores`
2020-09-16Document the new store hierarchyregnat
2020-09-16Make uri schemes grammar more RFC-compliantregnat
Allow `-` and `.` in the RFC schemes as stated by [RFC3986](https://tools.ietf.org/html/rfc3986#section-3.1). Practically, this is needed so that `ssh-ng` is a valid URI scheme
2020-09-16fixup! Make the store plugins more introspectableregnat
2020-09-16fixup! Correctly call all the parent contructors of the storesregnat
2020-09-16Properly filter the stores according to their declared uriSchemesregnat
When opening a store, only try the stores whose `uriSchemes()` include the current one
2020-09-16Correctly call all the parent contructors of the storesregnat
Using virtual inheritance means that only the default constructors of the parent classes will be called, which isn't what we want
2020-09-16Make `nix describe-stores` functionalregnat
Using the `*Config` class hierarchy
2020-09-16Separate store configs from the implemsregnat
Rework the `Store` hierarchy so that there's now one hierarchy for the store configs and one for the implementations (where each implementation extends the corresponding config). So a class hierarchy like ``` StoreConfig-------->Store | | v v SubStoreConfig----->SubStore | | v v SubSubStoreConfig-->SubSubStore ``` (with virtual inheritance to prevent DDD). The advantage of this architecture is that we can now introspect the configuration of a store without having to instantiate the store itself
2020-09-16fixup! Separate the instantiation and initialisation of the storesregnat
2020-09-16Add a default value for the settingsregnat
The default value is initialized when creating the setting and unchanged after that
2020-09-16Complete the `toJSON` instance for `Setting<T>`regnat
Don't let it just contain the value, but also the other fields of the setting (description, aliases, etc..)
2020-09-16Separate the instantiation and initialisation of the storesregnat
Add a new `init()` method to the `Store` class that is supposed to handle all the effectful initialisation needed to set-up the store. The constructor should remain side-effect free and just initialize the c++ data structure. The goal behind that is that we can create “dummy” instances of each store to query static properties about it (the parameters it accepts for example)
2020-09-16Fix the registration of storesregnat
2020-09-16Make the store plugins more introspectableregnat
Directly register the store classes rather than a function to build an instance of them. This gives the possibility to introspect static members of the class or choose different ways of instantiating them.
2020-09-15Rename `Derivation::pathOpt` to `Derivation::path`John Ericson
We no longer need the `*Opt` to disambiguate.
2020-09-15Get rid of confusing `std::optional<bool>` for validityJohn Ericson