Merge master into staging-next
This commit is contained in:
@@ -20,6 +20,8 @@
|
||||
|
||||
- [Flood](https://flood.js.org/), a beautiful WebUI for various torrent clients. Available as [services.flood](options.html#opt-services.flood).
|
||||
|
||||
- [Eintopf](https://eintopf.info), community event and calendar web application. Available as [services.eintopf](options.html#opt-services.eintopf).
|
||||
|
||||
- [Renovate](https://github.com/renovatebot/renovate), a dependency updating tool for various git forges and language ecosystems. Available as [services.renovate](#opt-services.renovate.enable).
|
||||
|
||||
- [wg-access-server](https://github.com/freifunkMUC/wg-access-server/), an all-in-one WireGuard VPN solution with a web ui for connecting devices. Available at [services.wg-access-server](#opt-services.wg-access-server.enable).
|
||||
|
||||
@@ -1370,6 +1370,7 @@
|
||||
./services/web-apps/documize.nix
|
||||
./services/web-apps/dokuwiki.nix
|
||||
./services/web-apps/dolibarr.nix
|
||||
./services/web-apps/eintopf.nix
|
||||
./services/web-apps/engelsystem.nix
|
||||
./services/web-apps/ethercalc.nix
|
||||
./services/web-apps/filesender.nix
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.eintopf;
|
||||
|
||||
in {
|
||||
options.services.eintopf = {
|
||||
|
||||
enable = mkEnableOption "Eintopf community event calendar web app";
|
||||
|
||||
settings = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = { };
|
||||
description = ''
|
||||
Settings to configure web service. See
|
||||
<https://codeberg.org/Klasse-Methode/eintopf/src/branch/main/DEPLOYMENT.md>
|
||||
for available options.
|
||||
'';
|
||||
example = literalExpression ''
|
||||
{
|
||||
EINTOPF_ADDR = ":1234";
|
||||
EINTOPF_ADMIN_EMAIL = "admin@example.org";
|
||||
EINTOPF_TIMEZONE = "Europe/Berlin";
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
secrets = lib.mkOption {
|
||||
type = with types; listOf path;
|
||||
description = ''
|
||||
A list of files containing the various secrets. Should be in the
|
||||
format expected by systemd's `EnvironmentFile` directory.
|
||||
'';
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
systemd.services.eintopf = {
|
||||
description = "Community event calendar web app";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
environment = cfg.settings;
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.eintopf}/bin/eintopf";
|
||||
WorkingDirectory = "/var/lib/eintopf";
|
||||
StateDirectory = "eintopf" ;
|
||||
EnvironmentFile = [ cfg.secrets ];
|
||||
|
||||
# hardening
|
||||
AmbientCapabilities = "";
|
||||
CapabilityBoundingSet = "" ;
|
||||
DevicePolicy = "closed";
|
||||
DynamicUser = true;
|
||||
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 = "invisible";
|
||||
ProtectSystem = "strict";
|
||||
RemoveIPC = true;
|
||||
RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ];
|
||||
RestrictNamespaces = true;
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = [ "@system-service" "~@privileged" ];
|
||||
UMask = "0077";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ onny ];
|
||||
|
||||
}
|
||||
@@ -280,6 +280,7 @@ in {
|
||||
ecryptfs = handleTest ./ecryptfs.nix {};
|
||||
fscrypt = handleTest ./fscrypt.nix {};
|
||||
fastnetmon-advanced = runTest ./fastnetmon-advanced.nix;
|
||||
eintopf = handleTest ./eintopf.nix {};
|
||||
ejabberd = handleTest ./xmpp/ejabberd.nix {};
|
||||
elk = handleTestOn ["x86_64-linux"] ./elk.nix {};
|
||||
emacs-daemon = handleTest ./emacs-daemon.nix {};
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
import ./make-test-python.nix ({ pkgs, ...} : {
|
||||
name = "eintopf";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ onny ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
eintopf = { config, pkgs, ... }: {
|
||||
services.eintopf = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
eintopf.start
|
||||
eintopf.wait_for_unit("eintopf.service")
|
||||
eintopf.wait_for_open_port(3333)
|
||||
eintopf.succeed("curl -sSfL http://eintopf:3333 | grep 'Es sind keine Veranstaltungen eingetragen'")
|
||||
'';
|
||||
})
|
||||
@@ -38,14 +38,14 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mame";
|
||||
version = "0.266";
|
||||
version = "0.267";
|
||||
srcVersion = builtins.replaceStrings [ "." ] [ "" ] version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mamedev";
|
||||
repo = "mame";
|
||||
rev = "mame${srcVersion}";
|
||||
hash = "sha256-nggpDKcZURwC4SQHiRnF7lJNaAWSniVHvsF/IjAPd9E=";
|
||||
hash = "sha256-H3idND2cC0KSGa9EIEVN2diticfM9r6FwRqQYkWmEM0=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "tools" ];
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{ lib, appimageTools, fetchurl }:
|
||||
|
||||
let
|
||||
version = "2.0.0";
|
||||
version = "2.0.4";
|
||||
pname = "lunatask";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://lunatask.app/download/Lunatask-${version}.AppImage";
|
||||
sha256 = "sha256-rRE7VE6Fugqbbv/fTIZGuWDQmTP1tRDiKrb6VcpsBjk=";
|
||||
sha256 = "sha256-U+yelFSulAhgsn5xt45mxC7qGpQwmb3m3lt9nEW6MHU=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
||||
@@ -2,20 +2,15 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yices";
|
||||
# We never want X.Y.${odd} versions as they are moving development tags.
|
||||
version = "2.6.4";
|
||||
version = "2.6.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "SRI-CSL";
|
||||
repo = "yices2";
|
||||
rev = "Yices-${version}";
|
||||
sha256 = "sha256-qdxh86CkKdm65oHcRgaafTG9GUOoIgTDjeWmRofIpNE=";
|
||||
hash = "sha256-/sKyHkFW5I5kojNIRPEKojzTvfRZiyVIN5VlBIbAV7k=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# musl has no ldconfig, create symlinks explicitly
|
||||
./linux-no-ldconfig.patch
|
||||
];
|
||||
postPatch = "patchShebangs tests/regress/check.sh";
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
--- a/Makefile.build
|
||||
+++ b/Makefile.build
|
||||
@@ -474,8 +474,9 @@ install-darwin: install-default
|
||||
install-solaris: install-default
|
||||
$(LDCONFIG) -n $(DESTDIR)$(libdir) && (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so)
|
||||
|
||||
+# avoid ldconfig as it's not present on musl
|
||||
install-linux install-unix: install-default
|
||||
- $(LDCONFIG) -n $(DESTDIR)$(libdir) && (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so)
|
||||
+ (cd $(DESTDIR)$(libdir) && $(LN_S) -f libyices.so.$(YICES_VERSION) libyices.so.$(MAJOR).$(MINOR) && $(LN_S) -f libyices.so.$(MAJOR).$(MINOR) libyices.so)
|
||||
|
||||
# on FreeBSD: the library file is libyices.so.X.Y and ldconfig does not take -n
|
||||
# TODO: fix this. We must also create a symbolic link: libyices.so.X in libdir
|
||||
@@ -0,0 +1,64 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchYarnDeps
|
||||
, fixup-yarn-lock
|
||||
, yarn
|
||||
, fetchFromGitea
|
||||
, src
|
||||
, version
|
||||
, nodejs
|
||||
, eintopf
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "eintopf";
|
||||
inherit version src;
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/backstage";
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/yarn.lock";
|
||||
hash = "sha256-Z/Pkk/qCWwr99g11DjEgnisPfxOhfD8+OCn6otxJtfI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
fixup-yarn-lock
|
||||
nodejs
|
||||
yarn
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
yarn config --offline set yarn-offline-mirror $offlineCache
|
||||
fixup-yarn-lock yarn.lock
|
||||
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
|
||||
patchShebangs node_modules
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
yarn --offline build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
yarn --offline --production install
|
||||
|
||||
mkdir -p "$out"
|
||||
cp -r . $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
inherit (eintopf.meta) homepage description license maintainers;
|
||||
};
|
||||
})
|
||||
@@ -0,0 +1,57 @@
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitea
|
||||
, callPackage
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.13.16";
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "Klasse-Methode";
|
||||
repo = "eintopf";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-ex5bpO60ousJcgZGdviqWrCyihycW+JT+EYFvdooUDw=";
|
||||
};
|
||||
frontend = callPackage ./frontend.nix { inherit src version; };
|
||||
in
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "eintopf";
|
||||
inherit version src;
|
||||
|
||||
vendorHash = "sha256-dBxI6cUGc16lg89x8b+hSLcv5y/MLf6vDIvqdMBUz3I=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X main.version=${version}"
|
||||
"-X main.revision=${src.rev}"
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
cp -R ${frontend}/. backstage/
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# Disable test, requires running Docker daemon
|
||||
rm cmd/eintopf/main_test.go
|
||||
rm service/email/email_test.go
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) eintopf;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A calendar for Stuttgart, showing events, groups and places";
|
||||
homepage = "https://codeberg.org/Klasse-Methode/eintopf";
|
||||
# License is going to change back to AGPL in the next release
|
||||
# https://codeberg.org/Klasse-Methode/eintopf/issues/351#issuecomment-2076870
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ onny ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
||||
+4
-4
@@ -9,14 +9,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "marwaita-peppermint";
|
||||
version = "17.0";
|
||||
pname = "marwaita-red";
|
||||
version = "20.2-unstable-2024-07-01";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "darkomarko42";
|
||||
repo = pname;
|
||||
rev = "247f9c539d6eef8ae3a5f59beed42a40b1f10434";
|
||||
hash = "sha256-uT7KnpIdxypUqKhXOao3Bz3vJecJKK+GjcAp9biNyHc=";
|
||||
rev = "79c65e37774395f7fa51ed1416874aa78f768d54";
|
||||
hash = "sha256-GmVen97oJel4KVm+IwV8GTemIyHnQ4XjvGclUjdGDvw=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@@ -7,6 +7,7 @@
|
||||
, libarchive
|
||||
, libpcap
|
||||
, libsForQt5
|
||||
, qt6
|
||||
, libslirp
|
||||
, pkg-config
|
||||
, stdenv
|
||||
@@ -16,7 +17,8 @@
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (libsForQt5)
|
||||
qt = if stdenv.isLinux then libsForQt5 else qt6;
|
||||
inherit (qt)
|
||||
qtbase
|
||||
qtmultimedia
|
||||
wrapQtAppsHook;
|
||||
@@ -46,16 +48,26 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
libGL
|
||||
qtbase
|
||||
qtmultimedia
|
||||
wayland
|
||||
zstd
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
wayland
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
qtWrapperArgs = [
|
||||
qtWrapperArgs = lib.optionals stdenv.isLinux [
|
||||
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
"--prefix DYLD_LIBRARY_PATH : ${lib.makeLibraryPath [ libpcap ]}"
|
||||
];
|
||||
|
||||
installPhase = lib.optionalString stdenv.isDarwin ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/Applications
|
||||
cp -r melonDS.app $out/Applications/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater { };
|
||||
};
|
||||
@@ -88,6 +100,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
benley
|
||||
shamilton
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
})
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "omnictl";
|
||||
version = "0.38.2";
|
||||
version = "0.38.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "siderolabs";
|
||||
repo = "omni";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Qm5Q+yZq6m/3xAAMdz57fXC13lLDMu5GY1xs5vHAFoo=";
|
||||
hash = "sha256-8AqXF7bBgn8br3mooh1BHvN2wWQnmpvVeBHbbJ5shGA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-BF/F/siVIYJT4abOlwQjpnQpmNFdOo566VGPIo08PO0=";
|
||||
|
||||
@@ -132,6 +132,8 @@ let
|
||||
|
||||
generatedConfig = luaLib.generateLuarocksConfig {
|
||||
externalDeps = lib.unique (self.externalDeps ++ externalDepsGenerated);
|
||||
local_cache = "";
|
||||
|
||||
# Filter out the lua derivation itself from the Lua module dependency
|
||||
# closure, as it doesn't have a rock tree :)
|
||||
# luaLib.hasLuaModule
|
||||
|
||||
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "freetds";
|
||||
version = "1.4.17";
|
||||
version = "1.4.19";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
|
||||
hash = "sha256-P3CoRV6zopAtQDmtkbk0o0jKHu4jpKkqPeCCSQWn0aI=";
|
||||
hash = "sha256-kK65g8NLMT+dxJTaAFviJNToS9EZ/rKlsey3OpQon5U=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "simdjson";
|
||||
version = "3.9.4";
|
||||
version = "3.9.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "simdjson";
|
||||
repo = "simdjson";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-iTlIdLNOr1rRBnCwnI34e2RLL18Fmc/kRSMdZcOLp98=";
|
||||
sha256 = "sha256-OCEHfjyWLxjThe1nrXIexMa4rI7RWt+3qnQErxHc7CU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -124,7 +124,6 @@ rec {
|
||||
(lib.filter (lib.isDerivation) externalDeps);
|
||||
|
||||
generatedConfig = ({
|
||||
local_cache = "";
|
||||
|
||||
# To prevent collisions when creating environments, we install the rock
|
||||
# files into per-package subdirectories
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "qcelemental";
|
||||
version = "0.27.1";
|
||||
version = "0.28.0";
|
||||
|
||||
pyproject = true;
|
||||
|
||||
@@ -22,7 +22,7 @@ buildPythonPackage rec {
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-dlcfIUKAg6yc4S3RXVJ1sKM29E1ZvHY82kjx1CM8/08=";
|
||||
hash = "sha256-2pb924jBcB+BKyU2mmoWnTXy1URsN8YuhgSMsPGxaKI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ poetry-core ];
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "typos";
|
||||
version = "1.22.9";
|
||||
version = "1.23.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crate-ci";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-FD9Sn1NwiahrYv99avwC2wtoTlwnqiuE7dCNPsD0+y4=";
|
||||
hash = "sha256-46WXCImBqWmU82zIgulVyoB2/aGWXYunWDdQDsxMlOs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-NmF2pBru3iCOfl5q3Td9HBxi9VGmilUK3q3JckUeu/o=";
|
||||
cargoHash = "sha256-29F4n9yuyGxQSZY4tJ8KaHXKLmpCPuUKDwOoyWBfmgk=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Source code spell checker";
|
||||
|
||||
@@ -59,6 +59,7 @@ let
|
||||
license
|
||||
homepage
|
||||
description
|
||||
mainProgram
|
||||
longDescription
|
||||
;
|
||||
platforms = [
|
||||
|
||||
@@ -19,14 +19,14 @@ let
|
||||
in
|
||||
python.pkgs.buildPythonApplication rec {
|
||||
pname = "esphome";
|
||||
version = "2024.6.4";
|
||||
version = "2024.6.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-Wdq6sduIjvvLZAumYGmlm3QDaSKqmg/rssQNjdxQuaA=";
|
||||
hash = "sha256-/EGj6kEgUhQefdFz/IllKWeVGLhC3STiOOsy3Pq4pIM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python.pkgs; [
|
||||
|
||||
@@ -863,6 +863,7 @@ mapAliases ({
|
||||
markdown-pp = throw "markdown-pp was removed from nixpkgs, because the upstream archived it on 2021-09-02"; # Added 2023-07-22
|
||||
markmind = throw "markmind has been removed from nixpkgs, because it depended on an old version of electron"; # Added 2023-09-12
|
||||
marwaita-manjaro = lib.warn "marwaita-manjaro has been renamed to marwaita-darkcyan" marwaita-darkcyan; # Added 2024-07-01
|
||||
marwaita-peppermint = lib.warn "marwaita-peppermint has been renamed to marwaita-red" marwaita-red; # Added 2024-07-01
|
||||
matrique = spectral; # Added 2020-01-27
|
||||
matrixcli = throw "'matrixcli' has been removed due to being unmaintained and broken functionality. Recommend 'matrix-commander' as an alternative"; # Added 2024-03-09
|
||||
matrix-recorder = throw "matrix-recorder has been removed due to being unmaintained"; # Added 2023-05-21
|
||||
|
||||
@@ -28605,8 +28605,6 @@ with pkgs;
|
||||
inherit (kdePackages) breeze-icons;
|
||||
};
|
||||
|
||||
marwaita-peppermint = callPackage ../data/themes/marwaita-peppermint { };
|
||||
|
||||
marwaita-pop_os = callPackage ../data/themes/marwaita-pop_os { };
|
||||
|
||||
marwaita-ubuntu = callPackage ../data/themes/marwaita-ubuntu { };
|
||||
|
||||
Reference in New Issue
Block a user