Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-08-20 00:03:24 +00:00 committed by GitHub
commit 8a62479e06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 2688 additions and 1765 deletions

View File

@ -5177,6 +5177,11 @@
githubId = 1583484;
name = "Andrey Golovizin";
};
errnoh = {
github = "errnoh";
githubId = 373946;
name = "Erno Hopearuoho";
};
ersin = {
email = "me@ersinakinci.com";
github = "ersinakinci";
@ -11102,6 +11107,12 @@
github = "michaelCTS";
githubId = 132582212;
};
michaeldonovan = {
email = "michael@mdonovan.dev";
name = "Michael Donovan";
github = "michaeldonovan";
githubId = 14077230;
};
michaelgrahamevans = {
email = "michaelgrahamevans@gmail.com";
name = "Michael Evans";

View File

@ -30,6 +30,8 @@
- [sitespeed-io](https://sitespeed.io), a tool that can generate metrics (timings, diagnostics) for websites. Available as [services.sitespeed-io](#opt-services.sitespeed-io.enable).
- [Jool](https://nicmx.github.io/Jool/en/index.html), an Open Source implementation of IPv4/IPv6 translation on Linux. Available as [networking.jool.enable](#opt-networking.jool.enable).
- [Apache Guacamole](https://guacamole.apache.org/), a cross-platform, clientless remote desktop gateway. Available as [services.guacamole-server](#opt-services.guacamole-server.enable) and [services.guacamole-client](#opt-services.guacamole-client.enable) services.
- [pgBouncer](https://www.pgbouncer.org), a PostgreSQL connection pooler. Available as [services.pgbouncer](#opt-services.pgbouncer.enable).

View File

@ -319,6 +319,7 @@
./services/audio/botamusique.nix
./services/audio/gmediarender.nix
./services/audio/gonic.nix
./services/audio/goxlr-utility.nix
./services/audio/hqplayerd.nix
./services/audio/icecast.nix
./services/audio/jack.nix
@ -928,6 +929,7 @@
./services/networking/jibri/default.nix
./services/networking/jicofo.nix
./services/networking/jitsi-videobridge.nix
./services/networking/jool.nix
./services/networking/kea.nix
./services/networking/keepalived/default.nix
./services/networking/keybase.nix

View File

@ -9,7 +9,8 @@ let
fmt = value:
if isList value then concatStringsSep " " (map fmt value) else
if isString value then value else
if isBool value || isInt value then toString value else
if isBool value then if value then "1" else "0" else
if isInt value then toString value else
throw "Unrecognized type ${typeOf value} in htop settings";
in

View File

@ -0,0 +1,48 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.goxlr-utility;
in
with lib;
{
options = {
services.goxlr-utility = {
enable = mkOption {
default = false;
type = types.bool;
description = lib.mdDoc ''
Whether to enable goxlr-utility for controlling your TC-Helicon GoXLR or GoXLR Mini
'';
};
package = mkPackageOptionMD pkgs "goxlr-utility" { };
autoStart.xdg = mkOption {
default = true;
type = with types; bool;
description = lib.mdDoc ''
Start the daemon automatically using XDG autostart.
Sets `xdg.autostart.enable = true` if not already enabled.
'';
};
};
};
config = mkIf config.services.goxlr-utility.enable
{
services.udev.packages = [ cfg.package ];
xdg.autostart.enable = mkIf cfg.autoStart.xdg true;
environment.systemPackages = mkIf cfg.autoStart.xdg
[
cfg.package
(pkgs.makeAutostartItem
{
name = "goxlr-utility";
package = cfg.package;
})
];
};
meta.maintainers = with maintainers; [ errnoh ];
}

View File

@ -0,0 +1,222 @@
{ config, pkgs, lib, ... }:
let
cfg = config.networking.jool;
jool = config.boot.kernelPackages.jool;
jool-cli = pkgs.jool-cli;
hardening = {
# Run as unprivileged user
User = "jool";
Group = "jool";
DynamicUser = true;
# Restrict filesystem to only read the jool module
TemporaryFileSystem = [ "/" ];
BindReadOnlyPaths = [
builtins.storeDir
"/run/current-system/kernel-modules"
];
# Give capabilities to load the module and configure it
AmbientCapabilities = [ "CAP_SYS_MODULE" "CAP_NET_ADMIN" ];
RestrictAddressFamilies = [ "AF_NETLINK" ];
# Other restrictions
RestrictNamespaces = [ "net" ];
SystemCallFilter = [ "@system-service" "@module" ];
CapabilityBoundingSet = [ "CAP_SYS_MODULE" "CAP_NET_ADMIN" ];
};
configFormat = pkgs.formats.json {};
mkDefaultAttrs = lib.mapAttrs (n: v: lib.mkDefault v);
defaultNat64 = {
instance = "default";
framework = "netfilter";
global.pool6 = "64:ff9b::/96";
};
defaultSiit = {
instance = "default";
framework = "netfilter";
};
nat64Conf = configFormat.generate "jool-nat64.conf" cfg.nat64.config;
siitConf = configFormat.generate "jool-siit.conf" cfg.siit.config;
in
{
###### interface
options = {
networking.jool.enable = lib.mkOption {
type = lib.types.bool;
default = false;
relatedPackages = [ "linuxPackages.jool" "jool-cli" ];
description = lib.mdDoc ''
Whether to enable Jool, an Open Source implementation of IPv4/IPv6
translation on Linux.
Jool can perform stateless IP/ICMP translation (SIIT) or stateful
NAT64, analogous to the IPv4 NAPT. Refer to the upstream
[documentation](https://nicmx.github.io/Jool/en/intro-xlat.html) for
the supported modes of translation and how to configure them.
'';
};
networking.jool.nat64.enable = lib.mkEnableOption (lib.mdDoc "a NAT64 instance of Jool.");
networking.jool.nat64.config = lib.mkOption {
type = configFormat.type;
default = defaultNat64;
example = lib.literalExpression ''
{
# custom NAT64 prefix
global.pool6 = "2001:db8:64::/96";
# Port forwarding
bib = [
{ # SSH 192.0.2.16 → 2001:db8:a::1
"protocol" = "TCP";
"ipv4 address" = "192.0.2.16#22";
"ipv6 address" = "2001:db8:a::1#22";
}
{ # DNS (TCP) 192.0.2.16 → 2001:db8:a::2
"protocol" = "TCP";
"ipv4 address" = "192.0.2.16#53";
"ipv6 address" = "2001:db8:a::2#53";
}
{ # DNS (UDP) 192.0.2.16 → 2001:db8:a::2
"protocol" = "UDP";
"ipv4 address" = "192.0.2.16#53";
"ipv6 address" = "2001:db8:a::2#53";
}
];
pool4 = [
# Ports for dynamic translation
{ protocol = "TCP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
{ protocol = "UDP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
{ protocol = "ICMP"; prefix = "192.0.2.16/32"; "port range" = "40001-65535"; }
# Ports for static BIB entries
{ protocol = "TCP"; prefix = "192.0.2.16/32"; "port range" = "22"; }
{ protocol = "UDP"; prefix = "192.0.2.16/32"; "port range" = "53"; }
];
}
'';
description = lib.mdDoc ''
The configuration of a stateful NAT64 instance of Jool managed through
NixOS. See https://nicmx.github.io/Jool/en/config-atomic.html for the
available options.
::: {.note}
Existing or more instances created manually will not interfere with the
NixOS instance, provided the respective `pool4` addresses and port
ranges are not overlapping.
:::
::: {.warning}
Changes to the NixOS instance performed via `jool instance nixos-nat64`
are applied correctly but will be lost after restarting
`jool-nat64.service`.
:::
'';
};
networking.jool.siit.enable = lib.mkEnableOption (lib.mdDoc "a SIIT instance of Jool.");
networking.jool.siit.config = lib.mkOption {
type = configFormat.type;
default = defaultSiit;
example = lib.literalExpression ''
{
# Maps any IPv4 address x.y.z.t to 2001:db8::x.y.z.t and v.v.
pool6 = "2001:db8::/96";
# Explicit address mappings
eamt = [
# 2001:db8:1:: ←→ 192.0.2.0
{ "ipv6 prefix": "2001:db8:1::/128", "ipv4 prefix": "192.0.2.0" }
# 2001:db8:1::x ←→ 198.51.100.x
{ "ipv6 prefix": "2001:db8:2::/120", "ipv4 prefix": "198.51.100.0/24" }
]
}
'';
description = lib.mdDoc ''
The configuration of a SIIT instance of Jool managed through
NixOS. See https://nicmx.github.io/Jool/en/config-atomic.html for the
available options.
::: {.note}
Existing or more instances created manually will not interfere with the
NixOS instance, provided the respective `EAMT` address mappings are not
overlapping.
:::
::: {.warning}
Changes to the NixOS instance performed via `jool instance nixos-siit`
are applied correctly but will be lost after restarting
`jool-siit.service`.
:::
'';
};
};
###### implementation
config = lib.mkIf cfg.enable {
environment.systemPackages = [ jool-cli ];
boot.extraModulePackages = [ jool ];
systemd.services.jool-nat64 = lib.mkIf cfg.nat64.enable {
description = "Jool, NAT64 setup";
documentation = [ "https://nicmx.github.io/Jool/en/documentation.html" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${pkgs.kmod}/bin/modprobe jool";
ExecStart = "${jool-cli}/bin/jool file handle ${nat64Conf}";
ExecStop = "${jool-cli}/bin/jool -f ${nat64Conf} instance remove";
} // hardening;
};
systemd.services.jool-siit = lib.mkIf cfg.siit.enable {
description = "Jool, SIIT setup";
documentation = [ "https://nicmx.github.io/Jool/en/documentation.html" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
reloadIfChanged = true;
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
ExecStartPre = "${pkgs.kmod}/bin/modprobe jool_siit";
ExecStart = "${jool-cli}/bin/jool_siit file handle ${siitConf}";
ExecStop = "${jool-cli}/bin/jool_siit -f ${siitConf} instance remove";
} // hardening;
};
system.checks = lib.singleton (pkgs.runCommand "jool-validated" {
nativeBuildInputs = [ pkgs.buildPackages.jool-cli ];
preferLocalBuild = true;
} ''
printf 'Validating Jool configuration... '
${lib.optionalString cfg.siit.enable "jool_siit file check ${siitConf}"}
${lib.optionalString cfg.nat64.enable "jool file check ${nat64Conf}"}
printf 'ok\n'
touch "$out"
'');
networking.jool.nat64.config = mkDefaultAttrs defaultNat64;
networking.jool.siit.config = mkDefaultAttrs defaultSiit;
};
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
}

View File

@ -391,6 +391,7 @@ in {
jibri = handleTest ./jibri.nix {};
jirafeau = handleTest ./jirafeau.nix {};
jitsi-meet = handleTest ./jitsi-meet.nix {};
jool = handleTest ./jool.nix {};
k3s = handleTest ./k3s {};
kafka = handleTest ./kafka.nix {};
kanidm = handleTest ./kanidm.nix {};

250
nixos/tests/jool.nix Normal file
View File

@ -0,0 +1,250 @@
{ system ? builtins.currentSystem,
config ? {},
pkgs ? import ../.. { inherit system config; }
}:
with import ../lib/testing-python.nix { inherit system pkgs; };
let
inherit (pkgs) lib;
ipv6Only = {
networking.useDHCP = false;
networking.interfaces.eth1.ipv4.addresses = lib.mkVMOverride [ ];
};
ipv4Only = {
networking.useDHCP = false;
networking.interfaces.eth1.ipv6.addresses = lib.mkVMOverride [ ];
};
webserver = ip: msg: {
systemd.services.webserver = {
description = "Mock webserver";
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.Restart = "always";
script = ''
while true; do
{
printf 'HTTP/1.0 200 OK\n'
printf 'Content-Length: ${toString (1 + builtins.stringLength msg)}\n'
printf '\n${msg}\n\n'
} | ${pkgs.libressl.nc}/bin/nc -${toString ip}nvl 80
done
'';
};
networking.firewall.allowedTCPPorts = [ 80 ];
};
in
{
siit = makeTest {
# This test simulates the setup described in [1] with two IPv6 and
# IPv4-only devices on different subnets communicating through a border
# relay running Jool in SIIT mode.
# [1]: https://nicmx.github.io/Jool/en/run-vanilla.html
name = "jool-siit";
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
# Border relay
nodes.relay = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
virtualisation.vlans = [ 1 2 ];
# Enable packet routing
boot.kernel.sysctl = {
"net.ipv6.conf.all.forwarding" = 1;
"net.ipv4.conf.all.forwarding" = 1;
};
networking.useDHCP = false;
networking.interfaces = lib.mkVMOverride {
eth1.ipv6.addresses = [ { address = "fd::198.51.100.1"; prefixLength = 120; } ];
eth2.ipv4.addresses = [ { address = "192.0.2.1"; prefixLength = 24; } ];
};
networking.jool = {
enable = true;
siit.enable = true;
siit.config.global.pool6 = "fd::/96";
};
};
# IPv6 only node
nodes.alice = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv6Only
(webserver 6 "Hello, Bob!")
];
virtualisation.vlans = [ 1 ];
networking.interfaces.eth1.ipv6 = {
addresses = [ { address = "fd::198.51.100.8"; prefixLength = 120; } ];
routes = [ { address = "fd::192.0.2.0"; prefixLength = 120;
via = "fd::198.51.100.1"; } ];
};
};
# IPv4 only node
nodes.bob = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv4Only
(webserver 4 "Hello, Alice!")
];
virtualisation.vlans = [ 2 ];
networking.interfaces.eth1.ipv4 = {
addresses = [ { address = "192.0.2.16"; prefixLength = 24; } ];
routes = [ { address = "198.51.100.0"; prefixLength = 24;
via = "192.0.2.1"; } ];
};
};
testScript = ''
start_all()
relay.wait_for_unit("jool-siit.service")
alice.wait_for_unit("network-addresses-eth1.service")
bob.wait_for_unit("network-addresses-eth1.service")
with subtest("Alice and Bob can't ping each other"):
relay.systemctl("stop jool-siit.service")
alice.fail("ping -c1 fd::192.0.2.16")
bob.fail("ping -c1 198.51.100.8")
with subtest("Alice and Bob can ping using the relay"):
relay.systemctl("start jool-siit.service")
alice.wait_until_succeeds("ping -c1 fd::192.0.2.16")
bob.wait_until_succeeds("ping -c1 198.51.100.8")
with subtest("Alice can connect to Bob's webserver"):
bob.wait_for_open_port(80)
alice.succeed("curl -vvv http://[fd::192.0.2.16] >&2")
alice.succeed("curl --fail -s http://[fd::192.0.2.16] | grep -q Alice")
with subtest("Bob can connect to Alices's webserver"):
alice.wait_for_open_port(80)
bob.succeed("curl --fail -s http://198.51.100.8 | grep -q Bob")
'';
};
nat64 = makeTest {
# This test simulates the setup described in [1] with two IPv6-only nodes
# (a client and a homeserver) on the LAN subnet and an IPv4 node on the WAN.
# The router runs Jool in stateful NAT64 mode, masquarading the LAN and
# forwarding ports using static BIB entries.
# [1]: https://nicmx.github.io/Jool/en/run-nat64.html
name = "jool-nat64";
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
# Router
nodes.router = { ... }: {
imports = [ ../modules/profiles/minimal.nix ];
virtualisation.vlans = [ 1 2 ];
# Enable packet routing
boot.kernel.sysctl = {
"net.ipv6.conf.all.forwarding" = 1;
"net.ipv4.conf.all.forwarding" = 1;
};
networking.useDHCP = false;
networking.interfaces = lib.mkVMOverride {
eth1.ipv6.addresses = [ { address = "2001:db8::1"; prefixLength = 96; } ];
eth2.ipv4.addresses = [ { address = "203.0.113.1"; prefixLength = 24; } ];
};
networking.jool = {
enable = true;
nat64.enable = true;
nat64.config = {
bib = [
{ # forward HTTP 203.0.113.1 (router) → 2001:db8::9 (homeserver)
"protocol" = "TCP";
"ipv4 address" = "203.0.113.1#80";
"ipv6 address" = "2001:db8::9#80";
}
];
pool4 = [
# Ports for dynamic translation
{ protocol = "TCP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
{ protocol = "UDP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
{ protocol = "ICMP"; prefix = "203.0.113.1/32"; "port range" = "40001-65535"; }
# Ports for static BIB entries
{ protocol = "TCP"; prefix = "203.0.113.1/32"; "port range" = "80"; }
];
};
};
};
# LAN client (IPv6 only)
nodes.client = { ... }: {
imports = [ ../modules/profiles/minimal.nix ipv6Only ];
virtualisation.vlans = [ 1 ];
networking.interfaces.eth1.ipv6 = {
addresses = [ { address = "2001:db8::8"; prefixLength = 96; } ];
routes = [ { address = "64:ff9b::"; prefixLength = 96;
via = "2001:db8::1"; } ];
};
};
# LAN server (IPv6 only)
nodes.homeserver = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv6Only
(webserver 6 "Hello from IPv6!")
];
virtualisation.vlans = [ 1 ];
networking.interfaces.eth1.ipv6 = {
addresses = [ { address = "2001:db8::9"; prefixLength = 96; } ];
routes = [ { address = "64:ff9b::"; prefixLength = 96;
via = "2001:db8::1"; } ];
};
};
# WAN server (IPv4 only)
nodes.server = { ... }: {
imports = [
../modules/profiles/minimal.nix
ipv4Only
(webserver 4 "Hello from IPv4!")
];
virtualisation.vlans = [ 2 ];
networking.interfaces.eth1.ipv4.addresses =
[ { address = "203.0.113.16"; prefixLength = 24; } ];
};
testScript = ''
start_all()
for node in [client, homeserver, server]:
node.wait_for_unit("network-addresses-eth1.service")
with subtest("Client can ping the WAN server"):
router.wait_for_unit("jool-nat64.service")
client.succeed("ping -c1 64:ff9b::203.0.113.16")
with subtest("Client can connect to the WAN webserver"):
server.wait_for_open_port(80)
client.succeed("curl --fail -s http://[64:ff9b::203.0.113.16] | grep -q IPv4!")
with subtest("Router BIB entries are correctly populated"):
router.succeed("jool bib display | grep -q 'Dynamic TCP.*2001:db8::8'")
router.succeed("jool bib display | grep -q 'Static TCP.*2001:db8::9'")
with subtest("WAN server can reach the LAN server"):
homeserver.wait_for_open_port(80)
server.succeed("curl --fail -s http://203.0.113.1 | grep -q IPv6!")
'';
};
}

View File

@ -1,57 +0,0 @@
{ lib, stdenv, fetchurl, ant, jre, jdk, swt, acl, attr }:
stdenv.mkDerivation rec {
pname = "areca";
version = "7.5";
src = fetchurl {
url = "mirror://sourceforge/project/areca/areca-stable/areca-${version}/areca-${version}-src.tar.gz";
sha256 = "1q4ha9s96c1syplxm04bh1v1gvjq16l4pa8w25w95d2ywwvyq1xb";
};
sourceRoot = ".";
buildInputs = [ jdk ant acl attr ];
patches = [ ./fix-javah-bug.diff ];
postPatch = ''
substituteInPlace build.xml --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
substituteInPlace build.xml --replace "gcc" "${stdenv.cc}/bin/gcc"
substituteInPlace areca.sh --replace "bin/" ""
substituteInPlace bin/areca_run.sh --replace "/usr/java" "${jre}/lib/openjdk"
substituteInPlace bin/areca_run.sh --replace "/usr/lib/java/swt.jar" "${swt}/jars/swt.jar"
# Fix for NixOS/nixpkgs/issues/53716
sed -i -e 's;^;#include <attr/attributes.h>;' jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c
substituteInPlace jni/com_myJava_file_metadata_posix_jni_wrapper_FileAccessWrapper.c --replace attr/xattr.h sys/xattr.h
sed -i "s#^PROGRAM_DIR.*#PROGRAM_DIR=$out#g" bin/areca_run.sh
sed -i "s#^LIBRARY_PATH.*#LIBRARY_PATH=$out/lib:${lib.makeLibraryPath [ swt acl ]}#g" bin/areca_run.sh
# https://sourceforge.net/p/areca/bugs/563/
substituteInPlace bin/areca_run.sh --replace '[ "$JAVA_IMPL" = "java" ]' \
'[[ "$JAVA_IMPL" = "java" || "$JAVA_IMPL" = "openjdk" ]]'
'';
buildPhase = "ant";
installPhase = ''
mkdir -p $out/bin $out/lib $out/translations
cp areca.sh $out/bin/areca
cp -r bin $out
cp -r lib $out
cp -r translations $out
cp COPYING $out
'';
meta = with lib; {
homepage = "http://www.areca-backup.org/";
description = "An Open Source personal backup solution";
# Builds fine but fails to launch.
broken = true;
license = licenses.gpl2;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; linux;
};
}

View File

@ -1,73 +0,0 @@
{ lib, stdenv, fetchgit, dconf, gtksourceview3, at-spi2-core, gtksourceviewmm,
boost, libepoxy, cmake, aspell, llvmPackages, libgit2, pkg-config, pcre,
libXdmcp, libxkbcommon, libpthreadstubs, wrapGAppsHook, aspellDicts, gtkmm3,
coreutils, glibc, dbus, openssl, libxml2, gnumake, ctags }:
stdenv.mkDerivation rec {
pname = "juicipp";
version = "1.2.3";
meta = with lib; {
homepage = "https://github.com/cppit/jucipp";
description = "A lightweight, platform independent C++-IDE with support for C++11, C++14, and experimental C++17 features depending on libclang version";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ xnwdd ];
# error: token ""1.1"" is not valid in preprocessor expression
# TODO: fix pname being different from the attribute name
broken = true;
};
src = fetchgit {
url = "https://github.com/cppit/jucipp.git";
rev = "refs/tags/v${version}";
deepClone = true;
sha256 = "0xp6ijnrggskjrvscp204bmdpz48l5a8nxr9abp17wni6akb5wiq";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook cmake ];
buildInputs = [
dbus
openssl
libxml2
gtksourceview3
at-spi2-core
pcre
libepoxy
boost
libXdmcp
aspell
libgit2
libxkbcommon
gtkmm3
libpthreadstubs
gtksourceviewmm
llvmPackages.clang.cc
llvmPackages.lldb
dconf
];
lintIncludes = let
p = "arguments.emplace_back(\"-I";
e = "\");";
v = lib.getVersion llvmPackages.clang;
in
p+llvmPackages.libcxx.dev+"/include/c++/v1"+e
+p+llvmPackages.clang-unwrapped.lib+"/lib/clang/"+v+"/include/"+e
+p+glibc.dev+"/include"+e;
preConfigure = ''
sed -i 's|liblldb LIBLLDB_LIBRARIES|liblldb LIBNOTHING|g' CMakeLists.txt
sed -i 's|> arguments;|> arguments; ${lintIncludes}|g' src/source_clang.cc
'';
cmakeFlags = [ "-DLIBLLDB_LIBRARIES=${lib.makeLibraryPath [ llvmPackages.lldb ]}/liblldb.so" ];
postInstall = ''
mv $out/bin/juci $out/bin/.juci
makeWrapper "$out/bin/.juci" "$out/bin/juci" \
--set PATH "${lib.makeBinPath [ ctags coreutils llvmPackages.clang.cc cmake gnumake llvmPackages.clang.bintools llvmPackages.clang ]}" \
--set NO_AT_BRIDGE 1 \
--set ASPELL_CONF "dict-dir ${aspellDicts.en}/lib/aspell"
'';
}

View File

@ -19,6 +19,10 @@
"date": "2022-10-20",
"new": "neodev-nvim"
},
"nvchad-extensions": {
"date": "2023-08-19",
"new": "nvchad-ui"
},
"nvim-bufferline-lua": {
"date": "2021-08-22",
"new": "bufferline-nvim"

File diff suppressed because it is too large Load Diff

View File

@ -27,12 +27,12 @@
};
arduino = buildGrammar {
language = "arduino";
version = "0.0.0+rev=d988e6a";
version = "0.0.0+rev=a2aa2b3";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-arduino";
rev = "d988e6a803203cc2bbfd2a8a84edffc73d2922b4";
hash = "sha256-Q8LmoBIKqU/DCf387ew/LgvYbyT8KsxvmD+WFMXOMGI=";
rev = "a2aa2b38301960822c5384cd10a07c2026e9d44e";
hash = "sha256-VtY+SaWIkLHv48jewmU0k1AtPwqpthWbNkpTHtCS98Y=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
};
@ -60,12 +60,12 @@
};
bash = buildGrammar {
language = "bash";
version = "0.0.0+rev=1b0321e";
version = "0.0.0+rev=8077be4";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-bash";
rev = "1b0321ee85701d5036c334a6f04761cdc672e64c";
hash = "sha256-ueZjazaqjbxqCM7mO8h9m0fJ6RUCaX4MuJx7StnPqyc=";
rev = "8077be4c5504f2618f1280295bc4ae20a75988c1";
hash = "sha256-i31QbosmsI1CUGAHOqeNGVeqoct13+i24CUtaGwdT7o=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-bash";
};
@ -113,6 +113,17 @@
};
meta.homepage = "https://github.com/amaanq/tree-sitter-bicep";
};
bitbake = buildGrammar {
language = "bitbake";
version = "0.0.0+rev=ed92abd";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-bitbake";
rev = "ed92abd7b67ab66a6fa3a747a0157f01d2e467d8";
hash = "sha256-HfWUDYiBCmtlu5fFX287BSDHyCiD7gqIVFDTxH5APAE=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-bitbake";
};
blueprint = buildGrammar {
language = "blueprint";
version = "0.0.0+rev=7f1a5df";
@ -126,12 +137,12 @@
};
c = buildGrammar {
language = "c";
version = "0.0.0+rev=93ef178";
version = "0.0.0+rev=a2b7bac";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-c";
rev = "93ef1785bbf854cf964e6e53d6e1e6885a4d8ebc";
hash = "sha256-5n9ZnslpUWyusWTo+AqJiPGB64NB0rTbc2rtfByPUC8=";
rev = "a2b7bac3b313efbaa683d9a276ff63cdc544d960";
hash = "sha256-39i06oXMQemfq3Y4TTXai6HFXvURVOif1v2i9LP4sAI=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
};
@ -192,12 +203,12 @@
};
cmake = buildGrammar {
language = "cmake";
version = "0.0.0+rev=3dfc596";
version = "0.0.0+rev=73ab4b8";
src = fetchFromGitHub {
owner = "uyha";
repo = "tree-sitter-cmake";
rev = "3dfc596025431b21e839d392c171f6f97c2a4258";
hash = "sha256-SrNsKtZ/BYa6wWkuseHuwwvcC37IKFuGtS5oNefWG0U=";
rev = "73ab4b8e9522f014a67f87f585e820d36fa47408";
hash = "sha256-5X4ho6tqPZFQWqoQ6WBsfuA+RbxTX5XzX7xzyFSTifw=";
};
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
};
@ -258,12 +269,12 @@
};
cpp = buildGrammar {
language = "cpp";
version = "0.0.0+rev=77cecd8";
version = "0.0.0+rev=a90f170";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-cpp";
rev = "77cecd88d28032bf4f54fd4ee68efb53a6c8c9a5";
hash = "sha256-/w77s0qcJcLH6MX3BVuM37UQ1Xm/6t2oJ2KTq+hnIJI=";
rev = "a90f170f92d5d70e7c2d4183c146e61ba5f3a457";
hash = "sha256-e9Mz84lssaPR80hlogyjXx+jA8gD8YVp4T06qC6gRVI=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
};
@ -278,14 +289,26 @@
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-css";
};
csv = buildGrammar {
language = "csv";
version = "0.0.0+rev=f1d35df";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-csv";
rev = "f1d35df780976721d3cd38f0b16538dd31f87a23";
hash = "sha256-t4uzc1VwJzS4qj0D1wolUvUNuc5OzC4L4RnLpYh+TXo=";
};
location = "csv";
meta.homepage = "https://github.com/amaanq/tree-sitter-csv";
};
cuda = buildGrammar {
language = "cuda";
version = "0.0.0+rev=d4285d0";
version = "0.0.0+rev=f00c914";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "d4285d0396a409c91bcd5a7fd362cf13cc6f8600";
hash = "sha256-M4jx6pEj6kb0XIaWq7dzEvd+p6qadlowEyMYzJoeiRU=";
rev = "f00c91430124797e798cbf28e09075d7d192938a";
hash = "sha256-9Jx6O4yfIrbCLTEPgpoZZ+3yxhi2r0MwrbiHCUexa60=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
@ -378,6 +401,18 @@
};
meta.homepage = "https://github.com/rydesun/tree-sitter-dot";
};
dtd = buildGrammar {
language = "dtd";
version = "0.0.0+rev=9deacbf";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-xml";
rev = "9deacbfb79cb3527a0396255beb17e1bba3f2052";
hash = "sha256-3ryZXRgsBaNKBBHUhJ8ANHYunOUMzthMI7gw+6lnooQ=";
};
location = "tree-sitter-dtd";
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xml";
};
ebnf = buildGrammar {
language = "ebnf";
version = "0.0.0+rev=8e635b0";
@ -645,12 +680,12 @@
};
glsl = buildGrammar {
language = "glsl";
version = "0.0.0+rev=00ffe20";
version = "0.0.0+rev=4780c2b";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-glsl";
rev = "00ffe2099374613d2f313ace4a9dda44370b458b";
hash = "sha256-K0JSRytbV5qMP6X3rT/cmEjxdTPgT63hQpahFrUjTOU=";
rev = "4780c2b689a5a5bd0ccfd78403510e9cf4a0f2fc";
hash = "sha256-lbdQSqLtjM1AtdmlAebCH0CewYPENIQHb7oyXNuUM6U=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
};
@ -709,6 +744,17 @@
};
meta.homepage = "https://github.com/omertuc/tree-sitter-go-work";
};
gpg = buildGrammar {
language = "gpg";
version = "0.0.0+rev=c44ce76";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-gpg-config";
rev = "c44ce76960114352dd00728b835ceef02e0506b8";
hash = "sha256-EDkmwHzRwf3x5LMsnOnhj+AbYLKF3dy/t4sGxuIWnYg=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-gpg-config";
};
graphql = buildGrammar {
language = "graphql";
version = "0.0.0+rev=5e66e96";
@ -810,12 +856,12 @@
};
hlsl = buildGrammar {
language = "hlsl";
version = "0.0.0+rev=95361dd";
version = "0.0.0+rev=45e60a6";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-hlsl";
rev = "95361dde7ad4025fbec5dc4e5cdde0ea8ed64172";
hash = "sha256-zOWkB0ii0awy/P2nHd3vGEoiLpo/fswhHVvYJOwfgzg=";
rev = "45e60a69b4dac922d81474b5d6fa88b4e5387b21";
hash = "sha256-qQqgiFJAX3hT1ecvKJ6fssWvtkT8i3IdRVBt6L0coI4=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
};
@ -898,12 +944,12 @@
};
ispc = buildGrammar {
language = "ispc";
version = "0.0.0+rev=cc57a93";
version = "0.0.0+rev=9b2f9ae";
src = fetchFromGitHub {
owner = "fab4100";
repo = "tree-sitter-ispc";
rev = "cc57a931eb782474324910e19ca253aa0d5fe38a";
hash = "sha256-fWBKSLzegpf5duDEqIbz5hvEFlOZFjQdLpVxLhimSAY=";
rev = "9b2f9aec2106b94b4e099fe75e73ebd8ae707c04";
hash = "sha256-vxe+g7o0gXgB4GjhjkxqLqcLL2+8wqMB3tm1xQFSitI=";
};
meta.homepage = "https://github.com/fab4100/tree-sitter-ispc";
};
@ -920,23 +966,23 @@
};
java = buildGrammar {
language = "java";
version = "0.0.0+rev=e8d1bc4";
version = "0.0.0+rev=0b3f9cf";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-java";
rev = "e8d1bc4043c1d2326f7ce3aa7b8833c7b18d0560";
hash = "sha256-UXTEUb5OyGYRDae52fuSBOiu/6LXIk3s8mt0vl7z2Bw=";
rev = "0b3f9cfe10a973df0530533313fdbef6c2c92bfa";
hash = "sha256-dSRXjHfJOCrwm6HXlEz+prlKH7k+5B99S8vWyH49KzQ=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-java";
};
javascript = buildGrammar {
language = "javascript";
version = "0.0.0+rev=f772967";
version = "0.0.0+rev=c69aaba";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-javascript";
rev = "f772967f7b7bc7c28f845be2420a38472b16a8ee";
hash = "sha256-rfOAn5S8E2RunlRyY1aTs7j0r6UGKH+732xdpk/5524=";
rev = "c69aabab53609d00e8e198ab902e4fde4b8e449f";
hash = "sha256-6cyKT4yASueb+nNj8EqZbF7LZYZasMOYvq5ki2a0zQk=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
};
@ -997,12 +1043,12 @@
};
jsonnet = buildGrammar {
language = "jsonnet";
version = "0.0.0+rev=26d9699";
version = "0.0.0+rev=d34615f";
src = fetchFromGitHub {
owner = "sourcegraph";
repo = "tree-sitter-jsonnet";
rev = "26d9699842a429731844c93cbcb485519bb2c526";
hash = "sha256-e5K2k1DNPU/NuWN2uGwk+k3c5plNk5RN0Or6ahxD/lQ=";
rev = "d34615fa12cc1d1cfc1f1f1a80acc9db80ee4596";
hash = "sha256-jjDjntNm0YAsG6Ec2n0eB8BjpgEQEAjV8LAZ3GGYhG8=";
};
meta.homepage = "https://github.com/sourcegraph/tree-sitter-jsonnet";
};
@ -1085,12 +1131,12 @@
};
lua = buildGrammar {
language = "lua";
version = "0.0.0+rev=7268c1c";
version = "0.0.0+rev=88e4464";
src = fetchFromGitHub {
owner = "MunifTanjim";
repo = "tree-sitter-lua";
rev = "7268c1cea5df56ac0c779cd37d6631d4e6f41d4f";
hash = "sha256-GrRHbNVKijYNeICeopVW6OtHquqKhKtDDa7dK5sEMNQ=";
rev = "88e446476a1e97a8724dff7a23e2d709855077f2";
hash = "sha256-w+WVQHPiS/xyRz0obdJoUHZ7QzIDAvgtSzmE98yDORY=";
};
meta.homepage = "https://github.com/MunifTanjim/tree-sitter-lua";
};
@ -1275,12 +1321,12 @@
};
objc = buildGrammar {
language = "objc";
version = "0.0.0+rev=97e022e";
version = "0.0.0+rev=62e61b6";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-objc";
rev = "97e022ec4a908108283bad23d42eee39ad204db6";
hash = "sha256-3sp93zxliIrjp6Z1SUlFdp2rkcsFLba4SEIVdaQ4H+4=";
rev = "62e61b6f5c0289c376d61a8c91faf6435cde9012";
hash = "sha256-Q1qAUgoYfpxmhn5XpnCwLBdu2BL2YF2We9bjumR8dNk=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-objc";
};
@ -1388,12 +1434,12 @@
};
php = buildGrammar {
language = "php";
version = "0.0.0+rev=d76de26";
version = "0.0.0+rev=ce2c73a";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-php";
rev = "d76de26b8218df208949f46b31e0c422020eda3a";
hash = "sha256-s5oms776eOTkT/tD61ElHCY+pIg7LhnJ3VIyhdHoZWs=";
rev = "ce2c73a8d84b5648e8792698dc9fd955e5f6a906";
hash = "sha256-HZOIz9KiZ13aqeQtCeQln56RRRPUSgT7ulPJs54fzJc=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
};
@ -1465,12 +1511,12 @@
};
promql = buildGrammar {
language = "promql";
version = "0.0.0+rev=ed9a12f";
version = "0.0.0+rev=77625d7";
src = fetchFromGitHub {
owner = "MichaHoffmann";
repo = "tree-sitter-promql";
rev = "ed9a12f6ae4e75d4622adef8fb1b1e4d0ac0a759";
hash = "sha256-pE0cPBB6zuQ2MdjT+kPOqhbTvcOBk5M+JK3leaT7ITE=";
rev = "77625d78eebc3ffc44d114a07b2f348dff3061b0";
hash = "sha256-IJbnC03pDfcSAF//Ux+LqqfjtagGSD5Nu46yUo0vT5Q=";
};
meta.homepage = "https://github.com/MichaHoffmann/tree-sitter-promql";
};
@ -1496,6 +1542,18 @@
};
meta.homepage = "https://github.com/PRQL/tree-sitter-prql";
};
psv = buildGrammar {
language = "psv";
version = "0.0.0+rev=f1d35df";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-csv";
rev = "f1d35df780976721d3cd38f0b16538dd31f87a23";
hash = "sha256-t4uzc1VwJzS4qj0D1wolUvUNuc5OzC4L4RnLpYh+TXo=";
};
location = "psv";
meta.homepage = "https://github.com/amaanq/tree-sitter-csv";
};
pug = buildGrammar {
language = "pug";
version = "0.0.0+rev=a7ff31a";
@ -1518,14 +1576,25 @@
};
meta.homepage = "https://github.com/amaanq/tree-sitter-puppet";
};
pymanifest = buildGrammar {
language = "pymanifest";
version = "0.0.0+rev=8953f91";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-pymanifest";
rev = "8953f91d733dd92c1ac43b3d58a7a2f43fa62dae";
hash = "sha256-1kG09tYE9FAxsE4MqLadi4dtqtJOFOZGOOVgnqvWc44=";
};
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pymanifest";
};
python = buildGrammar {
language = "python";
version = "0.0.0+rev=5af00f6";
version = "0.0.0+rev=c01fb4e";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-python";
rev = "5af00f64af6bbf822f208243cce5cf75396fb6f5";
hash = "sha256-2btd/NRE6NuGNlx4cq535OrwtWXihiP3VMCJjPCiDOk=";
rev = "c01fb4e38587e959b9058b8cd34b9e6a3068c827";
hash = "sha256-cV/QwvEQkIQcgo0Pm+3pUH2LhpYOPsuWMgjXMa8dv+s=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-python";
};
@ -1652,12 +1721,12 @@
};
robot = buildGrammar {
language = "robot";
version = "0.0.0+rev=5e50f25";
version = "0.0.0+rev=322e4cc";
src = fetchFromGitHub {
owner = "Hubro";
repo = "tree-sitter-robot";
rev = "5e50f2517580290cd1b9689664815e3b09d986b8";
hash = "sha256-5mWRCd9JcTGTuODltbuz7htW/fYjlBTS9HzxrFRj12w=";
rev = "322e4cc65754d2b3fdef4f2f8a71e0762e3d13af";
hash = "sha256-VxWZWFPYkD3odM3TpEgLKsFnN8wB6xoIiXUYqBbpDqw=";
};
meta.homepage = "https://github.com/Hubro/tree-sitter-robot";
};
@ -1707,12 +1776,12 @@
};
scala = buildGrammar {
language = "scala";
version = "0.0.0+rev=f14629b";
version = "0.0.0+rev=3a67773";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter-scala";
rev = "f14629b4d53f72356ce8f6d4ac8c54d21b4e74dd";
hash = "sha256-SRj4iF1qS2jEFaIkRfXzAmzG7jKeSzKv5/GdXKbKRjU=";
rev = "3a67773e205eb43c993cc5d43f633ddb79eb1653";
hash = "sha256-S5vXtvdpQMh8Beacpm07zRaHoJCa+ZiH2j5IB6idOng=";
};
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
};
@ -1829,12 +1898,12 @@
};
starlark = buildGrammar {
language = "starlark";
version = "0.0.0+rev=504ddd7";
version = "0.0.0+rev=c45ce2b";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-starlark";
rev = "504ddd75ecc78fbbce22aa6facd70375d3f8854a";
hash = "sha256-ourTH45q4X0CxDAVGhwK5XgeWNhS4SRtc4qyUF+H+RQ=";
rev = "c45ce2b39062bbd12ea1c210bd200db250efb24a";
hash = "sha256-rEOvGrXRguIXQNvXdm+s80xRQ+8iCCdafA2Wl+dsHJo=";
};
meta.homepage = "https://github.com/amaanq/tree-sitter-starlark";
};
@ -2006,6 +2075,18 @@
};
meta.homepage = "https://github.com/ikatyang/tree-sitter-toml";
};
tsv = buildGrammar {
language = "tsv";
version = "0.0.0+rev=f1d35df";
src = fetchFromGitHub {
owner = "amaanq";
repo = "tree-sitter-csv";
rev = "f1d35df780976721d3cd38f0b16538dd31f87a23";
hash = "sha256-t4uzc1VwJzS4qj0D1wolUvUNuc5OzC4L4RnLpYh+TXo=";
};
location = "tsv";
meta.homepage = "https://github.com/amaanq/tree-sitter-csv";
};
tsx = buildGrammar {
language = "tsx";
version = "0.0.0+rev=b1bf482";
@ -2187,17 +2268,29 @@
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=9399564";
version = "0.0.0+rev=f30b02c";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "9399564d1e32864c6af2d49c0dcd1f76d54443f2";
hash = "sha256-Me+AhVl0a38w54vWa4yvxOPHMwVnJw1wewrn0bBC9AM=";
rev = "f30b02c4bf363b797de39ae63375a4f357718ae9";
hash = "sha256-562MgzH/hGvCBctNj34jXrsmwHXJt4Hxb2lsZ/IeN74=";
};
location = "libs/tree-sitter-wing";
generate = true;
meta.homepage = "https://github.com/winglang/wing";
};
xml = buildGrammar {
language = "xml";
version = "0.0.0+rev=9deacbf";
src = fetchFromGitHub {
owner = "ObserverOfTime";
repo = "tree-sitter-xml";
rev = "9deacbfb79cb3527a0396255beb17e1bba3f2052";
hash = "sha256-3ryZXRgsBaNKBBHUhJ8ANHYunOUMzthMI7gw+6lnooQ=";
};
location = "tree-sitter-xml";
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-xml";
};
yaml = buildGrammar {
language = "yaml";
version = "0.0.0+rev=0e36bed";

View File

@ -966,7 +966,7 @@ self: super: {
pname = "sg-nvim-rust";
inherit (old) version src;
cargoHash = "sha256-cMMNur6QKp87Q28JyCH2IMLE3xDVd7Irg9HvJ2AsnZc=";
cargoHash = "sha256-f14cGAGZFs4DG8FBKYDz1NY38TOuENW9Co2fywGc74E=";
nativeBuildInputs = [ pkg-config ];

View File

@ -257,6 +257,7 @@ https://github.com/edgedb/edgedb-vim/,,
https://github.com/folke/edgy.nvim/,HEAD,
https://github.com/editorconfig/editorconfig-vim/,,
https://github.com/gpanders/editorconfig.nvim/,,
https://github.com/creativenull/efmls-configs-nvim/,,
https://github.com/elixir-tools/elixir-tools.nvim/,HEAD,
https://github.com/elmcast/elm-vim/,,
https://github.com/dmix/elvish.vim/,,
@ -265,7 +266,6 @@ https://github.com/vim-scripts/emodeline/,,
https://github.com/vim-scripts/errormarker.vim/,,
https://github.com/sainnhe/everforest/,,
https://github.com/google/executor.nvim/,HEAD,
https://github.com/nvchad/extensions/,HEAD,nvchad-extensions
https://github.com/jinh0/eyeliner.nvim/,HEAD,
https://github.com/fenetikm/falcon/,,
https://github.com/brooth/far.vim/,,

View File

@ -111,9 +111,6 @@ let
# The credentials should be stored in a secure keychain already, so the benefit of this is questionable
# in the first place.
rm -rf $out/lib/vscode/resources/app/node_modules/vscode-encrypt
# Unbundle libglvnd as VSCode doesn't include libGLESv2.so.2 which is necessary for GPU acceleration
rm -rf $out/lib/vscode/libGLESv2.so
'') + ''
runHook postInstall
'';
@ -122,7 +119,6 @@ let
gappsWrapperArgs+=(
# Add gio to PATH so that moving files to the trash works when not using a desktop environment
--prefix PATH : ${glib.bin}/bin
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libglvnd ]}
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
--add-flags ${lib.escapeShellArg commandLineArgs}
)
@ -157,6 +153,10 @@ let
chmod +x ${vscodeRipgrep}
'');
postFixup = lib.optionalString stdenv.isLinux ''
patchelf --add-needed ${libglvnd}/lib/libGLESv2.so.2 $out/lib/vscode/${executableName}
'';
inherit meta;
};

