| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
programs.command-not-found requires a database containing an index of
all of nixpkgs. Since this is pretty expensive to create we fetch the
database from the nixos-unstable channel. Unfortunately it is not
available via git, so we need to use the tarball which also means hydra
can't automatically update it.
One improvement to this change that would be possible is to also index
vuizvui and merge that with the database from upstream. This should
probably be investigated in the future, but probably affects less people
as the nix tool will only be usable with vuizvui packages as
commond-not-found suggests if vuizvui.modifyNixPath = true.
|
|
|
|
|
|
|
| |
`runCommandLocal` was added to nixpkgs in
https://github.com/NixOS/nixpkgs/pull/74642
to speed up trivial `runCommand` derivations by always building them
locally. We have a few places where that’s good to use.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A recent change[1] that has been merged to nixpkgs master has factored
out the generation of the options in (among others like JSON) DocBook
format into pkgs.nixosOptionsDoc and subsequently also changed the path
of the XSL files.
Ideally, the generation of the manual on our side would also just use a
single function that is provided via nixpkgs for generating the *full*
manual. The nixosOptionsDoc function however provides *only* the option
list in DocBook format, which is useful to *some* extent but doesn't
deduplicate the extra params we give to DocBook (eg. style sheets for
syntax highlighting).
This and the fact that I only have limited time at the moment is why I
left all the other crap we duplicate on our side as-is and only change
the path to the XSL files.
[1]: https://github.com/NixOS/nixpkgs/commit/5cfd034af0afe55e4d25748ec986c71b3bfbe3dd
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The NixOS option descriptions are now splitted into <para/> elements
whenever a \n\n occurs. For this an intermediate step is necessary, so
we need to add the postprocessing XSLT here as well.
This is the upstream commit that changed this behavior:
https://github.com/NixOS/nixpkgs/commit/f865d0feabfafbb30a9e0659e19a30cb
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The changes in NixOS/nixpkgs@4b4bbce199d3b3a8001ee93495604289b0
include moving the style.css to a different location, but they also add
syntax highlighting, so let's include it as well :-)
I've also reorganized the XSLT flags a bit and instead of a big
multiline string we now use an attribute set to define these flags in a
declarative way.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using __withPkgsPath is a way better name, because two underscores in
front of it commonly designate an internal attribute, which it is.
The callNetwork function now works in a similar vain as callMachine,
having a canonical way to specify the path to nixpkgs.
I've also changed the recursive search of machines to use the
__withPkgsPath attribute as a way to detect whether it's a machine.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's a bit unfortunate that I removed the extraConfig attribute from
<vuizvui/machines> back then (49dc58c6f8d72a4e142176f25da52666ef9ae268).
Now we could have used this argument to pass the nixpkgs path from
release.nix back into call-machine.nix, but introducing that extra
argument again would break the configs of all of the systems using
Vuizvui.
So instead, I've added a function exposed by call-machine called
withPkgs, which overrides the whole attribute set returned by
callMachine to use nixpkgs from the given argument.
This allows us to run in restricted evaluation mode as enforced by Hydra
and Nix 2.0 and while we could simply disable restricted eval, it's even
better if we comply with it.
Unfortunately I lied a bit, because we've been running in restricted
eval mode before. This time however it seems that some change in Nix has
caused this to be even more restrictive because now Nix search paths are
not allowed as well. Relying on those within a Hydra jobset however is
discouraged anyway.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
| |
If meta.broken is set to true for a package, we need to return an empty
list. However, "brokenOr" needs to be a function returning a list and
the first branch (meta.broken being true) of the condition just returns
a list instead of a function.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While we now evaluate broken packages and they fail to build, this is
still not very nice because it will still break the generic channel.
So let's do this a bit differently and actually exclude these packages
without running into an eval error. We evaluate the derivation and later
check whether meta.broken is set, which has the advantage that we only
kick out packages that are *directly* marked as broken rather than
excluding packages that have a broken flag in one of their dependencies.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
|
|
|
|
|
|
|
|
|
|
| |
Just because a package is marked as broken doesn't necessarily mean it's
broken. For openlab.gitit this might still be the case, but having this
result in an eval error isn't very nice, so we'd rather just have this
boil down to a broken build instead.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's a bit weird to need to write something like this:
nix-build pkgs -A vuizvui.aszlig.vim
We're already within vuizvui, and the filesystem paths are already
structured in a way so that the above is in pkgs/aszlig/vim, so the need
to add the vuizvui attribute to that seems quite pointless and
unnatural.
I have tested this by evaluating a few machines, tests and packages.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows to add packages to vuizvui.lazyPackages which then aren't
directly installed onto the system but instead built by the Hydra and
only fetched from it as soon as a binary of one of these packages is
executed.
Doing this only within a NixOS module however isn't enough, because by
default gc-keep-outputs is false, so a garbage collect on the Hydra
instance would remove the packages we wrap in vuizvui.lazyPackages.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
Since NixOS/nixpkgs@8b782f4bd43be46e944a6bbac8569667f70478de, the
packagePlatforms function now always returns a platform for
x86_64-linux, but in vuizvui we want to *only* build packages we
explicitly mark so.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
It makes sense to not only include Vuizvui specific packages to the
constituents of the generic channel, but also all of the Vuizvui
specific tests as well, because if we want to use modules from machines
outside of Vuizvui, we really want to make sure they get a well-tested
channel as well.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds all the packages that are marked to be built on Hydra to the
constituents of the generic channel so that we can ensure that the
channel always stays with succeeding builds.
It's especially useful for the patched gitlab that is used for the
OpenLab website VM, because it is not a NixOS system. We can simply use
the generic channel over there and stay up-to-date with it without
getting broken builds.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Cc: @Profpatsch
|
|
|
|
|
|
|
| |
We factored away the system attribute from <vuizvui/machines> and it's
now a plain attrset. Unfortunately I forgot about the release.nix.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
| |
It's only for consistency and so has no real feature changes.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
We can't possibly test those on Hydra, so let's exclude them from the
release.nix.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
The packages in vuizvui.games use the NixOS module system for
configuration and provides the particular game derivations based on
that. As the configuration is all about Steam/Humblebundle account
credentials we obviously can't build it on Hydra and it thus fails with
an evaluation error.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 6b7b68bd8eae94ffe91b2ae17fbf01045244b43b.
The breaking upstream commit has been reverted in NixOS/nixpkgs@f3d94cf,
so let's revert it here again.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since NixOS/nixpkgs@cad8957 there is an additional argument to
optionAttrSetToDocList, so we need to pass internal _module arguments to
that argument (typically _module.check and _module.typeInference) which
are used by the type checker to find errors.
On Vuizvui however, we don't build the full manual but only
Vuizvui-specific options, so we might want to aim for a different
approach in the long term rather than duplicating a lot of the manual
generation code.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The shortcut is mainly to make things a bit easier, instead of:
nix-build '<vuizvui/machines>' \
-A aszlig.tishtushi.eval.config.system.build.toplevel
We can now do something like this:
nix-build '<vuizvui/machines>' \
-A aszlig.tishtushi.build
... in order to get a system store path out of a machine definition.
This also fixes an evaluation error in the top-level default.nix. Thanks
to @Profpatsch for bringing this to my attention.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gets rid of the use attribute, which is now called "config". We had
the "config" attribute before but it was kinda pointless, because it was
just the import of the path and nothing else.
So the config attribute now is the machine configuration with all of the
vuizvui modules imported as well.
The "build" attribute is now called "eval", which is more appropriate,
because it's the evaluation of the configuration and not the finished
system build.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
We want to have non-machine-specific tests as well, so let's ensure that
we build all tests listed in the tests directory.
This is especially useful if we want to have tests on build products
within release.nix or tests which are unrelated to machines.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
| |
No change in functionality, I'm just dead tired so I fucked up the name.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
After switching the requiresTests option to be a list of paths we no
longer can just pass them verbatim to the constituents but rather do a
lookup on all of these paths to get the derivations.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
The tests from vuizvui itself weren't properly included in release.nix,
because we're patching up our own source tree and thus the evaluator is
unable to find the right path.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately, we went into trouble and the Hydra machine not only
consumed lots of ram during evaluation but it also triggered a bunch of
evaluation errors because the available tests were strictly evaluated.
Using attribute paths consisting of plain strings doesn't have the same
problem, even though they look a bit uglier.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This now includes both upstream NixOS and Vuizvui tests.
Unfortunately, evaluation now takes a ton of time and also a ton of
memory, so let's hope our Hydra can sustain it. The reason is that we
need to look through all of the available tests and recurse through
_all_ machine configurations to see if they're defined there.
If it is too heavyweight we might need to find a better solution for
that.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
This removes a bit of redundant code and also makes instantiation with
--eval-only a bit more convenient, because we're testing whether we have
vuizvuiSrc and if not we're importing a plain path directly.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
The idea is that modules can define a list of test jobs which need to
succeed whenever the module is used.
In the end this should make channel updates a bit less frightening for
people not already confident in using NixOS.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to write separate chapters/parts of documentation without
getting one big HTML page with everything at once.
Now the chunk.xsl by default chunks of <preface/> elements, so we'd like
to control this by patching docbook5_xsl directly and prevent it from
doing that.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
So far this has been inlined in release.nix, but if we want to have more
documentation, we should modularize it into subdirectories. As an
additional benefit we get better syntax highlighting for docbook files.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here we have our actual implementation. Note however, that one can still
build an ISO image out of any machine by using:
nix-build machines -A machine.attr.iso.config.system.build.isoImage
However, none of these ISOs are built by default, except for kzerza,
which has vuizvui.createISO enabled.
The implementation has one little goof as it creates empty attrsets if a
particular machine doesn't have createISO enabled. But for our current
purposes that's okay "enough".
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
Since d2ff1a9, we now set a new NIX_PATH instead of patching <nixpkgs>,
which is way less error-prone and get less unexpecting results if we
evaluate against an unmodified <nixpkgs>.
So, patching <nixpkgs> is obsolete and thus removed.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
Originally only needed for "kzerza", because that machine has always
resided on an USB stick, but could be useful for "arilou" and others as
well. That way you always have a (hopefully working) USB and CD image
available for all machines.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
| |
This is cruicial for scripts such as nix-prefetch-git, which have the
executable bit set and a builder is trying to call it.
Instead, we're now preserving mode and set it writable for the current
user directly afterwards, which essentially was my original motivation
to not preserve modes.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
Since we now have everything within the vuizvui namespace at the top-
level Nix expression we also need to reference mkChannel from within
that namespace.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
| |
We don't want to build the whole <nixpkgs> package set, which I
accidentally introduced when rewriting the package namespacing in
6ffc2e86150e625266e6836a1404a3e79fc74d49.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This gets rid of an ugly error message during nixos-rebuild, because the
stock get-version-suffix tries to find <nixpkgs>, which will either lead
to the wrong channel (if it even exists at all) or an ugly error.
In both cases however, it doesn't have an effect, because the channel
expression store path is read-only and ships with a .version-suffix
already.
It really only gets rid of ugly error messages.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
| |
We only did simple substitutions of <path/references/like/this/one> but
completely ignored the --find-file argument of nix-instantiate.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is needed because we're relying on nixpkgs-path.nix to point to a
valid nixpkgs tree, which we deliberately don't have anymore because we
wanted to avoid references to <nixpkgs>.
So providing vuizvuiSrc instead of vuizvui has another advantage that we
now are no longer dependant on the channel name and also have a safety
net (Hydra) to inform us of references to <vuizvui> in the form of
failed builds and/or evaluations.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
| |
Yeah, probably will work a bit better without evaluation errors ;-)
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now use nixpkgsSrc to make sure that Hydra builds will fail as soon
as we hit a reference of <nixpkgs> in either vuizvui of nixpkgs.
This also means, that we don't rewrite all of vuizvui and nixpkgs
anymore and we only really need to rewrite nixos-rebuild.sh.
Although we're using patched nixpkgs for Hydra builds, the release.nix
still has a fallback to <nixpkgs> to make development easier (patching
nixpkgs on every tiny change will take a long time otherwise).
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
| |
This file is just defaulting to <nixpkgs>, but we're going to substitue
it by the channel generator. We also need to make sure that we don't
have any other references to <nixpkgs>, but the latter can best be done
on Hydra's side if we don't make <nixpkgs> available to vuizvui builds.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
We want to update the vuizvui channel alongside of the nixos channel in
"nixos-rebuild subcommand --upgrade", because we include machines and
NixOS modules.
Might be splitted off into the machine-specific channels later.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Symlinking is actually a pretty bad idea, because we can only have one
channel expression tarball. Evaluation however doesn't realize the
referenced store paths, so we need to include them directly in the
channel tarball.
This also simplifies rewriting of the NIX_PATH references, because we
need to recurse the directory structure only once.
In order to be correctly recognized by nixos-rebuild and display useful
version info, we generate .git-version and .version-suffix now as well.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|
|
|
|
|
|
|
|
|
|
| |
We're now symlinking the nixpkgs store path into vuizvui/nixpkgs and
reference it from within nixos-rebuild. Unfortunately we can't simply
patch it with the hardcoded store path because we'll end up having the
*previous* version on every nixos-rebuild instead of the new version
delivered by the channel.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
|