Not a lot has changed since last update, a few fixes were pushed to
the master tree.
We take the liberty to update to master for now.
This updates the ffmpeg version from 2.x to 4.x, which seems to be
supported upstream when we bend the minor version restriction a
little.
A simple karaoke song played just fine in my test.
mpv has finally made some options an error that they removed in 0.30,
a few versions ago.
Plus, refactors the tool overrides a bit.
Fixes https://github.com/NixOS/nixpkgs/issues/113202
18·27 <Profpatsch> skarnet: would you recommend putting bearssl as the default backend for s6-networking?
18·27 <Profpatsch> uh, bearssl isn’t even packaged
18·27 <Profpatsch> yak shave
18·28 <Profpatsch> skarnet: The current backend uses libressl
18·29 <@skarnet> well at least CAFILE works
18·29 <@skarnet> but yes, I would recommend putting bearssl as the default backend
Fix `lorri direnv` triggering an unconditional rebuild every time it is run.
After fixing up the build loop people suddenly started noticing that
lorri was evaluating every time something ran `lorri direnv`, which
could potentially be every time the user switched between buffers in
the editor.
This is not the intended behaviour, since we should run an
unconditional build only the first time the project is added to the
watcher, and after rely on the watcher to notify us of any file
changes (or the user running `lorri internal ping` to force a
rebuild).
We forked lorri to nix-community, so this release also moves us over
to the new official repository.
Release notes:
Fix the build loop.
Previously, any change (for example a direnv ping or a change in the
nix files) would add a new build invocation to the queue, and the
builds would all be done one after the other.
However, a new build will always use the newest state of the files
anyway, so the CPU time spent on all the other builds will be
wasted (and hog your processor).
Now lorri will only
finish the current build (if running)
schedule at maximum one additional build if requested
This should improve the resource use drastically in some situations.
---
Make lorri daemon exit with exit code 0 instead of 130/143 on
SIGINT or SIGTERM.
---
Add lorri self-upgrade branch sub-subcommand.
This enables us to point users to a branch name, in order to test out
fixes from repository branches.
dhallPackages were not built by the hydra, because the
`recurseIntoAttrs` calls was missing (all other package sets use it to
make hydra build the packages).
Immensely helpful when you want to see the changes a function makes to
its value as it passes through.
Example:
```
$ nix-instantiate --strict --eval -E '(with import ./lib; traceFnSeqN 2 "id" (x: x) { a.b.c = 3; })'
trace: {
fn = "id";
from = {
a = {
b = {…};
};
};
to = {
a = {
b = {…};
};
};
}
{ a = { b = { c = 3; }; }; }
```
The library does not depend on stdenv, that stdenv exposes lib is
an artifact of the ancient origins of nixpkgs.
I didn’t run the generator since it takes quite a while, but it should
be automatically done the next time somebody updates a package.
The update script would only fetch the few grammars listed in the
tree-sitter repository previously. But the tree-sitter github orga has
a rather large amount of officially supported grammars.
Thus we change the script to query the github APIs for repositories
instead (up to 100 this is supported without paging).
Since the repository list also contains some that are not grammars,
there is a bash script which lists all repos we are aware of and the
ones we want to ignore. It will make sure we don’t forget any
repositories in the future, by comparing to the actual list with jq.
The tree-sitter build closure is pretty lean by default, but the
optional web-ui requires emscripten to compile the web interface
javascript/wasm code.
This is clearly not worth the increase in build closure size, and
since emscripten is broken more often than not, let’s patch it out by
default. If somebody /really/ needs the web-ui, there is a
`webUISupport` flag.
The backblaze library moved into the b2sdk package.
If it’s not used, duplicity fails loading the b2:// backend.
> BackendException: B2 backend requires B2 Python SDK (pip install
b2sdk)
Patch release which adds a manpage.
Adding a `man` and a `doc` output, and copying the files to the
corresponding directories.
The `overrideAttrs` is necessary because `buildRustPackage` does not
allow adding outputs.
This change was preceded by the idea of adding a pronoun field to the
file, which we determined to be a bad idea:
* maintainers-list: add pronoun to the optional fields
I often do not know how to address maintainers, so giving them the
ability to specify their pronouns is helpful for communication
purposes.
* maintainers-list: add pronoun for Profpatsch
maintainers-list: make the pronoun field into a list
Some people have a set of pronouns they are fine with, so let’s make
that possible.
Based on feedback by somebody With An Idea™ of the topic.
* maintainers-list: remove the pronouns field
The discussion around the field raised a good point, quoting:
> What you are proposing here is keeping an irrevocable permanent
> history of people’s pronouns. It makes anybody would want to do bad
> things with it one small script away from a list of which Nixpkgs
> contributors are trans. Even looking at the history of name
> changes (which we probably also shouldn’t store) wouldn’t be nearly
> as reliable a source. While it might be tempting to say that
> participating in this would be optional, it would be establishing a
> de facto standard location for this information, that might make
> people feel compelled to participate or accept having the wrong
> pronoun used. Compounding this is the fact that the people who will
> be most comfortable using this field are the people who have never
> changed their pronouns. If they decide to in future, they now have
> to choose between permanently marking themselves as somebody who
> changed or deleted their pronouns (which is dangerous) or leaving
> the wrong pronouns up. Because of this, I think that over time this
> list would probably result in even more people being referred to by
> the wrong pronouns, because of outdated entries that are dangerous
> to correct.
>
> **This idea is extremely dangerous**. If somebody wants to publish
> their pronouns, they can already do that on their website or GitHub
> profile, without having to include that information in a large
> public dataset with history tracking.
So let’s remove it again.
Preserving existing behavior: the bash completion was not executable,
the zsh completion was; according to lukegb the fish completion does
not have to be executable.
Merges https://github.com/NixOS/nixos-hardware into nixpkgs.
This will give better discoverability, and considering the low
turnover (less than 100 commits in the last year and only 350 total)
it won’t make any dent on the size of nixpkgs.
We have a monorepo, let’s use it
It is going to be merged into nixpkgs, under `nixos/hardware`.
This will give better discoverability, and considering the low
turnover (less than 100 commits in the last year and only 350 total)
it won’t make any dent on the size of nixpkgs.
We have a monorepo, let’s use it.
This was broken in `haskellPackages` for a long time, but it’s back!
Time to give it a place in the toplevel and a prope) treatment:
* Semi-static binary
* Remove all references to `Paths_` modules of dependencies
* gitit tries very hard to have a runtime dependency on GHC, disable
that by default.
Also added myself as a maintainer, let’s try to keep this working from
now on.
Fixes https://github.com/NixOS/nixpkgs/issues/32377
Hello,
execline-2.6.1.0 is out.
This version features a more expressive format for the envfile binary.
Most of the files that are suitable for a systemd EnvironmentFile=
directive are now parsable with envfile: double quotes are supported,
backslashed newlines are supported, a few C escape sequences are
supported (including octal and hexadecimal). So it is now possible to
read most existing /etc/default configuration files without spawning a
shell.
Additionally, envfile now comes with a -I option that makes it ignore
a nonexistent file, instead of failing.
git://git.skarnet.org/execline
https://skarnet.org/software/execline/
Enjoy,
Bug-reports welcome.
Most of the skaware packages already build just fine with pkgsStatic,
however the wrapper scripts for execline and stdnotify-wrapper needed
the `-lskarlib` argument to go at the end.
`utmps` and `nsss` still fail with this error:
```
exec ./tools/install.sh -D -m 600 utmps-utmpd /bin/utmps-utmpd
/build/utmps-0.0.3.1/tools/install.sh: line 48: can't create /bin/utmps-utmpd.tmp.479: Permission denied
make: *** [Makefile:121: /bin/utmps-utmpd] Error 1
```
Hello,
New versions of all the skarnet.org packages are available.
This is mostly a bugfix release (there was an installation bug in
some circumstances with shared libraries) but some packages, notably
execline and s6, have new, useful features.
The new versions are the following:
skalibs-2.9.2.0
nsss-0.0.2.2
utmps-0.0.3.2
execline-2.6.0.0
s6-2.9.1.0
s6-rc-0.5.1.2
s6-linux-init-1.0.4.0
s6-dns-2.3.2.0
s6-networking-2.3.1.2
s6-portable-utils-2.2.2.2
s6-linux-utils-2.5.1.2
mdevd-0.1.1.2
bcnm-0.0.1.0
Here are details for the packages that have more than bugfixes:
* skalibs-2.9.2.0
---------------
- New header: skalibs/bigkv.h. It's a set of functions allowing
efficient lookups in a large set of strings (typically read from the
command line or the environment).
https://skarnet.org/software/skalibs/
git://git.skarnet.org/skalibs
* execline-2.6.0.0
----------------
- It's a major release because an API has been modified: dollarat.
Beforehand, dollarat's -0 option would always prevail over any -d
option. Now, dollarat has its conflicting -0 and -d options handled
in the conventional way, with rightmost priority.
- The runblock program now accepts a command line prefix, which is
given as runblock's own command line. This allows blocks to serve as
arguments to a new command, instead of having to be full command lines
by themselves.
- New binary: posix-umask.
- The former "cd" program is now named "execline-cd" and the former
"umask" program is named "execline-umask". When the=20
--enable-pedantic-posix
option is not given at configure time, "cd" and "umask" are symbolic
links created at installation time and pointing to execline-cd and
execline-umask respectively. When the --enable-pedantic-posix option is
given, the symbolic links point to posix-cd and posix-umask instead.
- With posix-cd and posix-umask (and the changes to wait done in the
previous version), execline is now fully POSIX-compliant when built with
the --enable-pedantic-posix option. This will certainly, without the
slightest hint of a doubt, change distributions' attitudes about it.
https://skarnet.org/software/execline/
git://git.skarnet.org/execline
* s6-2.9.1.0
----------
- A new '?' directive has been added to s6-log. It behaves exactly like
'!', except that it spawns the given processor with /bin/sh as an
interpreter instead of execlineb.
- execline support is now optional: it can be disabled by specifying
--disable-execline at configure time. Some functionality is unavailable
when execline support is disabled:
* s6-log's '!' directive
* s6-notifyoncheck's -c option
* s6-ipcserver-access's support for 'exec' directives in a ruleset
- A new -X option has been added to s6-svscan, to specify a descriptor
that will be passed as stderr to a service spawned by this s6-svscan and
named s6-svscan-log. This is used in the new s6-linux-init, to avoid
needing to hardcode the /dev/console name for the catch-all logger's
standard error.
- On systems that define SIGPWR and SIGWINCH, s6-svscan -s now diverts
those signals. This allows powerfail and kbrequest events to be handled
when s6-svscan runs as process 1.
https://skarnet.org/software/s6/
git://git.skarnet.org/s6
* s6-linux-init-1.0.4.0
---------------------
- New options have been added to s6-linux-init-maker: to support
running s6-linux-init without a catch-all logger, and to support running
it in a container.
- s6-linux-init-maker now adds a SIGPWR handler to the default image:
on receipt of a SIGPWR, the system's shutdown procedure is triggered.
- s6-linux-init now handles kbrequest, which triggers a SIGWINCH in
init when a special, configurable set of keys is pressed. By default,
no SIGWINCH handler is declared in the image, and no set of keys is
bound to kbrequest.
https://skarnet.org/software/s6-linux-init/
git://git.skarnet.org/s6-linux-init
* s6-dns-2.3.2.0
--------------
- New library: libdcache, implementing a clean cache structure
to contain DNS data. It's still not used at the moment.
https://skarnet.org/software/s6-dns/
git://git.skarnet.org/s6-dns
* bcnm-0.0.1.0
------------
- First numbered release, because the Ad=C3=A9lie Linux distribution,
which uses libwpactrl, needs an official release instead of pulling
from git.
- libwpactrl is a set of C functions helping control a wpa_supplicant
process.
- bcnm-waitif is a binary that waits for network interface state
events such as appearance/disappearance, up/down, running/not-running.
It is useful to avoid race conditions during a boot sequence, for
instance.
https://skarnet.org/software/bcnm/
git://git.skarnet.org/bcnm
Enjoy,
Bug-reports welcome.
--
Laurent
This reverts commit a50653295d.
The reasons cited were “debugging”, in which case
you can just add the attribute to `buildSkawarePackage`
and “customizing”, which is still possible with
a normal `overrideDerivation`.
The patch removed `outputs` for some reason
(possible oversight), so building nsss failed.
Plus lots of complexity (e.g. don’t forget to add new
arguments to `removeAttrs` otherwise there’s a bug now).
The shellcheck source code contains a manpage, so let’s add that to
the output. For good measure, also copy the README to the doc output.
The overrideMeta thing is taking care of setting the right position,
so that `nix edit` points to this file instead of to the original
haskellPackages definition.
httpie has quite extensive documentation in form of its rst readme.
With docutils it’s quite easy to convert to html.
We can also convert it to a manpage, which makes the documentation
accessible from the command line (even though it’s not quite standard
format as far as manpages go; however a lot better than nothing).
If we just want to write a non-compiled script (e.g. writeDash), it’s
usually a lot faster just doing it locally. That’s what
`runCommandLocal` was introduced for, so let’s use it in `writers`.
Let’s call them by what they are, option names.
`generators.mkValueStringDefault` is a better value string renderer
than plain `toString`.
Also add docs to all options.
The semantic difference between `encode` and `to` is not apparent.
Users are likely to confuse both functions (which leads to unexpected
error messages about the wrong types). Like in `generators.nix`, all
functions should be prefixed by `to`.
Furthermore, converting to a string depends on the target context. In
this case, it’s a POSIX shell, so we should name it that (compare
`escapeShellArg` in `strings.nix`).
We can later add versions that escape for embedding in e.g. python
scripts or similar.
lib/cli is very similar to generators, so it should follow largely the
same interface. Similar to how generators isn’t exported, we should
also namespace cli by default (plus “cli” is only three characters to
type).
We shouldn’t force the user to have a C compiler in scope, just
because the derivation is forced to build locally. That can’t be
counted as “lightweight” anymore.
Co-Authored-By: Silvan Mosberger<contact@infinisil.com>
A definition I’ve been copy-pasting everywhere so far, so it’s finally
time to add it to nixpkgs.
I’m using a remote builder for my regular nix builds, so trivial
`runCommand`s which first try a substitution and then copy the inputs
to the builder to run for 0.2s are quite noticable.
If we just always build these, we gain some build time, so let’s make
it easy to switch from remote to local.
If `PATH` is unset, the exec wrappers in skalibs set a default path to
`/usr/bin:bin`.
This has very unfortunate effects when you e.g. try to run tests on CI
in an empty environment (minus tools explicitely provided by nix with
absolute store paths), because suddenly binaries from outside are
picked up again, especially on non-NixOS.
Even on NixOS, /bin/sh provides another escape hatch if it’s available
from PATH. But on systems like Ubuntu or MacOS (which most CI systems
run on), this picks up all the non-nix binaries.