View File

@ -28,11 +28,11 @@ let
in
stdenv.mkDerivation rec {
pname = "blender";
version = "3.6.0";
version = "3.6.2";
src = fetchurl {
url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
hash = "sha256-SzdWyzdGhsaesv1VX5ZUfUnLHvRvW8buJTlOVxz6yOk=";
hash = "sha256-olEmcOM3VKo/IWOhQp/qOkdJvwzM7bCkf8i8Bzh07Eg=";
};
patches = [

View File

@ -32,11 +32,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "calibre";
version = "6.24.0";
version = "6.25.0";
src = fetchurl {
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
hash = "sha256-SG6st8RRN2hGFQa1XB93fbklTNta5uJXGSeY+F7CSPY=";
hash = "sha256-4ghB2RUImh8AsMGsBCsVeKXgyV+llCLNy24/2LNJwv0=";
};
# https://sources.debian.org/patches/calibre/${finalAttrs.version}+dfsg-1

View File

@ -1,79 +0,0 @@
{ stdenv
, autoPatchelfHook
, curl
, dpkg
, fetchurl
, gcc
, lib
, libGLU
, libcork
, makeDesktopItem
, qt5
, quazip
, zlib
}:
stdenv.mkDerivation rec {
pname = "ideamaker";
version = "4.0.1";
src = fetchurl {
# N.B. Unfortunately ideamaker adds a number after the patch number in
# their release scheme which is not referenced anywhere other than in
# the download URL. Because of this, I have chosen to not use ${version}
# and just handwrite the correct values in the following URL, hopefully
# avoiding surprises for the next person that comes to update this
# package.
url = "https://download.raise3d.com/ideamaker/release/4.0.1/ideaMaker_4.0.1.4802-ubuntu_amd64.deb";
sha256 = "0a1jcakdglcr4kz0kyq692dbjk6aq2yqcp3i6gzni91k791h49hp";
};
nativeBuildInputs = [ autoPatchelfHook dpkg qt5.wrapQtAppsHook ];
buildInputs = [
curl
gcc.cc.lib
libGLU
libcork
qt5.qtbase
qt5.qtserialport
quazip
zlib
];
unpackPhase = ''
runHook preUnpack
dpkg-deb -x $src .
runHook postUnpack
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/pixmaps}
cp usr/lib/x86_64-linux-gnu/ideamaker/ideamaker $out/bin
ln -s "${desktopItem}/share/applications" $out/share/
cp usr/share/ideamaker/icons/ideamaker-icon.png $out/share/pixmaps/${pname}.png
runHook postInstall
'';
desktopItem = makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
desktopName = "Ideamaker";
genericName = meta.description;
categories = [ "Utility" "Viewer" "Engineering" ];
mimeTypes = [ "application/sla" ];
};
meta = with lib; {
homepage = "https://www.raise3d.com/ideamaker/";
description = "Raise3D's 3D slicer software";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ lovesegfault ];
broken = true; # Segfaults on startup.
};
}

