Merge remote-tracking branch 'origin/staging-next' into staging
Conflicts: - pkgs/development/python-modules/langsmith/default.nix - pkgs/development/python-modules/rich-pixels/default.nix - pkgs/servers/teleport/generic.nix
This commit is contained in:
@@ -39,6 +39,9 @@ jobs:
|
||||
pkgs/development/cuda-modules
|
||||
pkgs/test/cuda
|
||||
pkgs/top-level/cuda-packages.nix
|
||||
NIX_FMT_PATHS_MAINTAINERS: |
|
||||
maintainers/maintainer-list.nix
|
||||
maintainers/team-list.nix
|
||||
NIX_FMT_PATHS_K3S: |
|
||||
nixos/modules/services/cluster/k3s
|
||||
nixos/tests/k3s
|
||||
|
||||
@@ -3,10 +3,36 @@
|
||||
The Android build environment provides three major features and a number of
|
||||
supporting features.
|
||||
|
||||
## Using androidenv with Android Studio {#using-androidenv-with-android-studio}
|
||||
|
||||
Use the `android-studio-full` attribute for a very complete Android SDK, including system images:
|
||||
|
||||
```nix
|
||||
buildInputs = [ android-studio-full ];
|
||||
```
|
||||
|
||||
This is identical to:
|
||||
|
||||
```nix
|
||||
buildInputs = [ androidStudioPackages.stable.full ];
|
||||
```
|
||||
|
||||
Alternatively, you can pass composeAndroidPackages to the `withSdk` passthru:
|
||||
|
||||
```nix
|
||||
buildInputs = [
|
||||
(android-studio.withSdk (androidenv.composeAndroidPackages {
|
||||
includeNDK = true;
|
||||
}).androidsdk)
|
||||
];
|
||||
```
|
||||
|
||||
These will export ANDROID_SDK_ROOT and ANDROID_NDK_ROOT to the SDK and NDK directories
|
||||
in the specified Android build environment.
|
||||
|
||||
## Deploying an Android SDK installation with plugins {#deploying-an-android-sdk-installation-with-plugins}
|
||||
|
||||
The first use case is deploying the SDK with a desired set of plugins or subsets
|
||||
of an SDK.
|
||||
Alternatively, you can deploy the SDK separately with a desired set of plugins, or subsets of an SDK.
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
@@ -145,16 +171,14 @@ androidComposition.platform-tools
|
||||
## Using predefined Android package compositions {#using-predefined-android-package-compositions}
|
||||
|
||||
In addition to composing an Android package set manually, it is also possible
|
||||
to use a predefined composition that contains all basic packages for a specific
|
||||
Android version, such as version 9.0 (API-level 28).
|
||||
to use a predefined composition that contains a fairly complete set of Android packages:
|
||||
|
||||
The following Nix expression can be used to deploy the entire SDK with all basic
|
||||
plugins:
|
||||
The following Nix expression can be used to deploy the entire SDK:
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
androidenv.androidPkgs_9_0.androidsdk
|
||||
androidenv.androidPkgs.androidsdk
|
||||
```
|
||||
|
||||
It is also possible to use one plugin only:
|
||||
@@ -162,50 +186,9 @@ It is also possible to use one plugin only:
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
androidenv.androidPkgs_9_0.platform-tools
|
||||
androidenv.androidPkgs.platform-tools
|
||||
```
|
||||
|
||||
## Building an Android application {#building-an-android-application}
|
||||
|
||||
In addition to the SDK, it is also possible to build an Ant-based Android
|
||||
project and automatically deploy all the Android plugins that a project
|
||||
requires.
|
||||
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
androidenv.buildApp {
|
||||
name = "MyAndroidApp";
|
||||
src = ./myappsources;
|
||||
release = true;
|
||||
|
||||
# If release is set to true, you need to specify the following parameters
|
||||
keyStore = ./keystore;
|
||||
keyAlias = "myfirstapp";
|
||||
keyStorePassword = "mykeystore";
|
||||
keyAliasPassword = "myfirstapp";
|
||||
|
||||
# Any Android SDK parameters that install all the relevant plugins that a
|
||||
# build requires
|
||||
platformVersions = [ "24" ];
|
||||
|
||||
# When we include the NDK, then ndk-build is invoked before Ant gets invoked
|
||||
includeNDK = true;
|
||||
}
|
||||
```
|
||||
|
||||
Aside from the app-specific build parameters (`name`, `src`, `release` and
|
||||
keystore parameters), the `buildApp {}` function supports all the function
|
||||
parameters that the SDK composition function (the function shown in the
|
||||
previous section) supports.
|
||||
|
||||
This build function is particularly useful when it is desired to use
|
||||
[Hydra](https://nixos.org/hydra): the Nix-based continuous integration solution
|
||||
to build Android apps. An Android APK gets exposed as a build product and can be
|
||||
installed on any Android device with a web browser by navigating to the build
|
||||
result page.
|
||||
|
||||
## Spawning emulator instances {#spawning-emulator-instances}
|
||||
|
||||
For testing purposes, it can also be quite convenient to automatically generate
|
||||
@@ -349,3 +332,44 @@ To update the expressions run the `generate.sh` script that is stored in the
|
||||
```bash
|
||||
./generate.sh
|
||||
```
|
||||
|
||||
## Building an Android application with Ant {#building-an-android-application-with-ant}
|
||||
|
||||
In addition to the SDK, it is also possible to build an Ant-based Android
|
||||
project and automatically deploy all the Android plugins that a project
|
||||
requires. Most newer Android projects use Gradle, and this is included for historical
|
||||
purposes.
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
androidenv.buildApp {
|
||||
name = "MyAndroidApp";
|
||||
src = ./myappsources;
|
||||
release = true;
|
||||
|
||||
# If release is set to true, you need to specify the following parameters
|
||||
keyStore = ./keystore;
|
||||
keyAlias = "myfirstapp";
|
||||
keyStorePassword = "mykeystore";
|
||||
keyAliasPassword = "myfirstapp";
|
||||
|
||||
# Any Android SDK parameters that install all the relevant plugins that a
|
||||
# build requires
|
||||
platformVersions = [ "24" ];
|
||||
|
||||
# When we include the NDK, then ndk-build is invoked before Ant gets invoked
|
||||
includeNDK = true;
|
||||
}
|
||||
```
|
||||
|
||||
Aside from the app-specific build parameters (`name`, `src`, `release` and
|
||||
keystore parameters), the `buildApp {}` function supports all the function
|
||||
parameters that the SDK composition function (the function shown in the
|
||||
previous section) supports.
|
||||
|
||||
This build function is particularly useful when it is desired to use
|
||||
[Hydra](https://nixos.org/hydra): the Nix-based continuous integration solution
|
||||
to build Android apps. An Android APK gets exposed as a build product and can be
|
||||
installed on any Android device with a web browser by navigating to the build
|
||||
result page.
|
||||
|
||||
@@ -46,7 +46,8 @@
|
||||
|
||||
checks = forAllSystems (system: {
|
||||
tarball = jobs.${system}.tarball;
|
||||
} // lib.optionalAttrs (self.legacyPackages.${system}.stdenv.isLinux) {
|
||||
# Exclude power64 due to "libressl is not available on the requested hostPlatform" with hostPlatform being power64
|
||||
} // lib.optionalAttrs (self.legacyPackages.${system}.stdenv.isLinux && !self.legacyPackages.${system}.targetPlatform.isPower64) {
|
||||
# Test that ensures that the nixosSystem function can accept a lib argument
|
||||
# Note: prefer not to extend or modify `lib`, especially if you want to share reusable modules
|
||||
# alternatives include: `import` a file, or put a custom library in an option or in `_module.args.<libname>`
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
"armv6l-linux"
|
||||
"armv7l-linux"
|
||||
"i686-linux"
|
||||
"mipsel-linux"
|
||||
# "mipsel-linux" is excluded because it is not bootstrapped
|
||||
|
||||
# Other platforms with sufficient support in stdenv which is not formally
|
||||
# mandated by their platform tier.
|
||||
"aarch64-darwin"
|
||||
"armv5tel-linux"
|
||||
# "armv5tel-linux" is excluded because it is not bootstrapped
|
||||
"powerpc64le-linux"
|
||||
"riscv64-linux"
|
||||
|
||||
|
||||
+641
-1524
File diff suppressed because it is too large
Load Diff
@@ -27,8 +27,13 @@ import utils
|
||||
),
|
||||
default=pathlib.Path(__file__).parent.parent.parent.parent
|
||||
)
|
||||
def main(repo_metadata: pathlib.Path, nixpkgs: pathlib.Path):
|
||||
metadata = utils.KDERepoMetadata.from_repo_metadata_checkout(repo_metadata)
|
||||
@click.option(
|
||||
"--unstable",
|
||||
default=False,
|
||||
is_flag=True
|
||||
)
|
||||
def main(repo_metadata: pathlib.Path, nixpkgs: pathlib.Path, unstable: bool):
|
||||
metadata = utils.KDERepoMetadata.from_repo_metadata_checkout(repo_metadata, unstable)
|
||||
out_dir = nixpkgs / "pkgs/kde/generated"
|
||||
metadata.write_json(out_dir)
|
||||
|
||||
|
||||
@@ -104,7 +104,7 @@ class KDERepoMetadata:
|
||||
return project
|
||||
|
||||
@classmethod
|
||||
def from_repo_metadata_checkout(cls, repo_metadata: pathlib.Path):
|
||||
def from_repo_metadata_checkout(cls, repo_metadata: pathlib.Path, unstable=False):
|
||||
projects = [
|
||||
Project.from_yaml(metadata_file)
|
||||
for metadata_file in repo_metadata.glob("projects-invent/**/metadata.yaml")
|
||||
@@ -122,29 +122,32 @@ class KDERepoMetadata:
|
||||
dep_graph={},
|
||||
)
|
||||
|
||||
dep_specs = ["dependency-data-stable-kf6-qt6"]
|
||||
dep_graph = collections.defaultdict(set)
|
||||
|
||||
for spec in dep_specs:
|
||||
spec_path = repo_metadata / "dependencies" / spec
|
||||
for line in spec_path.open():
|
||||
line = line.strip()
|
||||
if line.startswith("#"):
|
||||
continue
|
||||
if not line:
|
||||
continue
|
||||
if unstable:
|
||||
spec_name = "dependency-data-kf6-qt6"
|
||||
else:
|
||||
spec_name = "dependency-data-stable-kf6-qt6"
|
||||
|
||||
dependent, dependency = line.split(": ")
|
||||
spec_path = repo_metadata / "dependencies" / spec_name
|
||||
for line in spec_path.open():
|
||||
line = line.strip()
|
||||
if line.startswith("#"):
|
||||
continue
|
||||
if not line:
|
||||
continue
|
||||
|
||||
dependent = self.try_lookup_package(dependent)
|
||||
if dependent is None:
|
||||
continue
|
||||
dependent, dependency = line.split(": ")
|
||||
|
||||
dependency = self.try_lookup_package(dependency)
|
||||
if dependency is None:
|
||||
continue
|
||||
dependent = self.try_lookup_package(dependent)
|
||||
if dependent is None:
|
||||
continue
|
||||
|
||||
dep_graph[dependent].add(dependency)
|
||||
dependency = self.try_lookup_package(dependency)
|
||||
if dependency is None:
|
||||
continue
|
||||
|
||||
dep_graph[dependent].add(dependency)
|
||||
|
||||
self.dep_graph = dep_graph
|
||||
|
||||
|
||||
@@ -100,6 +100,7 @@ luuid,,,,20120509-2,,
|
||||
luv,,,,1.48.0-2,,
|
||||
lush.nvim,,,https://luarocks.org/dev,,,teto
|
||||
lyaml,,,,,,lblasc
|
||||
lz.n,,,,,,mrcjkb
|
||||
magick,,,,,5.1,donovanglover
|
||||
markdown,,,,,,
|
||||
mediator_lua,,,,,,
|
||||
|
||||
|
+53
-127
@@ -1,4 +1,5 @@
|
||||
/* List of maintainer teams.
|
||||
/*
|
||||
List of maintainer teams.
|
||||
name = {
|
||||
# Required
|
||||
members = [ maintainer1 maintainer2 ];
|
||||
@@ -25,10 +26,11 @@
|
||||
* keep the list alphabetically sorted
|
||||
* test the validity of the format with:
|
||||
nix-build lib/tests/teams.nix
|
||||
*/
|
||||
*/
|
||||
|
||||
{ lib }:
|
||||
with lib.maintainers; {
|
||||
with lib.maintainers;
|
||||
{
|
||||
acme = {
|
||||
members = [
|
||||
aanderse
|
||||
@@ -67,9 +69,7 @@ with lib.maintainers; {
|
||||
minijackson
|
||||
yurrriq
|
||||
];
|
||||
githubTeams = [
|
||||
"beam"
|
||||
];
|
||||
githubTeams = [ "beam" ];
|
||||
scope = "Maintain BEAM-related packages and modules.";
|
||||
shortName = "BEAM";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -95,9 +95,7 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
budgie = {
|
||||
members = [
|
||||
bobby285271
|
||||
];
|
||||
members = [ bobby285271 ];
|
||||
scope = "Maintain Budgie desktop environment";
|
||||
shortName = "Budgie";
|
||||
};
|
||||
@@ -144,9 +142,7 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
cloudposse = {
|
||||
members = [
|
||||
dudymas
|
||||
];
|
||||
members = [ dudymas ];
|
||||
scope = "Maintain atmos and applications made by the Cloud Posse team.";
|
||||
shortName = "CloudPosse";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -178,12 +174,8 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
darwin = {
|
||||
members = [
|
||||
toonn
|
||||
];
|
||||
githubTeams = [
|
||||
"darwin-maintainers"
|
||||
];
|
||||
members = [ toonn ];
|
||||
githubTeams = [ "darwin-maintainers" ];
|
||||
scope = "Maintain Darwin compatibility of packages and Darwin-only packages.";
|
||||
shortName = "Darwin";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -213,9 +205,7 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
deepin = {
|
||||
members = [
|
||||
rewine
|
||||
];
|
||||
members = [ rewine ];
|
||||
scope = "Maintain deepin desktop environment and related packages.";
|
||||
shortName = "DDE";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -262,29 +252,21 @@ with lib.maintainers; {
|
||||
|
||||
docs = {
|
||||
members = [ ];
|
||||
githubTeams = [
|
||||
"documentation-team"
|
||||
];
|
||||
githubTeams = [ "documentation-team" ];
|
||||
scope = "Maintain nixpkgs/NixOS documentation and tools for building it.";
|
||||
shortName = "Docs";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
emacs = {
|
||||
members = [
|
||||
adisbladis
|
||||
];
|
||||
members = [ adisbladis ];
|
||||
scope = "Maintain the Emacs editor and packages.";
|
||||
shortName = "Emacs";
|
||||
};
|
||||
|
||||
enlightenment = {
|
||||
members = [
|
||||
romildo
|
||||
];
|
||||
githubTeams = [
|
||||
"enlightenment"
|
||||
];
|
||||
members = [ romildo ];
|
||||
githubTeams = [ "enlightenment" ];
|
||||
scope = "Maintain Enlightenment desktop environment and related packages.";
|
||||
shortName = "Enlightenment";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -303,7 +285,12 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
flutter = {
|
||||
members = [ mkg20001 RossComputerGuy FlafyDev hacker1024 ];
|
||||
members = [
|
||||
mkg20001
|
||||
RossComputerGuy
|
||||
FlafyDev
|
||||
hacker1024
|
||||
];
|
||||
scope = "Maintain Flutter and Dart-related packages and build tools";
|
||||
shortName = "flutter";
|
||||
enableFeatureFreezePing = false;
|
||||
@@ -373,9 +360,7 @@ with lib.maintainers; {
|
||||
sikmir
|
||||
willcohen
|
||||
];
|
||||
githubTeams = [
|
||||
"geospatial"
|
||||
];
|
||||
githubTeams = [ "geospatial" ];
|
||||
scope = "Maintain geospatial packages.";
|
||||
shortName = "Geospatial";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -400,9 +385,7 @@ with lib.maintainers; {
|
||||
qbit
|
||||
mfrw
|
||||
];
|
||||
githubTeams = [
|
||||
"golang"
|
||||
];
|
||||
githubTeams = [ "golang" ];
|
||||
scope = "Maintain Golang compilers.";
|
||||
shortName = "Go";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -415,9 +398,7 @@ with lib.maintainers; {
|
||||
jtojnar
|
||||
dasj19
|
||||
];
|
||||
githubTeams = [
|
||||
"gnome"
|
||||
];
|
||||
githubTeams = [ "gnome" ];
|
||||
scope = "Maintain GNOME desktop environment and platform.";
|
||||
shortName = "GNOME";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -443,9 +424,7 @@ with lib.maintainers; {
|
||||
ncfavier
|
||||
sternenseemann
|
||||
];
|
||||
githubTeams = [
|
||||
"haskell"
|
||||
];
|
||||
githubTeams = [ "haskell" ];
|
||||
scope = "Maintain Haskell packages and infrastructure.";
|
||||
shortName = "Haskell";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -472,9 +451,7 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
infisical = {
|
||||
members = [
|
||||
akhilmhdh
|
||||
];
|
||||
members = [ akhilmhdh ];
|
||||
scope = "Maintain Infisical";
|
||||
shortName = "Infisical";
|
||||
};
|
||||
@@ -568,9 +545,7 @@ with lib.maintainers; {
|
||||
uthar
|
||||
hraban
|
||||
];
|
||||
githubTeams = [
|
||||
"lisp"
|
||||
];
|
||||
githubTeams = [ "lisp" ];
|
||||
scope = "Maintain the Lisp ecosystem.";
|
||||
shortName = "lisp";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -586,18 +561,14 @@ with lib.maintainers; {
|
||||
rrbutani
|
||||
sternenseemann
|
||||
];
|
||||
githubTeams = [
|
||||
"llvm"
|
||||
];
|
||||
githubTeams = [ "llvm" ];
|
||||
scope = "Maintain LLVM package sets and related packages";
|
||||
shortName = "LLVM";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
lomiri = {
|
||||
members = [
|
||||
OPNA2608
|
||||
];
|
||||
members = [ OPNA2608 ];
|
||||
scope = "Maintain Lomiri desktop environment and related packages.";
|
||||
shortName = "Lomiri";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -614,21 +585,15 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
lua = {
|
||||
githubTeams = [
|
||||
"lua"
|
||||
];
|
||||
githubTeams = [ "lua" ];
|
||||
scope = "Maintain the lua ecosystem.";
|
||||
shortName = "lua";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
lumina = {
|
||||
members = [
|
||||
romildo
|
||||
];
|
||||
githubTeams = [
|
||||
"lumina"
|
||||
];
|
||||
members = [ romildo ];
|
||||
githubTeams = [ "lumina" ];
|
||||
scope = "Maintain lumina desktop environment and related packages.";
|
||||
shortName = "Lumina";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -647,12 +612,8 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
lxqt = {
|
||||
members = [
|
||||
romildo
|
||||
];
|
||||
githubTeams = [
|
||||
"lxqt"
|
||||
];
|
||||
members = [ romildo ];
|
||||
githubTeams = [ "lxqt" ];
|
||||
scope = "Maintain LXQt desktop environment and related packages.";
|
||||
shortName = "LXQt";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -717,9 +678,7 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
mobile = {
|
||||
members = [
|
||||
samueldr
|
||||
];
|
||||
members = [ samueldr ];
|
||||
scope = "Maintain Mobile NixOS.";
|
||||
shortName = "Mobile";
|
||||
};
|
||||
@@ -766,21 +725,15 @@ with lib.maintainers; {
|
||||
};
|
||||
|
||||
ocaml = {
|
||||
members = [
|
||||
alizter
|
||||
];
|
||||
githubTeams = [
|
||||
"ocaml"
|
||||
];
|
||||
members = [ alizter ];
|
||||
githubTeams = [ "ocaml" ];
|
||||
scope = "Maintain the OCaml compiler and package set.";
|
||||
shortName = "OCaml";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
openstack = {
|
||||
members = [
|
||||
SuperSandro2000
|
||||
];
|
||||
members = [ SuperSandro2000 ];
|
||||
scope = "Maintain the ecosystem around OpenStack";
|
||||
shortName = "OpenStack";
|
||||
};
|
||||
@@ -801,18 +754,14 @@ with lib.maintainers; {
|
||||
davidak
|
||||
bobby285271
|
||||
];
|
||||
githubTeams = [
|
||||
"pantheon"
|
||||
];
|
||||
githubTeams = [ "pantheon" ];
|
||||
scope = "Maintain Pantheon desktop environment and platform.";
|
||||
shortName = "Pantheon";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
perl = {
|
||||
members = [
|
||||
sgo
|
||||
];
|
||||
members = [ sgo ];
|
||||
scope = "Maintain the Perl interpreter and Perl packages.";
|
||||
shortName = "Perl";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -826,9 +775,7 @@ with lib.maintainers; {
|
||||
patka
|
||||
talyz
|
||||
];
|
||||
githubTeams = [
|
||||
"php"
|
||||
];
|
||||
githubTeams = [ "php" ];
|
||||
scope = "Maintain PHP related packages and extensions.";
|
||||
shortName = "PHP";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -839,17 +786,13 @@ with lib.maintainers; {
|
||||
saschagrunert
|
||||
vdemeester
|
||||
];
|
||||
githubTeams = [
|
||||
"podman"
|
||||
];
|
||||
githubTeams = [ "podman" ];
|
||||
scope = "Maintain Podman and CRI-O related packages and modules.";
|
||||
shortName = "Podman";
|
||||
};
|
||||
|
||||
postgres = {
|
||||
members = [
|
||||
thoughtpolice
|
||||
];
|
||||
members = [ thoughtpolice ];
|
||||
scope = "Maintain the PostgreSQL package and plugins along with the NixOS module.";
|
||||
shortName = "PostgreSQL";
|
||||
};
|
||||
@@ -858,7 +801,7 @@ with lib.maintainers; {
|
||||
members = [
|
||||
hexa
|
||||
jonringer
|
||||
tjni
|
||||
natsukium
|
||||
];
|
||||
scope = "Maintain the Python interpreter and related packages.";
|
||||
shortName = "Python";
|
||||
@@ -875,9 +818,7 @@ with lib.maintainers; {
|
||||
SuperSandro2000
|
||||
ttuegel
|
||||
];
|
||||
githubTeams = [
|
||||
"qt-kde"
|
||||
];
|
||||
githubTeams = [ "qt-kde" ];
|
||||
scope = "Maintain the Qt framework, KDE application suite, Plasma desktop environment and related projects.";
|
||||
shortName = "Qt / KDE";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -907,9 +848,7 @@ with lib.maintainers; {
|
||||
|
||||
release = {
|
||||
members = [ ];
|
||||
githubTeams = [
|
||||
"nixos-release-managers"
|
||||
];
|
||||
githubTeams = [ "nixos-release-managers" ];
|
||||
scope = "Manage the current nixpkgs/NixOS release.";
|
||||
shortName = "Release";
|
||||
};
|
||||
@@ -920,16 +859,13 @@ with lib.maintainers; {
|
||||
Flakebi
|
||||
mschwaig
|
||||
];
|
||||
githubTeams = [
|
||||
"rocm-maintainers"
|
||||
];
|
||||
githubTeams = [ "rocm-maintainers" ];
|
||||
scope = "Maintain ROCm and related packages.";
|
||||
shortName = "ROCm";
|
||||
};
|
||||
|
||||
ruby = {
|
||||
members = [
|
||||
];
|
||||
members = [ ];
|
||||
scope = "Maintain the Ruby interpreter and related packages.";
|
||||
shortName = "Ruby";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -943,9 +879,7 @@ with lib.maintainers; {
|
||||
winter
|
||||
zowoq
|
||||
];
|
||||
githubTeams = [
|
||||
"rust"
|
||||
];
|
||||
githubTeams = [ "rust" ];
|
||||
scope = "Maintain the Rust compiler toolchain and nixpkgs integration.";
|
||||
shortName = "Rust";
|
||||
enableFeatureFreezePing = true;
|
||||
@@ -976,9 +910,7 @@ with lib.maintainers; {
|
||||
|
||||
serokell = {
|
||||
# Verify additions by approval of an already existing member of the team.
|
||||
members = [
|
||||
balsoft
|
||||
];
|
||||
members = [ balsoft ];
|
||||
scope = "Group registration for Serokell employees who collectively maintain packages.";
|
||||
shortName = "Serokell employees";
|
||||
};
|
||||
@@ -997,27 +929,21 @@ with lib.maintainers; {
|
||||
|
||||
systemd = {
|
||||
members = [ ];
|
||||
githubTeams = [
|
||||
"systemd"
|
||||
];
|
||||
githubTeams = [ "systemd" ];
|
||||
scope = "Maintain systemd for NixOS.";
|
||||
shortName = "systemd";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
tests = {
|
||||
members = [
|
||||
tfc
|
||||
];
|
||||
members = [ tfc ];
|
||||
scope = "Maintain the NixOS VM test runner.";
|
||||
shortName = "NixOS tests";
|
||||
enableFeatureFreezePing = true;
|
||||
};
|
||||
|
||||
tts = {
|
||||
members = [
|
||||
mic92
|
||||
];
|
||||
members = [ mic92 ];
|
||||
scope = "coqui-ai TTS (formerly Mozilla TTS) and leaf packages";
|
||||
shortName = "coqui-ai TTS";
|
||||
};
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
|
||||
## Backward Incompatibilities {#sec-release-24.11-incompatibilities}
|
||||
|
||||
- `androidenv.androidPkgs_9_0` has been removed, and replaced with `androidenv.androidPkgs` for a more complete Android SDK including support for Android 9 and later.
|
||||
|
||||
- `nginx` package no longer includes `gd` and `geoip` dependencies. For enabling it, override `nginx` package with the optionals `withImageFilter` and `withGeoIP`.
|
||||
|
||||
- `openssh` and `openssh_hpn` are now compiled without Kerberos 5 / GSSAPI support in an effort to reduce the attack surface of the components for the majority of users. Users needing this support can
|
||||
@@ -35,6 +37,10 @@
|
||||
|
||||
- `services.ddclient.use` has been deprecated: `ddclient` now supports separate IPv4 and IPv6 configuration. Use `services.ddclient.usev4` and `services.ddclient.usev6` instead.
|
||||
|
||||
- `vaultwarden` lost the capability to bind to privileged ports. If you rely on
|
||||
this behavior, override the systemd unit to allow `CAP_NET_BIND_SERVICE` in
|
||||
your local configuration.
|
||||
|
||||
- The Invoiceplane module now only accepts the structured `settings` option.
|
||||
`extraConfig` is now removed.
|
||||
|
||||
@@ -67,6 +73,10 @@
|
||||
services.portunus.ldap.package = pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; };
|
||||
```
|
||||
|
||||
- The `tracy` package no longer works on X11, since it's moved to Wayland
|
||||
support, which is the intended default behavior by Tracy maintainers.
|
||||
X11 users have to switch to the new package `tracy-x11`.
|
||||
|
||||
## Other Notable Changes {#sec-release-24.11-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -39,7 +39,7 @@ with lib;
|
||||
# dep of graphviz, libXpm is optional for Xpm support
|
||||
gd = super.gd.override { withXorg = false; };
|
||||
ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };
|
||||
gjs = super.gjs.overrideAttrs { doCheck = false; installTests = false; }; # avoid test dependency on gtk3
|
||||
gjs = (super.gjs.override { installTests = false; }).overrideAttrs { doCheck = false; }; # avoid test dependency on gtk3
|
||||
gobject-introspection = super.gobject-introspection.override { x11Support = false; };
|
||||
gpg-tui = super.gpg-tui.override { x11Support = false; };
|
||||
gpsd = super.gpsd.override { guiSupport = false; };
|
||||
|
||||
@@ -29,17 +29,13 @@ in
|
||||
|
||||
config =
|
||||
let
|
||||
shell_files = pkgs.stdenv.mkDerivation rec {
|
||||
name = "kubeswitch-shell-files";
|
||||
phases = [ "installPhase" ];
|
||||
installPhase = ''
|
||||
mkdir -p $out/share
|
||||
for shell in bash zsh; do
|
||||
${cfg.package}/bin/switcher init $shell | sed 's/switch(/${cfg.commandName}(/' > $out/share/${cfg.commandName}_init.$shell
|
||||
${cfg.package}/bin/switcher --cmd ${cfg.commandName} completion $shell > $out/share/${cfg.commandName}_completion.$shell
|
||||
done
|
||||
'';
|
||||
};
|
||||
shell_files = pkgs.runCommand "kubeswitch-shell-files" {} ''
|
||||
mkdir -p $out/share
|
||||
for shell in bash zsh; do
|
||||
${cfg.package}/bin/switcher init $shell | sed 's/switch(/${cfg.commandName}(/' > $out/share/${cfg.commandName}_init.$shell
|
||||
${cfg.package}/bin/switcher --cmd ${cfg.commandName} completion $shell > $out/share/${cfg.commandName}_completion.$shell
|
||||
done
|
||||
'';
|
||||
in
|
||||
lib.mkIf cfg.enable {
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
@@ -14,23 +14,32 @@ in
|
||||
|
||||
options.programs.ydotool = {
|
||||
enable = lib.mkEnableOption ''
|
||||
ydotoold system service and install ydotool.
|
||||
Add yourself to the 'ydotool' group to be able to use it.
|
||||
ydotoold system service and {command}`ydotool` for members of
|
||||
{option}`programs.ydotool.group`.
|
||||
'';
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "ydotool";
|
||||
description = ''
|
||||
Group which users must be in to use {command}`ydotool`.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.groups.ydotool = { };
|
||||
config = let
|
||||
runtimeDirectory = "ydotoold";
|
||||
in lib.mkIf cfg.enable {
|
||||
users.groups."${config.programs.ydotool.group}" = { };
|
||||
|
||||
systemd.services.ydotoold = {
|
||||
description = "ydotoold - backend for ydotool";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
partOf = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Group = "ydotool";
|
||||
RuntimeDirectory = "ydotoold";
|
||||
Group = config.programs.ydotool.group;
|
||||
RuntimeDirectory = runtimeDirectory;
|
||||
RuntimeDirectoryMode = "0750";
|
||||
ExecStart = "${lib.getExe' pkgs.ydotool "ydotoold"} --socket-path=/run/ydotoold/socket --socket-perm=0660";
|
||||
ExecStart = "${lib.getExe' pkgs.ydotool "ydotoold"} --socket-path=${config.environment.variables.YDOTOOL_SOCKET} --socket-perm=0660";
|
||||
|
||||
# hardening
|
||||
|
||||
@@ -76,7 +85,7 @@ in
|
||||
};
|
||||
|
||||
environment.variables = {
|
||||
YDOTOOL_SOCKET = "/run/ydotoold/socket";
|
||||
YDOTOOL_SOCKET = "/run/${runtimeDirectory}/socket";
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ ydotool ];
|
||||
};
|
||||
|
||||
@@ -244,6 +244,27 @@ The upgrade process is:
|
||||
$ ./delete_old_cluster.sh
|
||||
```
|
||||
|
||||
## Versioning and End-of-Life {#module-services-postgres-versioning}
|
||||
|
||||
PostgreSQL's versioning policy is described [here](https://www.postgresql.org/support/versioning/). TLDR:
|
||||
|
||||
- Each major version is supported for 5 years.
|
||||
- Every three months there will be a new minor release, containing bug and security fixes.
|
||||
- For criticial/security fixes there could be more minor releases inbetween. This happens *very* infrequently.
|
||||
- After five years, a final minor version is released. This usually happens in early November.
|
||||
- After that a version is considered end-of-life (EOL).
|
||||
- Around February each year is the first time an EOL-release will not have received regular updates anymore.
|
||||
|
||||
Technically, we'd not want to have EOL'ed packages in a stable NixOS release, which is to be supported until one month after the previous release. Thus, with NixOS' release schedule in May and November, the oldest PostgreSQL version in nixpkgs would have to be supported until December. It could be argued that a soon-to-be-EOL-ed version should thus be removed in May for the .05 release already. But since new security vulnerabilities are first disclosed in Februrary of the following year, we agreed on keeping the oldest PostgreSQL major version around one more cycle in [#310580](https://github.com/NixOS/nixpkgs/pull/310580#discussion_r1597284693).
|
||||
|
||||
Thus:
|
||||
- In September/October the new major version will be released and added to nixos-unstable.
|
||||
- In November the last minor version for the oldest major will be released.
|
||||
- Both the current stable .05 release and nixos-unstable should be updated to the latest minor.
|
||||
- In November, before branch-off for the .11 release, the EOL-ed major will be removed from nixos-unstable.
|
||||
|
||||
This leaves a small gap of a couple of weeks after the latest minor release and the end of our support window for the .05 release, in which there could be an emergency release to other major versions of PostgreSQL - but not the oldest major we have in that branch. In that case: If we can't trivially patch the issue, we will mark the package/version as insecure **immediately**.
|
||||
|
||||
## Options {#module-services-postgres-options}
|
||||
|
||||
A complete list of options for the PostgreSQL module may be found [here](#opt-services.postgresql.enable).
|
||||
|
||||
@@ -146,6 +146,7 @@ in {
|
||||
dolphin-plugins
|
||||
spectacle
|
||||
ffmpegthumbs
|
||||
krdp
|
||||
];
|
||||
in
|
||||
requiredPackages
|
||||
|
||||
@@ -196,7 +196,7 @@ in
|
||||
Group = "archisteamfarm";
|
||||
WorkingDirectory = cfg.dataDir;
|
||||
Type = "simple";
|
||||
ExecStart = "${lib.getExe cfg.package} --no-restart --process-required --service --system-required --path ${cfg.dataDir}";
|
||||
ExecStart = "${lib.getExe cfg.package} --no-restart --service --system-required --path ${cfg.dataDir}";
|
||||
Restart = "always";
|
||||
|
||||
# copied from the default systemd service at
|
||||
|
||||
@@ -120,14 +120,9 @@ in {
|
||||
if [ ! -e "${cfg.secretsFile}" ]; then
|
||||
echo "WARNING: secrets file not found, autogenerating!"
|
||||
DIR="$(dirname "${cfg.secretsFile}")"
|
||||
if [ ! -d "$DIR" ]; then
|
||||
mkdir -p -m750 "$DIR"
|
||||
chown "${cfg.user}:${cfg.group}" "$DIR"
|
||||
fi
|
||||
dd if=/dev/random bs=18 count=1 | base64 > "${cfg.secretsFile}"
|
||||
chmod 600 "${cfg.secretsFile}"
|
||||
install -m 750 -o ${cfg.user} -g ${cfg.group} -d "$DIR"
|
||||
install -m 600 -o ${cfg.user} -g ${cfg.group} <(dd if=/dev/random bs=18 count=1 | base64) "${cfg.secretsFile}"
|
||||
fi
|
||||
chown "${cfg.user}:${cfg.group}" "${cfg.secretsFile}"
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -28,13 +28,7 @@ in {
|
||||
|
||||
options.services.amazon-ssm-agent = {
|
||||
enable = mkEnableOption "Amazon SSM agent";
|
||||
|
||||
package = mkOption {
|
||||
type = types.path;
|
||||
description = "The Amazon SSM agent package to use";
|
||||
default = pkgs.amazon-ssm-agent.override { overrideEtc = false; };
|
||||
defaultText = literalExpression "pkgs.amazon-ssm-agent.override { overrideEtc = false; }";
|
||||
};
|
||||
package = mkPackageOption pkgs "amazon-ssm-agent" {};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
@@ -73,6 +73,7 @@ in
|
||||
virtualHosts.${cfg.domain}.locations."/oauth2/" = {
|
||||
proxyPass = cfg.proxy;
|
||||
extraConfig = ''
|
||||
auth_request off;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header X-Auth-Request-Redirect $scheme://$host$request_uri;
|
||||
'';
|
||||
|
||||
@@ -586,11 +586,11 @@ in
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ] ++ lib.optionals needsKeycloak [ "keycloak.service" ];
|
||||
after = [ "network-online.target" ] ++ lib.optionals needsKeycloak [ "keycloak.service" ];
|
||||
|
||||
restartTriggers = [ cfg.keyFile ];
|
||||
serviceConfig = {
|
||||
User = "oauth2-proxy";
|
||||
Restart = "always";
|
||||
ExecStart = "${cfg.package}/bin/oauth2-proxy ${configString}";
|
||||
ExecStart = "${lib.getExe cfg.package} ${configString}";
|
||||
EnvironmentFile = lib.mkIf (cfg.keyFile != null) cfg.keyFile;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -5,6 +5,8 @@ let
|
||||
user = config.users.users.vaultwarden.name;
|
||||
group = config.users.groups.vaultwarden.name;
|
||||
|
||||
StateDirectory = if lib.versionOlder config.system.stateVersion "24.11" then "bitwarden_rs" else "vaultwarden";
|
||||
|
||||
# Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
||||
nameToEnvVar = name:
|
||||
let
|
||||
@@ -23,7 +25,7 @@ let
|
||||
configEnv = lib.concatMapAttrs (name: value: lib.optionalAttrs (value != null) {
|
||||
${nameToEnvVar name} = if lib.isBool value then lib.boolToString value else toString value;
|
||||
}) cfg.config;
|
||||
in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // lib.optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
|
||||
in { DATA_FOLDER = "/var/lib/${StateDirectory}"; } // lib.optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
|
||||
WEB_VAULT_FOLDER = "${cfg.webVaultPackage}/share/vaultwarden/vault";
|
||||
} // configEnv;
|
||||
|
||||
@@ -176,16 +178,45 @@ in {
|
||||
User = user;
|
||||
Group = group;
|
||||
EnvironmentFile = [ configFile ] ++ lib.optional (cfg.environmentFile != null) cfg.environmentFile;
|
||||
ExecStart = "${vaultwarden}/bin/vaultwarden";
|
||||
ExecStart = lib.getExe vaultwarden;
|
||||
LimitNOFILE = "1048576";
|
||||
PrivateTmp = "true";
|
||||
PrivateDevices = "true";
|
||||
ProtectHome = "true";
|
||||
CapabilityBoundingSet = [ "" ];
|
||||
DeviceAllow = [ "" ];
|
||||
DevicePolicy = "closed";
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
NoNewPrivileges = true;
|
||||
PrivateDevices = true;
|
||||
PrivateTmp = true;
|
||||
PrivateUsers = true;
|
||||
ProcSubset = "pid";
|
||||
ProtectClock = true;
|
||||
ProtectControlGroups = true;
|
||||
ProtectHome = true;
|
||||
ProtectHostname = true;
|
||||
ProtectKernelLogs = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectProc = "noaccess";
|
||||
ProtectSystem = "strict";
|
||||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||
StateDirectory = "bitwarden_rs";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [
|
||||
"AF_INET"
|
||||
"AF_INET6"
|
||||
"AF_UNIX"
|
||||
];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
inherit StateDirectory;
|
||||
StateDirectoryMode = "0700";
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [
|
||||
"@system-service"
|
||||
"~@privileged"
|
||||
];
|
||||
Restart = "always";
|
||||
UMask = "0077";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
@@ -193,7 +224,7 @@ in {
|
||||
systemd.services.backup-vaultwarden = lib.mkIf (cfg.backupDir != null) {
|
||||
description = "Backup vaultwarden";
|
||||
environment = {
|
||||
DATA_FOLDER = "/var/lib/bitwarden_rs";
|
||||
DATA_FOLDER = "/var/lib/${StateDirectory}";
|
||||
BACKUP_FOLDER = cfg.backupDir;
|
||||
};
|
||||
path = with pkgs; [ sqlite ];
|
||||
|
||||
@@ -46,7 +46,8 @@ let
|
||||
Type = "oneshot";
|
||||
User = user;
|
||||
Group = group;
|
||||
StateDirectory = "${removePrefix "/var/lib/" cfg.dataDir}";
|
||||
StateDirectory = "firefly-iii";
|
||||
ReadWritePaths = [cfg.dataDir];
|
||||
WorkingDirectory = cfg.package;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
|
||||
@@ -10,7 +10,7 @@ in
|
||||
meta.maintainers = with maintainers; [ etu stunkymonkey mattchrist ];
|
||||
|
||||
options.services.freshrss = {
|
||||
enable = mkEnableOption "FreshRSS feed reader";
|
||||
enable = mkEnableOption "FreshRSS RSS aggregator and reader with php-fpm backend.";
|
||||
|
||||
package = mkPackageOption pkgs "freshrss" { };
|
||||
|
||||
@@ -108,7 +108,7 @@ in
|
||||
type = types.str;
|
||||
default = poolName;
|
||||
description = ''
|
||||
Name of the phpfpm pool to use and setup. If not specified, a pool will be created
|
||||
Name of the php-fpm pool to use and setup. If not specified, a pool will be created
|
||||
with default values.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -46,10 +46,10 @@ let
|
||||
version = src.version;
|
||||
src = pkgs.invoiceplane;
|
||||
|
||||
postPhase = ''
|
||||
postPatch = ''
|
||||
# Patch index.php file to load additional config file
|
||||
substituteInPlace index.php \
|
||||
--replace "require('vendor/autoload.php');" "require('vendor/autoload.php'); \$dotenv = Dotenv\Dotenv::createImmutable(__DIR__, 'extraConfig.php'); \$dotenv->load();";
|
||||
--replace-fail "require('vendor/autoload.php');" "require('vendor/autoload.php'); \$dotenv = Dotenv\Dotenv::createImmutable(__DIR__, 'extraConfig.php'); \$dotenv->load();";
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
let
|
||||
cfg = config.services.nextjs-ollama-llm-ui;
|
||||
# we have to override the URL to a Ollama service here, because it gets baked into the web app.
|
||||
nextjs-ollama-llm-ui = cfg.package.override { ollamaUrl = "https://ollama.lambdablob.com"; };
|
||||
nextjs-ollama-llm-ui = cfg.package.override { inherit (cfg) ollamaUrl; };
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
||||
@@ -310,7 +310,7 @@ in
|
||||
type = types.str;
|
||||
default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=1";
|
||||
defaultText = literalExpression ''
|
||||
optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1"
|
||||
redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=1
|
||||
'';
|
||||
description = ''
|
||||
URI to the celery backend used for the asynchronous job queue.
|
||||
@@ -321,7 +321,7 @@ in
|
||||
type = types.str;
|
||||
default = "redis+socket://${config.services.redis.servers.pretix.unixSocket}?virtual_host=2";
|
||||
defaultText = literalExpression ''
|
||||
optionalString config.services.pretix.celery.enable "redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2"
|
||||
redis+socket://''${config.services.redis.servers.pretix.unixSocket}?virtual_host=2
|
||||
'';
|
||||
description = ''
|
||||
URI to the celery broker used for the asynchronous job queue.
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
args@{ pkgs, nextcloudVersion ? 22, ... }:
|
||||
{ name, pkgs, testBase, system,... }:
|
||||
|
||||
(import ../make-test-python.nix ({ pkgs, ...}: let
|
||||
adminpass = "notproduction";
|
||||
adminuser = "root";
|
||||
in {
|
||||
name = "nextcloud-basic";
|
||||
with import ../../lib/testing-python.nix { inherit system pkgs; };
|
||||
runTest ({ config, ... }: {
|
||||
inherit name;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ globin eqyiel ];
|
||||
maintainers = [ globin eqyiel ma27 ];
|
||||
};
|
||||
|
||||
nodes = rec {
|
||||
imports = [ testBase ];
|
||||
|
||||
nodes = {
|
||||
# The only thing the client needs to do is download a file.
|
||||
client = { ... }: {
|
||||
services.davfs2.enable = true;
|
||||
systemd.tmpfiles.settings.nextcloud = {
|
||||
"/tmp/davfs2-secrets"."f+" = {
|
||||
mode = "0600";
|
||||
argument = "http://nextcloud/remote.php/dav/files/${adminuser} ${adminuser} ${adminpass}";
|
||||
argument = "http://nextcloud/remote.php/dav/files/${config.adminuser} ${config.adminuser} ${config.adminpass}";
|
||||
};
|
||||
};
|
||||
virtualisation.fileSystems = {
|
||||
"/mnt/dav" = {
|
||||
device = "http://nextcloud/remote.php/dav/files/${adminuser}";
|
||||
device = "http://nextcloud/remote.php/dav/files/${config.adminuser}";
|
||||
fsType = "davfs";
|
||||
options = let
|
||||
davfs2Conf = (pkgs.writeText "davfs2.conf" "secrets /tmp/davfs2-secrets");
|
||||
@@ -30,11 +30,7 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
nextcloud = { config, pkgs, ... }: let
|
||||
cfg = config;
|
||||
in {
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
|
||||
nextcloud = { config, pkgs, ... }: {
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/nextcloud-data 0750 nextcloud nginx - -"
|
||||
];
|
||||
@@ -42,14 +38,7 @@ in {
|
||||
services.nextcloud = {
|
||||
enable = true;
|
||||
datadir = "/var/lib/nextcloud-data";
|
||||
hostName = "nextcloud";
|
||||
database.createLocally = true;
|
||||
config = {
|
||||
# Don't inherit adminuser since "root" is supposed to be the default
|
||||
adminpassFile = "${pkgs.writeText "adminpass" adminpass}"; # Don't try this at home!
|
||||
dbtableprefix = "nixos_";
|
||||
};
|
||||
package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
|
||||
config.dbtableprefix = "nixos_";
|
||||
autoUpdateApps = {
|
||||
enable = true;
|
||||
startAt = "20:00";
|
||||
@@ -57,64 +46,31 @@ in {
|
||||
phpExtraExtensions = all: [ all.bz2 ];
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.services.nextcloud.occ ];
|
||||
specialisation.withoutMagick.configuration = {
|
||||
services.nextcloud.enableImagemagick = false;
|
||||
};
|
||||
};
|
||||
|
||||
nextcloudWithoutMagick = args@{ config, pkgs, lib, ... }:
|
||||
lib.mkMerge
|
||||
[ (nextcloud args)
|
||||
{ services.nextcloud.enableImagemagick = false; } ];
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: let
|
||||
withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
|
||||
export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
|
||||
"''${@}"
|
||||
'';
|
||||
copySharedFile = pkgs.writeScript "copy-shared-file" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
echo 'hi' | ${withRcloneEnv} ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
|
||||
'';
|
||||
|
||||
diffSharedFile = pkgs.writeScript "diff-shared-file" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
|
||||
'';
|
||||
|
||||
test-helpers.extraTests = { nodes, ... }: let
|
||||
findInClosure = what: drv: pkgs.runCommand "find-in-closure" { exportReferencesGraph = [ "graph" drv ]; inherit what; } ''
|
||||
test -e graph
|
||||
grep "$what" graph >$out || true
|
||||
'';
|
||||
nextcloudUsesImagick = findInClosure "imagick" nodes.nextcloud.system.build.vm;
|
||||
nextcloudWithoutDoesntUseIt = findInClosure "imagick" nodes.nextcloudWithoutMagick.system.build.vm;
|
||||
nexcloudWithImagick = findInClosure "imagick" nodes.nextcloud.system.build.vm;
|
||||
nextcloudWithoutImagick = findInClosure "imagick" nodes.nextcloud.specialisation.withoutMagick.configuration.system.build.vm;
|
||||
in ''
|
||||
assert open("${nextcloudUsesImagick}").read() != ""
|
||||
assert open("${nextcloudWithoutDoesntUseIt}").read() == ""
|
||||
with subtest("File is in proper nextcloud home"):
|
||||
nextcloud.succeed("test -f ${nodes.nextcloud.services.nextcloud.datadir}/data/root/files/test-shared-file")
|
||||
|
||||
nextcloud.start()
|
||||
client.start()
|
||||
nextcloud.wait_for_unit("multi-user.target")
|
||||
# This is just to ensure the nextcloud-occ program is working
|
||||
nextcloud.succeed("nextcloud-occ status")
|
||||
nextcloud.succeed("curl -sSf http://nextcloud/login")
|
||||
# Ensure that no OpenSSL 1.1 is used.
|
||||
nextcloud.succeed(
|
||||
"${nodes.nextcloud.services.phpfpm.pools.nextcloud.phpPackage}/bin/php -i | grep 'OpenSSL Library Version' | awk -F'=>' '{ print $2 }' | awk '{ print $2 }' | grep -v 1.1"
|
||||
)
|
||||
nextcloud.succeed(
|
||||
"${withRcloneEnv} ${copySharedFile}"
|
||||
)
|
||||
client.wait_for_unit("multi-user.target")
|
||||
nextcloud.succeed("test -f /var/lib/nextcloud-data/data/root/files/test-shared-file")
|
||||
client.succeed(
|
||||
"${withRcloneEnv} ${diffSharedFile}"
|
||||
)
|
||||
assert "hi" in client.succeed("cat /mnt/dav/test-shared-file")
|
||||
nextcloud.succeed("grep -vE '^HBEGIN:oc_encryption_module' /var/lib/nextcloud-data/data/root/files/test-shared-file")
|
||||
with subtest("Closure checks"):
|
||||
assert open("${nexcloudWithImagick}").read() != ""
|
||||
assert open("${nextcloudWithoutImagick}").read() == ""
|
||||
|
||||
with subtest("Davfs2"):
|
||||
assert "hi" in client.succeed("cat /mnt/dav/test-shared-file")
|
||||
|
||||
with subtest("Ensure SSE is disabled by default"):
|
||||
nextcloud.succeed("grep -vE '^HBEGIN:oc_encryption_module' /var/lib/nextcloud-data/data/root/files/test-shared-file")
|
||||
'';
|
||||
})) args
|
||||
})
|
||||
|
||||
@@ -5,21 +5,108 @@
|
||||
|
||||
with pkgs.lib;
|
||||
|
||||
foldl
|
||||
(matrix: ver: matrix // {
|
||||
"basic${toString ver}" = import ./basic.nix { inherit system pkgs; nextcloudVersion = ver; };
|
||||
"with-postgresql-and-redis${toString ver}" = import ./with-postgresql-and-redis.nix {
|
||||
inherit system pkgs;
|
||||
nextcloudVersion = ver;
|
||||
let
|
||||
baseModule = { config, ... }: {
|
||||
imports = [
|
||||
{
|
||||
options.test-helpers = {
|
||||
rclone = mkOption { type = types.str; };
|
||||
upload-sample = mkOption { type = types.str; };
|
||||
check-sample = mkOption { type = types.str; };
|
||||
init = mkOption { type = types.str; default = ""; };
|
||||
extraTests = mkOption { type = types.either types.str (types.functionTo types.str); default = ""; };
|
||||
};
|
||||
options.adminuser = mkOption { type = types.str; };
|
||||
options.adminpass = mkOption { type = types.str; };
|
||||
}
|
||||
];
|
||||
|
||||
adminuser = "root";
|
||||
adminpass = "hunter2";
|
||||
|
||||
test-helpers.rclone = "${pkgs.writeShellScript "rclone" ''
|
||||
set -euo pipefail
|
||||
export PATH="${pkgs.rclone}/bin:$PATH"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
|
||||
export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${config.adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_USER="${config.adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_PASS="$(rclone obscure ${config.adminpass})"
|
||||
exec "$@"
|
||||
''}";
|
||||
test-helpers.upload-sample = "${pkgs.writeShellScript "rclone-upload" ''
|
||||
<<<'hi' rclone rcat nextcloud:test-shared-file
|
||||
''}";
|
||||
test-helpers.check-sample = "${pkgs.writeShellScript "check-sample" ''
|
||||
set -e
|
||||
diff <(echo 'hi') <(rclone cat nextcloud:test-shared-file)
|
||||
''}";
|
||||
|
||||
nodes = {
|
||||
client = { ... }: {};
|
||||
nextcloud = {
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
services.nextcloud = {
|
||||
enable = true;
|
||||
hostName = "nextcloud";
|
||||
https = false;
|
||||
database.createLocally = true;
|
||||
config = {
|
||||
adminpassFile = "${pkgs.writeText "adminpass" config.adminpass}"; # Don't try this at home!
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
"with-mysql-and-memcached${toString ver}" = import ./with-mysql-and-memcached.nix {
|
||||
inherit system pkgs;
|
||||
nextcloudVersion = ver;
|
||||
};
|
||||
"with-declarative-redis-and-secrets${toString ver}" = import ./with-declarative-redis-and-secrets.nix {
|
||||
inherit system pkgs;
|
||||
nextcloudVersion = ver;
|
||||
};
|
||||
})
|
||||
{ }
|
||||
[ 27 28 29 ]
|
||||
|
||||
testScript = args@{ nodes, ... }: let
|
||||
inherit (config) test-helpers;
|
||||
in mkBefore ''
|
||||
nextcloud.start()
|
||||
client.start()
|
||||
nextcloud.wait_for_unit("multi-user.target")
|
||||
|
||||
${test-helpers.init}
|
||||
|
||||
with subtest("Ensure nextcloud-occ is working"):
|
||||
nextcloud.succeed("nextcloud-occ status")
|
||||
nextcloud.succeed("curl -sSf http://nextcloud/login")
|
||||
|
||||
with subtest("Upload/Download test"):
|
||||
nextcloud.succeed(
|
||||
"${test-helpers.rclone} ${test-helpers.upload-sample}"
|
||||
)
|
||||
client.wait_for_unit("multi-user.target")
|
||||
client.succeed(
|
||||
"${test-helpers.rclone} ${test-helpers.check-sample}"
|
||||
)
|
||||
|
||||
${if builtins.isFunction test-helpers.extraTests then test-helpers.extraTests args else test-helpers.extraTests}
|
||||
'';
|
||||
};
|
||||
|
||||
genTests = version:
|
||||
let
|
||||
testBase.imports = [
|
||||
baseModule
|
||||
{
|
||||
nodes.nextcloud = { pkgs, ... }: {
|
||||
services.nextcloud.package = pkgs.${"nextcloud${toString version}"};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
callNextcloudTest = path:
|
||||
let
|
||||
name = "${removeSuffix ".nix" (baseNameOf path)}${toString version}";
|
||||
in nameValuePair name (import path {
|
||||
inherit system pkgs testBase;
|
||||
name = "nextcloud-${name}";
|
||||
});
|
||||
in map callNextcloudTest [
|
||||
./basic.nix
|
||||
./with-mysql-and-memcached.nix
|
||||
./with-postgresql-and-redis.nix
|
||||
./with-objectstore.nix
|
||||
];
|
||||
in
|
||||
listToAttrs (concatMap genTests [ 27 28 29 ])
|
||||
|
||||
@@ -1,79 +1,37 @@
|
||||
args@{ pkgs, nextcloudVersion ? 22, ... }:
|
||||
{ pkgs, testBase, system, ... }:
|
||||
|
||||
(import ../make-test-python.nix ({ pkgs, ...}: let
|
||||
adminpass = "hunter2";
|
||||
adminuser = "root";
|
||||
in {
|
||||
with import ../../lib/testing-python.nix { inherit system pkgs; };
|
||||
runTest ({ config, ... }: {
|
||||
name = "nextcloud-with-mysql-and-memcached";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ eqyiel ];
|
||||
};
|
||||
|
||||
imports = [ testBase ];
|
||||
|
||||
nodes = {
|
||||
# The only thing the client needs to do is download a file.
|
||||
client = { ... }: {};
|
||||
|
||||
nextcloud = { config, pkgs, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
|
||||
services.nextcloud = {
|
||||
enable = true;
|
||||
hostName = "nextcloud";
|
||||
https = true;
|
||||
package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
|
||||
caching = {
|
||||
apcu = true;
|
||||
redis = false;
|
||||
memcached = true;
|
||||
};
|
||||
database.createLocally = true;
|
||||
config = {
|
||||
dbtype = "mysql";
|
||||
# Don't inherit adminuser since "root" is supposed to be the default
|
||||
adminpassFile = "${pkgs.writeText "adminpass" adminpass}"; # Don't try this at home!
|
||||
};
|
||||
config.dbtype = "mysql";
|
||||
};
|
||||
|
||||
services.memcached.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = let
|
||||
test-helpers.init = let
|
||||
configureMemcached = pkgs.writeScript "configure-memcached" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
nextcloud-occ config:system:set memcached_servers 0 0 --value 127.0.0.1 --type string
|
||||
nextcloud-occ config:system:set memcached_servers 0 1 --value 11211 --type integer
|
||||
nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\APCu' --type string
|
||||
nextcloud-occ config:system:set memcache.distributed --value '\OC\Memcache\Memcached' --type string
|
||||
'';
|
||||
withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
|
||||
export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
|
||||
'';
|
||||
copySharedFile = pkgs.writeScript "copy-shared-file" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
|
||||
'';
|
||||
|
||||
diffSharedFile = pkgs.writeScript "diff-shared-file" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
|
||||
'';
|
||||
in ''
|
||||
start_all()
|
||||
nextcloud.wait_for_unit("multi-user.target")
|
||||
nextcloud.succeed("${configureMemcached}")
|
||||
nextcloud.succeed("curl -sSf http://nextcloud/login")
|
||||
nextcloud.succeed(
|
||||
"${withRcloneEnv} ${copySharedFile}"
|
||||
)
|
||||
client.wait_for_unit("multi-user.target")
|
||||
client.succeed(
|
||||
"${withRcloneEnv} ${diffSharedFile}"
|
||||
)
|
||||
'';
|
||||
})) args
|
||||
})
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
{ name, pkgs, testBase, system, ... }:
|
||||
|
||||
with import ../../lib/testing-python.nix { inherit system pkgs; };
|
||||
runTest ({ config, lib, ... }: let
|
||||
accessKey = "BKIKJAA5BMMU2RHO6IBB";
|
||||
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
|
||||
|
||||
rootCredentialsFile = pkgs.writeText "minio-credentials-full" ''
|
||||
MINIO_ROOT_USER=${accessKey}
|
||||
MINIO_ROOT_PASSWORD=${secretKey}
|
||||
'';
|
||||
in {
|
||||
inherit name;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ onny ma27 ];
|
||||
};
|
||||
|
||||
imports = [ testBase ];
|
||||
|
||||
nodes = {
|
||||
nextcloud = { config, pkgs, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ 9000 ];
|
||||
environment.systemPackages = [ pkgs.minio-client ];
|
||||
|
||||
services.nextcloud.config.objectstore.s3 = {
|
||||
enable = true;
|
||||
bucket = "nextcloud";
|
||||
autocreate = true;
|
||||
key = accessKey;
|
||||
secretFile = "${pkgs.writeText "secretKey" secretKey}";
|
||||
hostname = "nextcloud";
|
||||
useSsl = false;
|
||||
port = 9000;
|
||||
usePathStyle = true;
|
||||
region = "us-east-1";
|
||||
};
|
||||
|
||||
services.minio = {
|
||||
enable = true;
|
||||
listenAddress = "0.0.0.0:9000";
|
||||
consoleAddress = "0.0.0.0:9001";
|
||||
inherit rootCredentialsFile;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
test-helpers.init = ''
|
||||
nextcloud.wait_for_open_port(9000)
|
||||
'';
|
||||
|
||||
test-helpers.extraTests = { nodes, ... }: ''
|
||||
with subtest("File is not on the filesystem"):
|
||||
nextcloud.succeed("test ! -e ${nodes.nextcloud.services.nextcloud.home}/data/root/files/test-shared-file")
|
||||
|
||||
with subtest("Check if file is in S3"):
|
||||
nextcloud.succeed(
|
||||
"mc config host add minio http://localhost:9000 ${accessKey} ${secretKey} --api s3v4"
|
||||
)
|
||||
files = nextcloud.succeed('mc ls minio/nextcloud|sort').strip().split('\n')
|
||||
|
||||
# Cannot assert an exact number here, nc27 writes more stuff initially into S3.
|
||||
# For now let's assume it's always the most recently added file.
|
||||
assert len(files) > 0, f"""
|
||||
Expected to have at least one object in minio/nextcloud. But `mc ls` gave output:
|
||||
|
||||
'{files}'
|
||||
"""
|
||||
|
||||
import re
|
||||
ptrn = re.compile("^\[[A-Z0-9 :-]+\] +(?P<details>[A-Za-z0-9 :]+)$")
|
||||
match = ptrn.match(files[-1].strip())
|
||||
assert match, "Cannot match mc client output!"
|
||||
size, type_, file = tuple(match.group('details').split(' '))
|
||||
|
||||
assert size == "3B", f"""
|
||||
Expected size of uploaded file to be 3 bytes, got {size}
|
||||
"""
|
||||
|
||||
assert type_ == 'STANDARD', f"""
|
||||
Expected type of bucket entry to be a file, i.e. 'STANDARD'. Got {type_}
|
||||
"""
|
||||
|
||||
assert file.startswith('urn:oid'), """
|
||||
Expected filename to start with 'urn:oid', instead got '{file}.
|
||||
"""
|
||||
|
||||
with subtest("Test download from S3"):
|
||||
client.succeed(
|
||||
"env AWS_ACCESS_KEY_ID=${accessKey} AWS_SECRET_ACCESS_KEY=${secretKey} "
|
||||
+ f"${lib.getExe pkgs.awscli2} s3 cp s3://nextcloud/{file} test --endpoint-url http://nextcloud:9000 "
|
||||
+ "--region us-east-1"
|
||||
)
|
||||
|
||||
client.succeed("test hi = $(cat test)")
|
||||
'';
|
||||
})
|
||||
@@ -1,45 +1,30 @@
|
||||
args@{ pkgs, nextcloudVersion ? 22, ... }:
|
||||
{ name, pkgs, testBase, system, ... }:
|
||||
|
||||
(import ../make-test-python.nix ({ pkgs, ...}: let
|
||||
adminpass = "hunter2";
|
||||
adminuser = "custom-admin-username";
|
||||
in {
|
||||
name = "nextcloud-with-postgresql-and-redis";
|
||||
with import ../../lib/testing-python.nix { inherit system pkgs; };
|
||||
runTest ({ config, ... }: {
|
||||
inherit name;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ eqyiel ];
|
||||
maintainers = [ eqyiel ma27 ];
|
||||
};
|
||||
|
||||
imports = [ testBase ];
|
||||
|
||||
nodes = {
|
||||
# The only thing the client needs to do is download a file.
|
||||
client = { ... }: {};
|
||||
|
||||
nextcloud = { config, pkgs, lib, ... }: {
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
|
||||
services.nextcloud = {
|
||||
enable = true;
|
||||
hostName = "nextcloud";
|
||||
package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
|
||||
caching = {
|
||||
apcu = false;
|
||||
redis = true;
|
||||
memcached = false;
|
||||
};
|
||||
database.createLocally = true;
|
||||
config = {
|
||||
dbtype = "pgsql";
|
||||
inherit adminuser;
|
||||
adminpassFile = toString (pkgs.writeText "admin-pass-file" ''
|
||||
${adminpass}
|
||||
'');
|
||||
};
|
||||
config.dbtype = "pgsql";
|
||||
notify_push = {
|
||||
enable = true;
|
||||
logLevel = "debug";
|
||||
};
|
||||
extraAppsEnable = true;
|
||||
extraApps = {
|
||||
inherit (pkgs."nextcloud${lib.versions.major config.services.nextcloud.package.version}Packages".apps) notify_push notes;
|
||||
extraApps = with config.services.nextcloud.package.packages.apps; {
|
||||
inherit notify_push notes;
|
||||
};
|
||||
settings.trusted_proxies = [ "::1" ];
|
||||
};
|
||||
@@ -49,50 +34,27 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
testScript = let
|
||||
test-helpers.init = let
|
||||
configureRedis = pkgs.writeScript "configure-redis" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
nextcloud-occ config:system:set redis 'host' --value 'localhost' --type string
|
||||
nextcloud-occ config:system:set redis 'port' --value 6379 --type integer
|
||||
nextcloud-occ config:system:set memcache.local --value '\OC\Memcache\Redis' --type string
|
||||
nextcloud-occ config:system:set memcache.locking --value '\OC\Memcache\Redis' --type string
|
||||
'';
|
||||
withRcloneEnv = pkgs.writeScript "with-rclone-env" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
export RCLONE_CONFIG_NEXTCLOUD_TYPE=webdav
|
||||
export RCLONE_CONFIG_NEXTCLOUD_URL="http://nextcloud/remote.php/dav/files/${adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_VENDOR="nextcloud"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_USER="${adminuser}"
|
||||
export RCLONE_CONFIG_NEXTCLOUD_PASS="$(${pkgs.rclone}/bin/rclone obscure ${adminpass})"
|
||||
"''${@}"
|
||||
'';
|
||||
copySharedFile = pkgs.writeScript "copy-shared-file" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
echo 'hi' | ${pkgs.rclone}/bin/rclone rcat nextcloud:test-shared-file
|
||||
'';
|
||||
|
||||
diffSharedFile = pkgs.writeScript "diff-shared-file" ''
|
||||
#!${pkgs.runtimeShell}
|
||||
diff <(echo 'hi') <(${pkgs.rclone}/bin/rclone cat nextcloud:test-shared-file)
|
||||
'';
|
||||
in ''
|
||||
start_all()
|
||||
nextcloud.wait_for_unit("multi-user.target")
|
||||
nextcloud.succeed("${configureRedis}")
|
||||
nextcloud.succeed("curl -sSf http://nextcloud/login")
|
||||
nextcloud.succeed(
|
||||
"${withRcloneEnv} ${copySharedFile}"
|
||||
)
|
||||
client.wait_for_unit("multi-user.target")
|
||||
client.execute("${pkgs.lib.getExe pkgs.nextcloud-notify_push.passthru.test_client} http://nextcloud ${adminuser} ${adminpass} >&2 &")
|
||||
client.succeed(
|
||||
"${withRcloneEnv} ${diffSharedFile}"
|
||||
)
|
||||
nextcloud.wait_until_succeeds("journalctl -u nextcloud-notify_push | grep -q \"Sending ping to ${adminuser}\"")
|
||||
|
||||
# redis cache should not be empty
|
||||
nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
|
||||
|
||||
nextcloud.fail("curl -f http://nextcloud/nix-apps/notes/lib/AppInfo/Application.php")
|
||||
'';
|
||||
})) args
|
||||
|
||||
test-helpers.extraTests = ''
|
||||
with subtest("notify-push"):
|
||||
client.execute("${pkgs.lib.getExe pkgs.nextcloud-notify_push.passthru.test_client} http://nextcloud ${config.adminuser} ${config.adminpass} >&2 &")
|
||||
nextcloud.wait_until_succeeds("journalctl -u nextcloud-notify_push | grep -q \"Sending ping to ${config.adminuser}\"")
|
||||
|
||||
with subtest("Redis is used for caching"):
|
||||
# redis cache should not be empty
|
||||
nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
|
||||
|
||||
with subtest("No code is returned when requesting PHP files (regression test)"):
|
||||
nextcloud.fail("curl -f http://nextcloud/nix-apps/notes/lib/AppInfo/Application.php")
|
||||
'';
|
||||
})
|
||||
|
||||
@@ -1,5 +1,54 @@
|
||||
import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
# Define an example Quickwit index schema,
|
||||
# and some `exampleDocs` below, to test if ingesting
|
||||
# and querying works as expected.
|
||||
index_yaml = ''
|
||||
version: 0.7
|
||||
index_id: example_server_logs
|
||||
doc_mapping:
|
||||
mode: dynamic
|
||||
field_mappings:
|
||||
- name: datetime
|
||||
type: datetime
|
||||
fast: true
|
||||
input_formats:
|
||||
- iso8601
|
||||
output_format: iso8601
|
||||
fast_precision: seconds
|
||||
fast: true
|
||||
- name: git
|
||||
type: text
|
||||
tokenizer: raw
|
||||
- name: hostname
|
||||
type: text
|
||||
tokenizer: raw
|
||||
- name: level
|
||||
type: text
|
||||
tokenizer: raw
|
||||
- name: message
|
||||
type: text
|
||||
- name: location
|
||||
type: text
|
||||
- name: source
|
||||
type: text
|
||||
timestamp_field: datetime
|
||||
|
||||
search_settings:
|
||||
default_search_fields: [message]
|
||||
|
||||
indexing_settings:
|
||||
commit_timeout_secs: 10
|
||||
'';
|
||||
|
||||
exampleDocs = ''
|
||||
{"datetime":"2024-05-03T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-1","level":"Info","message":"Processing request done","location":"path/to/server.c:6442:32","source":""}
|
||||
{"datetime":"2024-05-04T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-1","level":"Info","message":"Got exception processing request: HTTP 404","location":"path/to/server.c:6444:32","source":""}
|
||||
{"datetime":"2024-05-05T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-1","level":"Info","message":"Got exception processing request: HTTP 404","location":"path/to/server.c:6444:32","source":""}
|
||||
{"datetime":"2024-05-06T02:36:41.017674444Z","git":"e6e1f087ce12065e44ed3b87b50784e6f9bcc2f9","hostname":"machine-2","level":"Info","message":"Got exception processing request: HTTP 404","location":"path/to/server.c:6444:32","source":""}
|
||||
'';
|
||||
in
|
||||
{
|
||||
name = "quickwit";
|
||||
meta.maintainers = [ pkgs.lib.maintainers.happysalada ];
|
||||
@@ -24,6 +73,29 @@ import ./make-test-python.nix ({ lib, pkgs, ... }:
|
||||
"journalctl -o cat -u quickwit.service | grep 'transitioned to ready state'"
|
||||
)
|
||||
|
||||
with subtest("verify UI installed"):
|
||||
machine.succeed("curl -sSf http://127.0.0.1:7280/ui/")
|
||||
|
||||
with subtest("injest and query data"):
|
||||
import json
|
||||
|
||||
# Test CLI ingestion
|
||||
print(machine.succeed('${pkgs.quickwit}/bin/quickwit index create --index-config ${pkgs.writeText "index.yaml" index_yaml}'))
|
||||
# Important to use `--wait`, otherwise the queries below race with index processing.
|
||||
print(machine.succeed('${pkgs.quickwit}/bin/quickwit index ingest --index example_server_logs --input-path ${pkgs.writeText "exampleDocs.json" exampleDocs} --wait'))
|
||||
|
||||
# Test CLI query
|
||||
cli_query_output = machine.succeed('${pkgs.quickwit}/bin/quickwit index search --index example_server_logs --query "exception"')
|
||||
print(cli_query_output)
|
||||
|
||||
# Assert query result is as expected.
|
||||
num_hits = len(json.loads(cli_query_output)["hits"])
|
||||
assert num_hits == 3, f"cli_query_output contains unexpected number of results: {num_hits}"
|
||||
|
||||
# Test API query
|
||||
api_query_output = machine.succeed('curl --fail http://127.0.0.1:7280/api/v1/example_server_logs/search?query=exception')
|
||||
print(api_query_output)
|
||||
|
||||
quickwit.log(quickwit.succeed(
|
||||
"systemd-analyze security quickwit.service | grep -v '✓'"
|
||||
))
|
||||
|
||||
@@ -34,7 +34,7 @@ let
|
||||
driver = Firefox(options=options)
|
||||
|
||||
driver.implicitly_wait(20)
|
||||
driver.get('http://localhost/#/register')
|
||||
driver.get('http://localhost:8080/#/register')
|
||||
|
||||
wait = WebDriverWait(driver, 10)
|
||||
|
||||
@@ -134,11 +134,11 @@ let
|
||||
dbBackend = backend;
|
||||
config = {
|
||||
rocketAddress = "0.0.0.0";
|
||||
rocketPort = 80;
|
||||
rocketPort = 8080;
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
networking.firewall.allowedTCPPorts = [ 8080 ];
|
||||
|
||||
environment.systemPackages = [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
|
||||
}
|
||||
@@ -152,10 +152,10 @@ let
|
||||
testScript = if testScript != null then testScript else ''
|
||||
start_all()
|
||||
server.wait_for_unit("vaultwarden.service")
|
||||
server.wait_for_open_port(80)
|
||||
server.wait_for_open_port(8080)
|
||||
|
||||
with subtest("configure the cli"):
|
||||
client.succeed("bw --nointeraction config server http://server")
|
||||
client.succeed("bw --nointeraction config server http://server:8080")
|
||||
|
||||
with subtest("can't login to nonexistent account"):
|
||||
client.fail(
|
||||
@@ -179,6 +179,9 @@ let
|
||||
timeout=60
|
||||
)
|
||||
assert password.strip() == "${storedPassword}"
|
||||
|
||||
with subtest("Check systemd unit hardening"):
|
||||
server.log(server.succeed("systemd-analyze security vaultwarden.service | grep -v ✓"))
|
||||
'';
|
||||
});
|
||||
in
|
||||
@@ -193,7 +196,7 @@ builtins.mapAttrs (k: v: makeVaultwardenTest k v) {
|
||||
testScript = ''
|
||||
start_all()
|
||||
server.wait_for_unit("vaultwarden.service")
|
||||
server.wait_for_open_port(80)
|
||||
server.wait_for_open_port(8080)
|
||||
|
||||
with subtest("Set up vaultwarden"):
|
||||
server.succeed("PYTHONUNBUFFERED=1 test-runner | systemd-cat -t test-runner")
|
||||
|
||||
+177
-108
@@ -1,115 +1,184 @@
|
||||
import ./make-test-python.nix (
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
textInput = "This works.";
|
||||
inputBoxText = "Enter input";
|
||||
inputBox = pkgs.writeShellScript "zenity-input" ''
|
||||
${lib.getExe pkgs.gnome.zenity} --entry --text '${inputBoxText}:' > /tmp/output &
|
||||
'';
|
||||
in
|
||||
{
|
||||
name = "ydotool";
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [
|
||||
OPNA2608
|
||||
quantenzitrone
|
||||
];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
headless =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
|
||||
users.users.alice.extraGroups = [ "ydotool" ];
|
||||
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
services.getty.autologinUser = "alice";
|
||||
};
|
||||
|
||||
x11 =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
./common/auto.nix
|
||||
./common/x11.nix
|
||||
];
|
||||
|
||||
users.users.alice.extraGroups = [ "ydotool" ];
|
||||
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
test-support.displayManager.auto = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
|
||||
services.xserver.windowManager.dwm.enable = true;
|
||||
services.displayManager.defaultSession = lib.mkForce "none+dwm";
|
||||
};
|
||||
|
||||
wayland =
|
||||
{ config, ... }:
|
||||
{
|
||||
imports = [ ./common/user-account.nix ];
|
||||
|
||||
services.cage = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
services.cage.program = inputBox;
|
||||
};
|
||||
};
|
||||
{
|
||||
system ? builtins.currentSystem,
|
||||
config ? { },
|
||||
pkgs ? import ../.. { inherit system config; },
|
||||
lib ? pkgs.lib,
|
||||
}:
|
||||
let
|
||||
makeTest = import ./make-test-python.nix;
|
||||
textInput = "This works.";
|
||||
inputBoxText = "Enter input";
|
||||
inputBox = pkgs.writeShellScript "zenity-input" ''
|
||||
${lib.getExe pkgs.gnome.zenity} --entry --text '${inputBoxText}:' > /tmp/output &
|
||||
'';
|
||||
asUser = ''
|
||||
def as_user(cmd: str):
|
||||
"""
|
||||
Return a shell command for running a shell command as a specific user.
|
||||
"""
|
||||
return f"sudo -u alice -i {cmd}"
|
||||
'';
|
||||
in
|
||||
{
|
||||
headless = makeTest {
|
||||
name = "headless";
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
def as_user(cmd: str):
|
||||
"""
|
||||
Return a shell command for running a shell command as a specific user.
|
||||
"""
|
||||
return f"sudo -u alice -i {cmd}"
|
||||
nodes.machine = {
|
||||
imports = [ ./common/user-account.nix ];
|
||||
|
||||
users.users.alice.extraGroups = [ "ydotool" ];
|
||||
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
services.getty.autologinUser = "alice";
|
||||
};
|
||||
|
||||
testScript =
|
||||
asUser
|
||||
+ ''
|
||||
start_all()
|
||||
|
||||
# Headless
|
||||
headless.wait_for_unit("multi-user.target")
|
||||
headless.wait_for_text("alice")
|
||||
headless.succeed(as_user("ydotool type 'echo ${textInput} > /tmp/output'")) # text input
|
||||
headless.succeed(as_user("ydotool key 28:1 28:0")) # text input
|
||||
headless.screenshot("headless_input")
|
||||
headless.wait_for_file("/tmp/output")
|
||||
headless.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
|
||||
|
||||
# X11
|
||||
x11.wait_for_x()
|
||||
x11.execute(as_user("${inputBox}"))
|
||||
x11.wait_for_text("${inputBoxText}")
|
||||
x11.succeed(as_user("ydotool type '${textInput}'")) # text input
|
||||
x11.screenshot("x11_input")
|
||||
x11.succeed(as_user("ydotool mousemove -a 400 110")) # mouse input
|
||||
x11.succeed(as_user("ydotool click 0xC0")) # mouse input
|
||||
x11.wait_for_file("/tmp/output")
|
||||
x11.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
|
||||
|
||||
# Wayland
|
||||
wayland.wait_for_unit("graphical.target")
|
||||
wayland.wait_for_text("${inputBoxText}")
|
||||
wayland.succeed("ydotool type '${textInput}'") # text input
|
||||
wayland.screenshot("wayland_input")
|
||||
wayland.succeed("ydotool mousemove -a 100 100") # mouse input
|
||||
wayland.succeed("ydotool click 0xC0") # mouse input
|
||||
wayland.wait_for_file("/tmp/output")
|
||||
wayland.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.wait_for_text("alice")
|
||||
machine.succeed(as_user("ydotool type 'echo ${textInput} > /tmp/output'")) # text input
|
||||
machine.succeed(as_user("ydotool key 28:1 28:0")) # text input
|
||||
machine.screenshot("headless_input")
|
||||
machine.wait_for_file("/tmp/output")
|
||||
machine.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
|
||||
'';
|
||||
}
|
||||
)
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
OPNA2608
|
||||
quantenzitrone
|
||||
];
|
||||
};
|
||||
|
||||
x11 = makeTest {
|
||||
name = "x11";
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
nodes.machine = {
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
./common/auto.nix
|
||||
./common/x11.nix
|
||||
];
|
||||
|
||||
users.users.alice.extraGroups = [ "ydotool" ];
|
||||
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
test-support.displayManager.auto = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
|
||||
services.xserver.windowManager.dwm.enable = true;
|
||||
services.displayManager.defaultSession = lib.mkForce "none+dwm";
|
||||
};
|
||||
|
||||
testScript =
|
||||
asUser
|
||||
+ ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_x()
|
||||
machine.execute(as_user("${inputBox}"))
|
||||
machine.wait_for_text("${inputBoxText}")
|
||||
machine.succeed(as_user("ydotool type '${textInput}'")) # text input
|
||||
machine.screenshot("x11_input")
|
||||
machine.succeed(as_user("ydotool mousemove -a 400 110")) # mouse input
|
||||
machine.succeed(as_user("ydotool click 0xC0")) # mouse input
|
||||
machine.wait_for_file("/tmp/output")
|
||||
machine.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
|
||||
'';
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
OPNA2608
|
||||
quantenzitrone
|
||||
];
|
||||
};
|
||||
|
||||
wayland = makeTest {
|
||||
name = "wayland";
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
nodes.machine = {
|
||||
imports = [ ./common/user-account.nix ];
|
||||
|
||||
services.cage = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
|
||||
programs.ydotool.enable = true;
|
||||
|
||||
services.cage.program = inputBox;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("graphical.target")
|
||||
machine.wait_for_text("${inputBoxText}")
|
||||
machine.succeed("ydotool type '${textInput}'") # text input
|
||||
machine.screenshot("wayland_input")
|
||||
machine.succeed("ydotool mousemove -a 100 100") # mouse input
|
||||
machine.succeed("ydotool click 0xC0") # mouse input
|
||||
machine.wait_for_file("/tmp/output")
|
||||
machine.wait_until_succeeds("grep '${textInput}' /tmp/output") # text input
|
||||
'';
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
OPNA2608
|
||||
quantenzitrone
|
||||
];
|
||||
};
|
||||
|
||||
customGroup =
|
||||
let
|
||||
name = "customGroup";
|
||||
nodeName = "${name}Node";
|
||||
insideGroupUsername = "ydotool-user";
|
||||
outsideGroupUsername = "other-user";
|
||||
groupName = "custom-group";
|
||||
in
|
||||
makeTest {
|
||||
inherit name;
|
||||
|
||||
nodes."${nodeName}" = {
|
||||
programs.ydotool = {
|
||||
enable = true;
|
||||
group = groupName;
|
||||
};
|
||||
|
||||
users.users = {
|
||||
"${insideGroupUsername}" = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ groupName ];
|
||||
};
|
||||
"${outsideGroupUsername}".isNormalUser = true;
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
# Wait for service to start
|
||||
${nodeName}.wait_for_unit("multi-user.target")
|
||||
${nodeName}.wait_for_unit("ydotoold.service")
|
||||
|
||||
# Verify that user with the configured group can use the service
|
||||
${nodeName}.succeed("sudo --login --user=${insideGroupUsername} ydotool type 'Hello, World!'")
|
||||
|
||||
# Verify that user without the configured group can't use the service
|
||||
${nodeName}.fail("sudo --login --user=${outsideGroupUsername} ydotool type 'Hello, World!'")
|
||||
'';
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ l0b0 ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ Before adding a new package, please consider the following questions:
|
||||
* Does the project have a clear license statement? Remember that software is unfree by default (all rights reserved), and merely providing access to the source code does not imply its redistribution. In case of doubt, ask upstream.
|
||||
* How realistic is it that it will be used by other people? It's good that nixpkgs caters to various niches, but if it's a niche of 5 people it's probably too small.
|
||||
* Are you willing to maintain the package? You should care enough about the package to be willing to keep it up and running for at least one complete Nixpkgs' release life-cycle.
|
||||
* In case you are not able to maintain the package you wrote, you can seek someone to fill that role, effectively adopting the package.
|
||||
|
||||
If any of these questions' answer is no, then you should probably not add the package.
|
||||
|
||||
|
||||
@@ -44,7 +44,6 @@ stdenv.mkDerivation rec {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/jjsullivan5196/wvkbd";
|
||||
description = "On-screen keyboard for wlroots";
|
||||
maintainers = [ maintainers.elohmeier ];
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3Plus;
|
||||
mainProgram = "wvkbd-mobintl";
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
, fetchFromGitHub
|
||||
, ffmpeg
|
||||
, glfw
|
||||
, libglvnd
|
||||
, libogg
|
||||
, libvorbis
|
||||
, makeWrapper
|
||||
@@ -23,13 +24,13 @@ let
|
||||
in
|
||||
buildDotnetModule rec {
|
||||
pname = "famistudio";
|
||||
version = "4.2.0";
|
||||
version = "4.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BleuBleu";
|
||||
repo = "FamiStudio";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-ydEWLL05B86672j3MVo/90tgDHg8FJ2EZaesqrBZy4A=";
|
||||
hash = "sha256-WYy/6cWQg3Ayok/eAdnvlWAvdcuhy/sdlWOVvaYcPkc=";
|
||||
};
|
||||
|
||||
postPatch = let
|
||||
@@ -89,6 +90,10 @@ buildDotnetModule rec {
|
||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
||||
dotnet-runtime = dotnetCorePackages.runtime_7_0;
|
||||
|
||||
runtimeDeps = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
libglvnd
|
||||
];
|
||||
|
||||
executables = [ "FamiStudio" ];
|
||||
|
||||
postInstall = ''
|
||||
|
||||
+5
-5
@@ -20,14 +20,14 @@
|
||||
, Kernel
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "MIDIVisualizer";
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "midivisualizer";
|
||||
version = "7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kosua20";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
repo = "MIDIVisualizer";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-wfPSPH+E9cErVvfJZqHttFtjiUYJopM/u6w6NpRHifE=";
|
||||
};
|
||||
|
||||
@@ -72,4 +72,4 @@ stdenv.mkDerivation rec {
|
||||
platforms = platforms.unix;
|
||||
maintainers = [ maintainers.ericdallo ];
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "x42-avldrums";
|
||||
version = "0.7.2";
|
||||
version = "0.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "x42";
|
||||
repo = "avldrums.lv2";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-NNqBZTWjIM97qsXTW/+6T7eOAELi/OwXh4mCYPD/C6I=";
|
||||
hash = "sha256-AZKHjzgw0TtLHh4TF+yOUSa+GlNVwyHCpJWAZikXTy4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -33,14 +33,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = if withGui then "bitcoin" else "bitcoind";
|
||||
version = "27.0";
|
||||
version = "27.1";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
|
||||
];
|
||||
# hash retrieved from signed SHA256SUMS
|
||||
sha256 = "9c1ee651d3b157baccc3388be28b8cf3bfcefcd2493b943725ad6040ca6b146b";
|
||||
sha256 = "0c1051fd921b8fae912f5c2dfd86b085ab45baa05cd7be4585b10b4d1818f3da";
|
||||
};
|
||||
|
||||
nativeBuildInputs =
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "lndhub-go";
|
||||
version = "0.14.0";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "getAlby";
|
||||
repo = "lndhub.go";
|
||||
rev = version;
|
||||
sha256 = "sha256-m+Sc/rsYIbvd1oOqG4OT+wPtSxlgFq8m03n28eZIWJU=";
|
||||
sha256 = "sha256-PHBzM/lYYu6hXa5jiFQR/K5j+vmxaYH7xuoxOhFbhMk=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-a4yVuEfhLNM8IEYnafWf///SNLqQL5XZfGgJ5AZLx3c=";
|
||||
vendorHash = "sha256-Vo29w04cRW0syD2tjieKVeZ3srFNuEC3T17birVWn6k=";
|
||||
|
||||
doCheck = false; # tests require networking
|
||||
|
||||
|
||||
+716
-263
File diff suppressed because it is too large
Load Diff
@@ -17,13 +17,13 @@ let
|
||||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "polkadot";
|
||||
version = "1.12.0";
|
||||
version = "1.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "paritytech";
|
||||
repo = "polkadot-sdk";
|
||||
rev = "polkadot-v${version}";
|
||||
hash = "sha256-/m7Tg+9JHbnwKwWPY8gWIJkIHktGFlqcrbLLgNWjfwU=";
|
||||
hash = "sha256-9ZjiKv+05//Kf6q3mL1P5kOCOm1KCGmQIZkrD54pyeI=";
|
||||
|
||||
# the build process of polkadot requires a .git folder in order to determine
|
||||
# the git commit hash that is being built and add it to the version string.
|
||||
@@ -48,10 +48,9 @@ rustPlatform.buildRustPackage rec {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"ark-secret-scalar-0.0.2" = "sha256-91sODxaj0psMw0WqigMCGO5a7+NenAsRj5ZmW6C7lvc=";
|
||||
"ckb-merkle-mountain-range-0.6.0" = "sha256-oTe1l406lTpgOefPai664JYwzezLjkIDXpiZTfjbd28=";
|
||||
"common-0.1.0" = "sha256-LHz2dK1p8GwyMimlR7AxHLz1tjTYolPwdjP7pxork1o=";
|
||||
"fflonk-0.1.0" = "sha256-+BvZ03AhYNP0D8Wq9EMsP+lSgPA6BBlnWkoxTffVLwo=";
|
||||
"litep2p-0.3.0" = "sha256-y0my2vi0+2CWNOtCh/vtsUbIcU1iNSFAJbLiCktEcOc=";
|
||||
"simple-mermaid-0.1.0" = "sha256-IekTldxYq+uoXwGvbpkVTXv2xrcZ0TQfyyE2i2zH+6w=";
|
||||
"sp-ark-bls12-381-0.4.2" = "sha256-nNr0amKhSvvI9BlsoP+8v6Xppx/s7zkf0l9Lm3DW8w8=";
|
||||
"sp-crypto-ec-utils-0.4.1" = "sha256-/Sw1ZM/JcJBokFE4y2mv/P43ciTL5DEm0PDG0jZvMkI=";
|
||||
};
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ton";
|
||||
version = "2024.04";
|
||||
version = "2024.06";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ton-blockchain";
|
||||
repo = "ton";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-hh8D4IZX6RS/RXdhVONhgetqp89kpTC2IwDQ2KHdKsE=";
|
||||
hash = "sha256-5fuRdVayvmM+yK1WsdtWlCZpxz7KKBs+ZRfnueP0Ny0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ channel, pname, version, sha256Hash }:
|
||||
|
||||
{ alsa-lib
|
||||
, bash
|
||||
, runtimeShell
|
||||
, buildFHSEnv
|
||||
, cacert
|
||||
, coreutils
|
||||
@@ -65,6 +65,7 @@
|
||||
, zlib
|
||||
, makeDesktopItem
|
||||
, tiling_wm # if we are using a tiling wm, need to set _JAVA_AWT_WM_NONREPARENTING in wrapper
|
||||
, androidenv
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -214,17 +215,52 @@ let
|
||||
'')
|
||||
];
|
||||
};
|
||||
in runCommand
|
||||
drvName
|
||||
{
|
||||
startScript = ''
|
||||
#!${bash}/bin/bash
|
||||
${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@"
|
||||
mkAndroidStudioWrapper = {androidStudio, androidSdk ? null}: runCommand drvName {
|
||||
startScript = let
|
||||
hasAndroidSdk = androidSdk != null;
|
||||
androidSdkRoot = lib.optionalString hasAndroidSdk "${androidSdk}/libexec/android-sdk";
|
||||
in ''
|
||||
#!${runtimeShell}
|
||||
${lib.optionalString hasAndroidSdk ''
|
||||
echo "=== nixpkgs Android Studio wrapper" >&2
|
||||
|
||||
# Default ANDROID_SDK_ROOT to the packaged one, if not provided.
|
||||
ANDROID_SDK_ROOT="''${ANDROID_SDK_ROOT-${androidSdkRoot}}"
|
||||
|
||||
if [ -d "$ANDROID_SDK_ROOT" ]; then
|
||||
export ANDROID_SDK_ROOT
|
||||
# Legacy compatibility.
|
||||
export ANDROID_HOME="$ANDROID_SDK_ROOT"
|
||||
echo " - ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT" >&2
|
||||
|
||||
# See if we can export ANDROID_NDK_ROOT too.
|
||||
ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk-bundle"
|
||||
if [ ! -d "$ANDROID_NDK_ROOT" ]; then
|
||||
ANDROID_NDK_ROOT="$(ls "$ANDROID_SDK_ROOT/ndk/"* 2>/dev/null | head -n1)"
|
||||
fi
|
||||
|
||||
if [ -d "$ANDROID_NDK_ROOT" ]; then
|
||||
export ANDROID_NDK_ROOT
|
||||
echo " - ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT" >&2
|
||||
else
|
||||
unset ANDROID_NDK_ROOT
|
||||
fi
|
||||
else
|
||||
unset ANDROID_SDK_ROOT
|
||||
unset ANDROID_HOME
|
||||
fi
|
||||
''}
|
||||
exec ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@"
|
||||
'';
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
passthru = {
|
||||
passthru = let
|
||||
withSdk = androidSdk: mkAndroidStudioWrapper { inherit androidStudio androidSdk; };
|
||||
in {
|
||||
unwrapped = androidStudio;
|
||||
full = withSdk androidenv.androidPkgs.androidsdk;
|
||||
inherit withSdk;
|
||||
sdk = androidSdk;
|
||||
};
|
||||
meta = with lib; {
|
||||
description = "Official IDE for Android (${channel} channel)";
|
||||
@@ -245,9 +281,9 @@ in runCommand
|
||||
# source-code itself).
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; rec {
|
||||
stable = [ alapshin ];
|
||||
beta = [ alapshin ];
|
||||
canary = [ alapshin ];
|
||||
stable = [ alapshin numinit ];
|
||||
beta = [ alapshin numinit ];
|
||||
canary = [ alapshin numinit ];
|
||||
dev = canary;
|
||||
}."${channel}";
|
||||
mainProgram = pname;
|
||||
@@ -261,4 +297,5 @@ in runCommand
|
||||
|
||||
ln -s ${androidStudio}/bin/studio.png $out/share/pixmaps/${pname}.png
|
||||
ln -s ${desktopItem}/share/applications $out/share/applications
|
||||
''
|
||||
'';
|
||||
in mkAndroidStudioWrapper { inherit androidStudio; }
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
{ stdenv, lib, callPackage, fetchFromGitHub, cmake, ninja, pkg-config
|
||||
, curl, freetype, giflib, libjpeg, libpng, libwebp, pixman, tinyxml, zlib
|
||||
, harfbuzzFull, glib, fontconfig, pcre
|
||||
, libX11, libXext, libXcursor, libXxf86vm, libGL, libXi
|
||||
, cmark
|
||||
}:
|
||||
|
||||
# Unfree version is not redistributable:
|
||||
# https://dev.aseprite.org/2016/09/01/new-source-code-license/
|
||||
# Consider supporting the developer: https://aseprite.org/#buy
|
||||
|
||||
let
|
||||
skia = callPackage ./skia.nix {};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aseprite";
|
||||
version = "1.3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aseprite";
|
||||
repo = "aseprite";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-17f6pIGsOIswnyY63pjHKEEYuCo43kf25mPLBv4vQAs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake pkg-config ninja
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
curl freetype giflib libjpeg libpng libwebp pixman tinyxml zlib
|
||||
libX11 libXext libXcursor libXxf86vm
|
||||
cmark
|
||||
harfbuzzFull glib fontconfig pcre
|
||||
skia libGL libXi
|
||||
];
|
||||
|
||||
patches = [
|
||||
./shared-libwebp.patch
|
||||
./shared-skia-deps.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i src/ver/CMakeLists.txt -e "s-set(VERSION \".*\")-set(VERSION \"$version\")-"
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
"-DENABLE_UPDATER=OFF"
|
||||
"-DUSE_SHARED_CURL=ON"
|
||||
"-DUSE_SHARED_FREETYPE=ON"
|
||||
"-DUSE_SHARED_GIFLIB=ON"
|
||||
"-DUSE_SHARED_JPEGLIB=ON"
|
||||
"-DUSE_SHARED_LIBPNG=ON"
|
||||
"-DUSE_SHARED_LIBWEBP=ON"
|
||||
"-DUSE_SHARED_PIXMAN=ON"
|
||||
"-DUSE_SHARED_TINYXML=ON"
|
||||
"-DUSE_SHARED_ZLIB=ON"
|
||||
"-DUSE_SHARED_CMARK=ON"
|
||||
"-DUSE_SHARED_HARFBUZZ=ON"
|
||||
"-DUSE_SHARED_WEBP=ON"
|
||||
# Disable libarchive programs.
|
||||
"-DENABLE_CAT=OFF"
|
||||
"-DENABLE_CPIO=OFF"
|
||||
"-DENABLE_TAR=OFF"
|
||||
# UI backend.
|
||||
"-DLAF_WITH_EXAMPLES=OFF"
|
||||
"-DLAF_OS_BACKEND=skia"
|
||||
"-DENABLE_DESKTOP_INTEGRATION=ON"
|
||||
"-DSKIA_DIR=${skia}"
|
||||
"-DSKIA_LIBRARY_DIR=${skia}/out/Release"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
# Install desktop icons.
|
||||
src="$out/share/aseprite/data/icons"
|
||||
for size in 16 32 48 64; do
|
||||
dst="$out"/share/icons/hicolor/"$size"x"$size"
|
||||
install -Dm644 "$src"/ase"$size".png "$dst"/apps/aseprite.png
|
||||
install -Dm644 "$src"/doc"$size".png "$dst"/mimetypes/aseprite.png
|
||||
done
|
||||
# Delete unneeded artifacts of bundled libraries.
|
||||
rm -rf "$out"/include "$out"/lib
|
||||
'';
|
||||
|
||||
passthru = { inherit skia; };
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.aseprite.org/";
|
||||
description = "Animated sprite editor & pixel art tool";
|
||||
license = licenses.unfree;
|
||||
longDescription =
|
||||
''Aseprite is a program to create animated sprites. Its main features are:
|
||||
|
||||
- Sprites are composed by layers & frames (as separated concepts).
|
||||
- Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
|
||||
- Load/save sequence of PNG files and GIF animations (and FLC, FLI, JPG, BMP, PCX, TGA).
|
||||
- Export/import animations to/from Sprite Sheets.
|
||||
- Tiled drawing mode, useful to draw patterns and textures.
|
||||
- Undo/Redo for every operation.
|
||||
- Real-time animation preview.
|
||||
- Multiple editors support.
|
||||
- Pixel-art specific tools like filled Contour, Polygon, Shading mode, etc.
|
||||
- Onion skinning.
|
||||
|
||||
This version is not redistributable: https://dev.aseprite.org/2016/09/01/new-source-code-license/
|
||||
Consider supporting the developer: https://aseprite.org/#buy
|
||||
'';
|
||||
maintainers = with maintainers; [ orivej ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
FILTER=$1
|
||||
OUT=skia-deps.nix
|
||||
REVISION=861e4743af6d9bf6077ae6dda7274e5a136ee4e2
|
||||
DEPS=$(curl -s https://raw.githubusercontent.com/aseprite/skia/$REVISION/DEPS)
|
||||
THIRD_PARTY_DEPS=$(echo "$DEPS" | grep third_party | grep "#" -v | sed 's/"//g')
|
||||
|
||||
function write_fetch_defs ()
|
||||
{
|
||||
while read -r DEP; do
|
||||
NAME=$(echo "$DEP" | cut -d: -f1 | cut -d/ -f3 | sed 's/ //g')
|
||||
URL=$(echo "$DEP" | cut -d: -f2- | cut -d@ -f1 | sed 's/ //g')
|
||||
REV=$(echo "$DEP" | cut -d: -f2- | cut -d@ -f2 | sed 's/[ ,]//g')
|
||||
|
||||
echo "Fetching $NAME@$REV"
|
||||
PREFETCH=$(nix-prefetch-git --rev "$REV" "$URL")
|
||||
|
||||
(
|
||||
cat <<EOF
|
||||
$NAME = fetchgit {
|
||||
url = "$URL";
|
||||
rev = "$REV";
|
||||
sha256 = $(echo $PREFETCH | jq '.sha256');
|
||||
};
|
||||
EOF
|
||||
) >> "$OUT"
|
||||
|
||||
echo "----------"
|
||||
echo
|
||||
done <<< "$1"
|
||||
}
|
||||
|
||||
echo "{ fetchgit }:" > "$OUT"
|
||||
echo "{" >> "$OUT"
|
||||
write_fetch_defs "$(echo "$THIRD_PARTY_DEPS" | grep -E "$FILTER")"
|
||||
echo "}" >> "$OUT"
|
||||
@@ -1,80 +0,0 @@
|
||||
{ stdenv, lib, fetchFromGitHub, fetchgit, python3, gn, ninja
|
||||
, fontconfig, expat, icu, libglvnd, libjpeg, libpng, libwebp, zlib
|
||||
, mesa, libX11, harfbuzzFull
|
||||
}:
|
||||
|
||||
let
|
||||
# skia-deps.nix is generated by: ./skia-make-deps.sh 'angle2|dng_sdk|piex|sfntly'
|
||||
depSrcs = import ./skia-deps.nix { inherit fetchgit; };
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "skia";
|
||||
version = "aseprite-m102";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aseprite";
|
||||
repo = "skia";
|
||||
# latest commit from aseprite-m102 branch
|
||||
rev = "861e4743af6d9bf6077ae6dda7274e5a136ee4e2";
|
||||
hash = "sha256-IlZbalmHl549uDUfPG8hlzub8TLWhG0EsV6HVAPdsl0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ python3 gn ninja ];
|
||||
|
||||
buildInputs = [
|
||||
fontconfig expat icu libglvnd libjpeg libpng libwebp zlib
|
||||
mesa libX11 harfbuzzFull
|
||||
];
|
||||
|
||||
preConfigure = with depSrcs; ''
|
||||
mkdir -p third_party/externals
|
||||
ln -s ${angle2} third_party/externals/angle2
|
||||
ln -s ${dng_sdk} third_party/externals/dng_sdk
|
||||
ln -s ${piex} third_party/externals/piex
|
||||
ln -s ${sfntly} third_party/externals/sfntly
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
gn gen out/Release --args="is_debug=false is_official_build=true extra_cflags=[\"-I${harfbuzzFull.dev}/include/harfbuzz\"]"
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
ninja -C out/Release skia modules
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
|
||||
# Glob will match all subdirs.
|
||||
shopt -s globstar
|
||||
|
||||
# All these paths are used in some way when building aseprite.
|
||||
cp -r --parents -t $out/ \
|
||||
include/codec \
|
||||
include/config \
|
||||
include/core \
|
||||
include/effects \
|
||||
include/gpu \
|
||||
include/private \
|
||||
include/utils \
|
||||
include/third_party/skcms/*.h \
|
||||
out/Release/*.a \
|
||||
src/gpu/**/*.h \
|
||||
src/core/*.h \
|
||||
modules/skshaper/include/*.h \
|
||||
third_party/externals/angle2/include \
|
||||
third_party/skcms/**/*.h
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Skia is a complete 2D graphic library for drawing Text, Geometries, and Images";
|
||||
homepage = "https://skia.org/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
+3
-3
@@ -16,7 +16,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "e5cf0b704274d3deae8f4a3b6a3d0664a176bc8b";
|
||||
rev = "152431c0b1d731d0302e1849690e2361f3caf7c1";
|
||||
python = python3.withPackages (ps: with ps; [
|
||||
epc
|
||||
orjson
|
||||
@@ -28,13 +28,13 @@ let
|
||||
in
|
||||
melpaBuild {
|
||||
pname = "lsp-bridge";
|
||||
version = "20240609.1553";
|
||||
version = "20240615.2321";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "manateelazycat";
|
||||
repo = "lsp-bridge";
|
||||
inherit rev;
|
||||
hash = "sha256-96GgMJPLFoabhlvjTMWKtEpGuctjlcRuChvzDziaq8g=";
|
||||
hash = "sha256-LIjqr1IntQ6WTFOO3b6cAuB6LslG1HzVa9C+GYUyQOU=";
|
||||
};
|
||||
|
||||
commit = rev;
|
||||
|
||||
@@ -5915,6 +5915,18 @@ final: prev:
|
||||
meta.homepage = "https://github.com/mkasa/lushtags/";
|
||||
};
|
||||
|
||||
lz-n = buildNeovimPlugin {
|
||||
pname = "lz.n";
|
||||
version = "2024-06-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-neorocks";
|
||||
repo = "lz.n";
|
||||
rev = "ffd6633cbe2145177bd522fa340104fa44afbc1c";
|
||||
sha256 = "sha256-aV+m4+8oWwIPTQhilXfHOUyYqQGl4NRnk7HvEQYMp0Y=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-neorocks/lz.n/";
|
||||
};
|
||||
|
||||
magma-nvim-goose = buildVimPlugin {
|
||||
pname = "magma-nvim-goose";
|
||||
version = "2023-07-04";
|
||||
|
||||
@@ -457,15 +457,17 @@
|
||||
dependencies = with self; [ copilot-lua plenary-nvim ];
|
||||
};
|
||||
|
||||
copilot-vim = super.copilot-vim.overrideAttrs {
|
||||
copilot-vim = super.copilot-vim.overrideAttrs (old: {
|
||||
postInstall = ''
|
||||
substituteInPlace $out/autoload/copilot/client.vim \
|
||||
--replace " let node = get(g:, 'copilot_node_command', ''\'''\')" \
|
||||
" let node = get(g:, 'copilot_node_command', '${nodejs}/bin/node')"
|
||||
'';
|
||||
|
||||
meta.license = lib.licenses.unfree;
|
||||
};
|
||||
meta = old.meta // {
|
||||
license = lib.licenses.unfree;
|
||||
};
|
||||
});
|
||||
|
||||
coq_nvim = super.coq_nvim.overrideAttrs {
|
||||
passthru.python3Dependencies = ps:
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
repo,branch,alias
|
||||
https://codeberg.org/FelipeLema/cmp-async-path/,,
|
||||
https://github.com/euclidianAce/BetterLua.vim/,,
|
||||
https://github.com/vim-scripts/BufOnly.vim/,,
|
||||
https://github.com/jackMort/ChatGPT.nvim/,HEAD,
|
||||
@@ -132,11 +131,8 @@ https://github.com/laytan/cloak.nvim/,HEAD,
|
||||
https://github.com/asheq/close-buffers.vim/,HEAD,
|
||||
https://github.com/Civitasv/cmake-tools.nvim/,,
|
||||
https://github.com/winston0410/cmd-parser.nvim/,,
|
||||
<<<<<<< HEAD
|
||||
https://github.com/tzachar/cmp-ai/,HEAD,
|
||||
https://codeberg.org/FelipeLema/cmp-async-path/,,
|
||||
=======
|
||||
>>>>>>> 8c49439301ad (vimPlugins.nvim-genghis: init at 2024-05-21)
|
||||
https://github.com/crispgm/cmp-beancount/,HEAD,
|
||||
https://github.com/hrsh7th/cmp-buffer/,,
|
||||
https://github.com/hrsh7th/cmp-calc/,,
|
||||
@@ -500,6 +496,7 @@ https://github.com/l3mon4d3/luasnip/,,
|
||||
https://github.com/alvarosevilla95/luatab.nvim/,,
|
||||
https://github.com/rktjmp/lush.nvim/,,
|
||||
https://github.com/mkasa/lushtags/,,
|
||||
https://github.com/nvim-neorocks/lz.n/,,
|
||||
https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD,
|
||||
https://github.com/winston0410/mark-radar.nvim/,HEAD,
|
||||
https://github.com/iamcco/markdown-preview.nvim/,,
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
- `description` should mention it is a Visual Studio Code extension.
|
||||
- `downloadPage` is the VSCode marketplace URL.
|
||||
- `homepage` is the source-code URL.
|
||||
- `maintainers`:
|
||||
- optionally consider adding yourself as a maintainer to be notified of updates, breakages and help with upkeep.
|
||||
- recommended format is:
|
||||
- a `non-nested with`, such as: `with lib.maintainers; [ your-username ];`.
|
||||
- maintainers are listed in alphabetical order.
|
||||
- verify `license` in upstream.
|
||||
|
||||
* On commit messages:
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
callPackage,
|
||||
}:
|
||||
let
|
||||
version = "1.52.0";
|
||||
version = "1.54.0";
|
||||
rescript-editor-analysis = callPackage ./rescript-editor-analysis.nix { inherit version; };
|
||||
arch =
|
||||
if stdenv.isLinux then
|
||||
@@ -21,7 +21,7 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
|
||||
name = "rescript-vscode";
|
||||
publisher = "chenglou92";
|
||||
inherit version;
|
||||
hash = "sha256-3H7JgdmrGMdirVpT08wmwy4G6QLt0H65d3l7o/DuvpI=";
|
||||
hash = "sha256-c7TJED5YpHRwn7Ooq8sG+N99b7tH6TOgeC9TTYdb4JA=";
|
||||
};
|
||||
postPatch = ''
|
||||
rm -r ${analysisDir}
|
||||
|
||||
@@ -406,8 +406,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscode-neovim";
|
||||
publisher = "asvetliakov";
|
||||
version = "1.15.2";
|
||||
hash = "sha256-gurh2DSLH/gM/EZCUACHGlzOf0LPwkc+zYxw7AOcb1E=";
|
||||
version = "1.17.2";
|
||||
hash = "sha256-IA09vUleY7hazu65kadES4iq3XojyJ3sXOOGaw0vJnU=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/asvetliakov.vscode-neovim/changelog";
|
||||
@@ -542,6 +542,22 @@ let
|
||||
|
||||
betterthantomorrow.calva = callPackage ./betterthantomorrow.calva { };
|
||||
|
||||
bierner.comment-tagged-templates = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "comment-tagged-templates";
|
||||
publisher = "bierner";
|
||||
version = "0.3.3";
|
||||
hash = "sha256-M2XdMQ2l6oMYiHTdfRJ/n/Ys3LecEPwAozQtLBcn7FY=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/bierner.comment-tagged-templates/changelog";
|
||||
description = "VS Code extension that adds basic syntax highlighting for JavaScript and TypeScript tagged template strings using language identifier comments";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.comment-tagged-templates";
|
||||
homepage = "https://github.com/mjbvz/vscode-comment-tagged-templates";
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
};
|
||||
|
||||
bierner.docs-view = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "docs-view";
|
||||
@@ -570,6 +586,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
bierner.github-markdown-preview = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "github-markdown-preview";
|
||||
publisher = "bierner";
|
||||
version = "0.3.0";
|
||||
hash = "sha256-7pbl5OgvJ6S0mtZWsEyUzlg+lkUhdq3rkCCpLsvTm4g=";
|
||||
};
|
||||
meta = {
|
||||
description = "A VSCode extension that changes the markdown preview to support GitHub markdown features";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.github-markdown-preview";
|
||||
homepage = "https://github.com/mjbvz/vscode-github-markdown-preview";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.pandapip1 ];
|
||||
};
|
||||
};
|
||||
|
||||
bierner.markdown-checkbox = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "markdown-checkbox";
|
||||
@@ -594,6 +626,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
bierner.markdown-footnotes = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "markdown-footnotes";
|
||||
publisher = "bierner";
|
||||
version = "0.1.1";
|
||||
hash = "sha256-h/Iyk8CKFr0M5ULXbEbjFsqplnlN7F+ZvnUTy1An5t4=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/bierner.markdown-footnotes/changelog";
|
||||
description = "Adds [^1] footnote syntax support to VS Code's built-in Markdown preview";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.markdown-footnotes";
|
||||
homepage = "https://github.com/mjbvz/vscode-markdown-footnotes";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
bierner.markdown-mermaid = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "markdown-mermaid";
|
||||
@@ -606,14 +655,59 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
bierner.markdown-preview-github-styles = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "markdown-preview-github-styles";
|
||||
publisher = "bierner";
|
||||
version = "2.0.4";
|
||||
hash = "sha256-jJulxvjMNsqQqmsb5szQIAUuLWuHw824Caa0KArjUVw=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/bierner.markdown-preview-github-styles/changelog";
|
||||
description = "Changes VS Code's built-in markdown preview to match GitHub's styling";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=bierner.markdown-preview-github-styles";
|
||||
homepage = "https://github.com/mjbvz/vscode-github-markdown-preview-style";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
biomejs.biome = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "biome";
|
||||
publisher = "biomejs";
|
||||
version = "2024.5.251958";
|
||||
hash = "sha256-Pxbvj6e3nRwuLKmPEtE02JdHmZbyuXNh4T+FZKjBkWo=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/biomejs/biome-vscode/blob/main/CHANGELOG.md";
|
||||
description = "Biome LSP extension for Visual Studio Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=biomejs.biome";
|
||||
homepage = "https://github.com/biomejs/biome-vscode";
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
# or
|
||||
asl20
|
||||
];
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
bmalehorn.vscode-fish = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-fish";
|
||||
publisher = "bmalehorn";
|
||||
version = "1.0.35";
|
||||
hash = "sha256-V51Qe6M1CMm9fLOSFEwqeZiC8tWCbVH0AzkLe7kR2vY=";
|
||||
version = "1.0.38";
|
||||
hash = "sha256-QEifCTlzYMX+5H6+k2o1lsQrhW3vxVpn+KFg/3WVVFo=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/bmalehorn.vscode-fish/changelog";
|
||||
description = "Fish syntax highlighting and formatting for VS Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=bmalehorn.vscode-fish";
|
||||
homepage = "https://github.com/bmalehorn/vscode-fish";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
meta.license = lib.licenses.mit;
|
||||
};
|
||||
|
||||
bmewburn.vscode-intelephense-client = buildVscodeMarketplaceExtension {
|
||||
@@ -948,26 +1042,26 @@ let
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-GQH+KKteWbCz18AlTWjLWrVpPRxumi+iDPS5n+5xy/0=";
|
||||
hash = "sha256-ZlbPRFQwvZNCp8K/rbHqVa3coXa2dT4nOrNChC9naC8=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-xBwuAtvRdOgYkfxP0JaxhAQZx5AJWymDVQ50piTx608=";
|
||||
hash = "sha256-hSRdvno8VZNi48rckaqWbAgDXT6RXEcPnkNOT8DV1wA=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-oLLKnNZ+E06PbUrhj5Y0HOdHhUs/fXd+3lZXX/P2C10=";
|
||||
hash = "sha256-rimE7dKT6zajHo6E42z7IyfP35xBXThIwMHhZjaZwHk=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-nWuyqOIELp8MrjzCFH3yu4pWm5KsNxmx3eacgStWKG0=";
|
||||
hash = "sha256-7TeUAZLiEnqi5i5nHLhtv5aMxIcw7iiABOAkwP1YYqM=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "continue";
|
||||
publisher = "Continue";
|
||||
version = "0.8.25";
|
||||
version = "0.8.40";
|
||||
}
|
||||
// sources.${stdenv.system};
|
||||
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
|
||||
@@ -1628,6 +1722,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
fabiospampinato.vscode-open-in-github = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-open-in-github";
|
||||
publisher = "fabiospampinato";
|
||||
version = "2.3.0";
|
||||
hash = "sha256-vrW6uZyeEJipGtfz7BEeeAwiwtBlfQLjC7jAP1v5GoE=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/fabiospampinato.vscode-open-in-github/changelog";
|
||||
description = "VS Code extension to open the current project or file in github.com";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-open-in-github";
|
||||
homepage = "https://github.com/fabiospampinato/vscode-open-in-github";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
file-icons.file-icons = buildVscodeMarketplaceExtension {
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/file-icons.file-icons/changelog";
|
||||
@@ -1731,6 +1842,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
fortran-lang.linter-gfortran = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "linter-gfortran";
|
||||
publisher = "fortran-lang";
|
||||
version = "3.4.2024061701";
|
||||
hash = "sha256-i357EzQ8cm8NPsMBbsV5ToMoBDa59Bh6ylC9tNjMY6s=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/fortran-lang.linter-gfortran/changelog";
|
||||
description = "Fortran language support for Visual Studio Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=fortran-lang.linter-gfortran";
|
||||
homepage = "https://github.com/fortran-lang/vscode-fortran-support";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
foxundermoon.shell-format = callPackage ./foxundermoon.shell-format { };
|
||||
|
||||
freebroccolo.reasonml = buildVscodeMarketplaceExtension {
|
||||
@@ -1767,6 +1895,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
garlicbreadcleric.pandoc-markdown-syntax = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "pandoc-markdown-syntax";
|
||||
publisher = "garlicbreadcleric";
|
||||
version = "0.0.2";
|
||||
hash = "sha256-YAMH5smLyBuoTdlxSCTPyMIKOWTSIdf2MQVZuOO2V1w=";
|
||||
};
|
||||
meta = {
|
||||
description = "A VSCode extension that adds syntax highlighting for Pandoc-flavored Markdown";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=garlicbreadcleric.pandoc-markdown-syntax";
|
||||
homepage = "https://github.com/garlicbreadcleric/vscode-pandoc-markdown";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.pandapip1 ];
|
||||
};
|
||||
};
|
||||
|
||||
gencer.html-slim-scss-css-class-completion = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "html-slim-scss-css-class-completion";
|
||||
@@ -2564,6 +2708,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
kravets.vscode-publint = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-publint";
|
||||
publisher = "Kravets";
|
||||
version = "0.0.1";
|
||||
hash = "sha256-6nG5Yqi8liumQ2K9ynV8mNXiXGaGo/cp4Cib1kqdp1c=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/Kravets.vscode-publint/changelog";
|
||||
description = "Lint packaging errors in VS Code with publint";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=Kravets.vscode-publint";
|
||||
homepage = "https://github.com/kravetsone/vscode-publint";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
kubukoz.nickel-syntax = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "nickel-syntax";
|
||||
@@ -2576,6 +2737,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
lapo.asn1js = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "asn1js";
|
||||
publisher = "lapo";
|
||||
version = "0.1.4";
|
||||
hash = "sha256-utbIKlwNHnJZj/51f8hEDmUA/A26De/gY73iT4tXKRU=";
|
||||
};
|
||||
meta = {
|
||||
description = "Decode ASN.1 content inside VSCode";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=lapo.asn1js";
|
||||
homepage = "https://github.com/lapo-luchini/vscode-asn1js";
|
||||
maintainers = with lib.maintainers; [ katexochen ];
|
||||
license = lib.licenses.isc;
|
||||
};
|
||||
};
|
||||
|
||||
llvm-org.lldb-vscode = llvmPackages.lldb;
|
||||
|
||||
llvm-vs-code-extensions.vscode-clangd = buildVscodeMarketplaceExtension {
|
||||
@@ -2736,6 +2913,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
meganrogge.template-string-converter = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "template-string-converter";
|
||||
publisher = "meganrogge";
|
||||
version = "0.6.1";
|
||||
hash = "sha256-w0ppzh0m/9Hw3BPJbAKsNcMStdzoH9ODf3zweRcCG5k=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/meganrogge.template-string-converter/changelog";
|
||||
description = "VS Code extension to autocorrect from quotes to backticks";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=meganrogge.template-string-converter";
|
||||
homepage = "https://github.com/meganrogge/template-string-converter";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
mgt19937.typst-preview = callPackage ./mgt19937.typst-preview { };
|
||||
|
||||
mhutchie.git-graph = buildVscodeMarketplaceExtension {
|
||||
@@ -3118,6 +3312,22 @@ let
|
||||
|
||||
ms-vscode-remote.remote-ssh = callPackage ./ms-vscode-remote.remote-ssh { };
|
||||
|
||||
ms-vscode-remote.remote-ssh-edit = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "remote-ssh-edit";
|
||||
publisher = "ms-vscode-remote";
|
||||
version = "0.86.0";
|
||||
hash = "sha256-JsbaoIekUo2nKCu+fNbGlh5d1Tt/QJGUuXUGP04TsDI=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Visual Studio Code extension that complements the Remote SSH extension with syntax colorization, keyword intellisense, and simple snippets when editing SSH configuration files";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh-edit";
|
||||
homepage = "https://code.visualstudio.com/docs/remote/ssh";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = [ lib.maintainers.pandapip1 ];
|
||||
};
|
||||
};
|
||||
|
||||
ms-vsliveshare.vsliveshare = callPackage ./ms-vsliveshare.vsliveshare { };
|
||||
|
||||
mshr-h.veriloghdl = buildVscodeMarketplaceExtension {
|
||||
@@ -3212,6 +3422,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
nefrob.vscode-just-syntax = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-just-syntax";
|
||||
publisher = "nefrob";
|
||||
version = "0.3.0";
|
||||
hash = "sha256-WBoqH9TNco9lyjOJfP54DynjmYZmPUY+YrZ1rQlC518=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/nefrob.vscode-just-syntax/changelog";
|
||||
description = "Justfile syntax support for Visual Studio Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=nefrob.vscode-just-syntax";
|
||||
homepage = "https://github.com/nefrob/vscode-just";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
njpwerner.autodocstring = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "autodocstring";
|
||||
@@ -3943,8 +4170,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "code-spell-checker";
|
||||
publisher = "streetsidesoftware";
|
||||
version = "4.0.2";
|
||||
hash = "sha256-k3FxRAtW9Fdhm7jD3ingFXONiBsOia1Whs7OPeDmlSw=";
|
||||
version = "4.0.3";
|
||||
hash = "sha256-CEGwbw5RpFsfB/g2inScIqWB7/3oxgxz7Yuc6V3OiHg=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
|
||||
@@ -4476,6 +4703,23 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
vitaliymaz.vscode-svg-previewer = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-svg-previewer";
|
||||
publisher = "vitaliymaz";
|
||||
version = "0.7.0";
|
||||
hash = "sha256-iX+Js2Pqz1gLDwrihuYtDwQG4ek7GiOhL3M0j3jHF/Y=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/vitaliymaz.vscode-svg-previewer/changelog";
|
||||
description = "Preview SVGs in VS Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=vitaliymaz.vscode-svg-previewer";
|
||||
homepage = "https://github.com/vitaliymaz/vscode-svg-previewer";
|
||||
license = lib.licenses.unfree;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
vlanguage.vscode-vlang = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-vlang";
|
||||
@@ -4590,8 +4834,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscode-icons";
|
||||
publisher = "vscode-icons-team";
|
||||
version = "12.2.0";
|
||||
sha256 = "12s5br0s9n99vjn6chivzdsjb71p0lai6vnif7lv13x497dkw4rz";
|
||||
version = "12.8.0";
|
||||
hash = "sha256-2+Wf0AL9C5xOQCjA9maMt/W/kviNuiyMfaOFDU82KxM=";
|
||||
};
|
||||
meta = {
|
||||
description = "Bring real icons to your Visual Studio Code";
|
||||
@@ -4792,6 +5036,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
yoavbls.pretty-ts-errors = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "pretty-ts-errors";
|
||||
publisher = "yoavbls";
|
||||
version = "0.5.3";
|
||||
hash = "sha256-JSCyTzz10eoUNu76wNUuvPVVKq4KaVKobS1CAPqgXUA=";
|
||||
};
|
||||
meta = {
|
||||
description = "Make TypeScript errors prettier and human-readable in VSCode";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors";
|
||||
homepage = "https://github.com/yoavbls/pretty-ts-errors";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
yzhang.dictionary-completion = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
publisher = "yzhang";
|
||||
@@ -4829,6 +5089,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
zaaack.markdown-editor = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "markdown-editor";
|
||||
publisher = "zaaack";
|
||||
version = "0.1.10";
|
||||
hash = "sha256-K1nczR059BsiHpT1xdtJjpFLl5krt4H9+CrEsIycq9U=";
|
||||
};
|
||||
meta = {
|
||||
description = "Visual Studio Code extension for WYSIWYG markdown editing";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=zaaack.markdown-editor";
|
||||
homepage = "https://github.com/zaaack/vscode-markdown-editor";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.pandapip1 ];
|
||||
};
|
||||
};
|
||||
|
||||
zainchen.json = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "json";
|
||||
@@ -4845,6 +5121,22 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
zguolee.tabler-icons = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "tabler-icons";
|
||||
publisher = "zguolee";
|
||||
version = "0.3.4";
|
||||
hash = "sha256-0XvB9UXqKHbL/ejUfciSvFzZ3GacaQ7pq6hJqRaxq+8=";
|
||||
};
|
||||
meta = {
|
||||
description = "Tabler product icon theme for Visual Studio Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=zguolee.tabler-icons";
|
||||
homepage = "https://github.com/zguolee/vscode-tabler-icons";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ lib.maintainers.uncenter ];
|
||||
};
|
||||
};
|
||||
|
||||
zhuangtongfa.material-theme = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "material-theme";
|
||||
|
||||
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "vscode-pylance";
|
||||
publisher = "MS-python";
|
||||
version = "2024.5.1";
|
||||
hash = "sha256-w+T4dySTt2RpdBYd1Nnxh8RR9wqEu9pkS4R1Ay7Fn+8=";
|
||||
version = "2024.6.1";
|
||||
hash = "sha256-NOx0WJC32MUm6TmLkiN67FHKwBmB0S3feFVIQNxR2PQ=";
|
||||
};
|
||||
|
||||
buildInputs = [ pyright ];
|
||||
|
||||
@@ -11,7 +11,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
name = "tinymist";
|
||||
publisher = "myriad-dreamin";
|
||||
inherit (tinymist) version;
|
||||
hash = "sha256-etPjbmcBhS1dgq5wEoRIekZlRxYoC6KrsV/+owjHu4I=";
|
||||
hash = "sha256-Oama8FkRhEY4yza77RpWHg0Aeo9WFhveucJqJvCYMJQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
stdenv,
|
||||
vscode-utils,
|
||||
autoPatchelfHook,
|
||||
libxcrypt-legacy,
|
||||
zlib,
|
||||
}:
|
||||
|
||||
vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "sourcery";
|
||||
publisher = "sourcery";
|
||||
version = "1.16.0";
|
||||
hash = "sha256-SHgS2C+ElTJW4v90Wg0QcsSL2FoSz+SxZQpgq2J4JiU=";
|
||||
version = "1.19.0";
|
||||
hash = "sha256-Wit2ozgaVwINL3PvPfmZWQ4WN7seQMWfXwXGgEKecn0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -24,7 +24,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
|
||||
buildInputs = [
|
||||
stdenv.cc.cc.lib
|
||||
libxcrypt-legacy
|
||||
zlib
|
||||
];
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -13,19 +13,19 @@ let
|
||||
{
|
||||
x86_64-linux = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-CPUlJ1QzGiZKd4r46Iioc5svw0oLsMsYnc0KxT1p0zM=";
|
||||
hash = "sha256-fvDzsFOG1pdmpC3RDY8zGP0yL/TzX6i00LnIX+yceVU=";
|
||||
};
|
||||
aarch64-linux = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-qSTCZHL7nfB300qwuqgl/4u+SYNMA2BFCrD+yQEgN/c=";
|
||||
hash = "sha256-3yRZzOTuiTbkUUz1D3mZo7G5vayM6W9YBbJxTiVou9g=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-FcZH2bB5B3wnu6F76kGp9FBdD3yZtr57TQ5xaUfRcmY=";
|
||||
hash = "sha256-fKvR2bea4UxvnZ+LlWR/ahpKe8mk5f4mZrjqTFpsC5A=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-3HdK4x2WNdb9Zxqjtn9lmbgrMOzz14rH0ZF0x9B0BHY=";
|
||||
hash = "sha256-nkK3BH+MRi6KdThq4kYR9ZAfnuSkC2r/lKWpEtmD7Ak=";
|
||||
};
|
||||
}
|
||||
.${system} or (throw "Unsupported system: ${system}");
|
||||
@@ -37,7 +37,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
# Please update the corresponding binary (typos-lsp)
|
||||
# when updating this extension.
|
||||
# See pkgs/by-name/ty/typos-lsp/package.nix
|
||||
version = "0.1.18";
|
||||
version = "0.1.19";
|
||||
inherit (extInfo) hash arch;
|
||||
};
|
||||
|
||||
|
||||
@@ -15,11 +15,11 @@ let
|
||||
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "1zmgvadhsnsbmqb559kvf66i7h6iq7vw99m7vdxcfmdl6c1pwyvb";
|
||||
x86_64-darwin = "061h423vay3d28d2015llz7pwlqcrjy0lmw47xgy3iy6hfadrra2";
|
||||
aarch64-linux = "0n288h6369bazykp6jyapi6yz0k7nivql6wz68fgkagfdyxzl1yb";
|
||||
aarch64-darwin = "13k9hvbzj8xyfi29g0x4nz80gmjq3s693zi5fi4lbf4bj7jmcamq";
|
||||
armv7l-linux = "19p6k1rgy83vs76hksjx5d4v32jq31r6aw5kzcc8gsq114xj9c2a";
|
||||
x86_64-linux = "1r76ikfikagg9v278pgiqhnjsv7pqn0xi372y1l0wsashlxl7kb0";
|
||||
x86_64-darwin = "156604xzazmb54p0rdkv5wy9livg0xz2jviycdizablmvsxybs57";
|
||||
aarch64-linux = "0cp120pcjpgf9qvmks9f8l2caxqlvnqvmxa7fh9mf83zpkdmnsnl";
|
||||
aarch64-darwin = "1k06648jx64irshs0v4qy6xlkd9mk514xf21dlfhvic4aj89kcx9";
|
||||
armv7l-linux = "0jy8hkbxh1969kskggg2y86cphly9l9gs7y4plj90jmlvlzjjjxm";
|
||||
}.${system} or throwSystem;
|
||||
|
||||
sourceRoot = lib.optionalString (!stdenv.isDarwin) ".";
|
||||
@@ -29,7 +29,7 @@ in
|
||||
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.90.0.24158";
|
||||
version = "1.90.1.24165";
|
||||
pname = "vscodium";
|
||||
|
||||
executableName = "codium";
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "c64-debugger";
|
||||
pname = "c64-debugger";
|
||||
version = "0.64.58.6";
|
||||
|
||||
src = fetchgit {
|
||||
|
||||
@@ -55,20 +55,20 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-pce-libretro",
|
||||
"rev": "0eb4b423452da40dbf4393e09d4126c3090a1210",
|
||||
"hash": "sha256-PhhItDKvlvx3uBDx+xEUVr0sW2Y9HiTR/IvsnXVNAqo="
|
||||
"rev": "3d91a940b3a48254152a8789b79616ceefe4067f",
|
||||
"hash": "sha256-6zXl49Rns6wCZmcEUWkWqYeSH6W1+qs6Sb998pQ/+Lo="
|
||||
},
|
||||
"version": "unstable-2024-05-17"
|
||||
"version": "unstable-2024-06-14"
|
||||
},
|
||||
"beetle-pce-fast": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-pce-fast-libretro",
|
||||
"rev": "414149d335ce2a3284db6cdffbb8ed2ce42dbe5f",
|
||||
"hash": "sha256-sta71o4NJIPDZlQkAFLzx+XlHVA8MmUjuZ17MuCKhOY="
|
||||
"rev": "a653bbbdc5cf2bf960e614efdcf9446a9aa8cdf9",
|
||||
"hash": "sha256-ty4Uluo8D8x+jB7fOqI/AgpTxdttzpbeARiICd3oh9c="
|
||||
},
|
||||
"version": "unstable-2024-05-17"
|
||||
"version": "unstable-2024-06-14"
|
||||
},
|
||||
"beetle-pcfx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -85,10 +85,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-psx-libretro",
|
||||
"rev": "b8e10a3039391db6e4fbdc96720d3428a2dbd039",
|
||||
"hash": "sha256-F38lUBhe9JR3dPwkLqhAAlvLtAeas8bnPuiK6eOpUuU="
|
||||
"rev": "6e881f9939dd9b33fb5f5587745524a0828c9ef4",
|
||||
"hash": "sha256-mFIqsybkpSF17HmrfReazYUqVLzuDGwCjzaV7BTLKJ8="
|
||||
},
|
||||
"version": "unstable-2024-06-07"
|
||||
"version": "unstable-2024-06-14"
|
||||
},
|
||||
"beetle-saturn": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -115,10 +115,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "beetle-supergrafx-libretro",
|
||||
"rev": "e3f68c1311d4684a5a59d3d1662d5c4f32662c02",
|
||||
"hash": "sha256-jTO2SDOefpB+cfahiPkReYID0pjP437h53hZElSLsdY="
|
||||
"rev": "29b2a6e12c13d623ad94dcb64e1cb341d93ff02d",
|
||||
"hash": "sha256-sbpCG3QsSn8NOjWC0snvsd7jZYClSbKI79QUnigQwzc="
|
||||
},
|
||||
"version": "unstable-2024-06-07"
|
||||
"version": "unstable-2024-06-14"
|
||||
},
|
||||
"beetle-vb": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -165,10 +165,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "bsnes-libretro",
|
||||
"rev": "44f6ce5dedb138ded8e59d71df18cae5b0655eba",
|
||||
"hash": "sha256-7iB2VQ3f8YVOV3C+Rkviaj7USoZdO/riDnT9kCdzc8k="
|
||||
"rev": "9131a4c705e18f7b96e7dbfcfe70b158d10afed1",
|
||||
"hash": "sha256-NotqQMBHV6E3LSXJHQ5FqIbq2OQbXx6xCbLYV9g12kQ="
|
||||
},
|
||||
"version": "unstable-2024-05-31"
|
||||
"version": "unstable-2024-06-16"
|
||||
},
|
||||
"bsnes-hd": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -297,21 +297,21 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "libretro-fceumm",
|
||||
"rev": "bc9d865f9427384e40084cb090d94d72d4970e78",
|
||||
"hash": "sha256-/g7gRNWDbW5LFZ+uBkIf5DMELas0/ilqbmUbvq8YSsE="
|
||||
"rev": "fe4a4f8a53cc7f91278f393710abb4f32c4e0a8f",
|
||||
"hash": "sha256-/rZoARZf3SfN8E0o0qm34FYCYscqeEcLg3eYSXenK8s="
|
||||
},
|
||||
"version": "unstable-2024-06-09"
|
||||
"version": "unstable-2024-06-15"
|
||||
},
|
||||
"flycast": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "flyinghead",
|
||||
"repo": "flycast",
|
||||
"rev": "4cd62781043cd9193c6c5ec04f6a8084375bed0d",
|
||||
"hash": "sha256-EKK9PNFHWm1Jakq0E6fIqmcDiiiOSgHEbixB3X/H77g=",
|
||||
"rev": "ca613db70d8897e06562fe089e3e9543b41526a0",
|
||||
"hash": "sha256-wYKHC+EvLnq+PnL1/hNcrhDyCY+4kaiSjIUKJ9SGPHc=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-06-08"
|
||||
"version": "unstable-2024-06-11"
|
||||
},
|
||||
"fmsx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -338,30 +338,30 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "fuse-libretro",
|
||||
"rev": "847dbbd6f787823ac9a5dfacdd68ab181063374e",
|
||||
"hash": "sha256-jzS7SFALV/YjI77ST+IWHwUsuhT+Zr5w4t6C7O8yzFM="
|
||||
"rev": "9fc41a5f153e1f2fa2dbcfdd215c7ec97d98a29c",
|
||||
"hash": "sha256-eEgPnSIpKC7s+4JoEHDGPlwYPa5Y8EpoxmNhyOIIcU8="
|
||||
},
|
||||
"version": "unstable-2023-06-23"
|
||||
"version": "unstable-2024-06-16"
|
||||
},
|
||||
"gambatte": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "gambatte-libretro",
|
||||
"rev": "e2031a4010463adcd00ce3f34acbbb6db2ad1266",
|
||||
"hash": "sha256-yFj9ZkvDliaTO43l0fjg8FwD17MxjV4wszY7AVjTiNY="
|
||||
"rev": "863002046a812758da6064daaf579fef1cec19a3",
|
||||
"hash": "sha256-7rkyMcaKDNOESNrmwYCKM71x3WM8eSN9LBX0xOQRhJ0="
|
||||
},
|
||||
"version": "unstable-2024-06-07"
|
||||
"version": "unstable-2024-06-14"
|
||||
},
|
||||
"genesis-plus-gx": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "Genesis-Plus-GX",
|
||||
"rev": "60955a01f601ef73c02b07581dd7d5aa3b6a4788",
|
||||
"hash": "sha256-h0T6i1kiN58TagFo5XHzXMLaEwkGGTyuZpyS1QGNrb8="
|
||||
"rev": "4e54d585d540d461ecc412c91ca4a79e2338f3b6",
|
||||
"hash": "sha256-7P6w6pXplOfpP7w+JztNd49FdKBPM8eQeSh93YAG0Y4="
|
||||
},
|
||||
"version": "unstable-2024-06-07"
|
||||
"version": "unstable-2024-06-14"
|
||||
},
|
||||
"gpsp": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -408,11 +408,11 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "mame",
|
||||
"rev": "4ee35952a8fdb1332e970fa14c3e79c8c968050c",
|
||||
"hash": "sha256-UIAMq8AIdLKX8SIF2V0+Vc6kHPJ0rmdx4BeqoSrCfFE=",
|
||||
"rev": "db65a583bd2da39514a544c58362a6ac170179ac",
|
||||
"hash": "sha256-FTsoLsx7IhyAw/pdaGAeNzysc7vZ3CcyXKWcBJ0pOb8=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-05-21"
|
||||
"version": "unstable-2024-06-13"
|
||||
},
|
||||
"mame2000": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -550,10 +550,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "neocd_libretro",
|
||||
"rev": "71ebe5044639b825e5bd1bd590fef3e918133b80",
|
||||
"hash": "sha256-YVxt3bJ54DD91VHkeQyYdo/BEq//lnBKd9Y42Vby3qc="
|
||||
"rev": "c5a266254ffbaa2730d2814195f60e7be153fc86",
|
||||
"hash": "sha256-MJhUYFNrtt2SSLun75OXKrT7nZzLBtyslqG9mziQuRk="
|
||||
},
|
||||
"version": "unstable-2024-02-01"
|
||||
"version": "unstable-2024-06-16"
|
||||
},
|
||||
"nestopia": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -611,10 +611,10 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "parallel-n64",
|
||||
"rev": "1b57f9199b1f8a4510f7f89f14afa9cabf9b3bdd",
|
||||
"hash": "sha256-L20RGav0FJfydOICCNhAMGxIuIvPABDtCs5tWzrh768="
|
||||
"rev": "330fa5efd306ad116c44faf6833a8108ed4144b0",
|
||||
"hash": "sha256-pltPoWfXFh9OhWnQ+XMhHVZCo6BCGr6jCDhiL5T7LNM="
|
||||
},
|
||||
"version": "unstable-2024-01-15"
|
||||
"version": "unstable-2024-06-10"
|
||||
},
|
||||
"pcsx2": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -631,43 +631,43 @@
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "pcsx_rearmed",
|
||||
"rev": "1f8c6be323aa8fad329e38682158197e822d27c1",
|
||||
"hash": "sha256-f1U7hmSywECmXwRi6vhAFjG971XsDXhsYzSAKMa2ZVY="
|
||||
"rev": "1cdeae2b66fc3ef486ec8016ed5fad437f1a4409",
|
||||
"hash": "sha256-Zw5CWDeAy3pUV4qXFIfs6kFlEaYhNhl+6pu5fOx34j0="
|
||||
},
|
||||
"version": "unstable-2024-05-30"
|
||||
"version": "unstable-2024-06-17"
|
||||
},
|
||||
"picodrive": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "libretro",
|
||||
"repo": "picodrive",
|
||||
"rev": "ad93670449a28825d4b2cebf2eeff72cf03377a9",
|
||||
"hash": "sha256-AGupXJVUkOt7XjXE1s5Y3SzZjZBAujaAAsR0CgxfKe0=",
|
||||
"rev": "535217f16bc2848ec70985c41e1d131709352641",
|
||||
"hash": "sha256-K96eN3Erw1G+vQa8pag72hrtgf+tttoNIMXdgCGNy6k=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-03-26"
|
||||
"version": "unstable-2024-06-15"
|
||||
},
|
||||
"play": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "jpd002",
|
||||
"repo": "Play-",
|
||||
"rev": "2f3d8252a2ba398078538abfe8a633b667a858a4",
|
||||
"hash": "sha256-Trr+xJWcWfQW5TnSTxqAsUK3HSMsoLaAkz7UIwp6L4c=",
|
||||
"rev": "a5753e582963e8555985abdfe6b5692bac52d701",
|
||||
"hash": "sha256-OabW7OYitDzMh2bbAokfM+HwMaLo2cY3/FB78/ouvrY=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-06-04"
|
||||
"version": "unstable-2024-06-10"
|
||||
},
|
||||
"ppsspp": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
"src": {
|
||||
"owner": "hrydgard",
|
||||
"repo": "ppsspp",
|
||||
"rev": "5dec3ca2db10943dcdf5e483cc8c28e0524d1a43",
|
||||
"hash": "sha256-B9/0uGpBrM+qndvO2BC9sQCNkSK3qR2fUtWx5Vx16xU=",
|
||||
"rev": "cfcca0ed13ca86eb6e1ee7bb4161aabee6c2af06",
|
||||
"hash": "sha256-K96Ajh/jXxILiKXBaTiNh6FwptPQQG39jGq45aQ7veY=",
|
||||
"fetchSubmodules": true
|
||||
},
|
||||
"version": "unstable-2024-06-09"
|
||||
"version": "unstable-2024-06-16"
|
||||
},
|
||||
"prboom": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -754,10 +754,10 @@
|
||||
"src": {
|
||||
"owner": "snes9xgit",
|
||||
"repo": "snes9x",
|
||||
"rev": "c7b77d4a763e8fa3ee2c4ef63b3974527056b7ad",
|
||||
"hash": "sha256-a9IKbuSrlzrhrRrLRFAnhHWBhaYIf58oRFYjWSqbNTU="
|
||||
"rev": "a9e64edf73f36fb1a4ac616b11131f6380d8e968",
|
||||
"hash": "sha256-3m2YTy1Y/ENhI4qmH3FQBZMEKNHsDJVZeOOLRrLj8lw="
|
||||
},
|
||||
"version": "unstable-2024-06-07"
|
||||
"version": "unstable-2024-06-13"
|
||||
},
|
||||
"snes9x2002": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
@@ -794,10 +794,10 @@
|
||||
"src": {
|
||||
"owner": "stella-emu",
|
||||
"repo": "stella",
|
||||
"rev": "1c2dceab2b74980effb8d6497ea64fc3bd6b0be3",
|
||||
"hash": "sha256-UeuSHHAZV798sSws32PhcBq9q2bGfX758mR+mIEnX+I="
|
||||
"rev": "b477cb56bc6fd8b6977dcee279f16de01348bdae",
|
||||
"hash": "sha256-jGyEah9eBEvNB4HewL60yXZvpHseeScYrHsRtzUtjN8="
|
||||
},
|
||||
"version": "unstable-2024-06-08"
|
||||
"version": "unstable-2024-06-15"
|
||||
},
|
||||
"stella2014": {
|
||||
"fetcher": "fetchFromGitHub",
|
||||
|
||||
@@ -69,9 +69,9 @@ in rec {
|
||||
|
||||
unstable = fetchurl rec {
|
||||
# NOTE: Don't forget to change the hash for staging as well.
|
||||
version = "9.10";
|
||||
version = "9.11";
|
||||
url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz";
|
||||
hash = "sha256-r8NLSRv6FMYsP99ifdK13Kxefp8/FFrbFDMleK+M8cA=";
|
||||
hash = "sha256-36AMJk6nEWnQKoSagz5Iyudh+whCKgDfhkTr1nv4ckA=";
|
||||
inherit (stable) patches;
|
||||
|
||||
## see http://wiki.winehq.org/Gecko
|
||||
@@ -117,7 +117,7 @@ in rec {
|
||||
staging = fetchFromGitLab rec {
|
||||
# https://gitlab.winehq.org/wine/wine-staging
|
||||
inherit (unstable) version;
|
||||
hash = "sha256-ZqajfgPSKTcNBiDWEc9UgZWWmvkJvTA0S+j98Qz/y08=";
|
||||
hash = "sha256-vqlikMatRlGxvWJ6BJu2HyBclV4x+vzNPNe8py7jKqo=";
|
||||
domain = "gitlab.winehq.org";
|
||||
owner = "wine";
|
||||
repo = "wine-staging";
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, fontconfig
|
||||
, libX11
|
||||
@@ -11,15 +12,25 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brlcad";
|
||||
version = "7.34.2";
|
||||
version = "7.38.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "BRL-CAD";
|
||||
repo = pname;
|
||||
repo = "brlcad";
|
||||
rev = "refs/tags/rel-${lib.replaceStrings [ "." ] [ "-" ] version}";
|
||||
hash = "sha256-oafu255xElEIk8p4yvNyR2maykUfxQui/L5MkicA+JA=";
|
||||
hash = "sha256-23UTeH4gY2x/QGYZ64glAkf6LmsXBAppIOHgoUdxgpo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# This commit was bringing an impurity in the rpath resulting in:
|
||||
# RPATH of binary /nix/store/rq2hjvfgq2nvh5zxch51ij34rqqdpark-brlcad-7.38.0/bin/tclsh contains a forbidden reference to /build/
|
||||
(fetchpatch {
|
||||
url = "https://github.com/BRL-CAD/brlcad/commit/fbdbf042b2db4c7d46839a17bbf4985cdb81f0ae.patch";
|
||||
revert = true;
|
||||
hash = "sha256-Wfihd7TLkE8aOpLdDtYmhhd7nZijiVGh1nbUjWr/BjQ=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
@@ -36,11 +47,19 @@ stdenv.mkDerivation rec {
|
||||
"-DBRLCAD_ENABLE_STRICT=OFF"
|
||||
];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [
|
||||
# Needed with GCC 12
|
||||
"-Wno-error=array-bounds"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://brlcad.org";
|
||||
description = "BRL-CAD is a powerful cross-platform open source combinatorial solid modeling system";
|
||||
changelog = "https://github.com/BRL-CAD/brlcad/releases/tag/${src.rev}";
|
||||
license = with licenses; [ lgpl21 bsd2 ];
|
||||
maintainers = with maintainers; [ GaetanLepage ];
|
||||
platforms = platforms.linux;
|
||||
# error Exactly one of ON_LITTLE_ENDIAN or ON_BIG_ENDIAN should be defined.
|
||||
broken = stdenv.system == "aarch64-linux";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{ lib, stdenv
|
||||
, mkDerivation
|
||||
, fetchurl
|
||||
, autoconf
|
||||
, automake
|
||||
, libtool
|
||||
, pkg-config
|
||||
, djvulibre
|
||||
, qtbase
|
||||
@@ -12,14 +15,19 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "djview";
|
||||
version = "4.10.6";
|
||||
version = "4.12";
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
|
||||
sha256 = "08bwv8ppdzhryfcnifgzgdilb12jcnivl4ig6hd44f12d76z6il4";
|
||||
hash = "sha256-VnPGqLfhlbkaFyCyQJGRW4FF3jSHnbEVi8k2sQDq8+M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
pkg-config
|
||||
qttools
|
||||
];
|
||||
@@ -31,24 +39,24 @@ mkDerivation rec {
|
||||
libtiff
|
||||
] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AGL;
|
||||
|
||||
preConfigure = ''
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
'';
|
||||
|
||||
configureFlags = [
|
||||
"--disable-silent-rules"
|
||||
"--disable-dependency-tracking"
|
||||
"--with-x"
|
||||
"--with-tiff"
|
||||
# NOTE: 2019-09-19: experimental "--enable-npdjvu" fails
|
||||
"--disable-nsdejavu" # 2023-11-14: modern browsers have dropped support for NPAPI
|
||||
] ++ lib.optional stdenv.isDarwin "--enable-mac";
|
||||
|
||||
passthru = {
|
||||
mozillaPlugin = "/lib/mozilla/plugins";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
broken = stdenv.isDarwin;
|
||||
description = "Portable DjVu viewer (Qt5) and browser (nsdejavu) plugin";
|
||||
mainProgram = "djview";
|
||||
homepage = "https://djvu.sourceforge.net/djview4.html";
|
||||
license = licenses.gpl2;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ Anton-Latukha ];
|
||||
longDescription = ''
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
buildDotnetModule rec {
|
||||
pname = "ArchiSteamFarm";
|
||||
# nixpkgs-update: no auto update
|
||||
version = "6.0.1.24";
|
||||
version = "6.0.3.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JustArchiNET";
|
||||
repo = "ArchiSteamFarm";
|
||||
rev = version;
|
||||
hash = "sha256-IgsiL5YUeOWQ/WIaTfs0Kmv2XFori8ntGZhrx7xeMkg=";
|
||||
hash = "sha256-qYB94SJYCwcUrXdKtD+ZdiPRpwXg3rOHVmFWD+Y1ZXg=";
|
||||
};
|
||||
|
||||
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
|
||||
@@ -26,22 +26,20 @@ buildDotnetModule rec {
|
||||
nugetDeps = ./deps.nix;
|
||||
|
||||
projectFile = "ArchiSteamFarm.sln";
|
||||
executables = [ "ArchiSteamFarm" ];
|
||||
executable = "ArchiSteamFarm";
|
||||
dotnetFlags = [
|
||||
"-p:PublishSingleFile=true"
|
||||
"-p:PublishTrimmed=true"
|
||||
"-p:UseAppHost=false"
|
||||
];
|
||||
dotnetInstallFlags = [
|
||||
"--framework=net8.0"
|
||||
];
|
||||
selfContainedBuild = true;
|
||||
|
||||
runtimeDeps = [ libkrb5 zlib openssl ];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
preBuild = ''
|
||||
export projectFile=(ArchiSteamFarm)
|
||||
dotnetProjectFiles=(ArchiSteamFarm)
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
@@ -58,11 +56,17 @@ buildDotnetModule rec {
|
||||
dotnet publish $1 -p:ContinuousIntegrationBuild=true -p:Deterministic=true \
|
||||
--output $out/lib/ArchiSteamFarm/plugins/$1 --configuration Release \
|
||||
-p:UseAppHost=false
|
||||
}
|
||||
}
|
||||
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.ItemsMatcher
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.MobileAuthenticator
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.ItemsMatcher
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.MobileAuthenticator
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.Monitoring
|
||||
buildPlugin ArchiSteamFarm.OfficialPlugins.SteamTokenDumper
|
||||
|
||||
chmod +x $out/lib/ArchiSteamFarm/ArchiSteamFarm.dll
|
||||
wrapDotnetProgram $out/lib/ArchiSteamFarm/ArchiSteamFarm.dll $out/bin/ArchiSteamFarm
|
||||
substituteInPlace $out/bin/ArchiSteamFarm \
|
||||
--replace-fail "exec " "exec dotnet "
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
|
||||
+49
-40
@@ -57,10 +57,14 @@
|
||||
(fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.14.1"; sha256 = "0zn99311zfn602phxyskfjq9vly0w5712z6fly8r4q0h94qa8c85"; })
|
||||
(fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
|
||||
(fetchNuGet { pname = "JetBrains.Annotations"; version = "2023.3.0"; sha256 = "0vp4mpn6gfckn8grzjm1jxlbqiq2fglm2rk9wq787adw7rxs8k7w"; })
|
||||
(fetchNuGet { pname = "Markdig.Signed"; version = "0.36.2"; sha256 = "02d658sjxd853lmqhhh13yhycm9nlmghl3p3fdn6iwmwhkly9qvy"; })
|
||||
(fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.21.0"; sha256 = "1q034jbqkxb8lddkd0ijp0wp0ymnnf3bg2mjpay027zv7jswnc4x"; })
|
||||
(fetchNuGet { pname = "Markdig.Signed"; version = "0.37.0"; sha256 = "0pcysg74pvhqs13087dh5r90xnixklmnz7bwv02304927mkv5345"; })
|
||||
(fetchNuGet { pname = "Microsoft.ApplicationInsights"; version = "2.22.0"; sha256 = "0h5qkhmazlvwvjmxxj9pp2404rmvk55yf6npwcmlskv9mgfkli4r"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "8.0.0"; sha256 = "05y1xb5fw8lzvb4si77a5qwfwfz1855crqbphrwky6x9llivbhkx"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "8.0.0"; sha256 = "18zdbcb2bn7wy1dp14z5jyqiiwr9rkad1lcb158r5ikjfq1rg5iw"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "8.0.0"; sha256 = "1nbxzmj6cnccylxis67c54c0ik38ma4rwdvgg6sxd6r04219maqm"; })
|
||||
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "8.0.0"; sha256 = "1wqkbjd1ywv9w397l7rsb89mijc5n0hv7jq9h09xfz6wn9qsp152"; })
|
||||
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.8.0"; sha256 = "173wjadp3gan4x2jfjchngnc4ca4mb95h1sbb28jydfkfw0z1zvj"; })
|
||||
(fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.10.0"; sha256 = "0s0v7jmrq85n356xv7zixvwa4z94fszjcr5vll8x4im1a2lp00f9"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; sha256 = "1pi2bm3cm0a7jzqzmfc2r7bpcdkmk3hhjfvb2c81j7wl7xdw3624"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "8.0.0"; sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "8.0.0"; sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71"; })
|
||||
@@ -76,54 +80,60 @@
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "8.0.0"; sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "8.0.0"; sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.5.0"; sha256 = "0nigij1vz1biw1sl64mflx68fgm34lmnvq47z2n5p0qs534kvkhb"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.5.0"; sha256 = "025ixbv7jq294n8yw4y1bbd92iz08q4jqnnzqp0s8lgi49sk9dad"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.5.0"; sha256 = "1qyyfxww980s7xzw048kc8iqzarzbaj11cb5lrsisv777ccipma5"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.5.0"; sha256 = "0ns56pws3zlwjk8mjyfr02zl3nnhzka76wabfabplfci62bgi3h0"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.8.0"; sha256 = "1syvl3g0hbrcgfi9rq6pld8s8hqqww4dflf1lxn59ccddyyx0gmv"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.6.0"; sha256 = "18g4j9n47387k4ym3kl2dzhhhs6fs5rq96757fc4lcdql2rpkmp0"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.6.0"; sha256 = "11znwbbg44hhz3ly6j6q81qz83yqf97jj5zhpldng5zq0h791srl"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.6.0"; sha256 = "1slkzygcn4abpqip4rmi73h9096ihjkkaiwgmkaiba9pidn9lzlx"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.6.0"; sha256 = "1blj1ayw9qpjpsnb4k95s03pdkin0032mxgznfaw1z1qhhiqdnsi"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.10.0"; sha256 = "13g8fwl09li8fc71nk13dgkb7gahd4qhamyg2xby7am63nlchhdf"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "8.0.0"; sha256 = "0gwqmkmr7jy3sjh9gha82amlry41gp8nwswy2iqfw54f28db63n7"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "8.0.0"; sha256 = "042cjvnwrrjs3mw5q8q5kinh0cwkks33i3n1vyifaid2jbr3wlc0"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "8.0.0"; sha256 = "06ndp4wh1cap01dql3nixka4g56bf6ipmqys7xaxvg4xisf79x8d"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "8.0.0"; sha256 = "1kh5bnaf6h9mr4swcalrp304625frjiw6mlz1052rxwzsdq98a96"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
|
||||
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.0.2"; sha256 = "00psv2mvynd2bz8xnzvqvb32qr33glqxg4ni5j91b93k84yjy5ma"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.0.2"; sha256 = "09yn3hi9npgi8rs2vyfyzcl8vbfa1lqcl6lgpymw5d7lg0hc511w"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.0.2"; sha256 = "0c65fsc23xxw648xh83sjcmrn9hvs9q58l5lb36wflvaajbsjf2r"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.0.2"; sha256 = "0bq46f4v2r4nzwly7g0dsakyc1lcql9nh85sp59d1fwzaknf1n94"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.0.2"; sha256 = "1vjqrpqjx3z1irqgy0ckmkgyvrzqqqcikxs36q6gadyj643ra1c5"; })
|
||||
(fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.6.14"; sha256 = "1wr8crmjg4gznm3jqgz9s9p285vrwb8a6baqc6gz3b58rn4m88km"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.Telemetry"; version = "1.2.1"; sha256 = "1a6hyd3szjjpjkbr0ncfria0x2qijv3lwr4drhxm15xamfy23azw"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.TrxReport.Abstractions"; version = "1.2.1"; sha256 = "19309m0b9cjy1642m99ipjvr6gxq6qb008bam3l10m1mz8m81j31"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Extensions.VSTestBridge"; version = "1.2.1"; sha256 = "1bly8375zng21yjbfdi08c14lgapngv06p1dlzbryimxicqzxixx"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform"; version = "1.2.1"; sha256 = "0zlbqmvdb1vxnvmxh6lk65mz57c7mz6dqb1s8in0cfww8kxg058k"; })
|
||||
(fetchNuGet { pname = "Microsoft.Testing.Platform.MSBuild"; version = "1.2.1"; sha256 = "07674xnhc84h36pvzswx6ibjy0bgfi2bxhqm1zyq9fidmim0ch07"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.10.0"; sha256 = "07j69cw8r39533w4p39mnj00kahazz38760in3jfc45kmlcdb26x"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.5.0"; sha256 = "0qkjyf3ky6xpjg5is2sdsawm99ka7fzgid2bvpglwmmawqgm8gls"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.8.0"; sha256 = "0b0i7lmkrcfvim8i3l93gwqvkhhhfzd53fqfnygdqvkg6np0cg7m"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.8.0"; sha256 = "0f5jah93kjkvxwmhwb78lw11m9pkkq9fvf135hpymmmpxqbdh97q"; })
|
||||
(fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.10.0"; sha256 = "1bl471s7fx9jycr0cc8rylwf34mrvlg9qn1an6l86nisavfcyb7v"; })
|
||||
(fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
|
||||
(fetchNuGet { pname = "MSTest"; version = "3.2.2"; sha256 = "19pkywdlmgccv2ri52gbpb3pgci1ymb2ba5qhyp9j19vks6gf6cj"; })
|
||||
(fetchNuGet { pname = "MSTest.Analyzers"; version = "3.2.2"; sha256 = "1ap7imbqxmz2namgli796pxj91gyn01k6xxnllldpwwbxpd0ijgd"; })
|
||||
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.2.2"; sha256 = "14nrxg1cd3lzaxw7zz8z91168sgnsf1xxnrpdy7wkd6ggk22hi19"; })
|
||||
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.2.2"; sha256 = "0igdrjr300bqz5lnibf9vl8pkaky1l27f889gza3a9xs83mpd06p"; })
|
||||
(fetchNuGet { pname = "MSTest"; version = "3.4.3"; sha256 = "070avma2zdxdpn23a9chgz9n1kglxh8nbb1g2ggzk3xxi5sdjj0n"; })
|
||||
(fetchNuGet { pname = "MSTest.Analyzers"; version = "3.4.3"; sha256 = "14a6rzh4cvaf9bw63qlxw242fbmk4agyx9qgl19swpciqcaq7pxi"; })
|
||||
(fetchNuGet { pname = "MSTest.TestAdapter"; version = "3.4.3"; sha256 = "0hsslndnfyb6shgkmgy10f1c9p6b47ry20zr2l1msagmkrk49s5q"; })
|
||||
(fetchNuGet { pname = "MSTest.TestFramework"; version = "3.4.3"; sha256 = "0hviglzfv16dd3aczny455sy1k0rikzd5w34smfpjyxc0wqx6xvp"; })
|
||||
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
|
||||
(fetchNuGet { pname = "Nito.AsyncEx.Coordination"; version = "5.1.2"; sha256 = "0sxvmqnv8a94k3pq1w3lh1vgjb8l62h1qamxcjl3pkq634h2fwrl"; })
|
||||
(fetchNuGet { pname = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
|
||||
(fetchNuGet { pname = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
|
||||
(fetchNuGet { pname = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
|
||||
(fetchNuGet { pname = "NLog"; version = "5.2.8"; sha256 = "1z3h20m5rjnizm1jbf5j0vpdc1f373rzzkg6478p1lxv5j385c12"; })
|
||||
(fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.8"; sha256 = "1qnz91099f51vk7f5g2ig0041maw5hcbyqllxvj5zj7zkp0qw9b8"; })
|
||||
(fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.8"; sha256 = "05a6bzvdf63lbnn6sj3yfggxcgv96j91kdbcw0ac5hxl58df58r6"; })
|
||||
(fetchNuGet { pname = "NLog"; version = "5.3.2"; sha256 = "01qnzmwvc93yywhvy5g29fb8jnalfi82az7296nblyqjalhbzz3g"; })
|
||||
(fetchNuGet { pname = "NLog.Extensions.Logging"; version = "5.3.11"; sha256 = "0j276q0a14qk9nc3f03265jl5wp38bnm7dyyx0s4kxkyb3kx3z8c"; })
|
||||
(fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "5.3.11"; sha256 = "17xvaj54liyk9zq0f80z1ai6wq4rgj6xy93znvsdcnldmin1icz9"; })
|
||||
(fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
|
||||
(fetchNuGet { pname = "NuGet.Frameworks"; version = "6.5.0"; sha256 = "0s37d1p4md0k6d4cy6sq36f2dgkd9qfbzapxhkvi8awwh0vrynhj"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry"; version = "1.8.0-rc.1"; sha256 = "0scpylqwqmp7lpmixci88v6zf7jzf3zrcbrhl30bd4p7r4alw2lp"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.7.0"; sha256 = "099yivazj5078076xydssf38r71c5nk3n7hy0lr51p80gln1vdha"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.0-rc.1"; sha256 = "0rnl9pkwbz2srkss3ay05jjrfkyzibxa6vx0hg7rzfpyjinhaycs"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.7.0"; sha256 = "1j7bxhpwpcrjr4am7s4mavjjpasikv4kp8glmxiw5x9zvc0x0ix7"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.0-rc.1"; sha256 = "18r7m4zjimkkwjqw8hd9xa85lnj1fy45xyd338fbpp9nm73j9r2g"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Exporter.Prometheus.AspNetCore"; version = "1.8.0-rc.1"; sha256 = "0fiz7qpzn64by4dlc5r9ha2qrp1j9w9lm6c7bzpvshzwz8ifamv7"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.8.0-rc.1"; sha256 = "0p5sybp1b8fkccibhlmjlvdnhryscqh9f435c34bwp6vvllxf17z"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.AspNetCore"; version = "1.7.1"; sha256 = "19r12csxwdrvl5yx88mv68rzj2cy43004pwldy6q89v42sr01kyi"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Http"; version = "1.7.1"; sha256 = "0mvrcz2mg3caf4lcwi1ai7i7ldb27p4y2qx9vckfjal203bps352"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.7.0"; sha256 = "0klyd24akymj2hpjlnzmz7x9kggj4amhaqx1zh9nxjvlmmy64gxy"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry"; version = "1.7.0-rc.1"; sha256 = "0y16qp3xrypk48f27pfvccic47p9wpl4qx8mar4rf2b78ca21c9p"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry"; version = "1.8.1"; sha256 = "1slyjdzbiv179sq91bq6bhbqw20jmk6j9x1g5fhvnqsymfqmnmq2"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.7.0-rc.1"; sha256 = "1i09vjjrimg0bwraamsjdqx886apscwj72skds3ysvc9c7n0hpl2"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.0"; sha256 = "0s402mz4gz1chlg29159awawpi6ms4ln5gdds01y38wx6cia6lb9"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api"; version = "1.8.1"; sha256 = "0c2dvnnnizn5g50js336lkgfxh6klcdb0h8pppf68v3liwlhxly5"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.7.0-rc.1"; sha256 = "1ayy2q9cg6482ahvz3cx7a3cikjrnmr5kr7yk9qnbbwy0wfmb6gw"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.0"; sha256 = "1vhl02w068ynhpak0pyjn2xmrnisl9m73lmsckwkncrhinplw7hz"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Api.ProviderBuilderExtensions"; version = "1.8.1"; sha256 = "0lys1l0qsna2h82j2rbxi5fc8barrq43fs0lradr85r7sy3x91cg"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Exporter.Prometheus.AspNetCore"; version = "1.7.0-rc.1"; sha256 = "1777nbj78yppmqmwvv0bsl4l0vp8lfc5fpsdmknf6wl354f0z1f8"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Extensions.Hosting"; version = "1.8.1"; sha256 = "01vi9sqb2j25i6926c581w067nadf4q4hs0hkwjg8wpzhxz0n3xq"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.AspNetCore"; version = "1.8.1"; sha256 = "0s5kxqjhmwm2p2sblmmsavvmknqb8yr0b07ngq8hk0w8b48kyc0h"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Http"; version = "1.8.1"; sha256 = "0p3mw08vi9ljf06239n8b1hfj0cqqb198qn89sf39mdjsy13ca95"; })
|
||||
(fetchNuGet { pname = "OpenTelemetry.Instrumentation.Runtime"; version = "1.8.1"; sha256 = "0j2i01378848nvib1krk948lp74x8ykgspka05g37a3s284p1nyd"; })
|
||||
(fetchNuGet { pname = "protobuf-net"; version = "3.2.30"; sha256 = "08bjdn8dbqpzn5c9fw89y5766irwplgyzhyxcrjzpywkwpj75r4i"; })
|
||||
(fetchNuGet { pname = "protobuf-net.Core"; version = "3.2.30"; sha256 = "01mgw4s0b2vxf55v6fa3n5l9jwk6bkl60aaqv7azl198wwslkjhq"; })
|
||||
(fetchNuGet { pname = "SteamKit2"; version = "3.0.0-alpha.1"; sha256 = "01lrbkbpfqdkhba9hsfg9fqyh1sa9r2cp54r2wlb83zfr3f5q8l8"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.5.0"; sha256 = "0k61chpz5j59s1yax28vx0mppx20ff8vg8grwja112hfrzj1f45n"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.5.0"; sha256 = "00n8s45xwbayj3p6x3awvs87vqvmzypny21nqc61m7a38d1asijv"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.5.0"; sha256 = "1s6axf6fin8sss3bvzp0s039rxrx71vx4rl559miw12bz3lld8kc"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.5.0"; sha256 = "0hq93gy5vyrigpdk9lhqwxglxwkbxa8ydllwcqs4bwfcsspzrs83"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.5.0"; sha256 = "17hx7kc187higm0gk67dndng3n7932sn3fwyj48l45cvyr3025h7"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.6.2"; sha256 = "0lq774iggpvsmykbrplvv2a5z2ylsslv5wynmvpnlznd4lvgxb4h"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.6.2"; sha256 = "1snz71ws87kr8pz4c3zcla51mqbly015ib6b0y20xvkj25qx7gl8"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.6.2"; sha256 = "0j93y0krn5fzvji0k7g4cxi22b7j8n3brxw4698pjq2pqqf2d8qy"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.6.2"; sha256 = "00lar7246mncidflm15xz5b9hpni9bf8wj37dc0l2sj3hhv9nvwj"; })
|
||||
(fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.6.2"; sha256 = "0w0h2cs8n5avczzm5plzmkvkc6xn0pj425f4400fk21h8ysvhg8h"; })
|
||||
(fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
|
||||
(fetchNuGet { pname = "System.Collections.Immutable"; version = "7.0.0"; sha256 = "1n9122cy6v3qhsisc9lzwa1m1j62b8pi2678nsmnlyvfpk0zdagm"; })
|
||||
(fetchNuGet { pname = "System.Composition"; version = "8.0.0"; sha256 = "0y7rp5qwwvh430nr0r15zljw01gny8yvr0gg6w5cmsk3q7q7a3dc"; })
|
||||
@@ -141,5 +151,4 @@
|
||||
(fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "8.0.0"; sha256 = "1ysjx3b5ips41s32zacf4vs7ig41906mxrsbmykdzi0hvdmjkgbx"; })
|
||||
(fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
|
||||
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
|
||||
(fetchNuGet { pname = "zxcvbn-core"; version = "7.0.92"; sha256 = "1pbi0n3za8zsnkbvq19njy4h4hy12a6rv4rknf4a2m1kdhxb3cgx"; })
|
||||
]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "asf-ui";
|
||||
version = "f70253c96e76fff5c5537c7be57a57de4e273eb8";
|
||||
version = "78188871dfce90fb04096e9fd0b6ce2411312dae";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JustArchiNET";
|
||||
@@ -10,10 +10,10 @@ buildNpmPackage rec {
|
||||
# updated by the update script
|
||||
# this is always the commit that should be used with asf-ui from the latest asf version
|
||||
rev = version;
|
||||
hash = "sha256-hw6M8O486vnWqdO4DqljOoGEevykpxhez3QL745VfIk=";
|
||||
hash = "sha256-NBxN3pQFiDsRYp2Ro0WwWdGzKVjPTKx4/xWQrMNuv0M=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-GpGVM9c5yaLHi77qpShm30/uObg1TdLFCIhmFvLEhaU=";
|
||||
npmDepsHash = "sha256-9pLbSOMfKwkWtzmKNmeKNrgdtzh3riWWJlrbuoDRUrw=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -118,7 +118,7 @@ mkDerivation rec {
|
||||
homepage = "https://www.google.com/earth/";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ friedelino shamilton ];
|
||||
maintainers = with maintainers; [ shamilton ];
|
||||
platforms = platforms.linux;
|
||||
knownVulnerabilities = [ "Includes vulnerable versions of bundled libraries: openssl, ffmpeg, gdal, and proj." ];
|
||||
};
|
||||
|
||||
@@ -39,7 +39,6 @@ stdenv.mkDerivation {
|
||||
homepage = "http://wili.cc/blog/gpu-burn.html";
|
||||
description = "Multi-GPU CUDA stress test";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ elohmeier ];
|
||||
license = licenses.bsd2;
|
||||
mainProgram = "gpu_burn";
|
||||
};
|
||||
|
||||
@@ -18,13 +18,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gpxsee";
|
||||
version = "13.21";
|
||||
version = "13.22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tumic0";
|
||||
repo = "GPXSee";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-rg4czTni8toAwzppgNdi/lfUDudKkEqZUZziiIiyJm0=";
|
||||
hash = "sha256-5YoFO1NHduV8qKZ8GPaFnKfRQRlhlG5swZo74SfOpZY=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "holochain-launcher";
|
||||
pname = "holochain-launcher";
|
||||
version = "0.11.5";
|
||||
prerelease = "beta-2";
|
||||
|
||||
|
||||
+1
-1
@@ -675,7 +675,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "missioncenter"
|
||||
version = "0.5.1"
|
||||
version = "0.5.2"
|
||||
dependencies = [
|
||||
"dbus",
|
||||
"errno-sys",
|
||||
|
||||
@@ -1,38 +1,39 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, fetchFromGitHub
|
||||
, cargo
|
||||
, libxml2
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python311
|
||||
, rustPlatform
|
||||
, symlinkJoin
|
||||
, rustc
|
||||
, wrapGAppsHook4
|
||||
, appstream-glib
|
||||
, blueprint-compiler
|
||||
, cairo
|
||||
, cmake
|
||||
, dbus
|
||||
, desktop-file-utils
|
||||
, gdk-pixbuf
|
||||
, gettext
|
||||
, glib
|
||||
, graphene
|
||||
, gtk4
|
||||
, libGL
|
||||
, libadwaita
|
||||
, libdrm
|
||||
, mesa
|
||||
, pango
|
||||
, sqlite
|
||||
, udev
|
||||
, wayland
|
||||
, dmidecode
|
||||
, vulkan-loader
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitLab,
|
||||
fetchFromGitHub,
|
||||
cargo,
|
||||
libxml2,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
python311,
|
||||
rustPlatform,
|
||||
symlinkJoin,
|
||||
rustc,
|
||||
wrapGAppsHook4,
|
||||
appstream-glib,
|
||||
blueprint-compiler,
|
||||
cairo,
|
||||
cmake,
|
||||
dbus,
|
||||
desktop-file-utils,
|
||||
gdk-pixbuf,
|
||||
gettext,
|
||||
glib,
|
||||
graphene,
|
||||
gtk4,
|
||||
libGL,
|
||||
libadwaita,
|
||||
libdrm,
|
||||
mesa,
|
||||
pango,
|
||||
sqlite,
|
||||
udev,
|
||||
wayland,
|
||||
dmidecode,
|
||||
vulkan-loader,
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -45,28 +46,23 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mission-center";
|
||||
version = "0.5.1";
|
||||
version = "0.5.2";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "mission-center-devs";
|
||||
repo = "mission-center";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-I/UkHXDGbKiOcn7R0nQVKcgdvyV4ycgQGNoHA6QMAnw=";
|
||||
hash = "sha256-84D+CttolY5hleCJbDiN3mlk0+nlwwJUJhGoKGVT/lw=";
|
||||
};
|
||||
|
||||
cargoDeps = symlinkJoin {
|
||||
name = "cargo-vendor-dir";
|
||||
paths = [
|
||||
(rustPlatform.importCargoLock {
|
||||
lockFile = ./Cargo.lock;
|
||||
})
|
||||
(rustPlatform.importCargoLock {
|
||||
lockFile = ./gatherer-Cargo.lock;
|
||||
})
|
||||
(rustPlatform.importCargoLock { lockFile = ./Cargo.lock; })
|
||||
(rustPlatform.importCargoLock { lockFile = ./gatherer-Cargo.lock; })
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
nativeBuildInputs = [
|
||||
blueprint-compiler
|
||||
cargo
|
||||
@@ -139,6 +135,7 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
description = "Monitor your CPU, Memory, Disk, Network and GPU usage";
|
||||
homepage = "https://gitlab.com/mission-center-devs/mission-center";
|
||||
changelog = "https://gitlab.com/mission-center-devs/mission-center/-/releases/v${version}";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ GaetanLepage ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
||||
+1
-1
@@ -383,7 +383,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "gatherer"
|
||||
version = "0.5.1"
|
||||
version = "0.5.2"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"arrayvec",
|
||||
|
||||
@@ -16,12 +16,12 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mkgmap";
|
||||
version = "4919";
|
||||
version = "4921";
|
||||
|
||||
src = fetchsvn {
|
||||
url = "https://svn.mkgmap.org.uk/mkgmap/mkgmap/trunk";
|
||||
rev = version;
|
||||
sha256 = "sha256-WMFZEGTXVAaBlEKUqclmkw3pKnWSdbvulDvSi7TQn8k=";
|
||||
sha256 = "sha256-s7EKHXh3UNMDzBmWUTZaLR1P21e27cWJNYRlFcpJu50=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
name = "polychromatic";
|
||||
pname = "polychromatic";
|
||||
version = "0.9.1";
|
||||
format = "other";
|
||||
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "qcad";
|
||||
version = "3.29.6.5";
|
||||
version = "3.30.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
name = "qcad-${version}-src";
|
||||
owner = "qcad";
|
||||
repo = "qcad";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2x3np1cmjJ/IN/vSqKX6mTQbtFROxPzhXPjeJ6mxe9k=";
|
||||
hash = "sha256-KpY/GjagRx0XkH18dDJcf6JfkT/0V8ZHJ5DHtAEUaF4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -18,11 +18,11 @@ with python3.pkgs;
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "safeeyes";
|
||||
version = "2.1.6";
|
||||
version = "2.1.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-tvsBTf6+zKBzB5aL+LUcEvE4jmVHnnoY0L4xoKMJ0vM=";
|
||||
hash = "sha256-65U/j6P6X4JzhL0aEOnzKa/Al6SYprOOxix2dtcusJQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -27,11 +27,11 @@
|
||||
version = "2024-05-13";
|
||||
};
|
||||
ungoogled-patches = {
|
||||
hash = "sha256-2Yt91vWR5SYLBTO+PIEgFswkvwxJsNpKidOwxUBgLeg=";
|
||||
rev = "126.0.6478.55-1";
|
||||
hash = "sha256-vQrUQMmNSw+b9nPzP1RmkncQHasmZvnxNHjfiPoMUXo=";
|
||||
rev = "126.0.6478.61-1";
|
||||
};
|
||||
};
|
||||
hash = "sha256-nXRzISkU37TIgV8rjO0qgnhq8uM37M6IpMoGHdsOGIM=";
|
||||
version = "126.0.6478.55";
|
||||
hash = "sha256-cB2jrasrtaFWM8tpG9leuC+jUAvoU8g5977cn4r7rbw=";
|
||||
version = "126.0.6478.61";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
((buildMozillaMach rec {
|
||||
pname = "floorp";
|
||||
packageVersion = "11.13.3";
|
||||
packageVersion = "11.14.1";
|
||||
applicationName = "Floorp";
|
||||
binaryName = "floorp";
|
||||
branding = "browser/branding/official";
|
||||
@@ -15,14 +15,14 @@
|
||||
allowAddonSideload = true;
|
||||
|
||||
# Must match the contents of `browser/config/version.txt` in the source tree
|
||||
version = "115.12.0";
|
||||
version = "115.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Floorp-Projects";
|
||||
repo = "Floorp";
|
||||
fetchSubmodules = true;
|
||||
rev = "v${packageVersion}";
|
||||
hash = "sha256-9EDTVckSqv/nyDi4qjMd54I69WiqM8v6om7zQLT+pQc=";
|
||||
hash = "sha256-PhI+hIypPF6W5RJIXhCAXblSJNwgYavfCgdQozDSXG0=";
|
||||
};
|
||||
|
||||
extraConfigureFlags = [
|
||||
@@ -31,6 +31,13 @@
|
||||
"--with-unsigned-addon-scopes=app,system"
|
||||
];
|
||||
|
||||
extraPostPatch = ''
|
||||
# Fix .desktop files for PWAs generated by Floorp; they hardcode /usr/bin
|
||||
# https://github.com/NixOS/nixpkgs/issues/314115
|
||||
substituteInPlace floorp/browser/base/content/modules/ssb/LinuxSupport.mjs \
|
||||
--replace-fail /usr/bin/floorp floorp
|
||||
'';
|
||||
|
||||
updateScript = ./update.sh;
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
{
|
||||
beta = import ./browser.nix {
|
||||
channel = "beta";
|
||||
version = "126.0.2592.36";
|
||||
version = "126.0.2592.53";
|
||||
revision = "1";
|
||||
hash = "sha256-u9gcTjener35uKt99T27+LK0A4SYNdWCW5FSHWEnaNA=";
|
||||
hash = "sha256-d1zqZUhk5C/jrdZngQQlGplrSssE/LUR3/AybStNavE=";
|
||||
};
|
||||
dev = import ./browser.nix {
|
||||
channel = "dev";
|
||||
version = "127.0.2620.3";
|
||||
version = "127.0.2638.2";
|
||||
revision = "1";
|
||||
hash = "sha256-x5reGA7XZTN3FsCHf7oXstltCDSVANR8VegIuO201qs=";
|
||||
hash = "sha256-Bv0X30ilcNBI9pblnrO1QA7ElTPMO5/JmIZIjhldO7Y=";
|
||||
};
|
||||
stable = import ./browser.nix {
|
||||
channel = "stable";
|
||||
version = "125.0.2535.85";
|
||||
version = "125.0.2535.92";
|
||||
revision = "1";
|
||||
hash = "sha256-4GD/1jAw+nIwI5AOwrkuPNF5zAnnzje9oEQnaHOapPg=";
|
||||
hash = "sha256-DuVz6+BzGTWZJ4smizIK2dV1OTmv0uTIQpD+yclHDN8=";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "argo-rollouts";
|
||||
version = "1.6.0";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo-rollouts";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-WJ5vIfQQguwjInS5p+bUYorM90MUAbH8endV/nkgQ00=";
|
||||
sha256 = "sha256-b1oaLVwom06XUCjMF3/O/SdLt2s0MFuF+et6+MO2jBQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-vBSS1KMfloK5pvVc8nHE5B8PsVZTS/iA9GyrLaeR6ps=";
|
||||
vendorHash = "sha256-38BLPNc6en70+UxlldmrwtRTMRLh/fCPL6FtuA2ODGM=";
|
||||
|
||||
# Disable tests since some test fail because of missing test data
|
||||
doCheck = false;
|
||||
|
||||
@@ -34,16 +34,16 @@ let
|
||||
in
|
||||
buildGoModule rec {
|
||||
pname = "argo";
|
||||
version = "3.5.7";
|
||||
version = "3.5.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-OJkC+uqOuXA6NBpVxmQAFs+N99d4Zonh9dcZnuB26Ts=";
|
||||
hash = "sha256-BYUP/Gu+N8KK9mfjRAXupXqrwfZMZlYPxxuZCmUDFfE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-O7Lv5RLcqB4JbdXHKXFWkg/dvids8QH619urpeACuN8=";
|
||||
vendorHash = "sha256-pVOTeH6fq4Gqarjvi7w2wYJ3FSqV6yNZERmOmbVGxLM=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cni";
|
||||
version = "1.2.0";
|
||||
version = "1.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containernetworking";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-32rmfBjPtc9w+B8PIb8sFOIlzZ7PnS6XSZRNLreMVl4=";
|
||||
hash = "sha256-aS7THDTpfNQPw+70ZgFzvurpq/vMKE6xSxJ19ERbtOA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-JWaQacekMQGT710U5UgiIpmEYgyUCh1uks5eSV5nhWc=";
|
||||
vendorHash = "sha256-5VsJ3Osm9w09t3x0dItC2iWwbPMf/IIBOSqUfcbQKK4=";
|
||||
|
||||
subPackages = [
|
||||
"./cnitool"
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cni-plugins";
|
||||
version = "1.5.0";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containernetworking";
|
||||
repo = "plugins";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-gJp1w2H+hPSSu1Y4BY9Sa8lLnhpiZJu2Dz9OenYlQFo=";
|
||||
hash = "sha256-Veuv7DwwnSUnz2p5gemqQB9pr05nLLQ6gG4JvqFbZ/U=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
{ lib, buildGoPackage, fetchFromGitHub }:
|
||||
|
||||
buildGoPackage rec {
|
||||
pname = "kontemplate";
|
||||
version = "1.8.0";
|
||||
goPackagePath = "github.com/tazjin/kontemplate";
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tazjin";
|
||||
repo = "kontemplate";
|
||||
rev = "v${version}";
|
||||
sha256 = "123mjmmm4hynraq1fpn3j5i0a1i87l265kkjraxxxbl0zacv74i1";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Extremely simple Kubernetes resource templates";
|
||||
mainProgram = "kontemplate";
|
||||
homepage = "http://kontemplate.works";
|
||||
downloadPage = "https://github.com/tazjin/kontemplate/releases";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ mbode tazjin ];
|
||||
platforms = platforms.unix;
|
||||
|
||||
longDescription = ''
|
||||
Kontemplate is a simple CLI tool that can take sets of
|
||||
Kubernetes resource files with placeholders and insert values
|
||||
per environment.
|
||||
|
||||
It can be used as a simple way of deploying the same set of
|
||||
resources to different Kubernetes contexts with context-specific
|
||||
configuration.
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
|
||||
[
|
||||
{
|
||||
goPackagePath = "github.com/Masterminds/goutils";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/Masterminds/goutils";
|
||||
rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0";
|
||||
sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/Masterminds/semver";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/Masterminds/semver";
|
||||
rev = "5bc3b9184d48f1412b300b87a200cf020d9254cf";
|
||||
sha256 = "1vdfm653v50jf63cw0kg2hslx50cn4mk6lj3p51bi11jrg48kfng";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/Masterminds/sprig";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/Masterminds/sprig";
|
||||
rev = "6f509977777c33eae63b2136d97f7b976cb971cc";
|
||||
sha256 = "05h9k6fhjxnpwlihj3z02q9kvqvnq53jix0ab84sx0666bci3cdh";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/alecthomas/template";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/alecthomas/template";
|
||||
rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
|
||||
sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/alecthomas/units";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/alecthomas/units";
|
||||
rev = "c3de453c63f4bdb4dadffab9805ec00426c505f7";
|
||||
sha256 = "0js37zlgv37y61j4a2d46jh72xm5kxmpaiw0ya9v944bjpc386my";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/ghodss/yaml";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/ghodss/yaml";
|
||||
rev = "25d852aebe32c875e9c044af3eef9c7dc6bc777f";
|
||||
sha256 = "1w9yq0bxzygc4qwkwwiy7k1k1yviaspcqqv18255k2xkjv5ipccz";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/google/uuid";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/google/uuid";
|
||||
rev = "c2e93f3ae59f2904160ceaab466009f965df46d6";
|
||||
sha256 = "0zw8fvl6jqg0fmv6kmvhss0g4gkrbvgyvl2zgy5wdbdlgp4fja0h";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/huandu/xstrings";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/huandu/xstrings";
|
||||
rev = "8bbcf2f9ccb55755e748b7644164cd4bdce94c1d";
|
||||
sha256 = "1ivvc95514z63k7cpz71l0dwlanffmsh1pijhaqmp41kfiby8rsx";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/imdario/mergo";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/imdario/mergo";
|
||||
rev = "4c317f2286be3bd0c4f1a0e622edc6398ec4656d";
|
||||
sha256 = "0bihha1qsgfjk14yv1hwddv3d8dzxpbjlaxwwyys6lhgxz1cr9h9";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "golang.org/x/crypto";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/crypto";
|
||||
rev = "9756ffdc24725223350eb3266ffb92590d28f278";
|
||||
sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://gopkg.in/alecthomas/kingpin.v2";
|
||||
rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
|
||||
sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "gopkg.in/yaml.v2";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://gopkg.in/yaml.v2";
|
||||
rev = "51d6538a90f86fe93ac480b35f37b2be17fef232";
|
||||
sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
|
||||
};
|
||||
}
|
||||
]
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kubeshark";
|
||||
version = "52.3.62";
|
||||
version = "52.3.68";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubeshark";
|
||||
repo = "kubeshark";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-mYFjs/6aO7tzopOZij9rNoOu2a/UUQqpDg16gCoeR8w=";
|
||||
hash = "sha256-GDK+GR3MUYUgfY3cgaxWIYSE3uiEscp9DeeY36/zOYo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0WRmAqslZj63m+kCFKIBgoRX47ZyRuU7ZihmF6wmZy4=";
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kyverno";
|
||||
version = "1.12.3";
|
||||
version = "1.12.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyverno";
|
||||
repo = "kyverno";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vJ9HXpvkuZWOZtsoJhcpM0KGGiyd+D5HTQBHwb8l/II=";
|
||||
hash = "sha256-TVtE1mdOai2G2+KCp9r5G+E9QhGQ5TmUFCN9x5EKM7o=";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
(callPackage ./generic.nix { }) {
|
||||
channel = "edge";
|
||||
version = "24.5.5";
|
||||
sha256 = "0lgpqx672ics998830y8qklchdmbj272xfbs5r414hqlznbbi8w1";
|
||||
vendorHash = "sha256-PV0HbsIcO6FjdczCWJgR6X5THUREDht2R4NJ7HxkBNw=";
|
||||
version = "24.6.2";
|
||||
sha256 = "0qghp8v4lz51yv5j5k8dps4qv58hjdjdc3jzrrq3g239x8b2h6ys";
|
||||
vendorHash = "sha256-7Q6V9DKROkSTxU7n511aOpaMDRfhP88p6PJ89Sr6kOQ=";
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "flexget";
|
||||
version = "3.11.36";
|
||||
version = "3.11.37";
|
||||
pyproject = true;
|
||||
|
||||
# Fetch from GitHub in order to use `requirements.in`
|
||||
@@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "Flexget";
|
||||
repo = "Flexget";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-6WZALdKORsa0wahPKgkpzjlktJQxnbiiJLXGv3E9MXM=";
|
||||
hash = "sha256-bZd/iLEGF5+Zt4kKAvUmjHiPKA1v1FWf5/BEcsLy9MU=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -176,10 +176,10 @@ stdenv.mkDerivation {
|
||||
# Wrap feishu and vulcan
|
||||
# Feishu is the main executable, vulcan is the builtin browser
|
||||
for executable in $out/opt/bytedance/feishu/{feishu,vulcan/vulcan}; do
|
||||
# FIXME: Add back NIXOS_OZONE_WL support once upstream fixes the crash on native Wayland (see #318035)
|
||||
wrapProgram $executable \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
|
||||
--prefix LD_LIBRARY_PATH : ${rpath}:$out/opt/bytedance/feishu:${addOpenGLRunpath.driverLink}/share \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
|
||||
${lib.optionalString (commandLineArgs!="") "--add-flags ${lib.escapeShellArg commandLineArgs}"}
|
||||
done
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, electron_28
|
||||
, electron
|
||||
, makeWrapper
|
||||
}:
|
||||
|
||||
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
|
||||
substituteInPlace $out/share/applications/Mattermost.desktop \
|
||||
--replace /share/mattermost-desktop/mattermost-desktop /bin/mattermost-desktop
|
||||
|
||||
makeWrapper '${lib.getExe electron_28}' $out/bin/${pname} \
|
||||
makeWrapper '${lib.getExe electron}' $out/bin/${pname} \
|
||||
--set-default ELECTRON_IS_DEV 0 \
|
||||
--add-flags $out/share/${pname}/app.asar \
|
||||
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
|
||||
|
||||
+2
-2
@@ -2,7 +2,7 @@
|
||||
callPackage ./generic.nix { } rec {
|
||||
pname = "signal-desktop-beta";
|
||||
dir = "Signal Beta";
|
||||
version = "7.12.0-beta.2";
|
||||
version = "7.13.0-beta.1";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
|
||||
hash = "sha256-Hpg9pkRXbwF5uKhLzn1cfHTzlYmsZd5tndtwVFcL7iU=";
|
||||
hash = "sha256-DvYRvIA+rg4RKXbqWjWj7oFnfLboEiMeP7HgGYkRBDM=";
|
||||
}
|
||||
|
||||
+3
-3
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "tg_owt";
|
||||
version = "0-unstable-2023-12-21";
|
||||
version = "0-unstable-2024-06-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "desktop-app";
|
||||
repo = "tg_owt";
|
||||
rev = "afd9d5d31798d3eacf9ed6c30601e91d0f1e4d60";
|
||||
sha256 = "sha256-/1cghoxmm+6uFEUgCjh1Xhb0CTnd1XAq1M21FruDRek=";
|
||||
rev = "c9cc4390ab951f2cbc103ff783a11f398b27660b";
|
||||
sha256 = "sha256-FfWmSYaeryTDbsGJT3R7YK1oiyJcrR7YKKBOF+9PmpY=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
|
||||
appimageTools.wrapType2 rec {
|
||||
pname = "tutanota-desktop";
|
||||
version = "229.240517.0";
|
||||
version = "230.240603.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/tutao/tutanota/releases/download/tutanota-desktop-release-${version}/tutanota-desktop-linux.AppImage";
|
||||
hash = "sha256-NVr9OOq5YdqvCkrtjTRIfWWquxJ/sN8MhSlw3RvZVFs=";
|
||||
hash = "sha256-pgRqlaUbEDEAd4frooSloeiNEX02VESPhqIzRIuQshI=";
|
||||
};
|
||||
|
||||
extraPkgs = pkgs: [ pkgs.libsecret ];
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
, nodejs
|
||||
, yarn
|
||||
, yarn2nix-moretea
|
||||
, v8
|
||||
, cacert
|
||||
, redis
|
||||
}:
|
||||
@@ -83,7 +82,7 @@ let
|
||||
};
|
||||
mini_racer = attrs: {
|
||||
buildFlags = [
|
||||
"--with-v8-dir=\"${v8}\""
|
||||
"--with-v8-dir=\"${nodejs.libv8}\""
|
||||
];
|
||||
dontBuild = false;
|
||||
postPatch = ''
|
||||
|
||||
@@ -46,10 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
patches = [
|
||||
# fix build with openssl 3.0
|
||||
(fetchurl {
|
||||
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/net-p2p/transmission/files/transmission-3.00-openssl-3.patch";
|
||||
hash = "sha256-peVrkGck8AfbC9uYNfv1CIu1alIewpca7A6kRXjVlVs=";
|
||||
})
|
||||
./transmission-3.00-openssl-3.patch
|
||||
];
|
||||
|
||||
outputs = [ "out" "apparmor" ];
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 6ee128b95bacaff20746538dc97c2b8e2b9fcc29 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppym@gentoo.org>
|
||||
Date: Sun, 15 May 2022 10:54:38 -0400
|
||||
Subject: [PATCH] openssl: load "legacy" provider for RC4
|
||||
|
||||
---
|
||||
libtransmission/crypto-utils-openssl.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/libtransmission/crypto-utils-openssl.c b/libtransmission/crypto-utils-openssl.c
|
||||
index 45fd71913..14d680654 100644
|
||||
--- a/libtransmission/crypto-utils-openssl.c
|
||||
+++ b/libtransmission/crypto-utils-openssl.c
|
||||
@@ -20,6 +20,9 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/x509.h>
|
||||
+#if OPENSSL_VERSION_MAJOR >= 3
|
||||
+#include <openssl/provider.h>
|
||||
+#endif
|
||||
|
||||
#include "transmission.h"
|
||||
#include "crypto-utils.h"
|
||||
@@ -184,6 +187,10 @@ static void openssl_evp_cipher_context_free(EVP_CIPHER_CTX* handle)
|
||||
|
||||
tr_rc4_ctx_t tr_rc4_new(void)
|
||||
{
|
||||
+#if OPENSSL_VERSION_MAJOR >= 3
|
||||
+ OSSL_PROVIDER_load(NULL, "default");
|
||||
+ OSSL_PROVIDER_load(NULL, "legacy");
|
||||
+#endif
|
||||
EVP_CIPHER_CTX* handle = EVP_CIPHER_CTX_new();
|
||||
|
||||
if (check_result(EVP_CipherInit_ex(handle, EVP_rc4(), NULL, NULL, NULL, -1)))
|
||||
--
|
||||
2.35.1
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user