Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts: pkgs/development/libraries/qt-6/modules/qtbase.nix pkgs/stdenv/linux/make-bootstrap-tools.nix
This commit is contained in:
commit
b9b1d958d0
|
@ -1,13 +1,13 @@
|
|||
# Haskell {#haskell}
|
||||
|
||||
The Haskell infrastructure in nixpkgs has two main purposes: The primary purpose
|
||||
The Haskell infrastructure in Nixpkgs has two main purposes: The primary purpose
|
||||
is to provide a Haskell compiler and build tools as well as infrastructure for
|
||||
packaging Haskell-based packages.
|
||||
|
||||
The secondary purpose is to provide support for Haskell development environment
|
||||
The secondary purpose is to provide support for Haskell development environments
|
||||
including prebuilt Haskell libraries. However, in this area sacrifices have been
|
||||
made due to self-imposed restrictions in nixpkgs, to lessen the maintenance
|
||||
effort and improve performance. (More details in the subsection
|
||||
made due to self-imposed restrictions in Nixpkgs, to lessen the maintenance
|
||||
effort and to improve performance. (More details in the subsection
|
||||
[Limitations.](#haskell-limitations))
|
||||
|
||||
## Available packages {#haskell-available-packages}
|
||||
|
@ -18,17 +18,17 @@ The compiler and most build tools are exposed at the top level:
|
|||
* Language specific tools: `cabal-install`, `stack`, `hpack`, …
|
||||
|
||||
Many “normal” user facing packages written in Haskell, like `niv` or `cachix`,
|
||||
are also exposed at the top level, so there is nothing haskell specific to
|
||||
are also exposed at the top level, and there is nothing Haskell specific to
|
||||
installing and using them.
|
||||
|
||||
All of these packages originally are defined in the `haskellPackages` package
|
||||
All of these packages are originally defined in the `haskellPackages` package
|
||||
set and are re-exposed with a reduced dependency closure for convenience.
|
||||
(see `justStaticExecutables` below)
|
||||
|
||||
The `haskellPackages` set includes at least one version of every package from
|
||||
Hackage as well as some manually injected packages. This amounts to a lot of
|
||||
packages, so it is hidden from `nix-env -qa` by default for performance reasons.
|
||||
You can still list all packages in the set like this, though:
|
||||
You can still list all packages in the set like this:
|
||||
|
||||
```console
|
||||
$ nix-env -f '<nixpkgs>' -qaP -A haskellPackages
|
||||
|
@ -39,22 +39,22 @@ haskellPackages.abacate abac
|
|||
haskellPackages.abc-puzzle abc-puzzle-0.2.1
|
||||
…
|
||||
```
|
||||
Also the default set `haskellPackages` is included on [search.nixos.org].
|
||||
Also, the `haskellPackages` set is included on [search.nixos.org].
|
||||
|
||||
The attribute names in `haskellPackages` always correspond with their name on
|
||||
Hackage. Since Hackage allows names that are not valid Nix without extra
|
||||
escaping, you sometimes need to extra care when handling attribute names like
|
||||
`3dmodels`.
|
||||
Hackage. Since Hackage allows names that are not valid Nix without escaping,
|
||||
you need to take care when handling attribute names like `3dmodels`.
|
||||
|
||||
For packages that are part of [Stackage], we use the version prescribed by a
|
||||
Stackage solver (usually the current LTS one) as the default version. For all
|
||||
other packages we use the latest version from Hackage. See
|
||||
[below](#haskell-available-versions) to learn which versions exactly are provided.
|
||||
[below](#haskell-available-versions) to learn which versions are provided
|
||||
exactly.
|
||||
|
||||
Roughly half of the 16K packages contained in `haskellPackages` don't actually
|
||||
build and are marked as broken semi-automatically. Most of those packages are
|
||||
deprecated or unmaintained, but sometimes packages that should, don't build.
|
||||
Very often fixing them is not a lot of work.
|
||||
deprecated or unmaintained, but sometimes packages that should build, do not
|
||||
build. Very often fixing them is not a lot of work.
|
||||
|
||||
<!--
|
||||
TODO(@sternenseemann):
|
||||
|
@ -101,11 +101,11 @@ haskell.compiler.native-bignum.ghcHEAD ghc-native-bignum-9.7.20221224
|
|||
haskell.compiler.ghcjs ghcjs-8.10.7
|
||||
```
|
||||
|
||||
Every of those compilers has a corresponding attribute set built completely
|
||||
using it. However, the non-standard package sets are not tested regularly and
|
||||
have less working packages as a result. The corresponding package set for GHC
|
||||
9.4.4 is `haskell.packages.ghc944` (in fact `haskellPackages` is just an alias
|
||||
for `haskell.packages.ghc924`):
|
||||
Each of those compiler versions has a corresponding attribute set built using
|
||||
it. However, the non-standard package sets are not tested regularly and, as a
|
||||
result, contain fewer working packages. The corresponding package set for GHC
|
||||
9.4.4 is `haskell.packages.ghc944`. In fact `haskellPackages` is just an alias
|
||||
for `haskell.packages.ghc924`:
|
||||
|
||||
```console
|
||||
$ nix-env -f '<nixpkgs>' -qaP -A haskell.packages.ghc924
|
||||
|
|
|
@ -107,7 +107,7 @@ rec {
|
|||
# Same as `makeExtensible` but the name of the extending attribute is
|
||||
# customized.
|
||||
makeExtensibleWithCustomName = extenderName: rattrs:
|
||||
fix' rattrs // {
|
||||
fix' (self: (rattrs self) // {
|
||||
${extenderName} = f: makeExtensibleWithCustomName extenderName (extends f rattrs);
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
|
@ -68,6 +68,7 @@ in {
|
|||
none = [];
|
||||
|
||||
arm = filterDoubles predicates.isAarch32;
|
||||
armv7 = filterDoubles predicates.isArmv7;
|
||||
aarch64 = filterDoubles predicates.isAarch64;
|
||||
x86 = filterDoubles predicates.isx86;
|
||||
i686 = filterDoubles predicates.isi686;
|
||||
|
@ -75,6 +76,7 @@ in {
|
|||
microblaze = filterDoubles predicates.isMicroBlaze;
|
||||
mips = filterDoubles predicates.isMips;
|
||||
mmix = filterDoubles predicates.isMmix;
|
||||
power = filterDoubles predicates.isPower;
|
||||
riscv = filterDoubles predicates.isRiscV;
|
||||
riscv32 = filterDoubles predicates.isRiscV32;
|
||||
riscv64 = filterDoubles predicates.isRiscV64;
|
||||
|
@ -83,6 +85,7 @@ in {
|
|||
or1k = filterDoubles predicates.isOr1k;
|
||||
m68k = filterDoubles predicates.isM68k;
|
||||
s390 = filterDoubles predicates.isS390;
|
||||
s390x = filterDoubles predicates.isS390x;
|
||||
js = filterDoubles predicates.isJavaScript;
|
||||
|
||||
bigEndian = filterDoubles predicates.isBigEndian;
|
||||
|
|
|
@ -22,6 +22,9 @@ rec {
|
|||
];
|
||||
isx86 = { cpu = { family = "x86"; }; };
|
||||
isAarch32 = { cpu = { family = "arm"; bits = 32; }; };
|
||||
isArmv7 = map ({ arch, ... }: { cpu = { inherit arch; }; })
|
||||
(lib.filter (cpu: lib.hasPrefix "armv7" cpu.arch or "")
|
||||
(lib.attrValues cpuTypes));
|
||||
isAarch64 = { cpu = { family = "arm"; bits = 64; }; };
|
||||
isAarch = { cpu = { family = "arm"; }; };
|
||||
isMicroBlaze = { cpu = { family = "microblaze"; }; };
|
||||
|
@ -44,6 +47,7 @@ rec {
|
|||
isOr1k = { cpu = { family = "or1k"; }; };
|
||||
isM68k = { cpu = { family = "m68k"; }; };
|
||||
isS390 = { cpu = { family = "s390"; }; };
|
||||
isS390x = { cpu = { family = "s390"; bits = 64; }; };
|
||||
isJavaScript = { cpu = cpuTypes.js; };
|
||||
|
||||
is32bit = { cpu = { bits = 32; }; };
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ # The pkgs used for dependencies for the testing itself
|
||||
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
|
||||
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; }
|
||||
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
|
||||
nix ? pkgs.nix,
|
||||
}:
|
||||
|
||||
pkgs.runCommand "nixpkgs-lib-tests" {
|
||||
buildInputs = [
|
||||
pkgs.nix
|
||||
(import ./check-eval.nix)
|
||||
(import ./maintainers.nix {
|
||||
inherit pkgs;
|
||||
|
@ -19,8 +19,12 @@ pkgs.runCommand "nixpkgs-lib-tests" {
|
|||
inherit pkgs;
|
||||
})
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
nix
|
||||
];
|
||||
strictDeps = true;
|
||||
} ''
|
||||
datadir="${pkgs.nix}/share"
|
||||
datadir="${nix}/share"
|
||||
export TEST_ROOT=$(pwd)/test-tmp
|
||||
export NIX_BUILD_HOOK=
|
||||
export NIX_CONF_DIR=$TEST_ROOT/etc
|
||||
|
|
|
@ -16,12 +16,15 @@ with lib.systems.doubles; lib.runTests {
|
|||
testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ mmix ++ js ++ genode ++ redox);
|
||||
|
||||
testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-netbsd" "armv6l-none" "armv7a-linux" "armv7a-netbsd" "armv7l-linux" "armv7l-netbsd" "arm-none" "armv7a-darwin" ];
|
||||
testarmv7 = mseteq armv7 [ "armv7a-darwin" "armv7a-linux" "armv7l-linux" "armv7a-netbsd" "armv7l-netbsd" ];
|
||||
testi686 = mseteq i686 [ "i686-linux" "i686-freebsd13" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
|
||||
testmips = mseteq mips [ "mips64el-linux" "mipsel-linux" "mipsel-netbsd" ];
|
||||
testmmix = mseteq mmix [ "mmix-mmixware" ];
|
||||
testpower = mseteq power [ "powerpc-netbsd" "powerpc-none" "powerpc64-linux" "powerpc64le-linux" "powerpcle-none" ];
|
||||
testriscv = mseteq riscv [ "riscv32-linux" "riscv64-linux" "riscv32-netbsd" "riscv64-netbsd" "riscv32-none" "riscv64-none" ];
|
||||
testriscv32 = mseteq riscv32 [ "riscv32-linux" "riscv32-netbsd" "riscv32-none" ];
|
||||
testriscv64 = mseteq riscv64 [ "riscv64-linux" "riscv64-netbsd" "riscv64-none" ];
|
||||
tests390x = mseteq s390x [ "s390x-linux" "s390x-none" ];
|
||||
testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd13" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
|
||||
|
||||
testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
|
||||
|
|
|
@ -1330,6 +1330,12 @@
|
|||
githubId = 55833;
|
||||
name = "Troels Henriksen";
|
||||
};
|
||||
athre0z = {
|
||||
email = "joel@zyantific.com";
|
||||
github = "athre0z";
|
||||
githubId = 6553158;
|
||||
name = "Joel Höner";
|
||||
};
|
||||
atila = {
|
||||
name = "Átila Saraiva";
|
||||
email = "atilasaraiva@gmail.com";
|
||||
|
@ -4189,6 +4195,12 @@
|
|||
githubId = 5300871;
|
||||
name = "Leon Kowarschick";
|
||||
};
|
||||
elnudev = {
|
||||
email = "elnu@elnu.com";
|
||||
github = "elnudev";
|
||||
githubId = 9874955;
|
||||
name = "Elnu";
|
||||
};
|
||||
elohmeier = {
|
||||
email = "elo-nixos@nerdworks.de";
|
||||
github = "elohmeier";
|
||||
|
@ -9954,6 +9966,12 @@
|
|||
fingerprint = "7A10 AB8E 0BEC 566B 090C 9BE3 D812 6E55 9CE7 C35D";
|
||||
}];
|
||||
};
|
||||
nat-418 = {
|
||||
email = "93013864+nat-418@users.noreply.github.com";
|
||||
github = "nat-418";
|
||||
githubId = 93013864;
|
||||
name = "nat-418";
|
||||
};
|
||||
nathanruiz = {
|
||||
email = "nathanruiz@protonmail.com";
|
||||
github = "nathanruiz";
|
||||
|
@ -10764,6 +10782,12 @@
|
|||
githubId = 15930073;
|
||||
name = "Moritz Scheuren";
|
||||
};
|
||||
ovlach = {
|
||||
email = "ondrej@vlach.xyz";
|
||||
name = "Ondrej Vlach";
|
||||
github = "ovlach";
|
||||
githubId = 4405107;
|
||||
};
|
||||
ozkutuk = {
|
||||
email = "ozkutuk@protonmail.com";
|
||||
github = "ozkutuk";
|
||||
|
|
|
@ -270,6 +270,16 @@
|
|||
stage-2.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>teleport</literal> has been upgraded to major version
|
||||
11. Please see upstream
|
||||
<link xlink:href="https://goteleport.com/docs/setup/operations/upgrading/">upgrade
|
||||
instructions</link> and
|
||||
<link xlink:href="https://goteleport.com/docs/changelog/#1100">release
|
||||
notes</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The EC2 image module previously detected and activated
|
||||
|
@ -414,6 +424,16 @@
|
|||
which now also accepts structured settings.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>wordpress</literal> service now takes
|
||||
configuration via the
|
||||
<literal>services.wordpress.sites.<name>.settings</literal>
|
||||
attribute set, <literal>extraConfig</literal> is still
|
||||
available to append additional text to
|
||||
<literal>wp-config.php</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
To reduce closure size in
|
||||
|
@ -521,6 +541,22 @@
|
|||
dynamically.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>root</literal> package is now built with the
|
||||
<literal>"-Dgnuinstall=ON"</literal> CMake flag,
|
||||
making the output conform the <literal>bin</literal>
|
||||
<literal>lib</literal> <literal>share</literal> layout. In
|
||||
this layout, <literal>tutorials</literal> is under
|
||||
<literal>share/doc/ROOT/</literal>; <literal>cmake</literal>,
|
||||
<literal>font</literal>, <literal>icons</literal>,
|
||||
<literal>js</literal> and <literal>macro</literal> under
|
||||
<literal>share/root</literal>;
|
||||
<literal>Makefile.comp</literal> and
|
||||
<literal>Makefile.config</literal> under
|
||||
<literal>etc/root</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
Enabling global redirect in
|
||||
|
@ -616,6 +652,13 @@
|
|||
information about the current generation revision
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option
|
||||
<literal>services.nomad.extraSettingsPlugins</literal> has
|
||||
been fixed to allow more than one plugin in the path.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -71,6 +71,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The EC2 image module previously detected and automatically mounted ext3-formatted instance store devices and partitions in stage-1 (initramfs), storing `/tmp` on the first discovered device. This behaviour, which only catered to very specific use cases and could not be disabled, has been removed. Users relying on this should provide their own implementation, and probably use ext4 and perform the mount in stage-2.
|
||||
|
||||
- `teleport` has been upgraded to major version 11. Please see upstream [upgrade instructions](https://goteleport.com/docs/setup/operations/upgrading/) and [release notes](https://goteleport.com/docs/changelog/#1100).
|
||||
|
||||
- The EC2 image module previously detected and activated swap-formatted instance store devices and partitions in stage-1 (initramfs). This behaviour has been removed. Users relying on this should provide their own implementation.
|
||||
|
||||
- Calling `makeSetupHook` without passing a `name` argument is deprecated.
|
||||
|
@ -111,6 +113,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
The `{aclUse,superUser,disableActions}` attributes have been renamed, `pluginsConfig` now also accepts an attribute set of booleans, passing plain PHP is deprecated.
|
||||
Same applies to `acl` which now also accepts structured settings.
|
||||
|
||||
- The `wordpress` service now takes configuration via the `services.wordpress.sites.<name>.settings` attribute set, `extraConfig` is still available to append additional text to `wp-config.php`.
|
||||
|
||||
- To reduce closure size in `nixos/modules/profiles/minimal.nix` profile disabled installation documentations and manuals. Also disabled `logrotate` and `udisks2` services.
|
||||
|
||||
- The minimal ISO image now uses the `nixos/modules/profiles/minimal.nix` profile.
|
||||
|
@ -140,6 +144,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- The new option `users.motdFile` allows configuring a Message Of The Day that can be updated dynamically.
|
||||
|
||||
- The `root` package is now built with the `"-Dgnuinstall=ON"` CMake flag, making the output conform the `bin` `lib` `share` layout. In this layout, `tutorials` is under `share/doc/ROOT/`; `cmake`, `font`, `icons`, `js` and `macro` under `share/root`; `Makefile.comp` and `Makefile.config` under `etc/root`.
|
||||
|
||||
- Enabling global redirect in `services.nginx.virtualHosts` now allows one to add exceptions with the `locations` option.
|
||||
|
||||
- A new option `recommendedBrotliSettings` has been added to `services.nginx`. Learn more about compression in Brotli format [here](https://github.com/google/ngx_brotli/blob/master/README.md).
|
||||
|
@ -161,3 +167,5 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
- [Xastir](https://xastir.org/index.php/Main_Page) can now access AX.25 interfaces via the `libax25` package.
|
||||
|
||||
- `nixos-version` now accepts `--configuration-revision` to display more information about the current generation revision
|
||||
|
||||
- The option `services.nomad.extraSettingsPlugins` has been fixed to allow more than one plugin in the path.
|
||||
|
|
|
@ -32,13 +32,17 @@ with lib;
|
|||
dbus = super.dbus.override { x11Support = false; };
|
||||
ffmpeg_4 = super.ffmpeg_4-headless;
|
||||
ffmpeg_5 = super.ffmpeg_5-headless;
|
||||
# dep of graphviz, libXpm is optional for Xpm support
|
||||
gd = super.gd.override { withXorg = false; };
|
||||
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
||||
gpsd = super.gpsd.override { guiSupport = false; };
|
||||
graphviz = super.graphviz-nox;
|
||||
gst_all_1 = super.gst_all_1 // {
|
||||
gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableX11 = false; };
|
||||
};
|
||||
gpsd = super.gpsd.override { guiSupport = false; };
|
||||
imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
|
||||
imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
|
||||
libdevil = super.libdevil-nox;
|
||||
libextractor = super.libextractor.override { gtkSupport = false; };
|
||||
libva = super.libva-minimal;
|
||||
limesuite = super.limesuite.override { withGui = false; };
|
||||
|
@ -51,9 +55,13 @@ with lib;
|
|||
networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
|
||||
networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
|
||||
networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
|
||||
pango = super.pango.override { x11Support = false; };
|
||||
pinentry = super.pinentry.override { enabledFlavors = [ "curses" "tty" "emacs" ]; withLibsecret = false; };
|
||||
qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
|
||||
qrencode = super.qrencode.overrideAttrs (_: { doCheck = false; });
|
||||
stoken = super.stoken.override { withGTK3 = false; };
|
||||
# translateManpages -> perlPackages.po4a -> texlive-combined-basic -> texlive-core-big -> libX11
|
||||
util-linux = super.util-linux.override { translateManpages = false; };
|
||||
zbar = super.zbar.override { enableVideo = false; withXorg = false; };
|
||||
}));
|
||||
};
|
||||
|
|
|
@ -66,7 +66,7 @@ let
|
|||
|
||||
device = mkOption {
|
||||
example = "/dev/sda3";
|
||||
type = types.str;
|
||||
type = types.nonEmptyStr;
|
||||
description = lib.mdDoc "Path of the device or swap file.";
|
||||
};
|
||||
|
||||
|
@ -197,6 +197,21 @@ in
|
|||
};
|
||||
|
||||
config = mkIf ((length config.swapDevices) != 0) {
|
||||
assertions = map (sw: {
|
||||
assertion = sw.randomEncryption.enable -> builtins.match "/dev/disk/by-(uuid|label)/.*" sw.device == null;
|
||||
message = ''
|
||||
You cannot use swap device "${sw.device}" with randomEncryption enabled.
|
||||
The UUIDs and labels will get erased on every boot when the partition is encrypted.
|
||||
Use /dev/disk/by-partuuid/… instead.
|
||||
'';
|
||||
}) config.swapDevices;
|
||||
|
||||
warnings =
|
||||
concatMap (sw:
|
||||
if sw.size != null && hasPrefix "/dev/" sw.device
|
||||
then [ "Setting the swap size of block device ${sw.device} has no effect" ]
|
||||
else [ ])
|
||||
config.swapDevices;
|
||||
|
||||
system.requiredKernelConfig = with config.lib.kernelConfig; [
|
||||
(isYes "SWAP")
|
||||
|
@ -205,24 +220,27 @@ in
|
|||
# Create missing swapfiles.
|
||||
systemd.services =
|
||||
let
|
||||
|
||||
createSwapDevice = sw:
|
||||
assert sw.device != "";
|
||||
assert !(sw.randomEncryption.enable && lib.hasPrefix "/dev/disk/by-uuid" sw.device);
|
||||
assert !(sw.randomEncryption.enable && lib.hasPrefix "/dev/disk/by-label" sw.device);
|
||||
let realDevice' = escapeSystemdPath sw.realDevice;
|
||||
in nameValuePair "mkswap-${sw.deviceName}"
|
||||
{ description = "Initialisation of swap device ${sw.device}";
|
||||
wantedBy = [ "${realDevice'}.swap" ];
|
||||
before = [ "${realDevice'}.swap" ];
|
||||
path = [ pkgs.util-linux ] ++ optional sw.randomEncryption.enable pkgs.cryptsetup;
|
||||
path = [ pkgs.util-linux pkgs.e2fsprogs ]
|
||||
++ optional sw.randomEncryption.enable pkgs.cryptsetup;
|
||||
|
||||
environment.DEVICE = sw.device;
|
||||
|
||||
script =
|
||||
''
|
||||
${optionalString (sw.size != null) ''
|
||||
currentSize=$(( $(stat -c "%s" "${sw.device}" 2>/dev/null || echo 0) / 1024 / 1024 ))
|
||||
if [ "${toString sw.size}" != "$currentSize" ]; then
|
||||
dd if=/dev/zero of="${sw.device}" bs=1M count=${toString sw.size}
|
||||
currentSize=$(( $(stat -c "%s" "$DEVICE" 2>/dev/null || echo 0) / 1024 / 1024 ))
|
||||
if [[ ! -b "$DEVICE" && "${toString sw.size}" != "$currentSize" ]]; then
|
||||
# Disable CoW for CoW based filesystems like BTRFS.
|
||||
truncate --size 0 "$DEVICE"
|
||||
chattr +C "$DEVICE" 2>/dev/null || true
|
||||
|
||||
dd if=/dev/zero of="$DEVICE" bs=1M count=${toString sw.size}
|
||||
chmod 0600 ${sw.device}
|
||||
${optionalString (!sw.randomEncryption.enable) "mkswap ${sw.realDevice}"}
|
||||
fi
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
|
||||
documentation.man.enable = lib.mkOverride 500 true;
|
||||
|
||||
# Although we don't really need HTML documentation in the minimal installer,
|
||||
# not including it may cause annoying cache misses in the case of the NixOS manual.
|
||||
documentation.doc.enable = lib.mkOverride 500 true;
|
||||
|
||||
fonts.fontconfig.enable = lib.mkForce false;
|
||||
|
||||
isoImage.edition = lib.mkForce "minimal";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
x86_64-linux = "/nix/store/h88w1442c7hzkbw8sgpcsbqp4lhz6l5p-nix-2.12.0";
|
||||
i686-linux = "/nix/store/j23527l1c3hfx17nssc0v53sq6c741zs-nix-2.12.0";
|
||||
aarch64-linux = "/nix/store/zgzmdymyh934y3r4vqh8z337ba4cwsjb-nix-2.12.0";
|
||||
x86_64-darwin = "/nix/store/wnlrzllazdyg1nrw9na497p4w0m7i7mm-nix-2.12.0";
|
||||
aarch64-darwin = "/nix/store/7n5yamgzg5dpp5vb6ipdqgfh6cf30wmn-nix-2.12.0";
|
||||
x86_64-linux = "/nix/store/vggs4ndlda1bhnldjrs4nm5a2walsnl6-nix-2.13.1";
|
||||
i686-linux = "/nix/store/5g6w3p8l8k2mfghxrg48w7fcqbmr3c2p-nix-2.13.1";
|
||||
aarch64-linux = "/nix/store/pkbg60qv1w387c80g4xnb6w06461vw3i-nix-2.13.1";
|
||||
x86_64-darwin = "/nix/store/jahjn6dvlw5kygqhg6da1b2ydcdak4lx-nix-2.13.1";
|
||||
aarch64-darwin = "/nix/store/2qalrx6py8r640wqsldmdf2zsaf8cpsg-nix-2.13.1";
|
||||
}
|
||||
|
|
15
nixos/modules/installer/tools/nixos-install.sh
Normal file → Executable file
15
nixos/modules/installer/tools/nixos-install.sh
Normal file → Executable file
|
@ -195,7 +195,20 @@ if [[ -z $noBootLoader ]]; then
|
|||
echo "installing the boot loader..."
|
||||
# Grub needs an mtab.
|
||||
ln -sfn /proc/mounts "$mountPoint"/etc/mtab
|
||||
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -- /run/current-system/bin/switch-to-configuration boot
|
||||
export mountPoint
|
||||
NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -c "$(cat <<'EOF'
|
||||
# Create a bind mount for each of the mount points inside the target file
|
||||
# system. This preserves the validity of their absolute paths after changing
|
||||
# the root with `nixos-enter`.
|
||||
# Without this the bootloader installation may fail due to options that
|
||||
# contain paths referenced during evaluation, like initrd.secrets.
|
||||
# when not root, re-execute the script in an unshared namespace
|
||||
mount --rbind --mkdir / "$mountPoint"
|
||||
mount --make-rslave "$mountPoint"
|
||||
/run/current-system/bin/switch-to-configuration boot
|
||||
umount -R "$mountPoint" && rmdir "$mountPoint"
|
||||
EOF
|
||||
)"
|
||||
fi
|
||||
|
||||
# Ask the user to set a root password, but only if the passwd command
|
||||
|
|
|
@ -235,6 +235,8 @@ in
|
|||
nixos-enter
|
||||
] ++ lib.optional (nixos-option != null) nixos-option;
|
||||
|
||||
documentation.man.man-db.skipPackages = [ nixos-version ];
|
||||
|
||||
system.build = {
|
||||
inherit nixos-install nixos-generate-config nixos-option nixos-rebuild nixos-enter;
|
||||
};
|
||||
|
|
|
@ -13,11 +13,21 @@ in
|
|||
example = false;
|
||||
};
|
||||
|
||||
skipPackages = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.package;
|
||||
default = [];
|
||||
internal = true;
|
||||
description = lib.mdDoc ''
|
||||
Packages to *not* include in the man-db.
|
||||
This can be useful to avoid unnecessary rebuilds due to packages that change frequently, like nixos-version.
|
||||
'';
|
||||
};
|
||||
|
||||
manualPages = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = pkgs.buildEnv {
|
||||
name = "man-paths";
|
||||
paths = config.environment.systemPackages;
|
||||
paths = lib.subtractLists cfg.skipPackages config.environment.systemPackages;
|
||||
pathsToLink = [ "/share/man" ];
|
||||
extraOutputsToInstall = [ "man" ]
|
||||
++ lib.optionals config.documentation.dev.enable [ "devman" ];
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
pkgs.rsync
|
||||
pkgs.socat
|
||||
pkgs.screen
|
||||
pkgs.tcpdump
|
||||
|
||||
# Hardware-related tools.
|
||||
pkgs.sdparm
|
||||
|
|
|
@ -175,7 +175,7 @@ in
|
|||
};
|
||||
|
||||
type = mkOption {
|
||||
type = types.enum [ "zip" "rar" "tar" "sz" "tar.gz" "tar.xz" "tar.bz2" "tar.br" "tar.lz4" ];
|
||||
type = types.enum [ "zip" "rar" "tar" "sz" "tar.gz" "tar.xz" "tar.bz2" "tar.br" "tar.lz4" "tar.zst" ];
|
||||
default = "zip";
|
||||
description = lib.mdDoc "Archive format used to store the dump file.";
|
||||
};
|
||||
|
|
|
@ -67,7 +67,7 @@ in
|
|||
Additional plugins dir used to configure nomad.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
[ "<pluginDir>" pkgs.<plugins-name> ]
|
||||
[ "<pluginDir>" pkgs.nomad-driver-nix pkgs.nomad-driver-podman ]
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -139,9 +139,16 @@ in
|
|||
{
|
||||
DynamicUser = cfg.dropPrivileges;
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
ExecStart = "${cfg.package}/bin/nomad agent -config=/etc/nomad.json" +
|
||||
concatMapStrings (path: " -config=${path}") cfg.extraSettingsPaths +
|
||||
concatMapStrings (path: " -plugin-dir=${path}/bin") cfg.extraSettingsPlugins;
|
||||
ExecStart =
|
||||
let
|
||||
pluginsDir = pkgs.symlinkJoin
|
||||
{
|
||||
name = "nomad-plugins";
|
||||
paths = cfg.extraSettingsPlugins;
|
||||
};
|
||||
in
|
||||
"${cfg.package}/bin/nomad agent -config=/etc/nomad.json -plugin-dir=${pluginsDir}/bin" +
|
||||
concatMapStrings (path: " -config=${path}") cfg.extraSettingsPaths;
|
||||
KillMode = "process";
|
||||
KillSignal = "SIGINT";
|
||||
LimitNOFILE = 65536;
|
||||
|
|
|
@ -73,28 +73,16 @@ let
|
|||
${if isString pc then pc else pc_gen pc}
|
||||
'';
|
||||
|
||||
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
|
||||
pname = "dokuwiki-${hostName}";
|
||||
version = src.version;
|
||||
src = cfg.package;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -r * $out/
|
||||
pkg = hostName: cfg: cfg.package.combine {
|
||||
inherit (cfg) plugins templates;
|
||||
|
||||
# symlink the dokuwiki config
|
||||
ln -sf ${dokuwikiLocalConfig hostName cfg} $out/share/dokuwiki/conf/local.php
|
||||
pname = p: "${p.pname}-${hostName}";
|
||||
|
||||
# symlink plugins config
|
||||
ln -sf ${dokuwikiPluginsLocalConfig hostName cfg} $out/share/dokuwiki/conf/plugins.local.php
|
||||
|
||||
# symlink acl (if needed)
|
||||
${optionalString (cfg.mergedConfig.useacl && cfg.acl != null) "ln -sf ${dokuwikiAclAuthConfig hostName cfg} $out/share/dokuwiki/acl.auth.php"}
|
||||
|
||||
# symlink additional plugin(s) and templates(s)
|
||||
${concatMapStringsSep "\n" (template: "ln -sf ${template} $out/share/dokuwiki/lib/tpl/${template.name}") cfg.templates}
|
||||
${concatMapStringsSep "\n" (plugin: "ln -sf ${plugin} $out/share/dokuwiki/lib/plugins/${plugin.name}") cfg.plugins}
|
||||
'';
|
||||
basePackage = cfg.package;
|
||||
localConfig = dokuwikiLocalConfig hostName cfg;
|
||||
pluginsConfig = dokuwikiPluginsLocalConfig hostName cfg;
|
||||
aclConfig = if cfg.aclUse && cfg.acl != null then dokuwikiAclAuthConfig hostName cfg else null;
|
||||
};
|
||||
|
||||
aclOpts = { ... }: {
|
||||
|
|
|
@ -113,7 +113,13 @@ in {
|
|||
documentation = [ "https://docs.requarks.io/" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
path = with pkgs; [ coreutils ];
|
||||
path = with pkgs; [
|
||||
# Needed for git storage.
|
||||
git
|
||||
# Needed for git+ssh storage.
|
||||
openssh
|
||||
];
|
||||
|
||||
preStart = ''
|
||||
ln -sf ${configFile} /var/lib/${cfg.stateDirectoryName}/config.yml
|
||||
ln -sf ${pkgs.wiki-js}/server /var/lib/${cfg.stateDirectoryName}
|
||||
|
|
|
@ -38,29 +38,53 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
wpConfig = hostName: cfg: pkgs.writeText "wp-config-${hostName}.php" ''
|
||||
<?php
|
||||
define('DB_NAME', '${cfg.database.name}');
|
||||
define('DB_HOST', '${cfg.database.host}:${if cfg.database.socket != null then cfg.database.socket else toString cfg.database.port}');
|
||||
define('DB_USER', '${cfg.database.user}');
|
||||
${optionalString (cfg.database.passwordFile != null) "define('DB_PASSWORD', file_get_contents('${cfg.database.passwordFile}'));"}
|
||||
define('DB_CHARSET', 'utf8');
|
||||
$table_prefix = '${cfg.database.tablePrefix}';
|
||||
mergeConfig = cfg: {
|
||||
# wordpress is installed onto a read-only file system
|
||||
DISALLOW_FILE_EDIT = true;
|
||||
AUTOMATIC_UPDATER_DISABLED = true;
|
||||
DB_NAME = cfg.database.name;
|
||||
DB_HOST = "${cfg.database.host}:${if cfg.database.socket != null then cfg.database.socket else toString cfg.database.port}";
|
||||
DB_USER = cfg.database.user;
|
||||
DB_CHARSET = "utf8";
|
||||
# Always set DB_PASSWORD even when passwordFile is not set. This is the
|
||||
# default Wordpress behaviour.
|
||||
DB_PASSWORD = if (cfg.database.passwordFile != null) then { _file = cfg.database.passwordFile; } else "";
|
||||
} // cfg.settings;
|
||||
|
||||
require_once('${stateDir hostName}/secret-keys.php');
|
||||
wpConfig = hostName: cfg: let
|
||||
conf_gen = c: mapAttrsToList (k: v: "define('${k}', ${mkPhpValue v});") cfg.mergedConfig;
|
||||
in pkgs.writeTextFile {
|
||||
name = "wp-config-${hostName}.php";
|
||||
text = ''
|
||||
<?php
|
||||
$table_prefix = '${cfg.database.tablePrefix}';
|
||||
|
||||
# wordpress is installed onto a read-only file system
|
||||
define('DISALLOW_FILE_EDIT', true);
|
||||
define('AUTOMATIC_UPDATER_DISABLED', true);
|
||||
require_once('${stateDir hostName}/secret-keys.php');
|
||||
|
||||
${cfg.extraConfig}
|
||||
${cfg.extraConfig}
|
||||
${concatStringsSep "\n" (conf_gen cfg.mergedConfig)}
|
||||
|
||||
if ( !defined('ABSPATH') )
|
||||
define('ABSPATH', dirname(__FILE__) . '/');
|
||||
if ( !defined('ABSPATH') )
|
||||
define('ABSPATH', dirname(__FILE__) . '/');
|
||||
|
||||
require_once(ABSPATH . 'wp-settings.php');
|
||||
?>
|
||||
'';
|
||||
require_once(ABSPATH . 'wp-settings.php');
|
||||
?>
|
||||
'';
|
||||
checkPhase = "${pkgs.php81}/bin/php --syntax-check $target";
|
||||
};
|
||||
|
||||
mkPhpValue = v: let
|
||||
isHasAttr = s: isAttrs v && hasAttr s v;
|
||||
in
|
||||
if isString v then escapeShellArg v
|
||||
# NOTE: If any value contains a , (comma) this will not get escaped
|
||||
else if isList v && any lib.strings.isCoercibleToString v then escapeShellArg (concatMapStringsSep "," toString v)
|
||||
else if isInt v then toString v
|
||||
else if isBool v then boolToString v
|
||||
else if isHasAttr "_file" then "trim(file_get_contents(${lib.escapeShellArg v._file}))"
|
||||
else if isHasAttr "_raw" then v._raw
|
||||
else abort "The Wordpress config value ${lib.generators.toPretty {} v} can not be encoded."
|
||||
;
|
||||
|
||||
secretsVars = [ "AUTH_KEY" "SECURE_AUTH_KEY" "LOGGED_IN_KEY" "NONCE_KEY" "AUTH_SALT" "SECURE_AUTH_SALT" "LOGGED_IN_SALT" "NONCE_SALT" ];
|
||||
secretsScript = hostStateDir: ''
|
||||
|
@ -77,7 +101,7 @@ let
|
|||
fi
|
||||
'';
|
||||
|
||||
siteOpts = { lib, name, ... }:
|
||||
siteOpts = { lib, name, config, ... }:
|
||||
{
|
||||
options = {
|
||||
package = mkOption {
|
||||
|
@ -283,6 +307,42 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
settings = mkOption {
|
||||
type = types.attrsOf types.anything;
|
||||
default = {};
|
||||
description = lib.mdDoc ''
|
||||
Structural Wordpress configuration.
|
||||
Refer to <https://developer.wordpress.org/apis/wp-config-php>
|
||||
for details and supported values.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
{
|
||||
WP_DEFAULT_THEME = "twentytwentytwo";
|
||||
WP_SITEURL = "https://example.org";
|
||||
WP_HOME = "https://example.org";
|
||||
WP_DEBUG = true;
|
||||
WP_DEBUG_DISPLAY = true;
|
||||
WPLANG = "de_DE";
|
||||
FORCE_SSL_ADMIN = true;
|
||||
AUTOMATIC_UPDATER_DISABLED = true;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
mergedConfig = mkOption {
|
||||
readOnly = true;
|
||||
default = mergeConfig config;
|
||||
defaultText = literalExpression ''
|
||||
{
|
||||
DISALLOW_FILE_EDIT = true;
|
||||
AUTOMATIC_UPDATER_DISABLED = true;
|
||||
}
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
Read only representation of the final configuration.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
|
@ -290,11 +350,16 @@ let
|
|||
Any additional text to be appended to the wp-config.php
|
||||
configuration file. This is a PHP script. For configuration
|
||||
settings, see <https://codex.wordpress.org/Editing_wp-config.php>.
|
||||
|
||||
**Note**: Please pass structured settings via
|
||||
`services.wordpress.sites.${name}.settings` instead.
|
||||
'';
|
||||
example = ''
|
||||
define( 'AUTOSAVE_INTERVAL', 60 ); // Seconds
|
||||
@ini_set( 'log_errors', 'Off' );
|
||||
@ini_set( 'display_errors', 'On' );
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config.virtualHost.hostName = mkDefault name;
|
||||
|
|
|
@ -401,7 +401,18 @@ in
|
|||
|
||||
environment.etc."X11/xkb".source = xcfg.xkbDir;
|
||||
|
||||
environment.sessionVariables.PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
|
||||
environment.sessionVariables = {
|
||||
PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
|
||||
|
||||
# Needed for things that depend on other store.kde.org packages to install correctly,
|
||||
# notably Plasma look-and-feel packages (a.k.a. Global Themes)
|
||||
#
|
||||
# FIXME: this is annoyingly impure and should really be fixed at source level somehow,
|
||||
# but kpackage is a library so we can't just wrap the one thing invoking it and be done.
|
||||
# This also means things won't work for people not on Plasma, but at least this way it
|
||||
# works for SOME people.
|
||||
KPACKAGE_DEP_RESOLVERS_PATH = "${pkgs.plasma5Packages.frameworkintegration.out}/libexec/kf5/kpackagehandlers";
|
||||
};
|
||||
|
||||
# Enable GTK applications to load SVG icons
|
||||
services.xserver.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
|
||||
|
|
|
@ -442,7 +442,7 @@ sub copyToKernelsDir {
|
|||
}
|
||||
|
||||
sub addEntry {
|
||||
my ($name, $path, $options) = @_;
|
||||
my ($name, $path, $options, $current) = @_;
|
||||
return unless -e "$path/kernel" && -e "$path/initrd";
|
||||
|
||||
my $kernel = copyToKernelsDir(Cwd::abs_path("$path/kernel"));
|
||||
|
@ -458,7 +458,14 @@ sub addEntry {
|
|||
# Make sure initrd is not world readable (won't work if /boot is FAT)
|
||||
umask 0137;
|
||||
my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
|
||||
system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
|
||||
if (system("$path/append-initrd-secrets", $initrdSecretsPathTemp) != 0) {
|
||||
if ($current) {
|
||||
die "failed to create initrd secrets $!\n";
|
||||
} else {
|
||||
say STDERR "warning: failed to create initrd secrets for \"$name\", an older generation";
|
||||
say STDERR "note: this is normal after having removed or renamed a file in `boot.initrd.secrets`";
|
||||
}
|
||||
}
|
||||
# Check whether any secrets were actually added
|
||||
if (-e $initrdSecretsPathTemp && ! -z _) {
|
||||
rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
|
||||
|
@ -491,7 +498,7 @@ sub addEntry {
|
|||
}
|
||||
$conf .= "\n";
|
||||
} else {
|
||||
$conf .= "menuentry \"$name\" " . ($options||"") . " {\n";
|
||||
$conf .= "menuentry \"$name\" " . $options . " {\n";
|
||||
if ($saveDefault) {
|
||||
$conf .= " savedefault\n";
|
||||
}
|
||||
|
@ -511,7 +518,7 @@ sub addEntry {
|
|||
# Add default entries.
|
||||
$conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
|
||||
|
||||
addEntry("@distroName@ - Default", $defaultConfig, $entryOptions);
|
||||
addEntry("@distroName@ - Default", $defaultConfig, $entryOptions, 1);
|
||||
|
||||
$conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
|
||||
|
||||
|
@ -536,7 +543,7 @@ foreach my $link (@links) {
|
|||
my $linkname = basename($link);
|
||||
$entryName = "($linkname - $date - $version)";
|
||||
}
|
||||
addEntry("@distroName@ - $entryName", $link);
|
||||
addEntry("@distroName@ - $entryName", $link, "", 1);
|
||||
}
|
||||
|
||||
my $grubBootPath = $grubBoot->path;
|
||||
|
@ -568,7 +575,7 @@ sub addProfile {
|
|||
-e "$link/nixos-version"
|
||||
? readFile("$link/nixos-version")
|
||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||
addEntry("@distroName@ - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions);
|
||||
addEntry("@distroName@ - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions, 0);
|
||||
}
|
||||
|
||||
$conf .= "}\n" if $grubVersion == 2;
|
||||
|
|
|
@ -42,7 +42,7 @@ def system_dir(profile: Optional[str], generation: int, specialisation: Optional
|
|||
else:
|
||||
return d
|
||||
|
||||
BOOT_ENTRY = """title @distroName@{profile}{specialisation}
|
||||
BOOT_ENTRY = """title {title}
|
||||
version Generation {generation} {description}
|
||||
linux {kernel}
|
||||
initrd {initrd}
|
||||
|
@ -106,14 +106,29 @@ def describe_generation(generation_dir: str) -> str:
|
|||
return description
|
||||
|
||||
|
||||
def write_entry(profile: Optional[str], generation: int, specialisation: Optional[str], machine_id: str) -> None:
|
||||
def write_entry(profile: Optional[str], generation: int, specialisation: Optional[str],
|
||||
machine_id: str, current: bool) -> None:
|
||||
kernel = copy_from_profile(profile, generation, specialisation, "kernel")
|
||||
initrd = copy_from_profile(profile, generation, specialisation, "initrd")
|
||||
|
||||
title = "@distroName@{profile}{specialisation}".format(
|
||||
profile=" [" + profile + "]" if profile else "",
|
||||
specialisation=" (%s)" % specialisation if specialisation else "")
|
||||
|
||||
try:
|
||||
append_initrd_secrets = profile_path(profile, generation, specialisation, "append-initrd-secrets")
|
||||
subprocess.check_call([append_initrd_secrets, "@efiSysMountPoint@%s" % (initrd)])
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
except subprocess.CalledProcessError:
|
||||
if current:
|
||||
print("failed to create initrd secrets!", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
else:
|
||||
print("warning: failed to create initrd secrets "
|
||||
f'for "{title} - Configuration {generation}", an older generation', file=sys.stderr)
|
||||
print("note: this is normal after having removed "
|
||||
"or renamed a file in `boot.initrd.secrets`", file=sys.stderr)
|
||||
entry_file = "@efiSysMountPoint@/loader/entries/%s" % (
|
||||
generation_conf_filename(profile, generation, specialisation))
|
||||
generation_dir = os.readlink(system_dir(profile, generation, specialisation))
|
||||
|
@ -123,8 +138,7 @@ def write_entry(profile: Optional[str], generation: int, specialisation: Optiona
|
|||
with open("%s/kernel-params" % (generation_dir)) as params_file:
|
||||
kernel_params = kernel_params + params_file.read()
|
||||
with open(tmp_path, 'w') as f:
|
||||
f.write(BOOT_ENTRY.format(profile=" [" + profile + "]" if profile else "",
|
||||
specialisation=" (%s)" % specialisation if specialisation else "",
|
||||
f.write(BOOT_ENTRY.format(title=title,
|
||||
generation=generation,
|
||||
kernel=kernel,
|
||||
initrd=initrd,
|
||||
|
@ -281,10 +295,11 @@ def main() -> None:
|
|||
remove_old_entries(gens)
|
||||
for gen in gens:
|
||||
try:
|
||||
write_entry(*gen, machine_id)
|
||||
is_default = os.readlink(system_dir(*gen)) == args.default_config
|
||||
write_entry(*gen, machine_id, current=is_default)
|
||||
for specialisation in get_specialisations(*gen):
|
||||
write_entry(*specialisation, machine_id)
|
||||
if os.readlink(system_dir(*gen)) == args.default_config:
|
||||
write_entry(*specialisation, machine_id, current=is_default)
|
||||
if is_default:
|
||||
write_loader_conf(*gen)
|
||||
except OSError as e:
|
||||
profile = f"profile '{gen.profile}'" if gen.profile else "default profile"
|
||||
|
|
|
@ -39,6 +39,20 @@ let
|
|||
"timers.target"
|
||||
"xdg-desktop-autostart.target"
|
||||
] ++ config.systemd.additionalUpstreamUserUnits;
|
||||
|
||||
writeTmpfiles = { rules, user ? null }:
|
||||
let
|
||||
suffix = if user == null then "" else "-${user}";
|
||||
in
|
||||
pkgs.writeTextFile {
|
||||
name = "nixos-user-tmpfiles.d${suffix}";
|
||||
destination = "/etc/xdg/user-tmpfiles.d/00-nixos${suffix}.conf";
|
||||
text = ''
|
||||
# This file is created automatically and should not be modified.
|
||||
# Please change the options ‘systemd.user.tmpfiles’ instead.
|
||||
${concatStringsSep "\n" rules}
|
||||
'';
|
||||
};
|
||||
in {
|
||||
options = {
|
||||
systemd.user.extraConfig = mkOption {
|
||||
|
@ -93,6 +107,43 @@ in {
|
|||
description = lib.mdDoc "Definition of systemd per-user timer units.";
|
||||
};
|
||||
|
||||
systemd.user.tmpfiles = {
|
||||
rules = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "D %C - - - 7d" ];
|
||||
description = lib.mdDoc ''
|
||||
Global user rules for creation, deletion and cleaning of volatile and
|
||||
temporary files automatically. See
|
||||
{manpage}`tmpfiles.d(5)`
|
||||
for the exact format.
|
||||
'';
|
||||
};
|
||||
|
||||
users = mkOption {
|
||||
description = mdDoc ''
|
||||
Per-user rules for creation, deletion and cleaning of volatile and
|
||||
temporary files automatically.
|
||||
'';
|
||||
default = {};
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
rules = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "D %C - - - 7d" ];
|
||||
description = mdDoc ''
|
||||
Per-user rules for creation, deletion and cleaning of volatile and
|
||||
temporary files automatically. See
|
||||
{manpage}`tmpfiles.d(5)`
|
||||
for the exact format.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
systemd.additionalUpstreamUserUnits = mkOption {
|
||||
default = [];
|
||||
type = types.listOf types.str;
|
||||
|
@ -154,5 +205,30 @@ in {
|
|||
# Some overrides to upstream units.
|
||||
systemd.services."user@".restartIfChanged = false;
|
||||
systemd.services.systemd-user-sessions.restartIfChanged = false; # Restart kills all active sessions.
|
||||
|
||||
# enable systemd user tmpfiles
|
||||
systemd.user.services.systemd-tmpfiles-setup.wantedBy =
|
||||
optional
|
||||
(cfg.tmpfiles.rules != [] || any (cfg': cfg'.rules != []) (attrValues cfg.tmpfiles.users))
|
||||
"basic.target";
|
||||
|
||||
# /run/current-system/sw/etc/xdg is in systemd's $XDG_CONFIG_DIRS so we can
|
||||
# write the tmpfiles.d rules for everyone there
|
||||
environment.systemPackages =
|
||||
optional
|
||||
(cfg.tmpfiles.rules != [])
|
||||
(writeTmpfiles { inherit (cfg.tmpfiles) rules; });
|
||||
|
||||
# /etc/profiles/per-user/$USER/etc/xdg is in systemd's $XDG_CONFIG_DIRS so
|
||||
# we can write a single user's tmpfiles.d rules there
|
||||
users.users =
|
||||
mapAttrs
|
||||
(user: cfg': {
|
||||
packages = optional (cfg'.rules != []) (writeTmpfiles {
|
||||
inherit (cfg') rules;
|
||||
inherit user;
|
||||
});
|
||||
})
|
||||
cfg.tmpfiles.users;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -230,7 +230,10 @@ let
|
|||
escapedName = escapeShellArg name;
|
||||
in {
|
||||
wantedBy = [] ++ optional (container.autoStart) "multi-user.target";
|
||||
after = lib.optionals (cfg.backend == "docker") [ "docker.service" "docker.socket" ] ++ dependsOn;
|
||||
after = lib.optionals (cfg.backend == "docker") [ "docker.service" "docker.socket" ]
|
||||
# if imageFile is not set, the service needs the network to download the image from the registry
|
||||
++ lib.optionals (container.imageFile == null) [ "network-online.target" ]
|
||||
++ dependsOn;
|
||||
requires = dependsOn;
|
||||
environment = proxy_env;
|
||||
|
||||
|
|
|
@ -619,6 +619,7 @@ in {
|
|||
strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
|
||||
stunnel = handleTest ./stunnel.nix {};
|
||||
sudo = handleTest ./sudo.nix {};
|
||||
swap-file-btrfs = handleTest ./swap-file-btrfs.nix {};
|
||||
swap-partition = handleTest ./swap-partition.nix {};
|
||||
sway = handleTest ./sway.nix {};
|
||||
switchTest = handleTest ./switch-test.nix {};
|
||||
|
@ -657,6 +658,7 @@ in {
|
|||
systemd-portabled = handleTest ./systemd-portabled.nix {};
|
||||
systemd-shutdown = handleTest ./systemd-shutdown.nix {};
|
||||
systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
|
||||
systemd-user-tmpfiles-rules = handleTest ./systemd-user-tmpfiles-rules.nix {};
|
||||
systemd-misc = handleTest ./systemd-misc.nix {};
|
||||
systemd-userdbd = handleTest ./systemd-userdbd.nix {};
|
||||
systemd-homed = handleTest ./systemd-homed.nix {};
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import ./make-test-python.nix ({ ... }: {
|
||||
import ./make-test-python.nix ({ pkgs, ... }: {
|
||||
name = "coturn";
|
||||
nodes = {
|
||||
default = {
|
||||
|
@ -25,5 +25,9 @@ import ./make-test-python.nix ({ ... }: {
|
|||
with subtest("works with static-auth-secret-file"):
|
||||
secretsfile.wait_for_unit("coturn.service")
|
||||
secretsfile.succeed("grep 'some-very-secret-string' /run/coturn/turnserver.cfg")
|
||||
# Forbidden IP, fails:
|
||||
secretsfile.fail("${pkgs.coturn}/bin/turnutils_uclient -W some-very-secret-string 127.0.0.1 -DgX -e 127.0.0.1 -n 1 -c -y")
|
||||
# allowed-peer-ip, should succeed:
|
||||
secretsfile.succeed("${pkgs.coturn}/bin/turnutils_uclient -W some-very-secret-string 192.168.1.2 -DgX -e 192.168.1.2 -n 1 -c -y")
|
||||
'';
|
||||
})
|
||||
|
|
|
@ -143,6 +143,14 @@ in {
|
|||
"curl -sSfL 'http://site2.local/doku.php?id=plugin-list' | (! grep 'plugin:tag')",
|
||||
)
|
||||
|
||||
# Test if theme is applied and working correctly (no weired relative PHP import errors)
|
||||
machine.succeed(
|
||||
"curl -sSfL 'http://site1.local/doku.php' | grep 'bootstrap3/images/logo.png'",
|
||||
"curl -sSfL 'http://site1.local/lib/exe/css.php' | grep 'bootstrap3'",
|
||||
"curl -sSfL 'http://site1.local/lib/tpl/bootstrap3/css.php'",
|
||||
)
|
||||
|
||||
|
||||
# Just to ensure both Webserver configurations are consistent in allowing that
|
||||
with subtest("Rewriting"):
|
||||
machine.succeed(
|
||||
|
|
|
@ -51,7 +51,7 @@ let
|
|||
boot.loader.systemd-boot.enable = true;
|
||||
''}
|
||||
|
||||
boot.initrd.secrets."/etc/secret" = /etc/nixos/secret;
|
||||
boot.initrd.secrets."/etc/secret" = ./secret;
|
||||
|
||||
users.users.alice = {
|
||||
isNormalUser = true;
|
||||
|
@ -150,8 +150,7 @@ let
|
|||
)
|
||||
|
||||
with subtest("Shutdown system after installation"):
|
||||
machine.succeed("umount /mnt/boot || true")
|
||||
machine.succeed("umount /mnt")
|
||||
machine.succeed("umount -R /mnt")
|
||||
machine.succeed("sync")
|
||||
machine.shutdown()
|
||||
|
||||
|
@ -309,7 +308,7 @@ let
|
|||
# builds stuff in the VM, needs more juice
|
||||
virtualisation.diskSize = 8 * 1024;
|
||||
virtualisation.cores = 8;
|
||||
virtualisation.memorySize = 2047;
|
||||
virtualisation.memorySize = 1536;
|
||||
|
||||
boot.initrd.systemd.enable = systemdStage1;
|
||||
|
||||
|
@ -672,6 +671,55 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
# Full disk encryption (root, kernel and initrd encrypted) using GRUB, GPT/UEFI,
|
||||
# LVM-on-LUKS and a keyfile in initrd.secrets to enter the passphrase once
|
||||
fullDiskEncryption = makeInstallerTest "fullDiskEncryption" {
|
||||
createPartitions = ''
|
||||
machine.succeed(
|
||||
"flock /dev/vda parted --script /dev/vda -- mklabel gpt"
|
||||
+ " mkpart ESP fat32 1M 100MiB" # /boot/efi
|
||||
+ " set 1 boot on"
|
||||
+ " mkpart primary ext2 1024MiB -1MiB", # LUKS
|
||||
"udevadm settle",
|
||||
"modprobe dm_mod dm_crypt",
|
||||
"dd if=/dev/random of=luks.key bs=256 count=1",
|
||||
"echo -n supersecret | cryptsetup luksFormat -q --pbkdf-force-iterations 1000 --type luks1 /dev/vda2 -",
|
||||
"echo -n supersecret | cryptsetup luksAddKey -q --pbkdf-force-iterations 1000 --key-file - /dev/vda2 luks.key",
|
||||
"echo -n supersecret | cryptsetup luksOpen --key-file - /dev/vda2 crypt",
|
||||
"pvcreate /dev/mapper/crypt",
|
||||
"vgcreate crypt /dev/mapper/crypt",
|
||||
"lvcreate -L 100M -n swap crypt",
|
||||
"lvcreate -l '100%FREE' -n nixos crypt",
|
||||
"mkfs.vfat -n efi /dev/vda1",
|
||||
"mkfs.ext4 -L nixos /dev/crypt/nixos",
|
||||
"mkswap -L swap /dev/crypt/swap",
|
||||
"mount LABEL=nixos /mnt",
|
||||
"mkdir -p /mnt/{etc/nixos,boot/efi}",
|
||||
"mount LABEL=efi /mnt/boot/efi",
|
||||
"swapon -L swap",
|
||||
"mv luks.key /mnt/etc/nixos/"
|
||||
)
|
||||
'';
|
||||
bootLoader = "grub";
|
||||
grubUseEfi = true;
|
||||
extraConfig = ''
|
||||
boot.loader.grub.enableCryptodisk = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
|
||||
boot.initrd.secrets."/luks.key" = ./luks.key;
|
||||
boot.initrd.luks.devices.crypt =
|
||||
{ device = "/dev/vda2";
|
||||
keyFile = "/luks.key";
|
||||
};
|
||||
'';
|
||||
enableOCR = true;
|
||||
preBootCommands = ''
|
||||
machine.start()
|
||||
machine.wait_for_text("Enter passphrase for")
|
||||
machine.send_chars("supersecret\n")
|
||||
'';
|
||||
};
|
||||
|
||||
swraid = makeInstallerTest "swraid" {
|
||||
createPartitions = ''
|
||||
machine.succeed(
|
||||
|
|
46
nixos/tests/swap-file-btrfs.nix
Normal file
46
nixos/tests/swap-file-btrfs.nix
Normal file
|
@ -0,0 +1,46 @@
|
|||
import ./make-test-python.nix ({ lib, ... }:
|
||||
{
|
||||
name = "swap-file-btrfs";
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ oxalica ];
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
virtualisation.useDefaultFilesystems = false;
|
||||
|
||||
virtualisation.bootDevice = "/dev/vda";
|
||||
|
||||
boot.initrd.postDeviceCommands = ''
|
||||
${pkgs.btrfs-progs}/bin/mkfs.btrfs --label root /dev/vda
|
||||
'';
|
||||
|
||||
virtualisation.fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-label/root";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/var/swapfile";
|
||||
size = 1; # 1MiB.
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.wait_for_unit('var-swapfile.swap')
|
||||
machine.succeed("stat --file-system --format=%T /var/swapfile | grep btrfs")
|
||||
# First run. Auto creation.
|
||||
machine.succeed("swapon --show | grep /var/swapfile")
|
||||
|
||||
machine.shutdown()
|
||||
machine.start()
|
||||
|
||||
# Second run. Use it as-is.
|
||||
machine.wait_for_unit('var-swapfile.swap')
|
||||
machine.succeed("swapon --show | grep /var/swapfile")
|
||||
'';
|
||||
})
|
35
nixos/tests/systemd-user-tmpfiles-rules.nix
Normal file
35
nixos/tests/systemd-user-tmpfiles-rules.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
import ./make-test-python.nix ({ lib, ... }: {
|
||||
name = "systemd-user-tmpfiles-rules";
|
||||
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ schnusch ];
|
||||
};
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
users.users = {
|
||||
alice.isNormalUser = true;
|
||||
bob.isNormalUser = true;
|
||||
};
|
||||
|
||||
systemd.user.tmpfiles = {
|
||||
rules = [
|
||||
"d %h/user_tmpfiles_created"
|
||||
];
|
||||
users.alice.rules = [
|
||||
"d %h/only_alice"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { ... }: ''
|
||||
machine.succeed("loginctl enable-linger alice bob")
|
||||
|
||||
machine.wait_until_succeeds("systemctl --user --machine=alice@ is-active systemd-tmpfiles-setup.service")
|
||||
machine.succeed("[ -d ~alice/user_tmpfiles_created ]")
|
||||
machine.succeed("[ -d ~alice/only_alice ]")
|
||||
|
||||
machine.wait_until_succeeds("systemctl --user --machine=bob@ is-active systemd-tmpfiles-setup.service")
|
||||
machine.succeed("[ -d ~bob/user_tmpfiles_created ]")
|
||||
machine.succeed("[ ! -e ~bob/only_alice ]")
|
||||
'';
|
||||
})
|
|
@ -18,7 +18,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
|
|||
buildPhase = ''
|
||||
runHook preBuild
|
||||
# just build the static lib we need for the go test binary
|
||||
make $makeFlags ''${enableParallelBuilding:+-j$NIX_BUILD_CORES -l$NIX_BUILD_CORES} bpf-core ./dist/btfhub
|
||||
make $makeFlags ''${enableParallelBuilding:+-j$NIX_BUILD_CORES} bpf-core ./dist/btfhub
|
||||
|
||||
# remove the /usr/bin prefix to work with the patch above
|
||||
substituteInPlace tests/integration/integration_test.go \
|
||||
|
|
|
@ -27,6 +27,8 @@ lib.makeScope newScope (self: with self; {
|
|||
|
||||
mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { };
|
||||
|
||||
mopidy-notify = callPackage ./notify.nix { };
|
||||
|
||||
mopidy-podcast = callPackage ./podcast.nix { };
|
||||
|
||||
mopidy-scrobbler = callPackage ./scrobbler.nix { };
|
||||
|
@ -35,6 +37,8 @@ lib.makeScope newScope (self: with self; {
|
|||
|
||||
mopidy-soundcloud = callPackage ./soundcloud.nix { };
|
||||
|
||||
mopidy-tidal = callPackage ./tidal.nix { };
|
||||
|
||||
mopidy-tunein = callPackage ./tunein.nix { };
|
||||
|
||||
mopidy-youtube = callPackage ./youtube.nix { };
|
||||
|
|
29
pkgs/applications/audio/mopidy/notify.nix
Normal file
29
pkgs/applications/audio/mopidy/notify.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ lib, pythonPackages, mopidy }:
|
||||
|
||||
pythonPackages.buildPythonApplication rec {
|
||||
pname = "Mopidy-Notify";
|
||||
version = "0.2.0";
|
||||
|
||||
src = pythonPackages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-lzZupjlS0kbNvsn18serOoMfu0sRb0nRwpowvOPvt/g=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
mopidy
|
||||
pythonPackages.pydbus
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pythonPackages.pytestCheckHook
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "mopidy_notify" ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/phijor/mopidy-notify";
|
||||
description = "Mopidy extension for showing desktop notifications on track change";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lilyinstarlight ];
|
||||
};
|
||||
}
|
35
pkgs/applications/audio/mopidy/tidal.nix
Normal file
35
pkgs/applications/audio/mopidy/tidal.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, python3Packages
|
||||
, mopidy
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "Mopidy-Tidal";
|
||||
version = "0.3.2";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-ekqhzKyU2WqTOeRR1ZSZA9yW3UXsLBsC2Bk6FZrQgmc=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
mopidy
|
||||
python3Packages.tidalapi
|
||||
];
|
||||
|
||||
checkInputs = with python3Packages; [
|
||||
pytestCheckHook
|
||||
pytest-mock
|
||||
];
|
||||
|
||||
pytestFlagsArray = [ "tests/" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Mopidy extension for playing music from Tidal";
|
||||
homepage = "https://github.com/tehkillerbee/mopidy-tidal";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.rodrgz ];
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -42,13 +42,13 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "strawberry";
|
||||
version = "1.0.13";
|
||||
version = "1.0.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jonaski";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-szvCI1olC7GccJUGwR2Cx+FNGvfxeESsiSwWPTXWbc0=";
|
||||
hash = "sha256-ThfycS5yNpp6+mE33qPqEWlhSB3OIF7d/t2XvI+rF2E=";
|
||||
};
|
||||
|
||||
# the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
|
||||
|
|
|
@ -7,14 +7,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "termusic";
|
||||
version = "0.7.7";
|
||||
version = "0.7.8";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-ynSNgiy8TUxRBDAi4rSPd5ztSLMaaFg1yEMTD1TI3V4=";
|
||||
sha256 = "sha256-1RlG1/2+NuMO9zqFHQaEkEX1YrYYMjnaNprjdl1ZnHQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-jD+oJw9xGY9ItYvoIUMwn8HrM72+02wOTeXEJjkZAfk=";
|
||||
cargoHash = "sha256-SYk2SiFbp40/6Z0aBoX4MPnPLHjEfsJKCW4cErm0D78=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ alsa-lib ];
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
let
|
||||
pname = "erigon";
|
||||
version = "2.34.0";
|
||||
version = "2.35.2";
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version;
|
||||
|
@ -11,11 +11,11 @@ buildGoModule {
|
|||
owner = "ledgerwatch";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-oiFPnDzvLdVkGeflqUcB00peZyVLMzsXi7QzOjPlpHo=";
|
||||
sha256 = "sha256-hGJ9SeUYACOuypTJmPnrv4f8ujjsUt3dZbwso+94g3M=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-x/ffvbBKzJrssOo+cuWIiwHWu9UfeBHSbgwmLE0340A=";
|
||||
vendorSha256 = "sha256-lKzJLRCcyhQIV7y1XxqbvTINLlUwWFnflZgGQHYzBjY=";
|
||||
proxyVendor = true;
|
||||
|
||||
# Build errors in mdbx when format hardening is enabled:
|
||||
|
|
|
@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
|
|||
version = "22.8.12";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
|
||||
url = "https://downloads.exodus.com/releases/${pname}-linux-x64-${version}.zip";
|
||||
sha256 = "sha256-jNzHh4zYhFzpFZAC9rHmwjTdFkbpROSEN3qpL7geiOU=";
|
||||
};
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
, testers
|
||||
, unzip
|
||||
, nix-update-script
|
||||
, SystemConfiguration
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
|
@ -41,7 +42,7 @@ rustPlatform.buildRustPackage rec {
|
|||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
Security
|
||||
] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
|
||||
CoreFoundation
|
||||
CoreFoundation SystemConfiguration
|
||||
];
|
||||
|
||||
depositContractSpec = fetchurl {
|
||||
|
|
33
pkgs/applications/blockchains/torq/default.nix
Normal file
33
pkgs/applications/blockchains/torq/default.nix
Normal file
|
@ -0,0 +1,33 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "torq";
|
||||
version = "0.16.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lncapital";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ibrPq/EC61ssn4072gTNvJg9QO41+aTsU1Hhc6X6NPk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-HETN2IMnpxnTyg6bQDpoD0saJu+gKocdEf0VzEi12Gs=";
|
||||
|
||||
subPackages = [ "cmd/torq" ];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/lncapital/torq/build.version=v${version}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Capital management tool for lightning network nodes";
|
||||
license = licenses.mit;
|
||||
homepage = "https://github.com/lncapital/torq";
|
||||
maintainers = with maintainers; [ mmilata prusnak ];
|
||||
};
|
||||
}
|
|
@ -1,34 +1,34 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, buildDotnetModule
|
||||
, dotnetCorePackages
|
||||
, autoPatchelfHook
|
||||
, zlib
|
||||
, openssl
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
buildDotnetModule,
|
||||
dotnetCorePackages,
|
||||
autoPatchelfHook,
|
||||
zlib,
|
||||
openssl,
|
||||
}:
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "wasabibackend";
|
||||
version = "1.1.13.1";
|
||||
version = "2.0.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zkSNACKs";
|
||||
repo = "WalletWasabi";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Hwav7moG6XKAcR7L0Q7CtifP3zCNRfHIihlaFw+dzbk=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha512-JuCl3SyejzwUd2n8Fy7EdxUuO4bIcGb8yMWZQOhZzsY4fvg9prFOnVZEquxahD0a41MLKHRNA1R2N3NMapcc0A==";
|
||||
};
|
||||
|
||||
projectFile = "WalletWasabi.Backend/WalletWasabi.Backend.csproj";
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_3_1;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_3_1;
|
||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_7_0;
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook ];
|
||||
buildInputs = [ stdenv.cc.cc.lib zlib ];
|
||||
nativeBuildInputs = [autoPatchelfHook];
|
||||
buildInputs = [stdenv.cc.cc.lib zlib];
|
||||
|
||||
runtimeDeps = [ openssl zlib ];
|
||||
runtimeDeps = [openssl zlib];
|
||||
|
||||
preConfigure = ''
|
||||
makeWrapperArgs+=(
|
||||
|
@ -43,9 +43,9 @@ buildDotnetModule rec {
|
|||
meta = with lib; {
|
||||
description = "Backend for the Wasabi Wallet";
|
||||
homepage = "https://wasabiwallet.io/";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
sourceProvenance = with sourceTypes; [binaryNativeCode];
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ mmahut ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [mmahut];
|
||||
platforms = ["x86_64-linux"];
|
||||
};
|
||||
}
|
||||
|
|
28
pkgs/applications/blockchains/wasabibackend/deps.nix
generated
28
pkgs/applications/blockchains/wasabibackend/deps.nix
generated
|
@ -2,8 +2,8 @@
|
|||
# Please dont edit it manually, your changes might get overwritten!
|
||||
|
||||
{ fetchNuGet }: [
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "3.1.1"; sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "3.1.1"; sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "7.0.0"; sha256 = "1f13vsfs1rp9bmdp3khk4mk2fif932d72yxm2wszpsr239x4s2bf"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "7.0.0"; sha256 = "1w49rg0n5wb1m5wnays2mmym7qy7bsi2b1zxz97af2rkbw3s3hbd"; })
|
||||
(fetchNuGet { pname = "Microsoft.Build"; version = "15.3.409"; sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81"; })
|
||||
(fetchNuGet { pname = "Microsoft.Build.Framework"; version = "15.3.409"; sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2"; })
|
||||
(fetchNuGet { pname = "Microsoft.Build.Runtime"; version = "15.3.409"; sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q"; })
|
||||
|
@ -11,7 +11,7 @@
|
|||
(fetchNuGet { pname = "Microsoft.Build.Utilities.Core"; version = "15.3.409"; sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf"; })
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; sha256 = "1pi2bm3cm0a7jzqzmfc2r7bpcdkmk3hhjfvb2c81j7wl7xdw3624"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.0.0"; sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "2.0.0"; sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "2.0.0"; sha256 = "02lzy6r14ghwfwm384xajq08vv3pl3ww0mi5isrr10vivhijhgg4"; })
|
||||
|
@ -24,22 +24,20 @@
|
|||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.1"; sha256 = "1j2hmnivgb4plni2dd205kafzg6mkg7r4knrd3s7mg75wn2l25np"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.0"; sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
|
||||
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.1.4"; sha256 = "1sn79829nhx6chi2qxsza1801di7zdl5fd983m0jakawzbjhjcb3"; })
|
||||
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
|
||||
(fetchNuGet { pname = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts"; version = "2.0.2"; sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1"; })
|
||||
(fetchNuGet { pname = "Microsoft.VisualStudio.Web.CodeGeneration.Tools"; version = "2.0.2"; sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.0.0"; sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.7.0"; sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs"; })
|
||||
(fetchNuGet { pname = "NBitcoin"; version = "5.0.81"; sha256 = "1fba94kc8yzykb1m5lvpx1hm63mpycpww9cz5zfp85phs1spdn8x"; })
|
||||
(fetchNuGet { pname = "NBitcoin.Secp256k1"; version = "1.0.10"; sha256 = "14hngbhxk2xjr5kcbsb26l788xnd1lmxn7fhmm2kvx49kdb1malp"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "7.0.0"; sha256 = "1bh77misznh19m1swqm3dsbji499b8xh9gk6w74sgbkarf6ni8lb"; })
|
||||
(fetchNuGet { pname = "NBitcoin"; version = "7.0.14"; sha256 = "18nxx13fz3i7kmigijnynvrbx2i5cb3v4m89nvnxl38vcw7w5jys"; })
|
||||
(fetchNuGet { pname = "NBitcoin.Secp256k1"; version = "3.0.1"; sha256 = "17wxn0dinmp5fbqdirflfkz75wykqvw9a7ydv2inx1sajxnsy1f3"; })
|
||||
(fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
|
||||
(fetchNuGet { pname = "NETStandard.Library"; version = "2.0.1"; sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "10.0.1"; sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.2"; sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35"; })
|
||||
(fetchNuGet { pname = "NuGet.Frameworks"; version = "4.0.0"; sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq"; })
|
||||
(fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.0.11"; sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0"; })
|
||||
|
@ -61,10 +59,10 @@
|
|||
(fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.0.1"; sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm"; })
|
||||
(fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "5.0.0"; sha256 = "0rn2awmzrsrppk97xbbwk4kq1mys9bygb5xhl6mphbk0hchrvh09"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "5.0.0"; sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "5.0.0"; sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "5.0.0"; sha256 = "0d7vjq489rz208j6k3rb7vq6mzxzff3mqg83yk2rqy25vklrsbjd"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.4.0"; sha256 = "1jkgjnkjcb6dif0lzn7whjwwdd4fi6mzkmkdx8sfmv5cffzq4fvk"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.4.0"; sha256 = "1wccx8ig2xc6xcfh774m5z34w6jn0hjffiwc5sq9yl63zkv01vnn"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.4.0"; sha256 = "1k58j6lfqcgrl5f7dw0xnbq6w5bvr42a9fc44vwbzl52kzjdlnh2"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.4.0"; sha256 = "1rxgf0hbkkzywh8z7asky2rrh1gpnrr514v1aj5vnmh49sa31kiz"; })
|
||||
(fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
|
||||
(fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
|
||||
(fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
|
||||
|
@ -152,7 +150,6 @@
|
|||
(fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
|
||||
(fetchNuGet { pname = "System.Runtime.Serialization.Xml"; version = "4.1.1"; sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk"; })
|
||||
(fetchNuGet { pname = "System.Security.AccessControl"; version = "4.7.0"; sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
|
||||
|
@ -161,7 +158,6 @@
|
|||
(fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
|
||||
(fetchNuGet { pname = "System.Security.Principal"; version = "4.0.1"; sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p"; })
|
||||
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.0.1"; sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3"; })
|
||||
|
|
|
@ -1,20 +1,13 @@
|
|||
{ lib, stdenv, fetchurl }:
|
||||
{ lib, trivialBuild, fetchurl }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "control-lock";
|
||||
trivialBuild {
|
||||
pname = "control-lock";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/emacsmirror/emacswiki.org/blob/185fdc34fb1e02b43759ad933d3ee5646b0e78f8/control-lock.el";
|
||||
sha256 = "1b5xcgq2r565pr1c14dwrmn1fl05p56infapa5pqvajv2kpfla7h";
|
||||
url = "https://raw.githubusercontent.com/emacsmirror/emacswiki.org/185fdc34fb1e02b43759ad933d3ee5646b0e78f8/control-lock.el";
|
||||
hash = "sha256-JCrmS3FSGDHSR+eAR0X/uO0nAgd3TUmFxwEVH5+KV+4=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/share/emacs/site-lisp
|
||||
install $src $out/share/emacs/site-lisp/control-lock.el
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Like caps-lock, but for your control key. Give your pinky a rest!";
|
||||
homepage = "https://www.emacswiki.org/emacs/control-lock.el";
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
{ lib
|
||||
, trivial-build
|
||||
{ trivialBuild
|
||||
, fetchurl
|
||||
}:
|
||||
|
||||
trivial-build {
|
||||
name = "perl-completion";
|
||||
trivialBuild {
|
||||
pname = "perl-completion";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://emacswiki.org/emacs/download/perl-completion.el";
|
||||
sha256 = "0x6qsgs4hm87k0z9q3g4p6508kc3y123j5jayll3jf3lcl2vm6ks";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
meta = {
|
||||
broken = true;
|
||||
description = "Minor mode provides useful features for editing perl codes";
|
||||
homepage = "http://emacswiki.org/emacs/PerlCompletion";
|
||||
};
|
||||
|
|
|
@ -22,13 +22,13 @@
|
|||
|
||||
let
|
||||
# when bumping the version, check if imhex has gotten support for the capstone version in nixpkgs
|
||||
version = "1.19.3";
|
||||
version = "1.26.2";
|
||||
|
||||
patterns_src = fetchFromGitHub {
|
||||
owner = "WerWolv";
|
||||
repo = "ImHex-Patterns";
|
||||
rev = "ImHex-v${version}";
|
||||
hash = "sha256-mukGPN2TugJZLLuZ5FTvZ4DxUsMGfVNhBFAPnBRC0qs=";
|
||||
hash = "sha256-2+7bJzgwHfXcINM5oxwi3vEbUtq9gGJc/uxFOwT4RnM=";
|
||||
};
|
||||
|
||||
in
|
||||
|
@ -41,7 +41,7 @@ gcc12Stdenv.mkDerivation rec {
|
|||
owner = "WerWolv";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-SFv5ulyjm5Yf+3Gpx+A74so2YClCJx1sx0LE5fh5eG4=";
|
||||
hash = "sha256-H2bnRByCUAltngmVWgPW4vW8k5AWecOAzwtBKsjbpTw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake llvm python3 perl pkg-config ];
|
||||
|
@ -72,10 +72,8 @@ gcc12Stdenv.mkDerivation rec {
|
|||
"-DUSE_SYSTEM_YARA=ON"
|
||||
];
|
||||
|
||||
# for reasons unknown, the built-in plugin isn't found unless made available under $out/bin
|
||||
postInstall = ''
|
||||
ln -s $out/share/imhex/plugins $out/bin/
|
||||
|
||||
mkdir -p $out/share/imhex
|
||||
for d in ${patterns_src}/{constants,encodings,includes,magic,patterns}; do
|
||||
cp -r $d $out/share/imhex/
|
||||
done
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "notepad-next";
|
||||
version = "0.5.6";
|
||||
version = "0.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dail8859";
|
||||
repo = "NotepadNext";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-0ZmyEtyVpqQ05FOYdFbnFqfPJKNkrweflSl+irOzcuk=";
|
||||
sha256 = "sha256-t+TfyhQjUp4xJQ4vihAwm691dpt8ctQwLYDRRAQI7OM=";
|
||||
# External dependencies - https://github.com/dail8859/NotepadNext/issues/135
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
|
|
@ -1,25 +1,29 @@
|
|||
{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles, makeWrapper, pkg-config
|
||||
, tcsh
|
||||
, withGui ? stdenv.isLinux, vte # vte is broken on darwin
|
||||
, withGui ? true, vte
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "o";
|
||||
version = "2.57.0";
|
||||
version = "2.58.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xyproto";
|
||||
repo = "o";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-UKFquf5h1e7gRAZgtcTdEpoNv+TOC8BYb2ED26X274s=";
|
||||
hash = "sha256-oYWlciTQ/4mm/gTSQEkD/xPeLfDjIAMksjj1DVodZW4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace ko/main.cpp --replace '/bin/csh' '${tcsh}/bin/tcsh'
|
||||
'';
|
||||
|
||||
vendorSha256 = null;
|
||||
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace Makefile \
|
||||
--replace "-Wl,--as-needed" ""
|
||||
|
||||
# Requires impure pbcopy and pbpaste
|
||||
substituteInPlace v2/pbcopy_test.go \
|
||||
--replace TestPBcopy SkipTestPBcopy
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper pkg-config ];
|
||||
|
||||
buildInputs = lib.optional withGui vte;
|
||||
|
@ -31,7 +35,7 @@ buildGoModule rec {
|
|||
installManPage o.1
|
||||
'' + lib.optionalString withGui ''
|
||||
make install-gui PREFIX=$out
|
||||
wrapProgram $out/bin/ko --prefix PATH : $out/bin
|
||||
wrapProgram $out/bin/og --prefix PATH : $out/bin
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -20,14 +20,14 @@ let
|
|||
version = "6.8";
|
||||
src = fetchurl {
|
||||
url = "https://download.pinegrow.com/PinegrowLinux64.${versions."6".version}.zip";
|
||||
sha256 = "sha256-gqRmu0VR8Aj57UwYYLKICd4FnYZMhM6pTTSGIY5MLMk=";
|
||||
hash = "sha256-gqRmu0VR8Aj57UwYYLKICd4FnYZMhM6pTTSGIY5MLMk=";
|
||||
};
|
||||
};
|
||||
"7" = {
|
||||
version = "7.03";
|
||||
version = "7.05.2";
|
||||
src = fetchurl {
|
||||
url = "https://download.pinegrow.com/PinegrowLinux64.${versions."7".version}.zip";
|
||||
sha256 = "sha256-MdaJBmOPr1+J235IZPd3EBzbDTiORginyVKsjSkKbpE=";
|
||||
url = "https://github.com/Pinegrow/PinegrowReleases/releases/download/pg${builtins.substring 0 4 (versions."7".version)}/PinegrowLinux64.${versions."7".version}.zip";
|
||||
hash = "sha256-Cvy4JwnQHMp7K0mKtIH8lk1bZ9hwa8nvtmimBK0UAf8=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,26 +1,14 @@
|
|||
{ lib, stdenv, appimageTools, autoPatchelfHook, desktop-file-utils
|
||||
{ callPackage, lib, stdenv, appimageTools, autoPatchelfHook, desktop-file-utils
|
||||
, fetchurl, libsecret }:
|
||||
|
||||
let
|
||||
version = "3.23.69";
|
||||
srcjson = builtins.fromJSON (builtins.readFile ./src.json);
|
||||
version = srcjson.version;
|
||||
pname = "standardnotes";
|
||||
name = "${pname}-${version}";
|
||||
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
|
||||
|
||||
plat = {
|
||||
i686-linux = "i386";
|
||||
x86_64-linux = "x86_64";
|
||||
}.${stdenv.hostPlatform.system} or throwSystem;
|
||||
|
||||
sha256 = {
|
||||
i686-linux = "sha256-/A2LjV8ky20bcKgs0ijwldryi5VkyROwz49vWYXYQus=";
|
||||
x86_64-linux = "sha256-fA9WH9qUtvAHF9hTFRtxQdpz2dpK0joD0zX9VYBo10g=";
|
||||
}.${stdenv.hostPlatform.system} or throwSystem;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/standardnotes/app/releases/download/%40standardnotes%2Fdesktop%40${version}/standard-notes-${version}-linux-${plat}.AppImage";
|
||||
inherit sha256;
|
||||
};
|
||||
src = fetchurl (srcjson.appimage.${stdenv.hostPlatform.system} or throwSystem);
|
||||
|
||||
appimageContents = appimageTools.extract {
|
||||
inherit name src;
|
||||
|
@ -47,6 +35,8 @@ in appimageTools.wrapType2 rec {
|
|||
ln -s ${appimageContents}/usr/share/icons share
|
||||
'';
|
||||
|
||||
passthru.updateScript = callPackage ./update.nix {};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and private notes app";
|
||||
longDescription = ''
|
||||
|
@ -55,8 +45,8 @@ in appimageTools.wrapType2 rec {
|
|||
'';
|
||||
homepage = "https://standardnotes.org";
|
||||
license = licenses.agpl3;
|
||||
maintainers = with maintainers; [ mgregoire chuangzhu ];
|
||||
maintainers = with maintainers; [ mgregoire chuangzhu squalus ];
|
||||
sourceProvenance = [ sourceTypes.binaryNativeCode ];
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
platforms = builtins.attrNames srcjson.appimage;
|
||||
};
|
||||
}
|
||||
|
|
17
pkgs/applications/editors/standardnotes/src.json
Normal file
17
pkgs/applications/editors/standardnotes/src.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"version": "3.129.0",
|
||||
"appimage": {
|
||||
"x86_64-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.129.0/standard-notes-3.129.0-linux-x86_64.AppImage",
|
||||
"hash": "sha512-JLO2jX9Us6BjqmTZIkVyxy2pqFM/eFGpwi6vXicMOgDB0UsgEMTK+Ww+9g+vJ1KbFRFmlt187qkdSNcevQPt7w=="
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.129.0/standard-notes-3.129.0-linux-arm64.AppImage",
|
||||
"hash": "sha512-LGUSRqMrJ+hVHyi/bjI/NkWRVsmY0Kh/wRY9RNJXm0C3dKQSFV8ca4GeY9+VCuJEecR4LGnWp4agS5jPybPP6w=="
|
||||
},
|
||||
"i686-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.129.0/standard-notes-3.129.0-linux-i386.AppImage",
|
||||
"hash": "sha512-XbQ4hn3QJ61hDC12cK95zsUowbyXPYArHZoRDx5trQ30phtQxtz6nV+pL00m4S9kYeEhsAwk1wXlRq9Ylbz2IA=="
|
||||
}
|
||||
}
|
||||
}
|
55
pkgs/applications/editors/standardnotes/update.nix
Normal file
55
pkgs/applications/editors/standardnotes/update.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
{ writeScript
|
||||
, lib, curl, runtimeShell, jq, coreutils, moreutils, nix, gnused }:
|
||||
|
||||
writeScript "update-standardnotes" ''
|
||||
#!${runtimeShell}
|
||||
PATH=${lib.makeBinPath [ jq curl nix coreutils moreutils gnused ]}
|
||||
|
||||
set -euo pipefail
|
||||
set -x
|
||||
|
||||
tmpDir=$(mktemp -d)
|
||||
srcJson=pkgs/applications/editors/standardnotes/src.json
|
||||
jsonPath="$tmpDir"/latest
|
||||
|
||||
oldVersion=$(jq -r .version < "$srcJson")
|
||||
|
||||
curl https://api.github.com/repos/standardnotes/app/releases/latest > "$jsonPath"
|
||||
|
||||
tagName=$(jq -r .tag_name < "$jsonPath")
|
||||
|
||||
if [[ ! "$tagName" =~ "desktop" ]]; then
|
||||
echo "latest release '$tagName' not a desktop release"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
newVersion=$(jq -r .tag_name < "$jsonPath" | sed s,@standardnotes/desktop@,,g)
|
||||
|
||||
if [[ "$oldVersion" == "$newVersion" ]]; then
|
||||
echo "version did not change"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
function getDownloadUrl() {
|
||||
jq -r ".assets[] | select(.name==\"standard-notes-$newVersion-$1.AppImage\") | .browser_download_url" < "$jsonPath"
|
||||
}
|
||||
|
||||
function setJsonKey() {
|
||||
jq "$1 = \"$2\"" "$srcJson" | sponge "$srcJson"
|
||||
}
|
||||
|
||||
function updatePlatform() {
|
||||
nixPlatform="$1"
|
||||
upstreamPlatform="$2"
|
||||
url=$(getDownloadUrl "$upstreamPlatform")
|
||||
hash=$(nix-prefetch-url "$url" --type sha512)
|
||||
sriHash=$(nix hash to-sri --type sha512 $hash)
|
||||
setJsonKey .appimage[\""$nixPlatform"\"].url "$url"
|
||||
setJsonKey .appimage[\""$nixPlatform"\"].hash "$sriHash"
|
||||
}
|
||||
|
||||
updatePlatform x86_64-linux linux-x86_64
|
||||
updatePlatform aarch64-linux linux-arm64
|
||||
updatePlatform i686-linux linux-i386
|
||||
setJsonKey .version "$newVersion"
|
||||
''
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
# generated by pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py
|
||||
|
||||
{ buildGrammar, fetchFromBitbucket, fetchFromGitHub, fetchFromGitLab, fetchFromGitea, fetchFromGitiles, fetchFromRepoOrCz, fetchFromSourcehut, fetchgit, fetchhg, fetchsvn }:
|
||||
{ buildGrammar, fetchCrate, fetchFromBitbucket, fetchFromGitHub, fetchFromGitLab, fetchFromGitea, fetchFromGitiles, fetchFromRepoOrCz, fetchFromSourcehut, fetchHex, fetchgit, fetchhg, fetchsvn }:
|
||||
|
||||
{
|
||||
ada = buildGrammar {
|
||||
|
@ -115,12 +115,12 @@
|
|||
};
|
||||
c_sharp = buildGrammar {
|
||||
language = "c_sharp";
|
||||
version = "3b661ce";
|
||||
version = "2574501";
|
||||
source = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c-sharp";
|
||||
rev = "3b661ced8d510aa424e2f68314520c281dd8c113";
|
||||
hash = "sha256-Z+ueKX2CAtWTCMipElZUl97hrUEb8Dv1po8xSLI3iJA=";
|
||||
rev = "2574501b475b7ba7bc10d08dd1ff9732d3769662";
|
||||
hash = "sha256-bXwGZJ+lYTJyaD7kbQGL6hagpkgqqCsPHBiz9AOXfNc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp";
|
||||
};
|
||||
|
@ -402,6 +402,17 @@
|
|||
};
|
||||
meta.homepage = "https://github.com/stadelmanma/tree-sitter-fortran";
|
||||
};
|
||||
fsh = buildGrammar {
|
||||
language = "fsh";
|
||||
version = "fa33477";
|
||||
source = fetchFromGitHub {
|
||||
owner = "mgramigna";
|
||||
repo = "tree-sitter-fsh";
|
||||
rev = "fa3347712f7a59ed02ccf508284554689c6cde28";
|
||||
hash = "sha256-6TLG2edQeo+jRVAnO6mq3pC8RYNFi2UVVT3mQGZqk5U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/mgramigna/tree-sitter-fsh";
|
||||
};
|
||||
fusion = buildGrammar {
|
||||
language = "fusion";
|
||||
version = "19db2f4";
|
||||
|
@ -448,12 +459,12 @@
|
|||
};
|
||||
gitcommit = buildGrammar {
|
||||
language = "gitcommit";
|
||||
version = "0ef7dd0";
|
||||
version = "190d288";
|
||||
source = fetchFromGitHub {
|
||||
owner = "gbprod";
|
||||
repo = "tree-sitter-gitcommit";
|
||||
rev = "0ef7dd07236141a878b4cc2c488375baa5cc9d5d";
|
||||
hash = "sha256-8OyjmnCLR14ivJBf/9KO4rmc99xL818iMY8uxkjtVGw=";
|
||||
rev = "190d288a1746bddb4abe96b597fb7d17b76e5522";
|
||||
hash = "sha256-PPdwdUfJ+2TCxVdEvexxGSBMDZmI1GW7eSfc/X3Me7Y=";
|
||||
};
|
||||
meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
|
||||
};
|
||||
|
@ -482,12 +493,12 @@
|
|||
};
|
||||
glimmer = buildGrammar {
|
||||
language = "glimmer";
|
||||
version = "fee3427";
|
||||
version = "c0bfd26";
|
||||
source = fetchFromGitHub {
|
||||
owner = "alexlafroscia";
|
||||
repo = "tree-sitter-glimmer";
|
||||
rev = "fee34278dc212869dcfc92fce3007ee79a752867";
|
||||
hash = "sha256-a3goK+QSkrdsKvimT8vpsJ1bt8FhLf1bws0aqjncv3A=";
|
||||
rev = "c0bfd260cdcbe2976f4633547c218f09f7222a89";
|
||||
hash = "sha256-Goj900MJxO44KYkzD0UpGFEGHAwr6qhe2bmCzpx5BhE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/alexlafroscia/tree-sitter-glimmer";
|
||||
};
|
||||
|
@ -903,23 +914,23 @@
|
|||
};
|
||||
meson = buildGrammar {
|
||||
language = "meson";
|
||||
version = "6c5f7ef";
|
||||
version = "5f3138d";
|
||||
source = fetchFromGitHub {
|
||||
owner = "Decodetalkers";
|
||||
repo = "tree-sitter-meson";
|
||||
rev = "6c5f7ef944f9c6ae8a0fc28b9071a4b493652238";
|
||||
hash = "sha256-r/H7v6a1blsendVBxx9Qy4f2i4V3LsxSwe+9/PRbfG8=";
|
||||
rev = "5f3138d555aceef976ec9a1d4a3f78e13b31e45f";
|
||||
hash = "sha256-P0S2JpRjAznDLaU97NMzLuuNyPqqy4RNqBa+PKvyl6s=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Decodetalkers/tree-sitter-meson";
|
||||
};
|
||||
nickel = buildGrammar {
|
||||
language = "nickel";
|
||||
version = "7867780";
|
||||
version = "092e901";
|
||||
source = fetchFromGitHub {
|
||||
owner = "nickel-lang";
|
||||
repo = "tree-sitter-nickel";
|
||||
rev = "7867780e52ebeda0daa4a55acb870100e070d274";
|
||||
hash = "sha256-SXM15LbQ4bGKx+2QY7jMHq4G4ATtak2Umnb3SHFUqM0=";
|
||||
rev = "092e90142667482996880044d2c04837d3d1c266";
|
||||
hash = "sha256-y0Lx6HdkoC7rOzm8fOfLBUt6672qe7AHe1SI6YY/aHE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
|
||||
};
|
||||
|
@ -1082,12 +1093,12 @@
|
|||
};
|
||||
pug = buildGrammar {
|
||||
language = "pug";
|
||||
version = "63e2149";
|
||||
version = "148608f";
|
||||
source = fetchFromGitHub {
|
||||
owner = "zealot128";
|
||||
repo = "tree-sitter-pug";
|
||||
rev = "63e214905970e75f065688b1e8aa90823c3aacdc";
|
||||
hash = "sha256-t/KRUV1DMlU/xu5BRe1VZm+dliXdtUVhFO+6psiHf+Q=";
|
||||
rev = "148608f3a88708829ac4e79ff9cb1c4a618e01b7";
|
||||
hash = "sha256-wEUJdu+2deObsc54BNPdUyTAR9Eih8hGbWRrwP5bhMk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/zealot128/tree-sitter-pug";
|
||||
};
|
||||
|
@ -1236,23 +1247,23 @@
|
|||
};
|
||||
scala = buildGrammar {
|
||||
language = "scala";
|
||||
version = "fd05f09";
|
||||
version = "f6bbf35";
|
||||
source = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-scala";
|
||||
rev = "fd05f09043051c82fba695aa95cee9c534fbc533";
|
||||
hash = "sha256-/o9TsnKGeukIGgfOjwNDjdxPkr5zyIPh1bZsvr2FX90=";
|
||||
rev = "f6bbf35de41653b409ca9a3537a154f2b095ef64";
|
||||
hash = "sha256-GNGD5UIPzpRQbGCp/fcBV6laPRhU5YQGbNiaAGis0CY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
|
||||
};
|
||||
scheme = buildGrammar {
|
||||
language = "scheme";
|
||||
version = "16bdcf0";
|
||||
version = "67b90a3";
|
||||
source = fetchFromGitHub {
|
||||
owner = "6cdh";
|
||||
repo = "tree-sitter-scheme";
|
||||
rev = "16bdcf0495865e17ae5b995257458e31e8b7f450";
|
||||
hash = "sha256-+K+T5IgcEdTZK4s60AmkPg7L6Aw0mj36FMsWaRxUT0I=";
|
||||
rev = "67b90a365bebf4406af4e5a546d6336de787e135";
|
||||
hash = "sha256-aHYOzOPK74Jd6MWFsap/k+dG+aJDTXQ05q7NoP5kfd8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/6cdh/tree-sitter-scheme";
|
||||
};
|
||||
|
@ -1313,12 +1324,12 @@
|
|||
};
|
||||
sql = buildGrammar {
|
||||
language = "sql";
|
||||
version = "3647b9f";
|
||||
version = "9d98029";
|
||||
source = fetchFromGitHub {
|
||||
owner = "derekstride";
|
||||
repo = "tree-sitter-sql";
|
||||
rev = "3647b9f5b937269f43ac6e4b6ebcb6f52e033c17";
|
||||
hash = "sha256-flZtgmMflDlWggMisUfVOA7ikGpkYwAGxzlc4jYzrrQ=";
|
||||
rev = "9d9802991aa1d1bc00eee7713a838dab1eb4f149";
|
||||
hash = "sha256-Iy5rqNZem1r++aI7vGITzBSFGjdDLGHFOgBWqIgKZX0=";
|
||||
};
|
||||
generate = true;
|
||||
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
||||
|
@ -1358,12 +1369,12 @@
|
|||
};
|
||||
swift = buildGrammar {
|
||||
language = "swift";
|
||||
version = "5f0ffaf";
|
||||
version = "0fe0de5";
|
||||
source = fetchFromGitHub {
|
||||
owner = "alex-pinkus";
|
||||
repo = "tree-sitter-swift";
|
||||
rev = "5f0ffaf21c7fda4d758d9ef5b20d563271653ce0";
|
||||
hash = "sha256-tPcCa3hqWN2NuQZOJXnB10h0m1MzRL4M+dvrtlpkAGs=";
|
||||
rev = "0fe0de56b528cbf24a654c734ca181b48be3831d";
|
||||
hash = "sha256-tU6UTyTR5biS6qBG0z6NbjJQUtZItzzscAKftUAzLq0=";
|
||||
};
|
||||
generate = true;
|
||||
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
|
||||
|
@ -1428,12 +1439,12 @@
|
|||
};
|
||||
tlaplus = buildGrammar {
|
||||
language = "tlaplus";
|
||||
version = "f2ad727";
|
||||
version = "7c5452a";
|
||||
source = fetchFromGitHub {
|
||||
owner = "tlaplus-community";
|
||||
repo = "tree-sitter-tlaplus";
|
||||
rev = "f2ad7272d145598ff2d27fda15379d26aa33a7e1";
|
||||
hash = "sha256-lnl0q9vJiIoqU3Lo+uCIcMdMueXTQ/MVgZUCHvXeqhs=";
|
||||
rev = "7c5452a0720271a349d6174b8778e76b189bebef";
|
||||
hash = "sha256-DJIA2gvwWWqTGrC48FZiRZNt048KiQ/4sZxYSnHmlEg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
|
||||
};
|
||||
|
@ -1507,12 +1518,12 @@
|
|||
};
|
||||
v = buildGrammar {
|
||||
language = "v";
|
||||
version = "497563e";
|
||||
version = "0b03983";
|
||||
source = fetchFromGitHub {
|
||||
owner = "vlang";
|
||||
repo = "vls";
|
||||
rev = "497563e140bf17d73f28e20b5a65e72740c2dc65";
|
||||
hash = "sha256-2AU/QGAroq5NReGhCbSJkAnGvftubtCG4hnnBjPKbdY=";
|
||||
rev = "0b039830a33e759f0c9ee978b47ad10b82d37349";
|
||||
hash = "sha256-sQxq/tWNN/aWD3ZmNhil45cnjzfy/2AXn2X/NhzvnKk=";
|
||||
};
|
||||
location = "tree_sitter_v";
|
||||
meta.homepage = "https://github.com/vlang/vls";
|
||||
|
|
|
@ -1052,7 +1052,7 @@ self: super: {
|
|||
libiconv
|
||||
];
|
||||
|
||||
cargoSha256 = "sha256-ls4WZQees78SNJilXoL3CSXAaILxX1/WUMCyO7+14IM=";
|
||||
cargoSha256 = "sha256-v9RXW5RSPMotRVR/9ljBJ9VNbrLnSkU3zlEU79Xem28=";
|
||||
};
|
||||
in
|
||||
''
|
||||
|
|
|
@ -77,6 +77,7 @@ https://github.com/rbgrouleff/bclose.vim/,,
|
|||
https://github.com/max397574/better-escape.nvim/,,
|
||||
https://github.com/sblumentritt/bitbake.vim/,,
|
||||
https://github.com/blueballs-theme/blueballs-neovim/,,
|
||||
https://github.com/nat-418/boole.nvim/,HEAD,
|
||||
https://github.com/turbio/bracey.vim/,,
|
||||
https://github.com/fruit-in/brainfuck-vim/,,
|
||||
https://github.com/famiu/bufdelete.nvim/,,
|
||||
|
@ -223,6 +224,7 @@ https://github.com/onsails/diaglist.nvim/,,
|
|||
https://github.com/nvim-lua/diagnostic-nvim/,,
|
||||
https://github.com/monaqa/dial.nvim/,HEAD,
|
||||
https://github.com/sindrets/diffview.nvim/,,
|
||||
https://github.com/elihunter173/dirbuf.nvim/,HEAD,
|
||||
https://github.com/direnv/direnv.vim/,,
|
||||
https://github.com/doki-theme/doki-theme-vim/,,
|
||||
https://github.com/Mofiqul/dracula.nvim/,HEAD,
|
||||
|
@ -551,6 +553,7 @@ https://github.com/neovim/nvimdev.nvim/,,
|
|||
https://github.com/glepnir/oceanic-material/,,
|
||||
https://github.com/mhartington/oceanic-next/,,
|
||||
https://github.com/pwntester/octo.nvim/,,
|
||||
https://github.com/stevearc/oil.nvim/,HEAD,
|
||||
https://github.com/Hoffs/omnisharp-extended-lsp.nvim/,HEAD,
|
||||
https://github.com/Th3Whit3Wolf/one-nvim/,,
|
||||
https://github.com/navarasu/onedark.nvim/,,
|
||||
|
|
|
@ -762,8 +762,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-markdownlint";
|
||||
publisher = "DavidAnson";
|
||||
version = "0.48.1";
|
||||
sha256 = "sha256-3TpZGvas+pfabHayaA6Yd9nOO2MbfXbCvCiTcbja9Vo=";
|
||||
version = "0.49.0";
|
||||
sha256 = "sha256-Mh/OoRK410aXEr3sK2CYFDsXGSqFT+JOWi9jHOdK01Y=";
|
||||
};
|
||||
meta = with lib; {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
|
||||
|
@ -998,8 +998,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "prettier-vscode";
|
||||
publisher = "esbenp";
|
||||
version = "9.10.3";
|
||||
sha256 = "sha256-BTuTTElPYRtbzQvUC3iMYlj7NDkGSDa/IppOGBXjfUM=";
|
||||
version = "9.10.4";
|
||||
sha256 = "sha256-khtyB0Qbm+iuM1GsAaF32YRv1VBTIy7daeCKdgwCIC8=";
|
||||
};
|
||||
meta = with lib; {
|
||||
changelog = "https://marketplace.visualstudio.com/items/esbenp.prettier-vscode/changelog";
|
||||
|
@ -1438,8 +1438,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "elixir-ls";
|
||||
publisher = "JakeBecker";
|
||||
version = "0.12.0";
|
||||
sha256 = "sha256-ZwdGcsvmEKDH5ZAkKiLEV/3ru74BittnxibMWbdkaco=";
|
||||
version = "0.13.0";
|
||||
sha256 = "sha256-1uaLFTMvkcYrYAt9qDdISJneKxHo9qsris70iowGW2s=";
|
||||
};
|
||||
meta = with lib; {
|
||||
changelog = "https://marketplace.visualstudio.com/items/JakeBecker.elixir-ls/changelog";
|
||||
|
|
|
@ -90,7 +90,6 @@ let
|
|||
vscodeDefault = vscode;
|
||||
};
|
||||
|
||||
|
||||
vscodeExts2nix = import ./vscodeExts2nix.nix {
|
||||
inherit lib writeShellScriptBin;
|
||||
vscodeDefault = vscode;
|
||||
|
@ -100,10 +99,41 @@ let
|
|||
inherit lib buildEnv writeShellScriptBin extensionsFromVscodeMarketplace jq;
|
||||
vscodeDefault = vscode;
|
||||
};
|
||||
|
||||
toExtensionJsonEntry = ext: rec {
|
||||
identifier = {
|
||||
id = ext.vscodeExtUniqueId;
|
||||
uuid = "";
|
||||
};
|
||||
|
||||
version = ext.version;
|
||||
|
||||
location = {
|
||||
"$mid" = 1;
|
||||
fsPath = ext.outPath + "/share/vscode/extensions/${ext.vscodeExtUniqueId}";
|
||||
path = location.fsPath;
|
||||
scheme = "file";
|
||||
};
|
||||
|
||||
metadata = {
|
||||
id = "";
|
||||
publisherId = "";
|
||||
publisherDisplayName = ext.vscodeExtPublisher;
|
||||
targetPlatform = "undefined";
|
||||
isApplicationScoped = false;
|
||||
updated = false;
|
||||
isPreReleaseVersion = false;
|
||||
installedTimestamp = 0;
|
||||
preRelease = false;
|
||||
};
|
||||
};
|
||||
|
||||
toExtensionJson = extensions: builtins.toJSON (map toExtensionJsonEntry extensions);
|
||||
in
|
||||
{
|
||||
inherit fetchVsixFromVscodeMarketplace buildVscodeExtension
|
||||
buildVscodeMarketplaceExtension extensionFromVscodeMarketplace
|
||||
extensionsFromVscodeMarketplace
|
||||
vscodeWithConfiguration vscodeExts2nix vscodeEnv;
|
||||
vscodeWithConfiguration vscodeExts2nix vscodeEnv
|
||||
toExtensionJsonEntry toExtensionJson;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, runCommand, buildEnv, vscode, makeWrapper, writeText
|
||||
{ lib, stdenv, runCommand, buildEnv, vscode, vscode-utils, makeWrapper, writeTextFile
|
||||
, vscodeExtensions ? [] }:
|
||||
|
||||
/*
|
||||
|
@ -46,44 +46,15 @@ let
|
|||
wrappedPkgVersion = lib.getVersion vscode;
|
||||
wrappedPkgName = lib.removeSuffix "-${wrappedPkgVersion}" vscode.name;
|
||||
|
||||
toExtensionJsonEntry = drv: rec {
|
||||
identifier = {
|
||||
id = "${drv.vscodeExtPublisher}.${drv.vscodeExtName}";
|
||||
uuid = "";
|
||||
};
|
||||
|
||||
version = drv.version;
|
||||
|
||||
location = {
|
||||
"$mid" = 1;
|
||||
fsPath = drv.outPath + "/share/vscode/extensions/${drv.vscodeExtUniqueId}";
|
||||
path = location.fsPath;
|
||||
scheme = "file";
|
||||
};
|
||||
|
||||
metadata = {
|
||||
id = identifier.uuid;
|
||||
publisherId = "";
|
||||
publisherDisplayName = drv.vscodeExtPublisher;
|
||||
targetPlatform = "undefined";
|
||||
isApplicationScoped = false;
|
||||
updated = false;
|
||||
isPreReleaseVersion = false;
|
||||
installedTimestamp = 0;
|
||||
preRelease = false;
|
||||
};
|
||||
extensionJsonFile = writeTextFile {
|
||||
name = "vscode-extensions-json";
|
||||
destination = "/share/vscode/extensions/extensions.json";
|
||||
text = vscode-utils.toExtensionJson vscodeExtensions;
|
||||
};
|
||||
|
||||
extensionJson = builtins.toJSON (map toExtensionJsonEntry vscodeExtensions);
|
||||
extensionJsonFile = writeText "extensions.json" extensionJson;
|
||||
extensionJsonOutput = runCommand "vscode-extensions-json" {} ''
|
||||
mkdir -p $out/share/vscode/extensions
|
||||
cp ${extensionJsonFile} $out/share/vscode/extensions/extensions.json
|
||||
'';
|
||||
|
||||
combinedExtensionsDrv = buildEnv {
|
||||
name = "vscode-extensions";
|
||||
paths = vscodeExtensions ++ [ extensionJsonOutput ];
|
||||
paths = vscodeExtensions ++ [ extensionJsonFile ];
|
||||
};
|
||||
|
||||
extensionsFlag = ''
|
||||
|
@ -91,8 +62,6 @@ let
|
|||
'';
|
||||
in
|
||||
|
||||
# When no extensions are requested, we simply redirect to the original
|
||||
# non-wrapped vscode executable.
|
||||
runCommand "${wrappedPkgName}-with-extensions-${wrappedPkgVersion}" {
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ vscode ];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, lib, fetchzip, wxGTK32, coreutils, SDL2, openal, alsa-lib, pkg-config
|
||||
{ stdenv, lib, fetchzip, wxGTK32, coreutils, SDL2, openal, alsa-lib, pkg-config, gtk3, wrapGAppsHook
|
||||
, autoreconfHook, withNetworking ? true, withALSA ? true }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
|
@ -11,8 +11,8 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "067pbnc15h6a4pnnym82klr1w8qwfm6p0pkx93gx06wvwqsxvbdv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ wxGTK32 coreutils SDL2 openal ]
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
|
||||
buildInputs = [ wxGTK32 coreutils SDL2 openal gtk3 ]
|
||||
++ lib.optional withALSA alsa-lib;
|
||||
|
||||
configureFlags = [ "--enable-release-build" ]
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "ruffle";
|
||||
version = "nightly-2022-09-26";
|
||||
version = "nightly-2022-12-16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ruffle-rs";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-o0geKXODFRPKN4JgW+Sg16uPhBS5rrlMCmFSc9AcNPQ=";
|
||||
sha256 = "sha256-VOaXn/dJB0AbuZ8owBbUYEPrL/H8DM73MhwhBjxq2Pg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -71,7 +71,7 @@ rustPlatform.buildRustPackage rec {
|
|||
"''${gappsWrapperArgs[@]}"
|
||||
'';
|
||||
|
||||
cargoSha256 = "sha256-erqBuU66k7SGG9ueyYEINjeXbyC7A2I/r1bBqdsJemY=";
|
||||
cargoSha256 = "sha256-h5qshincT48zYvbNLMXcvxw7Ovupnn9c93lpqY7oNtc=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "An Adobe Flash Player emulator written in the Rust programming language.";
|
||||
|
|
|
@ -9,16 +9,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "felix";
|
||||
version = "2.2.2";
|
||||
version = "2.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyoheiu";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-VKesly7Jp1PgukArNKvDGzSRh7DaL3A/Dub3dLR6ET4=";
|
||||
sha256 = "sha256-VQTZj2BCdV2TnXrYRaJqrf9sR35zsojmeoe7t+I3kyQ=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-7+4SIBnu4R2mbH2nWBX9BmJL1n8t46d1vrMpNaUHAo4=";
|
||||
cargoSha256 = "sha256-jH2BaPiGanBOlOU7JQZ0c0ObCaVURpjvmx2m92Fbdm4=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "jpeginfo";
|
||||
version = "1.6.2";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.kokkonen.net/tjko/src/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-HV/alZ68VA+pyBN25gCHVkmaUkpfZvgSnIeRXkzNoAQ=";
|
||||
sha256 = "sha256-3JhQg0SNlwfULkm+2CaiR8Db2mkTyHDppdm/fHSTllk=";
|
||||
};
|
||||
|
||||
buildInputs = [ libjpeg ];
|
||||
|
|
|
@ -47,14 +47,14 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "monado";
|
||||
version = "unstable-2022-05-28";
|
||||
version = "unstable-2023-01-14";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "monado";
|
||||
repo = "monado";
|
||||
rev = "011bcbdcff227e25507e5f2d81a83a2bbe478856";
|
||||
sha256 = "sha256-8velNKSCZJtKO8ATwXDl1nU8RbxZ8TeyGiUQFOXifuI=";
|
||||
rev = "1ef49b92f2d6cb519039edd7ba7f70e8073fbe88";
|
||||
sha256 = "sha256-zieJmI6BKHpYyCPOOUora9qoWn+NXehbHKvoi4h81UA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
25
pkgs/applications/graphics/pureref/default.nix
Normal file
25
pkgs/applications/graphics/pureref/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, appimageTools, requireFile }:
|
||||
|
||||
appimageTools.wrapType1 rec {
|
||||
pname = "pureref";
|
||||
version = "1.11.1";
|
||||
|
||||
src = requireFile {
|
||||
name = "PureRef-${version}_x64.Appimage";
|
||||
sha256 = "05naywdgykqrsgc3xybskr418cyvbx7vqs994yv9w8zf98gxvbvm";
|
||||
url = "https://www.pureref.com/download.php";
|
||||
};
|
||||
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Reference Image Viewer";
|
||||
homepage = "https://www.pureref.com";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ elnudev ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
|
||||
};
|
||||
}
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "yacreader";
|
||||
version = "9.10.0";
|
||||
version = "9.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "YACReader";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-77+lsEvmwQ34maW+HA/IpPsEezlzYEYipc74yR6inwU=";
|
||||
sha256 = "sha256-/fSIV+4j516PgHGn6zF+TfVaVW/lVWykf5J8bnQuttg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ qmake pkg-config ];
|
||||
|
|
|
@ -10,12 +10,12 @@
|
|||
stdenv.mkDerivation rec {
|
||||
pname = "authy";
|
||||
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/authy?channel=stable' | jq '.download_url,.version'
|
||||
version = "2.2.1";
|
||||
rev = "11";
|
||||
version = "2.2.2";
|
||||
rev = "12";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://api.snapcraft.io/api/v1/snaps/download/H8ZpNgIoPyvmkgxOWw5MSzsXK1wRZiHn_${rev}.snap";
|
||||
sha256 = "sha256-/a0pMXVd7mEp7oaN2mBIJv5uOv1zQ3gvfgiz1XL9ZmM=";
|
||||
sha256 = "sha256-vSbqT2s5lLEU1SSDaC+sS6qt446iSKYUgKudO5WMOu4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook makeWrapper squashfsTools ];
|
||||
|
|
32
pkgs/applications/misc/bitwarden-menu/default.nix
Normal file
32
pkgs/applications/misc/bitwarden-menu/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ lib
|
||||
, buildPythonApplication
|
||||
, fetchPypi
|
||||
, pynput
|
||||
, xdg
|
||||
}:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "bitwarden-menu";
|
||||
version = "0.4.1";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-OC+MHEiUU6bDT2wSSDtu0KnwDwBpbLTBta0xjfuzlOI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pynput
|
||||
xdg
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/firecat53/bitwarden-menu/releases/tag/v${version}";
|
||||
description = "Dmenu/Rofi frontend for managing Bitwarden vaults. Uses the Bitwarden CLI tool to interact with the Bitwarden database.";
|
||||
homepage = "https://github.com/firecat53/bitwarden-menu";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.rodrgz ];
|
||||
};
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
{ lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff, libwebp, pkg-config,
|
||||
librsvg, glib, gtk2, libXext, libXxf86vm, poppler, vlc, ghostscript, makeWrapper, tzdata }:
|
||||
{ lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff
|
||||
, libwebp, pkg-config, librsvg, glib, gtk2, libXext, libXxf86vm, poppler, vlc
|
||||
, ghostscript, makeWrapper, tzdata, makeDesktopItem, copyDesktopItems }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "eaglemode";
|
||||
|
@ -15,15 +16,17 @@ stdenv.mkDerivation rec {
|
|||
substituteInPlace src/emClock/emTimeZonesModel.cpp --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ pkg-config makeWrapper ];
|
||||
nativeBuildInputs = [ pkg-config makeWrapper copyDesktopItems ];
|
||||
buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff libwebp
|
||||
librsvg glib gtk2 libXxf86vm libXext poppler vlc ghostscript ];
|
||||
|
||||
# The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the
|
||||
# trick on NIX_LDFLAGS and dontPatchELF to make it find them.
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
export NIX_LDFLAGS="$NIX_LDFLAGS -lXxf86vm -lXext -lXinerama"
|
||||
perl make.pl build
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
dontPatchELF = true;
|
||||
|
@ -31,16 +34,33 @@ stdenv.mkDerivation rec {
|
|||
forceShare = [ "man" "info" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
perl make.pl install dir=$out
|
||||
wrapProgram $out/bin/eaglemode --set EM_DIR "$out" --prefix LD_LIBRARY_PATH : "$out/lib" --prefix PATH : "${ghostscript}/bin"
|
||||
for i in 32 48 96; do
|
||||
mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
|
||||
ln -s $out/res/icons/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png
|
||||
done
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = pname;
|
||||
exec = pname;
|
||||
icon = pname;
|
||||
desktopName = "Eagle Mode";
|
||||
genericName = meta.description;
|
||||
categories = [ "Game" "Graphics" "System" "Utility" ];
|
||||
})
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://eaglemode.sourceforge.net";
|
||||
description = "Zoomable User Interface";
|
||||
changelog = "https://eaglemode.sourceforge.net/ChangeLog.html";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ chuangzhu ];
|
||||
maintainers = with maintainers; [ chuangzhu ehmry ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
53
pkgs/applications/misc/gnome-epub-thumbnailer/default.nix
Normal file
53
pkgs/applications/misc/gnome-epub-thumbnailer/default.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, wrapGAppsNoGuiHook
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, libarchive
|
||||
, librsvg
|
||||
, libxml2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-epub-thumbnailer";
|
||||
version = "1.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-epub-thumbnailer/${lib.versions.majorMinor version}/gnome-epub-thumbnailer-${version}.tar.xz";
|
||||
sha256 = "sha256-S7Ah++RCgNuY3xTBH6XkMgsWe4GpG9e6WGvqDE+il1I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
wrapGAppsNoGuiHook
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gdk-pixbuf
|
||||
glib
|
||||
libarchive
|
||||
librsvg
|
||||
libxml2
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-epub-thumbnailer";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Thumbnailer for EPub and MOBI books";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-epub-thumbnailer";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "hugo";
|
||||
version = "0.109.0";
|
||||
version = "0.110.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gohugoio";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Eak4sU8UwzPQ5iuoNX+KrAJdZ6ZvBdDyJx4xeQI4sjY=";
|
||||
hash = "sha256-7B0C8191lUGsv81+0eKDrBm+5hLlFjID3RTuajSg/RM=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-0m5flwvchExP1IDAuE/oTB2eUEbq5KCE8Zvzp5e7yZ8=";
|
||||
vendorHash = "sha256-GtywXjtAF5Q4jUz2clfseUJVqiU+eSguG/ZoKy2TzuA=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "jrnl";
|
||||
version = "3.0";
|
||||
version = "3.3";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jrnl-org";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-wyN7dlAbQwqvES8qEJ4Zo+fDMM/Lh9tNjf215Ywop10=";
|
||||
rev = "refs/tags/v${version}";
|
||||
sha256 = "sha256-e2w0E8t6s0OWx2ROme2GdyzWhmCc6hnMfSdLTZqt3bg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
|
@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace pyproject.toml \
|
||||
--replace 'tzlocal = ">2.0, <3.0"' 'tzlocal = ">2.0, !=3.0"'
|
||||
--replace 'rich = "^12.2.0"' 'rich = ">=12.2.0, <14.0.0"'
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
|
@ -66,6 +66,6 @@ python3.pkgs.buildPythonApplication rec {
|
|||
description = "Simple command line journal application that stores your journal in a plain text file";
|
||||
homepage = "https://jrnl.sh/";
|
||||
license = licenses.gpl3Only;
|
||||
maintainers = with maintainers; [ zalakain ];
|
||||
maintainers = with maintainers; [ bryanasdev000 zalakain ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, libzen, libmediainfo, zlib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "22.06";
|
||||
version = "22.12";
|
||||
pname = "mediainfo";
|
||||
src = fetchurl {
|
||||
url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
|
||||
sha256 = "sha256-mGowC8wnNJij5dpOlwHX3m7uGZ7TbUInPdP+nsesi30=";
|
||||
sha256 = "sha256-kyuCc59zjn22A89bsXByBzGp58YdFFwqVKq7PNC3U7w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
|
|
@ -83,7 +83,7 @@ let
|
|||
hash = "sha256-DCUesPy4/g7DYN/9CDRvwAWHcv4dFsF+gsysg5UWThQ=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with super; [
|
||||
propagatedBuildInputs = with self; [
|
||||
argon2-cffi
|
||||
blinker
|
||||
cachelib
|
||||
|
@ -136,7 +136,7 @@ let
|
|||
py.pkgs.appdirs
|
||||
];
|
||||
|
||||
checkInputs = with super; [
|
||||
checkInputs = with self; [
|
||||
ddt
|
||||
mock
|
||||
pytestCheckHook
|
||||
|
@ -146,7 +146,7 @@ let
|
|||
# substitute pip and let it find out, that it can't write anywhere
|
||||
(substituteAll {
|
||||
src = ./pip-path.patch;
|
||||
pip = "${super.pip}/bin/pip";
|
||||
pip = "${self.pip}/bin/pip";
|
||||
})
|
||||
|
||||
# hardcore path to ffmpeg and hide related settings
|
||||
|
@ -172,6 +172,7 @@ let
|
|||
"Flask-Login"
|
||||
"werkzeug"
|
||||
"flask"
|
||||
"Flask-Limiter"
|
||||
];
|
||||
in
|
||||
''
|
||||
|
|
|
@ -47,6 +47,10 @@ rustPlatform.buildRustPackage rec {
|
|||
--add-rpath ${lib.makeLibraryPath [ libGL libxkbcommon wayland ]}
|
||||
'';
|
||||
|
||||
# enables pipewire API deprecated in 0.3.64
|
||||
# fixes error caused by https://gitlab.freedesktop.org/pipewire/pipewire-rs/-/issues/55
|
||||
NIX_CFLAGS_COMPILE = [ "-DPW_ENABLE_DEPRECATED" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and elegant pipewire graph editor ";
|
||||
homepage = "https://github.com/ax9d/pw-viz";
|
||||
|
|
|
@ -19,9 +19,13 @@
|
|||
, curl
|
||||
, openssl
|
||||
, file
|
||||
, darwin
|
||||
, gitUpdater
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pwsafe";
|
||||
version = "1.16.0"; # do NOT update to 3.x Windows releases
|
||||
|
@ -33,6 +37,8 @@ stdenv.mkDerivation rec {
|
|||
hash = "sha256-5/TOg+hiy22vlPJHheE638abhS3B5Jrul0Umgwu+gi0=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gettext
|
||||
|
@ -42,24 +48,29 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
buildInputs = [
|
||||
wxGTK32
|
||||
curl
|
||||
qrencode
|
||||
openssl
|
||||
xercesc
|
||||
file
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
libXext
|
||||
libXi
|
||||
libXt
|
||||
libXtst
|
||||
wxGTK32
|
||||
curl
|
||||
qrencode
|
||||
libuuid
|
||||
openssl
|
||||
xercesc
|
||||
libyubikey
|
||||
yubikey-personalization
|
||||
file
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
Cocoa
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DNO_GTEST=ON"
|
||||
"-DCMAKE_CXX_FLAGS=-I${yubikey-personalization}/include/ykpers-1"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"-DNO_YUBI=ON"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -79,6 +90,8 @@ stdenv.mkDerivation rec {
|
|||
for f in $(grep -Rl /usr/bin/ .) ; do
|
||||
substituteInPlace $f --replace /usr/bin/ ""
|
||||
done
|
||||
'' + lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace src/ui/cli/CMakeLists.txt --replace "uuid" ""
|
||||
'';
|
||||
|
||||
installFlags = [ "PREFIX=${placeholder "out"}" ];
|
||||
|
@ -99,7 +112,7 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://pwsafe.org/";
|
||||
maintainers = with maintainers; [ c0bw3b pjones ];
|
||||
platforms = platforms.linux;
|
||||
platforms = platforms.unix;
|
||||
license = licenses.artistic2;
|
||||
};
|
||||
}
|
||||
|
|
25
pkgs/applications/misc/terminal-stocks/default.nix
Normal file
25
pkgs/applications/misc/terminal-stocks/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, buildNpmPackage, fetchFromGitHub, nix-update-script }:
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "terminal-stocks";
|
||||
version = "1.0.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shweshi";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-AzLMqp5t9u1ne+xCKp0dq/3V3DKJ1Ou9riAN+KqkStg=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-GOg6B8BWkWegxeYmlHSJjFNrb/frb6jdzjjNSGF38Zo=";
|
||||
dontNpmBuild = true;
|
||||
|
||||
passthru.updateScript = nix-update-script {};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Terminal based application that provides stock price information";
|
||||
homepage = "https://github.com/shweshi/terminal-stocks";
|
||||
maintainers = with maintainers; [ mislavzanic ];
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, dpkg, wrapGAppsHook, autoPatchelfHook
|
||||
{ lib, stdenv, requireFile, dpkg, wrapGAppsHook, autoPatchelfHook
|
||||
, alsa-lib, atk, at-spi2-atk, at-spi2-core, cairo, cups, dbus, expat, fontconfig, freetype
|
||||
, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11, libxcb
|
||||
, libXcomposite, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
|
||||
|
@ -6,11 +6,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "upwork";
|
||||
version = "5.6.10.13";
|
||||
version = "5.8.0.24";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_13_3c485d1dd2af4f61/${pname}_${version}_amd64.deb";
|
||||
sha256 = "c3e1ecf14c99596f434edf93a2e08f031fbaa167025d1280cf19f68b829d6b79";
|
||||
src = requireFile {
|
||||
name = "${pname}_${version}_amd64.deb";
|
||||
url = "https://www.upwork.com/ab/downloads/os/linux/";
|
||||
sha256 = "sha256-9X1U/ImI8GfCiYLpLD+jICYAYsAr1NJLlOMvecXK7hc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "whalebird";
|
||||
version = "4.6.5";
|
||||
version = "4.7.4";
|
||||
|
||||
src = let
|
||||
downloads = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}";
|
||||
|
@ -11,12 +11,12 @@ stdenv.mkDerivation rec {
|
|||
if stdenv.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = downloads + "/Whalebird-${version}-linux-x64.tar.bz2";
|
||||
sha256 = "sha256-WeZnWEwRbZEnYkLwWf6EC3ZbwI+Cr59czdKxxG/Lhn0=";
|
||||
sha256 = "sha256-jRtlnKlrh6If9wy3FqVBtctQO3rZJRwceUWAPmieT4A=";
|
||||
}
|
||||
else if stdenv.system == "aarch64-linux" then
|
||||
fetchurl {
|
||||
url = downloads + "/Whalebird-${version}-linux-arm64.tar.bz2";
|
||||
sha256 = "sha256-5iKVP7zOci5X+EhnfJx5cZ5RiqZKz1pFLDUwZncynUc=";
|
||||
sha256 = "sha256-gWCBH2zfhJdJ3XUAxvZ0+gBHye5uYCUgX1BDEoaruxY=";
|
||||
}
|
||||
else
|
||||
throw "Whalebird is not supported for ${stdenv.system}";
|
||||
|
@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
|
|||
# Necessary steps to find the tray icon
|
||||
asar extract opt/Whalebird/resources/app.asar "$TMP/work"
|
||||
substituteInPlace $TMP/work/dist/electron/main.js \
|
||||
--replace "Ao,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
|
||||
--replace "qt,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
|
||||
asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
|
||||
|
||||
runHook postBuild
|
||||
|
|
|
@ -1,9 +1,24 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, intltool, xorg, pcre, gst_all_1, glib
|
||||
, xosd, libnotify, enchant, wrapGAppsHook, gdk-pixbuf }:
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, intltool
|
||||
, pkg-config
|
||||
, wrapGAppsHook
|
||||
, enchant
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gst_all_1
|
||||
, libnotify
|
||||
, pcre
|
||||
, xorg
|
||||
, xosd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "xneur";
|
||||
version = "0.20.0";
|
||||
pname = "xneur";
|
||||
version = "0.20.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/AndrewCrewKuznetsov/xneur-devel/raw/f66723feb272c68f7c22a8bf0dbcafa5e3a8a5ee/dists/0.20.0/xneur_0.20.0.orig.tar.gz";
|
||||
|
@ -11,14 +26,26 @@ stdenv.mkDerivation {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config intltool wrapGAppsHook
|
||||
autoreconfHook
|
||||
intltool
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
xorg.libX11 xorg.libXtst pcre gst_all_1.gstreamer glib
|
||||
xosd xorg.libXext xorg.libXi libnotify
|
||||
enchant gdk-pixbuf
|
||||
gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
|
||||
enchant
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gstreamer
|
||||
libnotify
|
||||
pcre
|
||||
xorg.libX11
|
||||
xorg.libXext
|
||||
xorg.libXi
|
||||
xorg.libXtst
|
||||
xosd
|
||||
];
|
||||
|
||||
patches = [
|
||||
|
@ -27,10 +54,15 @@ stdenv.mkDerivation {
|
|||
url = "https://salsa.debian.org/debian/xneur/-/raw/da38ad9c8e1bf4e349f5ed4ad909f810fdea44c9/debian/patches/gcc-10.patch";
|
||||
sha256 = "0pc17a4sdrnrc4z7gz28889b9ywqsm5mzm6m41h67j2f5zh9k3fy";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "enchant2.patch";
|
||||
url = "https://salsa.debian.org/debian/xneur/-/raw/695b0fea56cde4ff6cf0f3988218c5cb9d7ff5ae/debian/patches/enchant2.patch";
|
||||
sha256 = "02a3kkfzdvs5f8dfm6j5x3jcn5j8qah9ykfymp6ffqsf4fijp65n";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -e 's@for xosd_dir in@for xosd_dir in ${xosd} @' -i configure
|
||||
sed -e 's@for xosd_dir in@for xosd_dir in ${xosd} @' -i configure.ac
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -197,6 +197,9 @@ in stdenv.mkDerivation {
|
|||
export CHROME_DEVEL_SANDBOX="$sandbox/bin/${sandboxExecutableName}"
|
||||
fi
|
||||
|
||||
# Make generated desktop shortcuts have a valid executable name.
|
||||
export CHROME_WRAPPER='chromium'
|
||||
|
||||
'' + lib.optionalString (libPath != "") ''
|
||||
# To avoid loading .so files from cwd, LD_LIBRARY_PATH here must not
|
||||
# contain an empty section before or after a colon.
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -3,10 +3,10 @@
|
|||
rec {
|
||||
firefox = buildMozillaMach rec {
|
||||
pname = "firefox";
|
||||
version = "108.0.2";
|
||||
version = "109.0";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "f856ef034fa4a526e19968aed092c9ee99e124d2d271ec1c1bbd091d9a03e23293d69c7a9ae17c43258cde7e73c294534b471e36441e576377854f607c9bfa3a";
|
||||
sha512 = "9e2b6e20353e414da3d2eb9dcd3d77757664a98a4438a8e84f19a1c7c203e40136b08bf96a458fac05ddc627347217d32f1f6337980c5ca918874993657a58e7";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
@ -29,11 +29,11 @@ rec {
|
|||
|
||||
firefox-esr-102 = buildMozillaMach rec {
|
||||
pname = "firefox-esr-102";
|
||||
version = "102.6.0esr";
|
||||
version = "102.7.0esr";
|
||||
applicationName = "Mozilla Firefox ESR";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "c0f0160bea612d0ae74c29dd44beb7fd9a1c292694b8cd5c4faf2e54feb5c27684eee821b67dd40df714d69866a4e3a8b19e22182d9bc3023050d2d96b02d308";
|
||||
sha512 = "2a9d212b5d15e1bf7a6156495126cbc9161d2057aeedea8f7a5a0670a19a9b00cf35044075935c8f3c788118856ba2cc00f9b297c5ac713f094857683f7cd13b";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"packageVersion": "108.0.2-1",
|
||||
"packageVersion": "109.0-1",
|
||||
"source": {
|
||||
"rev": "108.0.2-1",
|
||||
"sha256": "0mzar03yq8vphhxhjzr2n4v9jm8z5j5vaxfzby7wf42pw7p0fml6"
|
||||
"rev": "109.0-1",
|
||||
"sha256": "18nd0shx1r2y2gn42sa2jlckcymmnx3fkm4fp58c80gcppslh1fs"
|
||||
},
|
||||
"firefox": {
|
||||
"version": "108.0.2",
|
||||
"sha512": "f856ef034fa4a526e19968aed092c9ee99e124d2d271ec1c1bbd091d9a03e23293d69c7a9ae17c43258cde7e73c294534b471e36441e576377854f607c9bfa3a"
|
||||
"version": "109.0",
|
||||
"sha512": "9e2b6e20353e414da3d2eb9dcd3d77757664a98a4438a8e84f19a1c7c203e40136b08bf96a458fac05ddc627347217d32f1f6337980c5ca918874993657a58e7"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ mkYarnPackage, fetchFromGitHub, electron, makeWrapper, makeDesktopItem, lib, p7zip }:
|
||||
{ mkYarnPackage, fetchFromGitHub, electron, makeWrapper, makeDesktopItem, lib }:
|
||||
|
||||
mkYarnPackage rec {
|
||||
pname = "vieb";
|
||||
version = "7.2.0";
|
||||
version = "9.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Jelmerro";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-4iokmUzs72aVHb95D98ZITRygn4gGAc/K+M5uMnF2NM=";
|
||||
sha256 = "sha256-SWHjzrEvRlTn4HJnT81Le4KsFDypN3QH3F/z7zZ8p3E=";
|
||||
};
|
||||
|
||||
packageJSON = ./package.json;
|
||||
|
@ -37,8 +37,6 @@ mkYarnPackage rec {
|
|||
unlink $out/libexec/vieb/deps/vieb/node_modules
|
||||
ln -s $out/libexec/vieb/node_modules $out/libexec/vieb/deps/vieb/node_modules
|
||||
|
||||
find $out/libexec/vieb/node_modules/7zip-bin -name 7za -exec ln -s -f ${p7zip}/bin/7za {} ';'
|
||||
|
||||
install -Dm0644 {${desktopItem},$out}/share/applications/vieb.desktop
|
||||
|
||||
pushd $out/libexec/vieb/node_modules/vieb/app/img/icons
|
||||
|
@ -48,7 +46,8 @@ mkYarnPackage rec {
|
|||
popd
|
||||
|
||||
makeWrapper ${electron}/bin/electron $out/bin/vieb \
|
||||
--add-flags $out/libexec/vieb/node_modules/vieb/app
|
||||
--add-flags $out/libexec/vieb/node_modules/vieb/app \
|
||||
--set npm_package_version ${version}
|
||||
'';
|
||||
|
||||
distPhase = ":"; # disable useless $out/tarballs directory
|
||||
|
|
|
@ -1,20 +1,16 @@
|
|||
{
|
||||
"name": "vieb",
|
||||
"productName": "Vieb",
|
||||
"version": "7.1.2",
|
||||
"version": "9.5.0",
|
||||
"description": "Vim Inspired Electron Browser",
|
||||
"main": "app/index.js",
|
||||
"scripts": {
|
||||
"build": "node build.js",
|
||||
"buildall": "node build.js --linux --win --mac",
|
||||
"buildlinux": "node build.js --linux",
|
||||
"buildmac": "node build.js --mac",
|
||||
"buildwin": "node build.js --win",
|
||||
"dev": "electron app --datafolder=./ViebData/",
|
||||
"fix": "eslint --fix app .eslintrc.js build.js",
|
||||
"lint": "eslint app .eslintrc.js build.js",
|
||||
"start": "electron app",
|
||||
"test": "TZ=UTC jest --testEnvironment jsdom --coverage --collectCoverageFrom 'app/**/*.js' -u && npm run lint && echo 'All good :)'"
|
||||
"test": "TZ=UTC jest --testEnvironment jsdom --coverage --collectCoverageFrom 'app/**/*.js' -u",
|
||||
"test:all": "npm run test && npm run lint && echo 'All good :)'"
|
||||
},
|
||||
"repository": "https://github.com/Jelmerro/Vieb",
|
||||
"homepage": "https://vieb.dev",
|
||||
|
@ -26,20 +22,28 @@
|
|||
],
|
||||
"author": "Jelmer van Arnhem",
|
||||
"email": "Jelmerro@users.noreply.github.com",
|
||||
"funding": "https://github.com/sponsors/Jelmerro/",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"devDependencies": {
|
||||
"electron": "17.0.1",
|
||||
"electron-builder": "22.14.13",
|
||||
"eslint": "8.9.0",
|
||||
"electron": "22.0.0",
|
||||
"electron-builder": "24.0.0-alpha.7",
|
||||
"eslint": "8.29.0",
|
||||
"eslint-plugin-sort-keys": "2.3.5",
|
||||
"jest": "27.5.1",
|
||||
"jest-environment-jsdom": "27.5.1"
|
||||
"jest": "29.3.1",
|
||||
"jest-environment-jsdom": "29.3.1",
|
||||
"terser-webpack-plugin": "5.3.6",
|
||||
"webpack": "5.75.0",
|
||||
"webpack-cli": "5.0.1",
|
||||
"webpack-node-externals": "3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"7zip-bin": "5.1.1",
|
||||
"@cliqz/adblocker-electron": "1.23.6",
|
||||
"@cliqz/adblocker-electron-preload": "1.23.6",
|
||||
"is-svg": "4.3.2",
|
||||
"rimraf": "3.0.2"
|
||||
"@cliqz/adblocker-electron": "1.25.1",
|
||||
"@cliqz/adblocker-electron-preload": "1.25.1",
|
||||
"@mozilla/readability": "0.4.2",
|
||||
"darkreader": "4.9.58",
|
||||
"highlight.js": "11.7.0",
|
||||
"jsdom": "20.0.3",
|
||||
"marked": "4.2.4",
|
||||
"picomatch": "2.3.1"
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "argo-rollouts";
|
||||
version = "1.3.2";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo-rollouts";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-hsUpZrtgjP6FaVhw0ijDTlvfz9Ok+A4nyAwi2VNxvEg=";
|
||||
sha256 = "sha256-HdYbrcz1uumwfUleDayc7obv4Grpg3TiUxKr8aF5bXM=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-gm96rQdQJGsIcxVgEI7sI7BvEETU/+HsQ6PnDjFXb/0=";
|
||||
vendorHash = "sha256-ZIFZCMyhpfKK/Irq2/MvkXuXX1jExDaSK/nXZgzCZgU=";
|
||||
|
||||
# Disable tests since some test fail because of missing test data
|
||||
doCheck = false;
|
||||
|
|
|
@ -12,16 +12,25 @@ let
|
|||
# We build the CLI without the static server for simplicity, but the tool is still required for
|
||||
# compilation to succeed.
|
||||
# See: https://github.com/argoproj/argo/blob/d7690e32faf2ac5842468831daf1443283703c25/Makefile#L117
|
||||
staticfiles = pkgsBuildBuild.buildGoPackage rec {
|
||||
staticfiles = pkgsBuildBuild.buildGoModule rec {
|
||||
name = "staticfiles";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bouk";
|
||||
repo = "staticfiles";
|
||||
rev = "827d7f6389cd410d0aa3f3d472a4838557bf53dd";
|
||||
sha256 = "0xarhmsqypl8036w96ssdzjv3k098p2d4mkmw5f6hkp1m3j67j61";
|
||||
hash = "sha256-wchj5KjhTmhc4XVW0sRFCcyx5W9am8TNAIhej3WFWXU=";
|
||||
};
|
||||
|
||||
goPackagePath = "bou.ke/staticfiles";
|
||||
vendorHash = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
|
||||
|
||||
excludedPackages = [ "./example" ];
|
||||
|
||||
preBuild = ''
|
||||
cp ${./staticfiles.go.mod} go.mod
|
||||
'';
|
||||
|
||||
ldflags = [ "-s" "-w" ];
|
||||
};
|
||||
in
|
||||
buildGoModule rec {
|
||||
|
@ -55,7 +64,8 @@ buildGoModule rec {
|
|||
'';
|
||||
|
||||
ldflags = [
|
||||
"-s" "-w"
|
||||
"-s"
|
||||
"-w"
|
||||
"-X github.com/argoproj/argo-workflows/v3.buildDate=unknown"
|
||||
"-X github.com/argoproj/argo-workflows/v3.gitCommit=${src.rev}"
|
||||
"-X github.com/argoproj/argo-workflows/v3.gitTag=${src.rev}"
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
module bou.ke/staticfiles
|
||||
|
||||
go 1.18
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "cni-plugins";
|
||||
version = "1.1.1";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containernetworking";
|
||||
repo = "plugins";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-I9OmTO5obTwAj4hkecUfmRYR4Q3rdllMfbpESv66eEQ=";
|
||||
sha256 = "sha256-p6gvXn8v7KZMiCPj2EQlk/2au1nZ6EJlLxcMZHzlEp8=";
|
||||
};
|
||||
|
||||
vendorSha256 = null;
|
||||
|
@ -24,6 +24,7 @@ buildGoModule rec {
|
|||
"plugins/ipam/host-local"
|
||||
"plugins/ipam/static"
|
||||
"plugins/main/bridge"
|
||||
"plugins/main/dummy"
|
||||
"plugins/main/host-device"
|
||||
"plugins/main/ipvlan"
|
||||
"plugins/main/loopback"
|
||||
|
|
|
@ -2,15 +2,15 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "kubernetes-helm";
|
||||
version = "3.10.3";
|
||||
version = "3.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "helm";
|
||||
repo = "helm";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-SUPa6bbops2rrzzzYM5fH0l4DT7/rIkOqc396lTesao=";
|
||||
sha256 = "sha256-Pes1p7rTO17Bef6qacsQWJkhb1CWilzmVYQe886EepU=";
|
||||
};
|
||||
vendorSha256 = "sha256-vyHT/N5lat/vqM2jK4Q+jJOtZpS52YCYGcJqfa5e0KM=";
|
||||
vendorSha256 = "sha256-LRMDrBSl5EGQqQt5FUU4JJHqdwfYt5qsVpe76jUQBVI=";
|
||||
|
||||
subPackages = [ "cmd/helm" ];
|
||||
ldflags = [
|
||||
|
@ -37,7 +37,8 @@ buildGoModule rec {
|
|||
postInstall = ''
|
||||
$out/bin/helm completion bash > helm.bash
|
||||
$out/bin/helm completion zsh > helm.zsh
|
||||
installShellCompletion helm.{bash,zsh}
|
||||
$out/bin/helm completion fish > helm.fish
|
||||
installShellCompletion helm.{bash,zsh,fish}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -39,7 +39,7 @@ buildGoModule rec {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
|
||||
broken = (stdenv.isLinux && stdenv.isAarch64);
|
||||
description = "Network, Service & Security Observability for Kubernetes using eBPF";
|
||||
license = licenses.asl20;
|
||||
homepage = "https://github.com/cilium/hubble/";
|
||||
|
|
10
pkgs/applications/networking/cluster/k3s/chart-versions.nix
Normal file
10
pkgs/applications/networking/cluster/k3s/chart-versions.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
traefik-crd = {
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-20.3.1+up20.3.0.tgz";
|
||||
sha256 = "1775vjldvqvhzdbzanxhbaqbmkih09yb91im651q8bc7z5sb9ckn";
|
||||
};
|
||||
traefik = {
|
||||
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-20.3.1+up20.3.0.tgz";
|
||||
sha256 = "1rj0f0n0vgjcbzfwzhqmsd501i2f6vw145w9plbp8gwdyzmg2nc6";
|
||||
};
|
||||
}
|
|
@ -47,31 +47,31 @@ with lib;
|
|||
# Those pieces of software we entirely ignore upstream's handling of, and just
|
||||
# make sure they're in the path if desired.
|
||||
let
|
||||
k3sVersion = "1.25.3+k3s1"; # k3s git tag
|
||||
k3sCommit = "f2585c1671b31b4b34bddbb3bf4e7d69662b0821"; # k3s git commit at the above version
|
||||
k3sRepoSha256 = "0zwf3iwjcidx14zw36s1hr0q8wmmbfc0rfqwd7fmpjq597h8zkms";
|
||||
k3sVendorSha256 = "sha256-U67tJRGqPFk5AfRe7I50zKGC9HJ2oh+iI/C7qF/76BQ=";
|
||||
k3sVersion = "1.26.0+k3s2"; # k3s git tag
|
||||
k3sCommit = "f0ec6a4c127b2c671b271974a2f21783f0e3c525"; # k3s git commit at the above version
|
||||
k3sRepoSha256 = "0yc2k45s321hjir3c2wabqihk96wbjxp274dpbh9kv3471j89lkm";
|
||||
k3sVendorSha256 = "sha256-ptC39SgzCA4CULA+VmcMGlPG8KsLRbWlVI/jQrrF/RU=";
|
||||
|
||||
# taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
|
||||
# The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
|
||||
traefikChartVersion = "12.0.0";
|
||||
traefikChartSha256 = "1sqmi71fi3ad5dh5fmsp9mv80x6pkgqwi4r9fr8l6i9sdnai6f1a";
|
||||
# nix generated by update.sh
|
||||
# Based on the traefik charts here: https://github.com/k3s-io/k3s/blob/d71ab6317e22dd34673faa307a412a37a16767f6/scripts/download#L29-L32
|
||||
# see also https://github.com/k3s-io/k3s/blob/d71ab6317e22dd34673faa307a412a37a16767f6/manifests/traefik.yaml#L8
|
||||
# At the time of writing, there are two traefik charts, and that's it
|
||||
charts = import ./chart-versions.nix;
|
||||
|
||||
# taken from ./scripts/version.sh VERSION_ROOT https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L47
|
||||
k3sRootVersion = "0.11.0";
|
||||
k3sRootSha256 = "016n56vi09xkvjph7wgzb2m86mhd5x65fs4d11pmh20hl249r620";
|
||||
k3sRootVersion = "0.12.1";
|
||||
k3sRootSha256 = "0724yx3zk89m2239fmdgwzf9w672pik71xqrvgb7pdmknmmdn9f4";
|
||||
|
||||
# taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L45
|
||||
k3sCNIVersion = "1.1.1-k3s1";
|
||||
k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
|
||||
|
||||
# taken from go.mod, the 'github.com/containerd/containerd' line
|
||||
# run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
|
||||
containerdVersion = "1.5.13-k3s2";
|
||||
containerdSha256 = "1pfr2ji4aij9js90gf4a3hqnhyw5hshcjdccm62l700j68gs5z97";
|
||||
# taken from ./scripts/version.sh VERSION_CONTAINERD
|
||||
containerdVersion = "1.6.14-k3s1";
|
||||
containerdSha256 = "01zs2xbpmww6hdh248px4dlh1n7xy9gzj2b8afyfmv3c2m2alf5p";
|
||||
|
||||
# run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
|
||||
criCtlVersion = "1.25.0-k3s1";
|
||||
criCtlVersion = "1.26.0-rc.0-k3s1";
|
||||
|
||||
baseMeta = {
|
||||
description = "A lightweight Kubernetes distribution";
|
||||
|
@ -99,10 +99,9 @@ let
|
|||
];
|
||||
|
||||
# bundled into the k3s binary
|
||||
traefikChart = fetchurl {
|
||||
url = "https://helm.traefik.io/traefik/traefik-${traefikChartVersion}.tgz";
|
||||
sha256 = traefikChartSha256;
|
||||
};
|
||||
traefikChart = fetchurl charts.traefik;
|
||||
traefik-crdChart = fetchurl charts.traefik-crd;
|
||||
|
||||
# so, k3s is a complicated thing to package
|
||||
# This derivation attempts to avoid including any random binaries from the
|
||||
# internet. k3s-root is _mostly_ binaries built to be bundled in k3s (which
|
||||
|
@ -224,10 +223,6 @@ buildGoModule rec {
|
|||
src = k3sRepo;
|
||||
vendorSha256 = k3sVendorSha256;
|
||||
|
||||
patches = [
|
||||
./patches/0001-scrips-download-strip-downloading-just-package-CRD.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Nix prefers dynamically linked binaries over static binary.
|
||||
|
||||
|
@ -295,11 +290,9 @@ buildGoModule rec {
|
|||
ln -vsf ${k3sContainerd}/bin/* ./bin/
|
||||
rsync -a --no-perms --chmod u=rwX ${k3sRoot}/etc/ ./etc/
|
||||
mkdir -p ./build/static/charts
|
||||
# Note, upstream's chart has a 00 suffix. This seems to not matter though, so we're ignoring that naming detail.
|
||||
export TRAEFIK_CHART_FILE=${traefikChart}
|
||||
# place the traefik chart using their code since it's complicated
|
||||
# We trim the actual download, see patches
|
||||
./scripts/download
|
||||
|
||||
cp ${traefikChart} ./build/static/charts
|
||||
cp ${traefik-crdChart} ./build/static/charts
|
||||
|
||||
export ARCH=$GOARCH
|
||||
export DRONE_TAG="v${k3sVersion}"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue