| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The C implementation of el_semicolon in execline only reads one
argument at a time and returns an index into the rest of argv.
This makes sense for the usual application of programs using it, which
is just reading a few arguments and a block or two, and then executing
into `prog`. `prog` could be anything really, including additional
blocks.
The new `el_semicolon_full_argv` function exports the previous
behaviour of parsing the whole thing.
As a nice side-effect, we return the rest of argv in-place.
|
|
|
|
|
|
|
|
|
|
|
| |
el_exec: wraps the various execve wrappers in skalib that are useful
for writing execline-like utils. currently only `xpathexec0` is
supported, which execs into the argv you give it or errors with the
right error if file not found.
el_substitute: execline argv substitution! Wraps the execline
function, so it will behave exactly the same as the existing execline
utils, like `importas`.
|
| |
|
|
|
|
|
| |
We can define a more or less complete generator in less than 50 lines
of nix. Nice.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A while ago[1], @Profpatsch added this comment above the definition of
the $runtimeDeps variable:
# Reads the dependency closures and does ? something? TODO: explain
I just recently (yesterday as of the date of this commit) found out
about that comment by accident.
While this should probably be better of as an issue instead, the comment
does have a point, since not everybody enjoys reading/writing sed
expressions.
In a nutshell, what the implementation actually does is parsing the
output of the files generated by exportReferencesGraph.
At the time of writing the implementation, we didn't have a JSON-based
interface in Nix for doing the same, nor did we have something like
pkgs.closureInfo. There was only a small Perl script[2], which did
something like this, but given that it can be easily done via sed, I
opted to instead use the latter.
Nevertheless however, using closureInfo is not only more concise in its
implementation, it also makes our implementation much more concise as
well and also obvious on what we're doing here.
[1]: 09dc1d8ad625b9a1d5b89593b184d316837ba1cc
[2]: https://github.com/NixOS/nixpkgs/blob/8747190024205a5a3534b4e9a18dbaf3f3ee7b39/pkgs/build-support/kernel/paths-from-graph.pl
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the games are using "en3installer0" as the downloadName, so it
makes sense to use this as the default, since first of all do not
support languages other than English except for a few games (eg. Albion)
and second, there is no game with several installer packages to chose
from (at least not on top of my head).
Even if there would be, it would still be the exception rather than the
rule, so let's optimise for the common scenario.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
I've had this in my configuration.nix for a while and since I got used
to it, I think it's a good idea to enable both Nix Flakes and the "nix"
command by default for all my machines.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
| |
Instead of adding a new type, it just uses the 2^1 natural, which has
exactly two possibilities.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also add the service to legosi so I can use it from the weechat user.
|
| |
|
|
|
|
| |
No libpurple for just XMPP, phew.
|
|
|
|
| |
I'm fairly certain this isn't needed anymore.
|
|
|
|
|
|
|
| |
According to [1], `udev` has gained native support for FIDO security
tokens, and subsequently has been removed upstream.
[1]: 89c3e73dad0970b26183e415555fb0379ba33e7a
|
|
|
|
|
|
|
| |
As already stated otherwise in this log, it's back, so reverting the
removal.
This reverts commit 54b3f8ac7da02738be6919d05ae12d5c14796e3f.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 64fdbcc7e0949a3d3bf1cee3361d5ebe5c56cc4c.
It seems that there is now[1] a maintained version of p7zip and since I
didn't get used to unar so far, I take this opportunity to switch back
to p7zip.
[1]: https://github.com/NixOS/nixpkgs/pull/90140
Signed-off-by: aszlig <aszlig@nix.build>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While it's fine to use <nixpkgs> on most systems, we deliberately want
to avoid the use of <nixpkgs> to make sure that whenever we for example
run <nixpkgs/nixos/lib/eval-config.nix> with a custom "pkgs" argument we
are guaranteed that we get the version we specify.
So this is one of the reason I used <nixpkgsSrc> on Hydra instead of
<nixpkgs>, so that whenever we have such occasions where we can't
guarantee such things, the evaluation will fail.
And right now, it does:
in job 'machines.profpatsch.legosi':
file 'nixpkgs/nixos/modules/profiles/qemu-guest.nix' was not found in
the Nix search path (add it using $NIX_PATH or -I), at
.../machines/profpatsch/legosi.nix:12:5
Fortunately, there is modulesPath, which refers to
<nixpkgs/nixos/modules> of the nixpkgs version passed via "pkgs".
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
|
|
|
|
| |
Small Hetzner qemu virtual server.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The second game from Subset Games after FTL:
The remnants of human civilization are threatened by gigantic creatures
breeding beneath the earth. You must control powerful mechs from the
future to hold off this alien threat. Each attempt to save the world
presents a new randomly generated challenge in this turn-based strategy
game.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
| |
In newer versions of libfmod, there are two calls to system(), which
cause the setup hook to fail, since it only expects one such call.
Fortunately, we don't want libfmod to execute *any* external commands,
so fixing this is rather easy by just making *all* calls to system() a
no-op.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New upstream features:
* A new "New Game Plus" mode, which allows to replay the game with
various modifications
* Three more cups are now available in the Arena of Rhombus Square
along with new items in the Arena Shop
Upstream fixes:
* Add missing Chinese translation for New Game Plus menu
* Slightly adapt point requirements for new Arena Cups
* "Get on my Level" NG+ option will now set enemy level based on your
average stats, making for a much more balanced experience
* 4x Enemy Damage didn't work. Now it does
* Potentially fix crash in statistics menu (hopefully)
* Fix damage number display with enemy damage x1.5 scaling
* Self inflicted damage with Sergey-Hax won't immediately kill you
* Regen items work outside of combat when "Classic Heals" is enabled
* EXP scaling slightly modified to scale after level scaling
* Fixed music playback issues in the arena
* Fixed softlock when skipping intro and solving a still unsolved
puzzle later in the cargo-hold
* Shredder detection will ignore wave duplicates because otherwise you
can easily break/softlock things
* Fixed a few more crash issues in the arena
* Element Load is now active again when you skipped the intro in NG+
* Boosters work properly now together with "Get on my Level"
* Several smaller dialog fixes, especially when "Get on my level" is
activated
* Apollo's level won't be scaled despite "Get on my level" because
he's a honorable Spheromancer that doesn't cheat!
* Fix broken Healing at Landmarks
* Fix crashes related to attacking Kamikater in ways you really
shouldn't attack it
* Fix some more arena music issues
* Make sure all descriptions of HP Regen specify healing every 60
seconds
Full upstream announcement:
https://www.radicalfishgames.com/?p=6864
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
Both games have been laying around uncommitted for quite a while and
since they work out of the box with the generic Unity3d builder they're
also straightforward to package without any surprises.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
| |
I had some problems where it got stuck in the loading screen, but
after restarting a few times to find out why, it suddenly worked. So
no guarantees that it’s bug-free.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hollow Knight is a 2D Metroidvania action-adventure game, which takes
place in Hallownest, a fictional ancient kingdom.
The player controls an insect-like, silent, and nameless knight while
exploring the underground world.
Packaging the game would have been almost straightforward, would there
not be another occasion where the developer has mixed up the persistent
data path with the non-persistent data path, which is quite common in
many games.
Fortunately, this is pretty easy to fix with our Mono game patcher.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A game that I had laying around since quite a while but I was too lazy
to patch properly, since the game expects its data files as well as its
save files in the current working directory.
While I did patch the game via an LD_PRELOAD wrapper of fopen it also
feels kinda rendundant with code we have in preloaders of other games.
So in the long term we might want to implement something a bit more
generic, but for now the game works and config and saves are properly
placed in XDG_CONFIG_HOME and XDG_DATA_HOME.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
| |
Upstream has 30x redirects for some URLs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The “shallow” parser uses the fact that every netencode value is
length-encoded (or a scalar with a fixed length).
It does not need to parse the inner values in order to get the
structure of the thing.
That means that we can implement very fast structure-based operations,
like “take the first 5 elements of a list” or “get the record value
with the key name `foo`”.
We can even do things like intersperse elements into a list of values
and write the resulting netencode structure to a socket, without ever
needing to copy the data (it’s all length-indexed pointers to bytes).
|
|
|
|
|
| |
Less generic, has the spirit of “netstrings, but extended to a
structured encoding format”.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I even mentioned the full names of the test attributes in
bc4203d221c87a0622d089aaa61884f86d40fd44:
tests.wireguard.wireguard-basic-linux-5_4
tests.wireguard.wireguard-basic-linux-latest
tests.wireguard.wireguard-generated-linux-5_4
tests.wireguard.wireguard-generated-linux-latest
tests.wireguard.wireguard-namespaces-linux-5_4
tests.wireguard.wireguard-namespaces-linux-latest
tests.wireguard.wireguard-wg-quick-linux-5_4
tests.wireguard.wireguard-wg-quick-linux-latest
So I forgot about the additional "wireguard-" prefix, so Hydra fails to
evaluate again:
in job 'tests.nixos.wireguard.basic-linux-5_4':
evaluation aborted with the following error message: 'cannot find attribute `nixos.wireguard.basic-linux-5_4''
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit 89c3cda819da5dc32e4a29ff8f2aad118bde64c7 changed the wireguard
attributes to use nested attributes because it was changed upstream.
However what the commit has missed is that the attributes are not just
plain attributes but come with a kernel version suffix, for example like
this:
tests.wireguard.wireguard-basic-linux-5_4
tests.wireguard.wireguard-basic-linux-latest
tests.wireguard.wireguard-generated-linux-5_4
tests.wireguard.wireguard-generated-linux-latest
tests.wireguard.wireguard-namespaces-linux-5_4
tests.wireguard.wireguard-namespaces-linux-latest
tests.wireguard.wireguard-wg-quick-linux-5_4
tests.wireguard.wireguard-wg-quick-linux-latest
Adding the "-linux-${version}" suffix should fix evaluation.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A few days ago, the wireguard tests were consolidated[1] into a single
attribute with various subattributes, similar to how the virtualbox
tests and many other tests are structured.
I fixed the attributes and also added the wg-quick attribute that was
also introduced in the meantime[2].
This should fix the evaluation errors occuring whenever a channel
contains a machine configuration with wireguard enabled.
[1]: https://github.com/NixOS/nixpkgs/commit/41bd6d2614749d12ce5ded3e991555b56ea6b2dc
[2]: https://github.com/NixOS/nixpkgs/commit/abf60791e2bd274d39e0f18def46795798f9aefd
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://dotti.me/
DOT-TIME(7) TIME FORMATS DOT-TIME(7)
NAME
dot-time - a universal convention for conveying time
DESCRIPTION
For those of us who travel often or coordinate across many timezones,
working with local time is frequently impractical. ISO8601, in all its
wisdom, allows for time zone designators, but still represents the
hours and minutes as local time, thus making it inconvenient for
quickly comparing timestamps from different locations.
Dot time instead uses UTC for all date, hour, and minute indications,
and while it allows for time zone designators, they are optional infor‐
mation that can be dropped without changing the indicated time. It uses
an alternate hour separator to make it easy to distinguish from regular
ISO8601. When a time zone designator is provided, one can easily obtain
the matching local time by adding the UTC offset to the UTC time.
EXAMPLES
These timestamps all represent the same point in time.
┌─────────────────────┬─────────────────────┐
│ dot time │ ISO8601 │
├─────────────────────┼─────────────────────┤
│ 2019-06-19T22·13-04 │ 2019-06-19T18:13-04 │
├─────────────────────┼─────────────────────┤
│ 2019-06-19T22·13+00 │ 2019-06-19T22:13+00 │
├─────────────────────┼─────────────────────┤
│ 2019-06-19T22·13+02 │ 2019-06-20T00:13+02 │
└─────────────────────┴─────────────────────┘
2019-06-19 DOT-TIME(7)
|
| |
|
| |
|
| |
|