View File

@ -1,7 +1,23 @@
{ lib, mkDerivation, fetchFromGitHub, pkg-config
, qmake, qttools, kirigami2, qtquickcontrols2, qtlocation
, libosmscout, valhalla, libpostal, osrm-backend, protobuf
, libmicrohttpd, sqlite, marisa, kyotocabinet, boost
{ lib
, mkDerivation
, fetchFromGitHub
, fetchpatch
, pkg-config
, qmake
, qttools
, boost
, kirigami2
, kyotocabinet
, libmicrohttpd
, libosmscout
, libpostal
, marisa
, osrm-backend
, protobuf
, qtquickcontrols2
, qtlocation
, sqlite
, valhalla
}:
let
@ -31,6 +47,19 @@ mkDerivation rec {
libpostal sqlite marisa kyotocabinet boost protobuf date
];
patches = [
# Valhalla 3.2.1 support. Only required for next patch to apply cleanly
(fetchpatch {
url = "https://github.com/rinigus/osmscout-server/commit/1df9d383e61dd14cbe9e5b52412a2e951cee2ee4.patch";
hash = "sha256-h+YTyHr4RYgwH5bfVgyujSekbL2LfV8vJgVkjXT0I10=";
})
# Valhalla 3.4.0 support
(fetchpatch {
url = "https://github.com/rinigus/osmscout-server/commit/fe6562a4c3ba5da2735232ea8fdc7f71d7e7e714.patch";
hash = "sha256-wibLTFk3cFS5mcC71TgMA9ZAAHS3mbjboFHqax6nCxs=";
})
];
qmakeFlags = [
"SCOUT_FLAVOR=kirigami" # Choose to build the kirigami UI variant
"CONFIG+=disable_mapnik" # Disable the optional mapnik backend

View File

@ -30,11 +30,11 @@
firefox-beta = buildMozillaMach rec {
pname = "firefox-beta";
version = "117.0b5";
version = "117.0b9";
applicationName = "Mozilla Firefox Beta";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "8cb7a96a996b5d3b4e119b4b6317eb7015f9e3d96a3c6a301effe4e5cdaf1c8295a68e57cd919b42a1bef8717ae6764edcbedd4399ca89e14e5f212b144125c1";
sha512 = "95e215f4280e177c3f763c6a8ab7ff56d6e0ca4aca2ac5eec8a3be7a461257e3aba236f3d122200e031d8e75ae2486779fb89d398defeefdb52589cb98a131b4";
};
meta = {
@ -58,12 +58,12 @@
firefox-devedition = (buildMozillaMach rec {
pname = "firefox-devedition";
version = "117.0b5";
version = "117.0b9";
applicationName = "Mozilla Firefox Developer Edition";
branding = "browser/branding/aurora";
src = fetchurl {
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "16f2fc0ac5d3cd76659b33b319a39367d5e37d7c2f5246f2f76a57b1455ab16af83872ec4fb74a30e127b744a06d8dc5c99a531d3bf2ff4c6465d1d5e2fcd126";
sha512 = "ab034e31467a7c9a57f5c32d486fb69a250d4293513babeeea8ff2042b0eac858be2c46c69469c700a7271f46a0c297ecdaa5ff651434adc8f9c157f80a97e43";
};
meta = {

View File

@ -10,14 +10,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "calc";
version = "2.14.1.6";
version = "2.14.3.5";
src = fetchurl {
urls = [
"https://github.com/lcn2/calc/releases/download/v${finalAttrs.version}/calc-${finalAttrs.version}.tar.bz2"
"http://www.isthe.com/chongo/src/calc/calc-${finalAttrs.version}.tar.bz2"
];
hash = "sha256-zlmzCCltGB3ipgWBF9vu2szmAZguPDiR2K3xdTnWf0A=";
hash = "sha256-4eXs6NDfsJO5Vr9Mo2jC16hTRAyt++1s+Z/JrWDKwUk=";
};
postPatch = ''

View File

@ -1,27 +0,0 @@
{ mkDerivation, cmake, fetchFromGitHub, libvncserver, qemu, qtbase, lib
}:
mkDerivation rec {
pname = "aqemu";
version = "0.9.2";
src = fetchFromGitHub {
owner = "tobimensch";
repo = "aqemu";
rev = "v${version}";
sha256 = "1h1mcw8x0jir5p39bs8ka0lcisiyi4jq61fsccgb9hsvl1i8fvk5";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libvncserver qtbase qemu ];
meta = with lib; {
description = "A virtual machine manager GUI for qemu";
homepage = "https://github.com/tobimensch/aqemu";
license = licenses.gpl2;
maintainers = with maintainers; [ hrdinka ];
platforms = with platforms; linux;
broken = true;
};
}

View File

@ -197,7 +197,7 @@ stdenv.mkDerivation {
# Binutils, and Apple's "cctools"; "bintools" as an attempt to find an
# unused middle-ground name that evokes both.
inherit bintools;
inherit cc libc nativeTools nativeLibc nativePrefix isGNU isClang;
inherit cc libc libcxx nativeTools nativeLibc nativePrefix isGNU isClang;
emacsBufferSetup = pkgs: ''
; We should handle propagation here too

View File

@ -11,7 +11,7 @@ let
(builtins.attrNames (builtins.removeAttrs variantHashes [ "iosevka" ]));
in stdenv.mkDerivation rec {
pname = "${name}-bin";
version = "26.0.2";
version = "26.1.0";
src = fetchurl {
url = "https://github.com/be5invis/Iosevka/releases/download/v${version}/ttc-${name}-${version}.zip";

View File

@ -1,95 +1,95 @@
# This file was autogenerated. DO NOT EDIT!
{
iosevka = "1mlicv98ih9kjd0rnr7kzxzyy96d2vgajlgk4gh3hyn390wkcz78";
iosevka-aile = "0qy84wiqkazja6bs9r763zk3xp12183ijz9gqf0v0xj74qymrwax";
iosevka-curly = "1lrh0666vr10n7n924w36qa5bh0w7rqrf3irx0fmwzgsk24zn8d1";
iosevka-curly-slab = "15zz7czs5rf5y6c5mr7i5ds69f9kqdwyzsivy5i3qi4iz1jakf29";
iosevka-etoile = "16kpki6xvdhjlz7v2gdfyjvv4apby68b66913igd5d8zjd85k47n";
iosevka-slab = "0gcv3198802h1kzy2m90hb3kj3p4y50bld7j1gprif3d8mp6an9r";
iosevka-ss01 = "09if5d5g4kwlfn5s9hyyrpd1g9fjm2wxj6kbq1s9x28wq7n6xgz8";
iosevka-ss02 = "1a4978p6j1fp68qfh0baykg47gssz68bcjkhwn1sb2i99fr37qng";
iosevka-ss03 = "0gfg97jf1s2zkc0grlg15bzzxn1z9l8g0x7pg58igr1i2d4x2gvb";
iosevka-ss04 = "0clhiydpqs146zv8flqa185b0rgfrj2ifls5fzlvpnba2q223wz3";
iosevka-ss05 = "0gxvb19awcj6f41196r1q3ghgm87y0y9j9sfi533f5ny7088mliz";
iosevka-ss06 = "14v4962qqbxy5r5kyzq372ckqhzx6l0kmc3xpqxf9fpvfjk89a2y";
iosevka-ss07 = "0n2ykrjrfixyildpmi4i1hpj9bsckskgkk3zd3acm2fmpxljvc9n";
iosevka-ss08 = "0p9wm3ydvqi0hvayg3mh7841k8rjl2j59qf5m3q4vz8bpbyn80g4";
iosevka-ss09 = "1z43l6dlxhh0qrnwd1l93dm5xdvw2jfdsp7fi754r9jc1c3pyamz";
iosevka-ss10 = "19nrvx6j9kxxvql6c88rnq6vnnacd0k6lgxg70306zdd7j6g2g1f";
iosevka-ss11 = "0jp65j6wqinwmkb412bzjxpb4py6z0kvmm68psgdcl0962w1j806";
iosevka-ss12 = "01azishdfz1k202ss1vdz1vl88qn0vsfh9kx53mzin83nqfnqym0";
iosevka-ss13 = "1w7syx42y6i6xkxhylc4ybr95ffs9dqhllziyv7dv8p9k1sq9b5v";
iosevka-ss14 = "1mplavdlqqclsyjbsh91c8bmbhm0cli6y10f3p6rxjjy16536y24";
iosevka-ss15 = "1j6f566l0ppynqvfiq68rb5facmapwj1wbp37xpnswhbh5jilc2h";
iosevka-ss16 = "1xxg98mx7m9slm4a1zyrl8lp6n12gbgz79vwd21lanq6bw3l0ki3";
iosevka-ss17 = "05bvcw7zpisfpagy54fy2985kscp4466q1fvxn28wb1sw0m6gnvy";
iosevka-ss18 = "19lg2xlz3pjcprmni8mc57z9kh28qxap4d94102qzpqb4krfhj07";
sgr-iosevka = "0gj6cq0adj0ph85ml205n8wqjimkaqm4yqxgfg02ddk2h3ss97g3";
sgr-iosevka-aile = "1vsxdqrxy5qgqry3zskbqpimb3l9950j9yws9zb0jga3v77blwy1";
sgr-iosevka-curly = "0dwl6s0pnr4xhl3pgphh3jddz80b9gwcais8fn56hc7x0dkni585";
sgr-iosevka-curly-slab = "1fxr7d7rhpm07db5r3qc5bmks05dr9pa2yzk4h3i4zvkpw7gzwd7";
sgr-iosevka-etoile = "0dwjywirg5b4ia93kg6cdbyjhk5n171yjb0x2sq6npfq0ywzn8fk";
sgr-iosevka-fixed = "0fa9s91p64w3z2pkypy7p5a7srha75c0vi4n4cy8qm2lbx7pgvkh";
sgr-iosevka-fixed-curly = "0sdxnsbhsr7kl6f8sb701hcadg1dlq2adkmd9ljg9x8kf8qyjbk4";
sgr-iosevka-fixed-curly-slab = "0xc7qxbcxdwnr0nl48mxxmjm7i66rksp7pka522i764yagv2gaf7";
sgr-iosevka-fixed-slab = "1fxv28gi3bdihckznsqna5r5d3yzkfqgnidcngb4v9wmvvzxdbjv";
sgr-iosevka-fixed-ss01 = "0gynmpnrsj757r9kcznx41lsfpji30xc0c8y3gd8i2zbjps0akrz";
sgr-iosevka-fixed-ss02 = "10kplc1xwg5r11j526ax2vjkyqfabxhfa2azzj1hy4cmqqzjxqzg";
sgr-iosevka-fixed-ss03 = "0hg1wcnaxcf6xd21xsf6bhm6w0ksj7fl3k6q7nj3j348pfzxw4xj";
sgr-iosevka-fixed-ss04 = "0j7lcrda9n865r1vyrx9qc89wnxc6lf3xly28bk856cjf6z84q5d";
sgr-iosevka-fixed-ss05 = "0w0cfl8bqcbgw8q6rf0vwngcx7x6z2shk4cysk70nkkmhc584r4r";
sgr-iosevka-fixed-ss06 = "0kkhc8w52dgp0skb4sbr5z3i9s0rdhmmx88qs27j3wdlwryk8m08";
sgr-iosevka-fixed-ss07 = "1pf70s6cg4ppah985sn0rl7ri5y0xs9y1svcf5a57bp84wc0h8dl";
sgr-iosevka-fixed-ss08 = "13iannimij20igm71725l22wqfaq5w6c1m2vjz5hmcxrh7nmfsn5";
sgr-iosevka-fixed-ss09 = "1nb8xgn95x07jxxxfy39rwlkpb8w20qxnaz15l4kzxfjlwwwgcwl";
sgr-iosevka-fixed-ss10 = "0dbbchg8lmkpjqw8yn052qpmk00vb1bwcar7nwlhr93vy4z8y72h";
sgr-iosevka-fixed-ss11 = "1ljkr3ld4zv7f33xy5xx5wzrypzxzkpwv01cmc5w349dwbza9fpc";
sgr-iosevka-fixed-ss12 = "11wvz3g45l589nnljawp9avz80jbv64df6i0mhgb3ln8n7mx7y7g";
sgr-iosevka-fixed-ss13 = "1qb9xspdcadsmvb5ghi555bkj1x8iv0dw00yvxs4mzw7rgq47rrb";
sgr-iosevka-fixed-ss14 = "17xig4lm02xg8r19pfn5lc45qbc7j4h1q79lcp5w4ym83wmfcsq6";
sgr-iosevka-fixed-ss15 = "0ivy6d8xmm3yl0n2zy58z9jbkbwv5wagdnk70vszp1ln9vsgbnfn";
sgr-iosevka-fixed-ss16 = "1jbr1cf0wmqg164z0i16rgn0qjpll9qyw5ch5p225a25pfkk4sbv";
sgr-iosevka-fixed-ss17 = "1zz3drhw9k3ckn2x460v4m033j7shjy082d3hhwkadfwgpy7cbny";
sgr-iosevka-fixed-ss18 = "0qvm24y2c248rwhcyy7fv1930dnsbs1sa23q5w94g7xw94pigq4z";
sgr-iosevka-slab = "1ln6kx0cn2f9lz0jiz2qq3bb3vkxzpcw2jn52wxpq3pa55fmh9xw";
sgr-iosevka-ss01 = "1vimfq19c0hf3vysi6agyplnshzbkg3hprslrlrcqv6pafhc0j4m";
sgr-iosevka-ss02 = "1l4wfi2s47pxsdhlif7h9rgdqmj8dxswbpmrwghad1vpi09s9q33";
sgr-iosevka-ss03 = "078vckd5hsmvnpyh54yzab7pbxlsqrr0h4phyhnpzsmqgg483kwm";
sgr-iosevka-ss04 = "01z2f6qddl6d5k8k9v6xpry6wihr9w8b7chy1n8zvli52p5mbww7";
sgr-iosevka-ss05 = "0bvjr0nh1j8wb2xs91z32vxxzwhkjwbpkpz8l8mwf1a0hlaqpbar";
sgr-iosevka-ss06 = "1lpnvjdw6qzs5l473fwx4vk2xxwxkbfw4rfkvml3i60rs655nmy6";
sgr-iosevka-ss07 = "01jbma445cyr6acic4qafjkxfl9q7bbn0ngvx7s5bxmc6xv3hnaf";
sgr-iosevka-ss08 = "1vxlc5m4pwydy9zcam47494vx52c7h0nfp6f7z4iqpfshv0nnyp6";
sgr-iosevka-ss09 = "0w5qfwpxagls74s0b98grd9in4m947fmrw6nn215zhp0zj2mfwi6";
sgr-iosevka-ss10 = "1fwbyis93kdjc62vp701rr6vpfw2an1xznpnm0aifafnz6rl5zfg";
sgr-iosevka-ss11 = "081gj3b1b669vc38l6gpwagk7afd7338d04jqprx5savz9a9nfs7";
sgr-iosevka-ss12 = "09hc5vnvkymlrirjy3rszxb64n55c7a359vs5lfgcsmrf08z35xw";
sgr-iosevka-ss13 = "0qzzs4rgny8habxxrjqqnfigh6pcx15hcgi9z29crs5sskmcsp2s";
sgr-iosevka-ss14 = "004rcv0g0916c7vrkb796zck9sywhsdrd5z1kx1v8v9gyxlgv46z";
sgr-iosevka-ss15 = "1yn6alx6ppgrgfzhmgsiwmw7rrvj7ad7yss5yqwbas6k9n70j5ki";
sgr-iosevka-ss16 = "06h59vvl0vcrb5r24y22cwhdmcpi0wn92daz3ak739x52qnc9dll";
sgr-iosevka-ss17 = "0c8s66lb7mp0zya12mcxdfy05jhwwi78fwm35lnk1xkarbzrdwq8";
sgr-iosevka-ss18 = "00k036viav27far3jbmh7zpawccnmg9qh93v5d6wz6b7l2h7mwam";
sgr-iosevka-term = "16bwjvamhaq7bcl2dkvv79asn68bdzqkii7q1h5sc3jvzhd0v6sz";
sgr-iosevka-term-curly = "0scrz4yfs7v26vyjcd35p2jgbqj4phasr6yswc0xlc7l19x9z91v";
sgr-iosevka-term-curly-slab = "0551npqdascnn4crd9drkfx8mw4gfjqrvn2112diqn5q4rlpgyrn";
sgr-iosevka-term-slab = "0gjr5lw1aj4vskv5kkbgahfhn7aqh4qdlnv9560c2laaxfs62zdh";
sgr-iosevka-term-ss01 = "08gh7rsyj1pl444g5crfm2rjnxk9kqqd6svvzqalaq5j3pgdk7mb";
sgr-iosevka-term-ss02 = "1x4swlfrjazkxbryb1rswjg9wiqjypdyzwvab1875g0ian6zl293";
sgr-iosevka-term-ss03 = "1cp2z0spb0q9n7xi370hvz2lw7rrwly6cicww0k8x6mzd67n7jyr";
sgr-iosevka-term-ss04 = "1z7njiz4j98liqg9d4mp6f9zlw7r1kqwl41lhh1r9vb8nx8b64xi";
sgr-iosevka-term-ss05 = "0nwfhrm22wl402j3nzff7zb9v7w9fgg5njivhm3r23lllh368ga9";
sgr-iosevka-term-ss06 = "1j56gpp7680f2kq0d28nz9nfcz6hq08vq613f0d3c8vln6pmk082";
sgr-iosevka-term-ss07 = "1wsi14f6lkkvvvf4cwzdc6six821r2izdgwa7yd96fdk4l3jc357";
sgr-iosevka-term-ss08 = "0w4hb53dyr9mwrxghr62gc36s8sqbrfhw4088zar9jz5w8clsrr6";
sgr-iosevka-term-ss09 = "0ym37rrfi23rbshnv8hi9acx7gf4zs70m6pr2gy556w8bb95dw66";
sgr-iosevka-term-ss10 = "093ca1i94dk16zvbxnw41g80krfmi946gwvzbfw8a9nmx5krcvx6";
sgr-iosevka-term-ss11 = "03s2wiwlx6k676jqidgc78rpxm1c4dc194k2lk5704jxvysv5i3x";
sgr-iosevka-term-ss12 = "1wq4i66zxwgc7n2zqwc2x05fmxpg6yqm9f0ll9balih1al0qvwb6";
sgr-iosevka-term-ss13 = "169fwn82lippqs9rnil0mibn25mzkmxm6rgnhs61lp4z7srqd5h9";
sgr-iosevka-term-ss14 = "05mw5hav1xin4xycbfdjpw4j62ixckkd6bw0nl5dnq3ji33v0skg";
sgr-iosevka-term-ss15 = "1mpmkvsk8y1a8i4c2dwqglxm46rgkqmd2y68wyik0asa8vrfflv6";
sgr-iosevka-term-ss16 = "051hxw063d29m59971zbcsfj26ch0sk1cxv503xm86ilblmj54dj";
sgr-iosevka-term-ss17 = "0mlp1kbn298w0mwfyfbmzkfwbf7cibchb3f0l8mk833lvxjxxiaz";
sgr-iosevka-term-ss18 = "0v5j17y5hpg56h2kdz1469k56358k7g0wqxl4nd1ib3j0y7jndsc";
iosevka = "0698fzf03nss7wkaa0i3kp8f5f1gjbsknz18px616g7c3bgss582";
iosevka-aile = "1vaiznxyil5a4gc2hy1k1164fn15rk3814lwf5av830323rc7and";
iosevka-curly = "1rnyxbz62v34hbnaj3r74pl1ahk539b7bh0x175lv9j0fwrm73is";
iosevka-curly-slab = "1gcmzsh35ayb3bmrkcdpxii3l8r7qg0yvxjy37y2hp544f2drnkp";
iosevka-etoile = "0v3y8cr0w2q1xa4nmwmrh5rcxcfjj38rq6gwqsbvs2rlxls50yi4";
iosevka-slab = "179fydcaf72z01i9d54m7biq6i472rl84nsxghbmgrzghyblxck6";
iosevka-ss01 = "18b9cd95q2rnbm762mcfqqcqkffmw895khmsxqsd1dmkb9gj509w";
iosevka-ss02 = "1gg06d76yl2lv6lpcd9vszqf2yb3rz2w032ih9rjid1wcxccnn62";
iosevka-ss03 = "0hqwrqzvikb2xkgmn4zff8jw1czvm6zawf37hz2hnwnx0ffgzhz0";
iosevka-ss04 = "1gq79pfhwrag686r8symivn54pwcnnp5rxwyfswfyq72x6xxq0ri";
iosevka-ss05 = "1di9v2ka7v8l7gglv29zfrp3p7aznqnkwkzdn6pqz91p7y0kd1ck";
iosevka-ss06 = "0m7gazz4cq544qyv37mg08j0b1jv7vf1af17snxypzg6gi3l9l79";
iosevka-ss07 = "1nlxbraigk6wz46jr47zs3drsv87f4rviscfi6pa2x70fqfvxcvd";
iosevka-ss08 = "1ch3c27nzhnnn87jsl5rpl8cpnqdn8zsh2hfch0nkh8y8s6hc6jk";
iosevka-ss09 = "0gk0lm2212whr73ydjj0wdmjrvzp5mcawg7c035cyzfj4r35mh7l";
iosevka-ss10 = "0d7988z1zsqavd5j2vphkcyy98cfc7bam2bbh62qr99k7321y9dh";
iosevka-ss11 = "0a89wmn5f1a97rvl2fa7slqw95mx1a95i5jjrbdslwifycrbv0j8";
iosevka-ss12 = "065l9bnhjcracyz73y57mv9bxhxlakvgy2xjwmrayg9a8mnqdl40";
iosevka-ss13 = "15miz16fsrl21y2c63gvkngbm7v99s5w9wzcb6x2pl3whfwdm5hh";
iosevka-ss14 = "1sbm3m61m4k1wz588axm1w94869fxh0y06gldwivnz460cads42j";
iosevka-ss15 = "0w8xm6vv8k95rw5q81d2nw34hllbjlixfqwvrjyj0gpxxw8kkcgy";
iosevka-ss16 = "1y64daxpbjwjsakkya9j1x9inn7kq1dpy0y1mldig2dd7i5f49rd";
iosevka-ss17 = "1pads0rraq6dxgbra6ss5ilxil988ypcwgfiild9pzb8y5ljgvqr";
iosevka-ss18 = "0vf7nvawm9yaip2nvsxc56br1v5q7dqk39i9c813ff5bakwkskiw";
sgr-iosevka = "08wrm2ynkw95n7762ay2iak15bj15j0v60pw6p29s5q2fli3cdlj";
sgr-iosevka-aile = "117fz5a2p9q1mw6221b04xq4x16lnp6p54vm53jz01pd5s0yg7zn";
sgr-iosevka-curly = "1lmp69ppzc7vzi11zlk2y2wg74m19w0jwq482ax024bgm939fxvr";
sgr-iosevka-curly-slab = "00gi8i7rq14s1yaz37x2vnxrg78rj1mxfxcii1q1bdmzpnxzvlsh";
sgr-iosevka-etoile = "1hw7xfhb666k5n3ay17b33lg09cvsq9wibbgy2x1mmxv1dwxswi8";
sgr-iosevka-fixed = "069j0q2g8qdg7akycxsclgxknifg26xd392wcfvm9hwj4j3yscw0";
sgr-iosevka-fixed-curly = "1f3gfvkpng044s40pvhw8xmrbdayphav7jnbif3y87ipb2vkah02";
sgr-iosevka-fixed-curly-slab = "1zpwqmhck2ym4nh2d4rixqyg7n1jq7xnrqndnjs24nkzk41kg793";
sgr-iosevka-fixed-slab = "0bvnp6szadwwyn2l8hms6wfv2pvncb67y4gw9xnwz3xzfwin53bn";
sgr-iosevka-fixed-ss01 = "1v8xnyfvq9gjk7xxk465iam2mjb13rj1yibiacp26cn7pz29rdqi";
sgr-iosevka-fixed-ss02 = "0ygy6124896cacpqgnpckxw5h9qj8z61drmkcrwk55qjs2gnzgky";
sgr-iosevka-fixed-ss03 = "07z7wqg9hgf47aqlb2rqbww9nvr8yhvsaibjmab4xp0c9spibgc9";
sgr-iosevka-fixed-ss04 = "1chfswa79zbw1p47dqlh176aq7vrvyziflzm4w30ribk86p6z17d";
sgr-iosevka-fixed-ss05 = "0nqqffadk65six8xa6gy3as7ir84lb2gs3bii75iwzy84xiw4ky3";
sgr-iosevka-fixed-ss06 = "1996bmsvjs4x35wx98qb7qp998gj1w718kp7rpalls7460796lb8";
sgr-iosevka-fixed-ss07 = "0bmrfw0kwdar7ah7pwdf5i7lzgrxfqjwzw8962n801znngccy90d";
sgr-iosevka-fixed-ss08 = "03l0gzrivsy8jrdyvyhl5cv6ndk85p9lxfpzkjbhf29dxbd2wg5q";
sgr-iosevka-fixed-ss09 = "0dmg5nr23kx3b8cqiha8a8hhq7dysk4s8zwg8c2xwymm39sh77bg";
sgr-iosevka-fixed-ss10 = "0kg4bbn9r500fwirr9glwyd26hwyzlplhxmjbzbkqwa39zwl6h1a";
sgr-iosevka-fixed-ss11 = "1my2kf7hvara3xv1x5qq8vvr6ywq7w17b0phy63mbn6qc4k179xl";
sgr-iosevka-fixed-ss12 = "0g9xkp0l2wadxni5ax0ir2qh7cp4924xa57k33lk25i8pgc4bban";
sgr-iosevka-fixed-ss13 = "0jhvfffh6i8g817z594dg7igawxfbwn3dv11xhh2rac9njxyiz3m";
sgr-iosevka-fixed-ss14 = "1c1sxyzdipr025zkabxsy5m2aplnpj1sv62bp54w86xaddj3386i";
sgr-iosevka-fixed-ss15 = "14a89q4gys44bng51nbnl6z5dhzddx8pnwl4l3l2qkjlqja1f4jr";
sgr-iosevka-fixed-ss16 = "04r4aljb9ikd3i4pxniyrlybx29l6v52q80kcg59ymaa20gaqadr";
sgr-iosevka-fixed-ss17 = "1ia45a47n5gxrfin48xyfgz0r7nkj66hz27vl4lkzvscv75igqmp";
sgr-iosevka-fixed-ss18 = "0mbz6d8w9ija55nh7vdp24hi6i5fs0d5bfm3580yx1a2iphrkwbr";
sgr-iosevka-slab = "1xnz4jhxap7lmvxqrngsvsmafdi026v3rzrmya28f3iwq37d6kf8";
sgr-iosevka-ss01 = "1vwm199q642d90l52k3jvaz9acqq7i6wk8bpnfq94xl1d8z2jl4g";
sgr-iosevka-ss02 = "0l6igwh9g0y9x8lwyvdn6x6qakv8gvlswi3148ghwp0d8hxwy79v";
sgr-iosevka-ss03 = "1a8vfdzcq2dikv48ccl3smn0kw2w88ddgwi3hr68x8jp84rpjg6c";
sgr-iosevka-ss04 = "19gj3wpqzhhnnmrmyz4jpnz0db397bx433agy0hmyjnk50vdbw5w";
sgr-iosevka-ss05 = "0wg2fr10bwmmm1bhjrwadfrvzvbwcayjfg49791x9gzkdvxmc1y9";
sgr-iosevka-ss06 = "1jkcl6ngkdkr9v2x6lsslxfqbn9kn9zmw504ihfl4dii84rk8l83";
sgr-iosevka-ss07 = "093bhgh1lvabf3xmh8flsy1daabmq1hq4j1czhbqcairzjlk30i2";
sgr-iosevka-ss08 = "1a9l4jlndsf6bdy7cy0c1x23cdms3aw0gq43k9nv2k19fn5mklmc";
sgr-iosevka-ss09 = "0bcr8mrb958470ilbla9xpmlgf03g0x4rfzz72lr2aln8rja5sdi";
sgr-iosevka-ss10 = "0lnj2v6hng13wmbf55kar8yzj6c11adkh2x1j6s3nfz18gbaa4yg";
sgr-iosevka-ss11 = "111nbmwrvxd4yzjnbv0vp7hlgbif4zycbiw4ll8zqnibqf3zynb6";
sgr-iosevka-ss12 = "1n8jy9haqd9xg14szl0k2fbxxydkkb2z5lighsh569qjcjh17vyw";
sgr-iosevka-ss13 = "1kdq1xwwvcf8gi3122sg211dgijk0q72zxbpxk1cj3f2cimbi87h";
sgr-iosevka-ss14 = "1i4f6k7gpzzxkia81qfkhx9rwzpg29n9k3i3lbqf0y9fj01kwgax";
sgr-iosevka-ss15 = "0agzapx40qv0pixxijfa5m94w5p90adjyfh0qp4kx37hvidzcplq";
sgr-iosevka-ss16 = "0lc4bs89g2840m0mkcxagc694mx5ydh2zvcrvh1316snz6gqmqbv";
sgr-iosevka-ss17 = "0wsd2jck9pgrivr93d64krkdkqdwm21mgz52pijwr51bwci41xy3";
sgr-iosevka-ss18 = "00ml8w11n9dc5ykraz3hcacwvhsjx1z100risi3aw81vfwq0z1xg";
sgr-iosevka-term = "0zvpj73ddk36g9ggw2bngmhzpdixpnnjhvzzyw7ff4xbgaxlkrrs";
sgr-iosevka-term-curly = "0b0a2ipjwj1mf2042658z6rsnn5jiva32aw9wrq7rs56p7drf33c";
sgr-iosevka-term-curly-slab = "0dvh9kykb80p6g689wxcfsxya9n959j3l7a9q9bz92nddyny45wp";
sgr-iosevka-term-slab = "06mbfcjcghd5dc3k2y1bf39xhdni7dvsasm3rgj0cjzylg7c9rkv";
sgr-iosevka-term-ss01 = "0bpqbnp2njn8q1vqpy3iaqxzwm4zb50spyk1drdnk5v4j8rnxr86";
sgr-iosevka-term-ss02 = "0g3kdwlaii8vja3p5y91pmawzj7hn59y35gixvgkqpnrkpp3y6bm";
sgr-iosevka-term-ss03 = "139psybgajsyszpz811kxvgfi08ia54dk011dx359kk6gj72wmnz";
sgr-iosevka-term-ss04 = "0aix3x98id9zc86qmbmbqh60a9s6928y26lcz1sms88p2nnnliqp";
sgr-iosevka-term-ss05 = "10gbkay5fff1k91r1jhibh3gialif6m7fyqlw5sphjxn75qpkxm4";
sgr-iosevka-term-ss06 = "0bxachp1qsnzgavap30nsbqpa75hd5pzk2gfj8l1b6q3cpmvnlyf";
sgr-iosevka-term-ss07 = "028fkmz1yb1g30idszz0bdjhsn1iq845pxkf0iwq409y2qs8xh8s";
sgr-iosevka-term-ss08 = "11yvq67lql3q249k1b9gdc3g1q48q6sihj62kgk7l9qh4cv3wmnh";
sgr-iosevka-term-ss09 = "1r87wznw3nbry0ddl20k7gqxbmiz0pnmf5qb01jfdnhsnq9fdr4a";
sgr-iosevka-term-ss10 = "0xivpfm736jp4326bwbcnc7gq2sik3f3r46sqka1r33vvlwmcq0m";
sgr-iosevka-term-ss11 = "1j03vhbqgff59qi4sw11y49gkmzamv94vlwicg8idbnqbkxkhr8r";
sgr-iosevka-term-ss12 = "0mcixkpb5680f9jrbk4hrzvf7nlh2hppb8ar1w8a1lvx7qyr3wxc";
sgr-iosevka-term-ss13 = "19nzxs9r2br3n3ibi15b7acarlgd2mriyzi318dmis0dxfdqd27l";
sgr-iosevka-term-ss14 = "18gqq1ysjw8fx9insy06wi7wbfzsha5vcq72j89iac67jlr3qdp0";
sgr-iosevka-term-ss15 = "0l5hhq3kcrg7jhzlpsakx150gsn9l9018vydv5ln84lxfg16hc0m";
sgr-iosevka-term-ss16 = "0lhq56r8anw2dqny3wgmw0jb8fcsk4idsb7li09m87rkikfd2igr";
sgr-iosevka-term-ss17 = "0ylgk2bzxb65cb9rma0a17bz8n1w0r9pk16nlm01bglp79cin9a0";
sgr-iosevka-term-ss18 = "0ld3f3a06r4kjbdppx5yml855af3cz2kia124jjzx6x5j5ybn87y";
}

View File

@ -0,0 +1,35 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, pkg-config
, callPackage
}:
stdenv.mkDerivation (finalAttrs: {
pname = "teensy-cmake-macros";
version = "unstable-2023-04-15";
src = fetchFromGitHub {
owner = "newdigate";
repo = "teensy-cmake-macros";
rev = "dc401ed23e6e13a9db3cd2a65f611a4738df3b0e";
hash = "sha256-E+BOlsCJtOScr3B5GSv1WM6rFv6cFYvm/iJ893fsmXM=";
};
propagatedBuildInputs = [ cmake pkg-config ];
passthru = {
hook = callPackage ./hook.nix {
teensy-cmake-macros = finalAttrs.finalPackage;
};
};
meta = with lib; {
description = "CMake macros for building teensy projects";
platforms = platforms.all;
homepage = "https://github.com/newdigate/teensy-cmake-macros";
license = licenses.mit;
maintainers = [ maintainers.michaeldonovan ];
};
})

View File

@ -0,0 +1,17 @@
{ lib
, makeSetupHook
, teensy-cmake-macros
}:
makeSetupHook {
name = "teensy-cmake-macros-hook";
propagatedBuildInputs = [ teensy-cmake-macros ];
passthru = { inherit teensy-cmake-macros; };
meta = {
description = "A setup hook for teensy-cmake-macros";
inherit (teensy-cmake-macros.meta) maintainers platforms broken;
};
} ./setup-hook.sh

View File

@ -0,0 +1,5 @@
teensyCMakeMacrosEnvHook() {
cmakeFlagsArray+=(-DCMAKE_MODULE_PATH=@out@/lib/cmake)
}
addEnvHooks "$targetOffset" teensyCMakeMacrosEnvHook

View File

@ -1,20 +1,39 @@
{ lib
, stdenv
, python3
, libffi
, git
, cmake
, zlib
, fetchgit
{ cmake
, fetchFromGitHub
, makeWrapper
, runCommand
, fetchgit
, git
, lib
, libffi
, llvmPackages_9
, glibc
, makeWrapper
, ncurses
, python3
, runCommand
, zlib
# *NOT* from LLVM 9!
# The compiler used to compile Cling may affect the runtime include and lib
# directories it expects to be run with. Cling builds against (a fork of) Clang,
# so we prefer to use Clang as the compiler as well for consistency.
# It would be cleanest to use LLVM 9's clang, but it errors. So, we use a later
# version of Clang to compile, but we check out the Cling fork of Clang 9 to
# build Cling against.
, clangStdenv
# For runtime C++ standard library
, gcc-unwrapped
# Build with debug symbols
, debug ? false
# Build with libc++ (LLVM) rather than stdlibc++ (GCC).
# This is experimental and not all features work.
, useLLVMLibcxx ? false
}:
let
stdenv = clangStdenv;
# The LLVM 9 headers have a couple bugs we need to patch
fixedLlvmDev = runCommand "llvm-dev-${llvmPackages_9.llvm.version}" { buildInputs = [git]; } ''
mkdir $out
@ -58,7 +77,7 @@ let
];
nativeBuildInputs = [ python3 git cmake ];
buildInputs = [ libffi zlib ncurses ];
buildInputs = [ libffi ncurses zlib ];
strictDeps = true;
@ -69,6 +88,7 @@ let
"-DLLVM_MAIN_INCLUDE_DIR=${fixedLlvmDev}/include"
"-DLLVM_TABLEGEN_EXE=${llvmPackages_9.llvm.out}/bin/llvm-tblgen"
"-DLLVM_TOOLS_BINARY_DIR=${llvmPackages_9.llvm.out}/bin"
"-DLLVM_BUILD_TOOLS=Off"
"-DLLVM_TOOL_CLING_BUILD=ON"
"-DLLVM_TARGETS_TO_BUILD=host;NVPTX"
@ -78,14 +98,22 @@ let
# see cling/tools/CMakeLists.txt
"-DCLING_INCLUDE_TESTS=ON"
"-DCLANG-TOOLS=OFF"
# "--trace-expand"
] ++ lib.optionals debug [
"-DCMAKE_BUILD_TYPE=Debug"
] ++ lib.optionals useLLVMLibcxx [
"-DLLVM_ENABLE_LIBCXX=ON"
"-DLLVM_ENABLE_LIBCXXABI=ON"
];
CPPFLAGS = if useLLVMLibcxx then [ "-stdlib=libc++" ] else [];
postInstall = lib.optionalString (!stdenv.isDarwin) ''
mkdir -p $out/share/Jupyter
cp -r /build/clang/tools/cling/tools/Jupyter/kernel $out/share/Jupyter
'';
dontStrip = debug;
meta = with lib; {
description = "The Interactive C++ Interpreter";
homepage = "https://root.cern/cling/";
@ -95,44 +123,49 @@ let
};
};
# Runtime flags for the C++ standard library
cxxFlags = if useLLVMLibcxx then [
"-I" "${lib.getDev llvmPackages_9.libcxx}/include/c++/v1"
"-L" "${llvmPackages_9.libcxx}/lib"
"-l" "${llvmPackages_9.libcxx}/lib/libc++.so"
] else [
"-I" "${gcc-unwrapped}/include/c++/${gcc-unwrapped.version}"
"-I" "${gcc-unwrapped}/include/c++/${gcc-unwrapped.version}/x86_64-unknown-linux-gnu"
];
# The flags passed to the wrapped cling should
# a) prevent it from searching for system include files and libs, and
# b) provide it with the include files and libs it needs (C and C++ standard library)
# b) provide it with the include files and libs it needs (C and C++ standard library plus
# its own stuff)
# These are also exposed as cling.flags/cling.compilerIncludeFlags because it's handy to be
# able to pass them to tools that wrap Cling, particularly Jupyter kernels such as xeus-cling
# and the built-in jupyter-cling-kernel. Both of these use Cling as a library by linking against
# libclingJupyter.so, so the makeWrapper approach to wrapping the binary doesn't work.
# These are also exposed as cling.flags because it's handy to be able to pass them to tools
# that wrap Cling, particularly Jupyter kernels such as xeus-cling and the built-in
# jupyter-cling-kernel, which use Cling as a library.
# Thus, if you're packaging a Jupyter kernel, you either need to pass these flags as extra
# args to xcpp (for xeus-cling) or put them in the environment variable CLING_OPTS
# (for jupyter-cling-kernel)
# (for jupyter-cling-kernel).
flags = [
"-nostdinc"
"-nostdinc++"
"-isystem" "${lib.getDev stdenv.cc.libc}/include"
"-I" "${lib.getDev unwrapped}/include"
"-I" "${lib.getLib unwrapped}/lib/clang/9.0.1/include"
];
# Autodetect the include paths for the compiler used to build Cling, in the same way Cling does at
# https://github.com/root-project/cling/blob/v0.7/lib/Interpreter/CIFactory.cpp#L107:L111
# Note: it would be nice to just put the compiler in Cling's PATH and let it do this by itself, but
# unfortunately passing -nostdinc/-nostdinc++ disables Cling's autodetection logic.
compilerIncludeFlags = runCommand "compiler-include-flags.txt" {} ''
export LC_ALL=C
${stdenv.cc}/bin/c++ -xc++ -E -v /dev/null 2>&1 | sed -n -e '/^.include/,''${' -e '/^ \/.*++/p' -e '}' > tmp
sed -e 's/^/-isystem /' -i tmp
tr '\n' ' ' < tmp > $out
'';
"-isystem" "${lib.getLib unwrapped}/lib/clang/9.0.1/include"
]
++ cxxFlags
++ [
# System libc
"-isystem" "${lib.getDev stdenv.cc.libc}/include"
# cling includes
"-isystem" "${lib.getDev unwrapped}/include"
];
in
runCommand "cling-${unwrapped.version}" {
nativeBuildInputs = [ makeWrapper ];
inherit unwrapped flags compilerIncludeFlags;
inherit unwrapped flags;
inherit (unwrapped) meta;
} ''
makeWrapper $unwrapped/bin/cling $out/bin/cling \
--add-flags "$(cat "$compilerIncludeFlags")" \
--add-flags "$flags"
''

View File

@ -1,28 +0,0 @@
{ lib, stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
pname = "nvidia-video-sdk";
version = "6.0.1";
src = fetchurl {
url = "https://developer.nvidia.com/video-sdk-601";
name = "nvidia_video_sdk_${version}.zip";
sha256 = "08h1vnqsv22js9v3pyim5yb80z87baxb7s2g5gsvvjax07j7w8h5";
};
nativeBuildInputs = [ unzip ];
# We only need the header files. The library files are
# in the nvidia_x11 driver.
installPhase = ''
mkdir -p $out/include
cp -R Samples/common/inc/* $out/include
'';
meta = with lib; {
description = "The NVIDIA Video Codec SDK";
homepage = "https://developer.nvidia.com/nvidia-video-codec-sdk";
license = licenses.unfree;
};
}

View File

@ -1,32 +1,42 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
, zlib, curl, protobuf, prime-server, boost, sqlite, libspatialite
, luajit, geos39, python3, zeromq }:
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, boost
, curl
, geos
, libspatialite
, luajit
, prime-server
, protobuf
, python3
, sqlite
, zeromq
, zlib
, testers
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "valhalla";
version = "3.1.0";
version = "3.4.0";
src = fetchFromGitHub {
owner = "valhalla";
repo = "valhalla";
rev = version;
sha256 = "04vxvzy6hnhdvb9lh1p5vqzzi2drv0g4l2gnbdp44glipbzgd4dr";
rev = finalAttrs.version;
hash = "sha256-1X9vsWsgnzmXn7bCMhN2PNwtfV0RRdzRFZIrQN2PLfA=";
fetchSubmodules = true;
};
# https://github.com/valhalla/valhalla/issues/2119
postPatch = ''
for f in valhalla/mjolnir/transitpbf.h \
src/mjolnir/valhalla_query_transit.cc; do
substituteInPlace $f --replace 'SetTotalBytesLimit(limit, limit)' \
'SetTotalBytesLimit(limit)'
done
substituteInPlace src/bindings/python/CMakeLists.txt \
--replace "\''${Python_SITEARCH}" "${placeholder "out"}/${python3.sitePackages}"
'';
nativeBuildInputs = [ cmake pkg-config ];
buildInputs = [
zlib curl protobuf prime-server boost sqlite libspatialite
luajit geos39 python3 zeromq
nativeBuildInputs = [
cmake
pkg-config
];
cmakeFlags = [
@ -34,17 +44,36 @@ stdenv.mkDerivation rec {
"-DENABLE_BENCHMARKS=OFF"
];
buildInputs = [
boost
curl
geos
libspatialite
luajit
prime-server
protobuf
python3
sqlite
zeromq
zlib
];
postFixup = ''
substituteInPlace "$out"/lib/pkgconfig/libvalhalla.pc \
--replace '=''${prefix}//' '=/' \
--replace '=''${exec_prefix}//' '=/'
'';
passthru.tests = {
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = with lib; {
changelog = "https://github.com/valhalla/valhalla/blob/${finalAttrs.src.rev}/CHANGELOG.md";
description = "Open Source Routing Engine for OpenStreetMap";
homepage = "https://valhalla.readthedocs.io/";
license = licenses.mit;
maintainers = [ maintainers.Thra11 ];
platforms = platforms.linux;
};
}
})

View File

@ -1,10 +1,11 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, pymysql
, pythonOlder
, setuptools-scm
, setuptools-scm-git-archive
, wheel
}:
buildPythonPackage rec {
@ -21,9 +22,19 @@ buildPythonPackage rec {
hash = "sha256-m/EgoBU3e+s3soXyYtACMDSjJfMLBOk/00qPtgawwQ8=";
};
patches = [
# https://github.com/aio-libs/aiomysql/pull/955
(fetchpatch {
name = "remove-setuptools-scm-git-archive-dependency.patch";
url = "https://github.com/aio-libs/aiomysql/commit/fee997d2e848b634a84ce0c4e9025e3b3e761640.patch";
hash = "sha256-qKcOfdDaA9DLS2fdHOEUW37aCCdtZjN0zsFV9dK/umQ=";
includes = [ "pyproject.toml" ];
})
];
nativeBuildInputs = [
setuptools-scm
setuptools-scm-git-archive
wheel
];
propagatedBuildInputs = [

View File

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "mkdocs-mermaid2-plugin";
version = "1.0.1";
version = "1.0.8";
format = "setuptools";
disabled = pythonOlder "3.7";
@ -22,7 +22,7 @@ buildPythonPackage rec {
owner = "fralau";
repo = "mkdocs-mermaid2-plugin";
rev = "refs/tags/v${version}";
hash = "sha256-8/5lltOT78VSMxunIfCeGSBQ7VIRVnk3cHIzd7S+c00=";
hash = "sha256-0h/EMfp6D14ZJcQe3U2r/RQ/VNejOK9bLP6AMNiB0Rc=";
};
propagatedBuildInputs = [

View File

@ -14,14 +14,14 @@
buildPythonPackage rec {
pname = "oauthenticator";
version = "16.0.5";
version = "16.0.6";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-ddCqr6qIIyU3EQ6p2i+U6F359j3hcZ7E2X8qbeUz2e8=";
hash = "sha256-82I+ZmWRUUV+kxveHNDXTsbOeZcT0QJo/SJP3paxRcY=";
};
postPatch = ''

View File

@ -106,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
exec = "openarena";
icon = "openarena";
comment = "A fast-paced 3D first-person shooter, similar to id Software Inc.'s Quake III Arena";
desktopName = "openarena";
desktopName = "OpenArena";
categories = [ "Game" "ActionGame" ];
})
];

View File

@ -78,7 +78,7 @@ stdenv.mkDerivation {
meta = {
homepage = "https://ioquake3.org/";
description = "A fast-paced 3D first-person shooter, a community effort to continue supporting/developing id's Quake III Arena";
license = lib.licenses.gpl2Only;
license = lib.licenses.gpl2Plus;
mainProgram = "ioquake3";
maintainers = with lib.maintainers; [ abbradar drupol eelco rvolosatovs ];
platforms = lib.platforms.linux;

View File

@ -1,4 +1,6 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, libnl, iptables }:
{ lib, stdenv, fetchFromGitHub, nixosTests
, autoreconfHook, pkg-config, libnl, iptables
}:
let
sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; };
@ -10,6 +12,10 @@ stdenv.mkDerivation {
src = sourceAttrs.src;
patches = [
./validate-config.patch
];
outputs = [
"out"
"man"
@ -24,6 +30,8 @@ stdenv.mkDerivation {
sed -e 's%^XTABLES_SO_DIR = .*%XTABLES_SO_DIR = '"$out"'/lib/xtables%g' -i src/usr/iptables/Makefile
'';
passthru.tests = { inherit (nixosTests) jool; };
meta = with lib; {
homepage = "https://www.jool.mx/";
description = "Fairly compliant SIIT and Stateful NAT64 for Linux - CLI tools";

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, kernel }:
{ lib, stdenv, fetchFromGitHub, kernel, nixosTests }:
let
sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; };
@ -23,6 +23,8 @@ stdenv.mkDerivation {
installTargets = "modules_install";
passthru.tests = { inherit (nixosTests) jool; };
meta = with lib; {
homepage = "https://www.jool.mx/";
description = "Fairly compliant SIIT and Stateful NAT64 for Linux - kernel modules";

View File

@ -0,0 +1,193 @@
From df0a1cf61188b5b7bb98675d746cb63d9300f148 Mon Sep 17 00:00:00 2001
From: rnhmjoj <rnhmjoj@inventati.org>
Date: Sat, 1 Jul 2023 18:47:05 +0200
Subject: [PATCH] Add mode to validate the atomic configuration
---
src/usr/argp/main.c | 6 ++++++
src/usr/argp/wargp/file.c | 26 +++++++++++++++++++++++++-
src/usr/argp/wargp/file.h | 1 +
src/usr/nl/file.c | 32 ++++++++++++++++++++++----------
src/usr/nl/file.h | 3 ++-
5 files changed, 56 insertions(+), 12 deletions(-)
diff --git a/src/usr/argp/main.c b/src/usr/argp/main.c
index 744a6df0..d04917da 100644
--- a/src/usr/argp/main.c
+++ b/src/usr/argp/main.c
@@ -238,6 +238,12 @@ static struct cmd_option file_ops[] = {
.handler = handle_file_update,
.handle_autocomplete = autocomplete_file_update,
},
+ {
+ .label = "check",
+ .xt = XT_ANY,
+ .handler = handle_file_check,
+ .handle_autocomplete = autocomplete_file_update,
+ },
{ 0 },
};
diff --git a/src/usr/argp/wargp/file.c b/src/usr/argp/wargp/file.c
index 0951b544..27ee3e64 100644
--- a/src/usr/argp/wargp/file.c
+++ b/src/usr/argp/wargp/file.c
@@ -26,6 +26,30 @@ static struct wargp_option update_opts[] = {
{ 0 },
};
+int handle_file_check(char *iname, int argc, char **argv, void const *arg)
+{
+ struct update_args uargs = { 0 };
+ struct joolnl_socket sk = { 0 };
+ struct jool_result result;
+
+ result.error = wargp_parse(update_opts, argc, argv, &uargs);
+ if (result.error)
+ return result.error;
+
+ if (!uargs.file_name.value) {
+ struct requirement reqs[] = {
+ { false, "a file name" },
+ { 0 }
+ };
+ return requirement_print(reqs);
+ }
+
+ result = joolnl_file_parse(&sk, xt_get(), iname, uargs.file_name.value,
+ uargs.force.value, true);
+
+ return pr_result(&result);
+}
+
int handle_file_update(char *iname, int argc, char **argv, void const *arg)
{
struct update_args uargs = { 0 };
@@ -49,7 +73,7 @@ int handle_file_update(char *iname, int argc, char **argv, void const *arg)
return pr_result(&result);
result = joolnl_file_parse(&sk, xt_get(), iname, uargs.file_name.value,
- uargs.force.value);
+ uargs.force.value, false);
joolnl_teardown(&sk);
return pr_result(&result);
diff --git a/src/usr/argp/wargp/file.h b/src/usr/argp/wargp/file.h
index ce5de508..8ea4a4d2 100644
--- a/src/usr/argp/wargp/file.h
+++ b/src/usr/argp/wargp/file.h
@@ -2,6 +2,7 @@
#define SRC_USR_ARGP_WARGP_FILE_H_
int handle_file_update(char *iname, int argc, char **argv, void const *arg);
+int handle_file_check(char *iname, int argc, char **argv, void const *arg);
void autocomplete_file_update(void const *args);
#endif /* SRC_USR_ARGP_WARGP_FILE_H_ */
diff --git a/src/usr/nl/file.c b/src/usr/nl/file.c
index f9413236..51a668bd 100644
--- a/src/usr/nl/file.c
+++ b/src/usr/nl/file.c
@@ -29,6 +29,7 @@ static struct joolnl_socket sk;
static char const *iname;
static xlator_flags flags;
static __u8 force;
+static bool check;
struct json_meta {
char const *name; /* This being NULL signals the end of the array. */
@@ -163,9 +164,11 @@ static struct jool_result handle_array(cJSON *json, int attrtype, char *name,
goto too_small;
nla_nest_end(msg, root);
- result = joolnl_request(&sk, msg, NULL, NULL);
- if (result.error)
- return result;
+ if (!check) {
+ result = joolnl_request(&sk, msg, NULL, NULL);
+ if (result.error)
+ return result;
+ }
msg = NULL;
json = json->prev;
@@ -179,6 +182,8 @@ static struct jool_result handle_array(cJSON *json, int attrtype, char *name,
return result_success();
nla_nest_end(msg, root);
+ if (check)
+ return result_success();
return joolnl_request(&sk, msg, NULL, NULL);
too_small:
@@ -244,6 +249,8 @@ static struct jool_result handle_global(cJSON *json)
nla_nest_end(msg, root);
free(meta);
+ if (check)
+ return result_success();
return joolnl_request(&sk, msg, NULL, NULL);
revert_meta:
@@ -654,9 +661,11 @@ static struct jool_result send_ctrl_msg(bool init)
else
NLA_PUT(msg, JNLAR_ATOMIC_END, 0, NULL);
- result = joolnl_request(&sk, msg, NULL, NULL);
- if (result.error)
- return result;
+ if (!check) {
+ result = joolnl_request(&sk, msg, NULL, NULL);
+ if (result.error)
+ return result;
+ }
return result_success();
@@ -683,9 +692,11 @@ static struct jool_result do_parsing(char const *iname, char *buffer)
if (result.error)
goto fail;
- result = send_ctrl_msg(true);
- if (result.error)
- goto fail;
+ if (!check) {
+ result = send_ctrl_msg(true);
+ if (result.error)
+ goto fail;
+ }
switch (xlator_flags2xt(flags)) {
case XT_SIIT:
@@ -718,12 +729,13 @@ fail:
}
struct jool_result joolnl_file_parse(struct joolnl_socket *_sk, xlator_type xt,
- char const *iname, char const *file_name, bool _force)
+ char const *iname, char const *file_name, bool _force, bool _check)
{
char *buffer;
struct jool_result result;
sk = *_sk;
+ check = _check;
flags = xt;
force = _force ? JOOLNLHDR_FLAGS_FORCE : 0;
diff --git a/src/usr/nl/file.h b/src/usr/nl/file.h
index 51802aaf..8b4a66dd 100644
--- a/src/usr/nl/file.h
+++ b/src/usr/nl/file.h
@@ -9,7 +9,8 @@ struct jool_result joolnl_file_parse(
xlator_type xt,
char const *iname,
char const *file_name,
- bool force
+ bool force,
+ bool check
);
struct jool_result joolnl_file_get_iname(
--
2.40.1

View File

@ -7,16 +7,16 @@
buildGoModule rec {
pname = "coredns";
version = "1.10.1";
version = "1.11.0";
src = fetchFromGitHub {
owner = "coredns";
repo = "coredns";
rev = "v${version}";
sha256 = "sha256-/+D/jATZhHSxLPB8RkPLUYAZ3O+/9l8XIhgokXz2SUQ=";
sha256 = "sha256-Mn8hOsODTlnl6PJaevMcyIKkIx/1Lk2HGA7fSSizR20=";
};
vendorHash = "sha256-aWmwzIHScIMb3DPzr4eto2yETMgKd/hUy18X8KxQGos=";
vendorHash = "sha256-9LFwrG6RxZaCLxrNabdnq++U5Aw+d2w90Zqt/wszNTY=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -1,6 +1,6 @@
{ callPackage, ... }@args:
callPackage ./generic.nix args {
version = "1.25.1";
hash = "sha256-8JBxrEbg6jrcAAjvC6yiKfxrS+RTO675u7+6feKahgI=";
version = "1.25.2";
hash = "sha256-Bd1tk1bWanTmEDXypCFi+MdUyXzxumTnqAG6FY1sBxE=";
}

View File

@ -234,9 +234,6 @@
# 'Error initialising QuantumRenderer: no suitable pipeline found'
"tlcockpit"
# 'tlmgr: config.guess script does not exist, goodbye'
"tlshell"
] ++ lib.optional stdenv.isDarwin "epspdftk"; # wish shebang is a script, not a binary!
# (1) binaries requiring -v
@ -271,7 +268,7 @@
"dt2dv" "dv2dt" "dvi2tty" "dvidvi" "dvispc" "otp2ocp" "outocp" "pmxab"
# GUI scripts that accept no argument or crash without a graphics server; please test manualy
"epspdftk" "texdoctk" "xasy"
"epspdftk" "texdoctk" "tlshell" "xasy"
# requires Cinderella, not open source and not distributed via Nixpkgs
"ketcindy"

View File

@ -0,0 +1,65 @@
{ lib
, fetchFromGitHub
, rustPlatform
, installShellFiles
, pkg-config
, libpulseaudio
, dbus
, speechd
}:
rustPlatform.buildRustPackage rec {
pname = "goxlr-utility";
version = "0.12.6";
src = fetchFromGitHub {
owner = "GoXLR-on-Linux";
repo = "goxlr-utility";
rev = "v${version}";
hash = "sha256-vvaKCsqncRhag8IrS0AIfNqNHGU2WIvFaYISEVfUB2Y=";
};
cargoHash = "sha256-Z57H5YeVYqlOaLRLaizVw8xTLstdjyXutnN7OgaUYOE=";
buildInputs = [
libpulseaudio
dbus
speechd
];
nativeBuildInputs = [
pkg-config
installShellFiles
rustPlatform.bindgenHook
];
buildFeatures = [ "tts" ];
postInstall = ''
install -Dm644 "50-goxlr.rules" "$out/etc/udev/rules.d/50-goxlr.rules"
install -Dm644 "daemon/resources/goxlr-utility.png" "$out/share/icons/hicolor/48x48/apps/goxlr-utility.png"
install -Dm644 "daemon/resources/goxlr-utility.svg" "$out/share/icons/hicolor/scalable/apps/goxlr-utility.svg"
install -Dm644 "daemon/resources/goxlr-utility-large.png" "$out/share/pixmaps/goxlr-utility.png"
install -Dm644 "daemon/resources/goxlr-utility.desktop" "$out/share/applications/goxlr-utility.desktop"
substituteInPlace $out/share/applications/goxlr-utility.desktop \
--replace /usr/bin $out/bin \
--replace goxlr-launcher goxlr-daemon
completions_dir=$(dirname $(find target -name 'goxlr-client.bash' | head -n 1))
installShellCompletion --bash $completions_dir/goxlr-client.bash
installShellCompletion --fish $completions_dir/goxlr-client.fish
installShellCompletion --zsh $completions_dir/_goxlr-client
completions_dir=$(dirname $(find target -name 'goxlr-daemon.bash' | head -n 1))
installShellCompletion --bash $completions_dir/goxlr-daemon.bash
installShellCompletion --fish $completions_dir/goxlr-daemon.fish
installShellCompletion --zsh $completions_dir/_goxlr-daemon
'';
meta = with lib; {
description = "An unofficial GoXLR App replacement for Linux, Windows and MacOS";
homepage = "https://github.com/GoXLR-on-Linux/goxlr-utility";
license = licenses.mit;
maintainers = with maintainers; [ errnoh ];
};
}

View File

@ -15,6 +15,19 @@ stdenv.mkDerivation rec {
makeFlags = [ "CPPFLAGS=" "CFLAGS=-O3" "LDFLAGS=" ];
doCheck = true;
checkPhase = ''
runHook preCheck
(
cd tests
patchShebangs runtests pretend-editor
./runtests
)
runHook postCheck
'';
installPhase = ''
mkdir -p \
$out/bin \

View File

@ -16,14 +16,14 @@ let
in
python.pkgs.buildPythonApplication rec {
pname = "esphome";
version = "2023.7.1";
version = "2023.8.1";
format = "setuptools";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-warrNm07YXD0TEb91JQPr9ouDh7lC+YCQYOM3fed3Es=";
hash = "sha256-a85nNUVaa7CbYdI/xM30fp7i1gMRz18Ior4mwseFZqU=";
};
postPatch = ''

View File

@ -0,0 +1,37 @@
{ lib
, fetchurl
, stdenv
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cmospwd";
version = "5.1";
src = fetchurl {
url = "https://www.cgsecurity.org/cmospwd-${finalAttrs.version}.tar.bz2";
hash = "sha256-8pbSl5eUsKa3JrgK/JLk0FnGXcJhKksJN3wWiDPYYvQ=";
};
preConfigure = ''
cd src
# It already contains compiled executable (that doesn't work), so make
# will refuse to build if it's still there
rm cmospwd
'';
# There is no install make target
installPhase = ''
runHook preInstall
install -Dm0755 cmospwd -t "$out/bin"
runHook postInstall
'';
meta = with lib; {
description = "Decrypt password stored in cmos used to access BIOS SETUP";
homepage = "https://www.cgsecurity.org/wiki/CmosPwd";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ t4ccer ];
platforms = platforms.linux;
};
})

View File

@ -0,0 +1,36 @@
{ lib
, buildGoModule
, fetchFromGitHub
, libpcap
}:
buildGoModule rec {
pname = "joincap";
version = "0.10.2";
src = fetchFromGitHub {
owner = "assafmo";
repo = "joincap";
rev = "v${version}";
hash = "sha256-Xli9G/VkDWKkc+7mldmLfvigvPPcdcToc4e15uoadDQ=";
};
vendorHash = "sha256-YsLIbt3uiA1d08yIEhSRdep1+52AxRvbIzDHlhc5s7Y=";
buildInputs = [
libpcap
];
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Merge multiple pcap files together, gracefully";
homepage = "https://github.com/assafmo/joincap";
changelog = "https://github.com/assafmo/joincap/blob/${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@ -0,0 +1,34 @@
{ lib
, rustPlatform
, fetchFromGitHub
}:
rustPlatform.buildRustPackage rec {
pname = "cringify";
version = "0.1.1";
src = fetchFromGitHub {
owner = "sansyrox";
repo = "cringify";
rev = "dd753818f8dd4b343be9370d2c29a6be070ad791";
hash = "sha256-6hSgOk9DzDfGtZX1vt6AQsKSLdPdqy2Mz3UtK6d2AuA=";
};
cargoHash = "sha256-w6lqPyUCaXZBQ1EmMyj0sVnEHugMD6JugIIK0rEa19Y=";
postPatch = ''
# Upstream forgot to update the version value
substituteInPlace src/main.rs --replace '0.1.0' ${version}
'';
# No tests are present in the repository
doCheck = false;
meta = {
description = "Annoy your friends with the cringified text";
homepage = "https://github.com/sansyrox/cringify";
license = lib.licenses.mit;
mainProgram = "cringify";
maintainers = with lib.maintainers; [ tomasajt ];
};
}

View File

@ -1,40 +0,0 @@
{ lib, nimPackages, fetchurl, gentium, makeDesktopItem }:
nimPackages.buildNimPackage rec {
pname = "hottext";
version = "1.4";
nimBinOnly = true;
src = fetchurl {
url = "https://git.sr.ht/~ehmry/hottext/archive/v${version}.tar.gz";
sha256 = "sha256-hIUofi81zowSMbt1lUsxCnVzfJGN3FEiTtN8CEFpwzY=";
};
buildInputs = with nimPackages; [
pixie
sdl2
];
HOTTEXT_FONT_PATH = "${gentium}/share/fonts/truetype/GentiumPlus-Regular.ttf";
desktopItem = makeDesktopItem {
categories = [ "Utility" ];
comment = meta.description;
desktopName = pname;
exec = pname;
name = pname;
};
postInstall = ''
cp -r $desktopItem/* $out
'';
meta = with lib; {
broken = true; # Needs to be updated to latest Pixie API.
description = "Simple RSVP speed-reading utility";
license = licenses.unlicense;
homepage = "https://git.sr.ht/~ehmry/hottext";
maintainers = with maintainers; [ ehmry ];
};
}

View File

@ -0,0 +1,55 @@
{ lib, stdenv, fetchFromGitHub, fetchurl, perlPackages, shortenPerlShebang, texlive }:
let
biberSource = lib.head (builtins.filter (p: p.tlType == "source") texlive.biber-ms.pkgs);
# missing test file
multiscriptBltxml = (fetchFromGitHub {
owner = "plk";
repo = "biber";
rev = "e8d056433063add7800f24589de76f89c4b64c20";
hash = "sha256-QnN6Iyw6iOjfTX7DLVptsfAO/QNn9vOIk5IZlI15EvQ=";
}) + "/t/tdata/multiscript.bltxml";
in
perlPackages.buildPerlModule {
pname = "biber-ms";
inherit (biberSource) version;
src = "${biberSource}/source/bibtex/biber-ms/biblatex-biber-ms.tar.gz";
# from META.json
# (aliases in /* */ are replaced by the actual dependencies to prevent
# evaluation errors with config.allowAliases = false)
buildInputs = with perlPackages; [
# build deps
ConfigAutoConf ExtUtilsLibBuilder FileWhich TestDifferences
/*TestMore=TestSimple=null*/
# runtime deps
BusinessISBN BusinessISMN BusinessISSN ClassAccessor DataCompare DataDump
DataUniqid DateTimeCalendarJulian DateTimeFormatBuilder EncodeEUCJPASCII
EncodeHanExtra EncodeJIS2K EncodeLocale FileSlurper IOString IPCRun3
LWPProtocolHttps LWP/*LWPUserAgent*/ libwwwperl LinguaTranslit ListAllUtils
ListMoreUtils ListMoreUtilsXS LogLog4perl MozillaCA ParseRecDescent
PerlIOutf8_strict RegexpCommon SortKey TextBalanced TextBibTeX TextCSV
TextCSV_XS TextRoman URI UnicodeLineBreak XMLLibXML XMLLibXMLSimple
XMLLibXSLT XMLWriter autovivification
];
nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
preConfigure = ''
cp '${multiscriptBltxml}' t/tdata/multiscript.bltxml
'';
postInstall = ''
mv "$out"/bin/biber{,-ms}
'' + lib.optionalString stdenv.isDarwin ''
shortenPerlShebang "$out"/bin/biber-ms
'';
meta = with lib; {
description = "Backend for BibLaTeX (multiscript version)";
license = biberSource.meta.license;
platforms = platforms.unix;
maintainers = [ maintainers.xworld21 ];
};
}

View File

@ -2,20 +2,6 @@
let
biberSource = lib.head (builtins.filter (p: p.tlType == "source") texlive.biber.pkgs);
# perl 5.32.0 ships with U:C 1.27
UnicodeCollate_1_29 = perlPackages.buildPerlPackage rec {
pname = "Unicode-Collate";
version = "1.29";
src = fetchurl {
url = "mirror://cpan/authors/id/S/SA/SADAHIRO/${pname}-${version}.tar.gz";
sha256 = "0dr4k10fgbsczh4sz7w8d0nnba38r6jrg87cm3gw4xxgn55fzj7l";
};
meta = {
description = "Unicode Collation Algorithm";
license = perlPackages.perl.meta.license;
};
};
in
perlPackages.buildPerlModule {
@ -30,7 +16,7 @@ perlPackages.buildPerlModule {
DateTime DateTimeFormatBuilder DateTimeCalendarJulian
ExtUtilsLibBuilder FileSlurper FileWhich IPCRun3 LogLog4perl LWPProtocolHttps ListAllUtils
ListMoreUtils MozillaCA ParseRecDescent IOString ReadonlyXS RegexpCommon TextBibTeX
UnicodeCollate_1_29 UnicodeLineBreak URI XMLLibXMLSimple XMLLibXSLT XMLWriter
UnicodeLineBreak URI XMLLibXMLSimple XMLLibXSLT XMLWriter
ClassAccessor TextCSV TextCSV_XS TextRoman DataUniqid LinguaTranslit SortKey
TestDifferences
PerlIOutf8_strict
@ -43,7 +29,7 @@ perlPackages.buildPerlModule {
meta = with lib; {
description = "Backend for BibLaTeX";
license = with licenses; [ artistic1 gpl1Plus ];
license = biberSource.meta.license;
platforms = platforms.unix;
maintainers = [ maintainers.ttuegel ];
};

View File

@ -6,6 +6,7 @@
, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr
, brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash
, makeWrapper, shortenPerlShebang, useFixedHashes, asymptote
, biber-ms
}:
# Useful resource covering build options:
@ -427,6 +428,7 @@ pygmentex = python3Packages.buildPythonApplication rec {
inherit asymptote;
inherit biber;
inherit biber-ms;
bibtexu = bibtex8;
bibtex8 = stdenv.mkDerivation {
pname = "texlive-bibtex-x.bin";

View File

@ -30,11 +30,12 @@ let
# remove fake derivations (without 'outPath') to avoid undesired build dependencies
paths = lib.catAttrs "outPath" pkgList.nonbin;
nativeBuildInputs = [ (lib.last tl.texlive-scripts.pkgs) ];
# mktexlsr
nativeBuildInputs = [ (lib.last tl."texlive.infra".pkgs) ];
postBuild = # generate ls-R database
''
mktexlsr --sort "$out"
mktexlsr "$out"
'';
}).overrideAttrs (_: { allowSubstitutes = true; });
@ -88,7 +89,8 @@ in (buildEnv {
nativeBuildInputs = [
makeWrapper
libfaketime
(lib.last tl.texlive-scripts.pkgs) # fmtutil, mktexlsr, updmap
(lib.last tl."texlive.infra".pkgs) # mktexlsr
(lib.last tl.texlive-scripts.pkgs) # fmtutil, updmap
(lib.last tl.texlive-scripts-extra.pkgs) # texlinks
perl
];
@ -222,8 +224,8 @@ in (buildEnv {
"$TEXMFDIST"/tex/generic/config/language.dat.lua > "$TEXMFSYSVAR"/tex/generic/config/language.dat.lua
[[ -e "$TEXMFDIST"/web2c/fmtutil.cnf ]] && sed -E -f '${fmtutilSed}' "$TEXMFDIST"/web2c/fmtutil.cnf > "$TEXMFCNF"/fmtutil.cnf
# make new files visible to kpathsea
mktexlsr --sort "$TEXMFSYSVAR"
# create $TEXMFSYSCONFIG database, make new $TEXMFSYSVAR files visible to kpathsea
mktexlsr "$TEXMFSYSCONFIG" "$TEXMFSYSVAR"
'') +
# generate format links (reads fmtutil.cnf to know which ones) *after* the wrappers have been generated
''
@ -260,7 +262,7 @@ in (buildEnv {
# sort entries to improve reproducibility
[[ -f "$TEXMFSYSCONFIG"/web2c/updmap.cfg ]] && sort -o "$TEXMFSYSCONFIG"/web2c/updmap.cfg "$TEXMFSYSCONFIG"/web2c/updmap.cfg
mktexlsr --sort "$TEXMFSYSCONFIG" "$TEXMFSYSVAR" # to make sure (of what?)
mktexlsr "$TEXMFSYSCONFIG" "$TEXMFSYSVAR" # to make sure (of what?)
'' +
# remove *-sys scripts since /nix/store is readonly
''

View File

@ -6,8 +6,8 @@
, callPackage, ghostscript_headless, harfbuzz
, makeWrapper
, python3, ruby, perl, tk, jdk, bash, snobol4
, coreutils, findutils, gawk, getopt, gnugrep, gnumake, gnused, gzip, ncurses, zip
, libfaketime, asymptote, makeFontsConf
, coreutils, findutils, gawk, getopt, gnugrep, gnumake, gnupg, gnused, gzip, ncurses, zip
, libfaketime, asymptote, biber-ms, makeFontsConf
, useFixedHashes ? true
, recurseIntoAttrs
}:
@ -54,7 +54,6 @@ let
fontinst.scriptsFolder = "texlive-extra";
mptopdf.scriptsFolder = "context/perl";
pdftex.scriptsFolder = "simpdftex";
"texlive.infra".scriptsFolder = "texlive";
texlive-scripts.scriptsFolder = "texlive";
texlive-scripts-extra.scriptsFolder = "texlive-extra";
xetex.scriptsFolder = "texlive-extra";
@ -125,19 +124,14 @@ let
# TODO patch the scripts from bin.* directly in bin.* instead of here
# TODO we do not build binaries for the following packages (yet!)
biber-ms.binfiles = [];
xpdfopen.binfiles = [];
# mptopdf is a format link, but not generated by texlinks
# so we add it back to binfiles to generate it from mkPkgBin
mptopdf.binfiles = (orig.mptopdf.binfiles or []) ++ [ "mptopdf" ];
# mktexlsr distributed by texlive.infra has implicit dependencies (e.g. kpsestat)
# the perl one hidden in texlive-scripts is better behaved
"texlive.infra".binfiles = lib.remove "mktexlsr" orig."texlive.infra".binfiles;
# remove man, add mktexlsr
texlive-scripts.binfiles = (lib.remove "man" orig.texlive-scripts.binfiles) ++ [ "mktexlsr" ];
# remove man
texlive-scripts.binfiles = lib.remove "man" orig.texlive-scripts.binfiles;
# upmendex is "TODO" in bin.nix
uptex.binfiles = lib.remove "upmendex" orig.uptex.binfiles;
@ -172,7 +166,7 @@ let
texlive-scripts.binlinks = {
mktexfmt = "fmtutil";
texhash = "mktexlsr";
texhash = (lib.last tl."texlive.infra".pkgs) + "/bin/mktexlsr";
};
texlive-scripts-extra.binlinks = {
@ -341,12 +335,6 @@ let
substituteInPlace "$out"/bin/latexindent --replace 'use FindBin;' "BEGIN { \$0 = '$scriptsFolder' . '/latexindent.pl'; }; use FindBin;"
'';
# make tlmgr believe it can use kpsewhich to evaluate TEXMFROOT
"texlive.infra".postFixup = ''
substituteInPlace "$out"/bin/tlmgr \
--replace 'if (-r "$bindir/$kpsewhichname")' 'if (1)'
'';
# Patch texlinks.sh back to 2015 version;
# otherwise some bin/ links break, e.g. xe(la)tex.
# add runtime dependencies to PATH
@ -364,6 +352,12 @@ let
substituteInPlace "$out"/bin/* --replace java "$interpJava"
'';
# hardcode revision numbers (since texlive.infra, tlshell are not in either system or user texlive.tlpdb)
tlshell.postFixup = ''
substituteInPlace "$out"/bin/tlshell \
--replace '[dict get $::pkgs texlive.infra localrev]' '${toString overridden."texlive.infra".revision}' \
--replace '[dict get $::pkgs tlshell localrev]' '${toString overridden.tlshell.revision}'
'';
#### dependency changes
# it seems to need it to transform fonts
@ -406,6 +400,32 @@ let
fi
'';
};
"texlive.infra" = {
extraRevision = ".tlpdb${toString tlpdbVersion.revision}";
extraVersion = "-tlpdb-${toString tlpdbVersion.revision}";
# add license of tlmgr and TeXLive::* perl packages and of bin.core
license = [ "gpl2Plus" ] ++ lib.toList bin.core.meta.license.shortName ++ orig."texlive.infra".license or [ ];
scriptsFolder = "texlive";
extraBuildInputs = [ coreutils gnused gnupg (lib.last tl.kpathsea.pkgs) (perl.withPackages (ps: with ps; [ Tk ])) ];
# make tlmgr believe it can use kpsewhich to evaluate TEXMFROOT
postFixup = ''
substituteInPlace "$out"/bin/tlmgr \
--replace 'if (-r "$bindir/$kpsewhichname")' 'if (1)'
sed -i '2i$ENV{PATH}='"'"'${lib.makeBinPath [ gnupg ]}'"'"' . ($ENV{PATH} ? ":$ENV{PATH}" : '"'''"');' "$out"/bin/tlmgr
sed -i '2iPATH="${lib.makeBinPath [ coreutils gnused (lib.last tl.kpathsea.pkgs) ]}''${PATH:+:$PATH}"' "$out"/bin/mktexlsr
'';
# add minimal texlive.tlpdb
postUnpack = ''
if [[ "$tlType" == "tlpkg" ]] ; then
xzcat "${tlpdbxz}" | sed -n -e '/^name \(00texlive.config\|00texlive.installation\)$/,/^$/p' > "$out"/texlive.tlpdb
fi
'';
};
}; # overrides
in lib.mapAttrs mkTLPkg overridden;
@ -573,7 +593,7 @@ let
if [[ "$tlType" == "tlpkg" ]]; then
tar -xf "$src" \
--strip-components=1 \
-C "$out" --anchored --exclude=tlpkg/tlpobj --exclude=tlpkg/installer --exclude=tlpkg/gpg --keep-old-files \
-C "$out" --anchored --exclude=tlpkg/tlpobj --keep-old-files \
tlpkg
else
tar -xf "$src" \
@ -632,12 +652,12 @@ in
scheme-basic = [ free gfl gpl1Only gpl2 gpl2Plus knuth lgpl21 lppl1 lppl13c mit ofl publicDomain ];
scheme-context = [ bsd2 bsd3 cc-by-sa-40 free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21
lppl1 lppl13c mit ofl publicDomain x11 ];
scheme-full = [ artistic1 artistic1-cl8 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-40 cc-by-sa-10 cc-by-sa-20
cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl1Plus gpl2 gpl2Plus gpl3 gpl3Plus isc knuth
scheme-full = [ artistic1-cl8 asl20 bsd2 bsd3 bsdOriginal cc-by-10 cc-by-40 cc-by-sa-10 cc-by-sa-20
cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth
lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-gust = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-40 cc0 fdl13Only free gfl gfsl gpl1Only gpl2
gpl2Plus gpl3 gpl3Plus knuth lgpl2 lgpl21 lppl1 lppl12 lppl13a lppl13c mit ofl publicDomain x11 ];
scheme-infraonly = [ gpl2 lgpl21 ];
scheme-infraonly = [ gpl2 gpl2Plus lgpl21 ];
scheme-medium = [ artistic1-cl8 asl20 bsd2 bsd3 cc-by-40 cc-by-sa-20 cc-by-sa-30 cc-by-sa-40 cc0 fdl13Only
free gfl gpl1Only gpl2 gpl2Plus gpl3 gpl3Plus isc knuth lgpl2 lgpl21 lgpl3 lppl1 lppl12 lppl13a lppl13c mit ofl
publicDomain x11 ];

View File

@ -8636,12 +8636,12 @@
"texlive-scripts-extra.r62517"="193v0r4i3p4psn5b4q0ggpgaazwn6jadjlzh5gjm3igg9k73i1wj";
"texlive-scripts-extra.doc.r62517"="1izzy295pmxrg0sf2szxxahxm6s8bfi960mbs9z6vy7m5j1szxwl";
"texlive-scripts.doc.r66570"="0zvji7w8zvykmy97yim0yx0m05pazg0f60bbls0lb3mnx7rx8imj";
"texlive-scripts.tlpkg.r66570"="0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
"texlive-scripts.tlpkg.r66570"="07b68n9i587v247hpqnhwi052iczwg15z0npc1s5g1yxriy5k1lf";
"texlive-sr.doc.r54594"="0icavs9jkcr5b5cx5kv202k95j0ydgby9lqrw8wm9h936mbn9bkj";
"texlive-zh-cn.doc.r54490"="1r8n9k1cy7798g1rg1hyj6g945j9649c5hhqf8hm7a7abzx7w6ll";
"texlive.infra.r63645"="127ff11k8hamywgvvb4apbg1ra64ig7sghg0qqn8c913mqgxf844";
"texlive.infra.doc.r63645"="1c9xqbbbn2h7v76kp7bhjwk1g3zzykgdrkrslrzrrhs9x7laicl4";
"texlive.infra.tlpkg.r63645"="135cgamyq6dnffa7r8xvyr8krx65gqdgy88v3wwprqwz4dfhvzpi";
"texlive.infra.r63645.tlpdb66590"="127ff11k8hamywgvvb4apbg1ra64ig7sghg0qqn8c913mqgxf844";
"texlive.infra.doc.r63645.tlpdb66590"="1c9xqbbbn2h7v76kp7bhjwk1g3zzykgdrkrslrzrrhs9x7laicl4";
"texlive.infra.tlpkg.r63645.tlpdb66590"="0msr7i7vp5wf63fkjmmx0c2h13ky17j5qlrq7rbnym732ryzlx7r";
"texliveonfly.r55777"="03i9pzqv2dz4z9nlq60kzwiyfvzhhaalhczqa9146jp4wvcib9l3";
"texliveonfly.doc.r55777"="1fsabzkbcrk42rsp8ssx0kvap31y1rqnkq582129946q3njvmylx";
"texloganalyser.r54526"="0icav63nll0lj85cqlbg1lx1r6ysjf1lyv5bydxr3flr1c7yqx2r";

View File

@ -5569,8 +5569,6 @@ with pkgs;
hostsblock = callPackage ../tools/misc/hostsblock { };
hottext = callPackage ../tools/text/hottext { };
hopper = qt5.callPackage ../development/tools/analysis/hopper { };
hr = callPackage ../applications/misc/hr { };
@ -6533,6 +6531,8 @@ with pkgs;
biber = callPackage ../tools/typesetting/biber { };
biber-ms = callPackage ../tools/typesetting/biber-ms { };
biblatex-check = callPackage ../tools/typesetting/biblatex-check { };
binlore = callPackage ../development/tools/analysis/binlore { };
@ -6741,6 +6741,8 @@ with pkgs;
cmigemo = callPackage ../tools/text/cmigemo { };
cmospwd = callPackage ../tools/security/cmospwd { };
cmst = libsForQt5.callPackage ../tools/networking/cmst { };
cmt = callPackage ../applications/audio/cmt { };
@ -7106,6 +7108,8 @@ with pkgs;
createrepo_c = callPackage ../tools/package-management/createrepo_c { };
cringify = callPackage ../tools/text/cringify { };
cromfs = callPackage ../tools/archivers/cromfs {
stdenv = gcc10StdenvCompat;
};
@ -9534,8 +9538,6 @@ with pkgs;
jove = callPackage ../applications/editors/jove { };
jucipp = callPackage ../applications/editors/jucipp { };
jugglinglab = callPackage ../tools/misc/jugglinglab { };
jupp = callPackage ../applications/editors/jupp { };
@ -16206,6 +16208,8 @@ with pkgs;
gox = callPackage ../development/tools/gox { };
goxlr-utility = callPackage ../tools/audio/goxlr-utility {};
gprolog = callPackage ../development/compilers/gprolog { };
gwe = callPackage ../tools/misc/gwe {
@ -20190,6 +20194,8 @@ with pkgs;
tcptrack = callPackage ../development/tools/misc/tcptrack { };
teensy-cmake-macros = callPackage ../development/embedded/teensy-cmake-macros { };
teensyduino = arduino-core.override { withGui = true; withTeensyduino = true; };
teensy-loader-cli = callPackage ../development/embedded/teensy-loader-cli { };
@ -24159,8 +24165,6 @@ with pkgs;
nvidia-vaapi-driver = lib.hiPrio (callPackage ../development/libraries/nvidia-vaapi-driver { });
nvidia-video-sdk = callPackage ../development/libraries/nvidia-video-sdk { };
nvidia-optical-flow-sdk = callPackage ../development/libraries/nvidia-optical-flow-sdk { };
nvidia-system-monitor-qt = libsForQt5.callPackage ../tools/system/nvidia-system-monitor-qt { };
@ -30374,8 +30378,6 @@ with pkgs;
texlive = texlive.combined.scheme-medium;
};
aqemu = libsForQt5.callPackage ../applications/virtualization/aqemu { };
ardour_6 = callPackage ../applications/audio/ardour/6.nix { };
ardour = callPackage ../applications/audio/ardour { };
@ -30505,6 +30507,8 @@ with pkgs;
join-desktop = callPackage ../applications/misc/join-desktop { };
joincap = callPackage ../tools/security/joincap { };
json-plot = callPackage ../applications/graphics/json-plot { };
libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix {
@ -32723,8 +32727,6 @@ with pkgs;
id3v2 = callPackage ../applications/audio/id3v2 { };
ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { };
identity = callPackage ../applications/graphics/identity { };
ifenslave = callPackage ../os-specific/linux/ifenslave { };
@ -40018,12 +40020,6 @@ with pkgs;
fn-cli = callPackage ../applications/networking/cluster/fn-cli { };
areca = callPackage ../applications/backup/areca {
jdk = jdk8;
jre = jre8;
swt = swt_jdk8;
};
argononed = callPackage ../misc/drivers/argononed { };
autotiling = python3Packages.callPackage ../misc/autotiling { };