Merge master into staging-next
This commit is contained in:
commit
7e5a4795a7
|
@ -46,7 +46,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- [Cloudlog](https://www.magicbug.co.uk/cloudlog/), a web-based Amateur Radio logging application. Available as [services.cloudlog](#opt-services.cloudlog.enable).
|
||||
|
||||
- [Deepin Desktop Environment](https://github.com/linuxdeepin/dde), an elegant, easy to use and reliable desktop environment. Availabe as [services.xserver.desktopManager.deepin](options.html#opt-services.xserver.desktopManager.deepin).
|
||||
|
||||
- [fzf](https://github.com/junegunn/fzf), a command line fuzzyfinder. Available as [programs.fzf](#opt-programs.fzf.fuzzyCompletion).
|
||||
|
||||
- [readarr](https://github.com/Readarr/Readarr), Book Manager and Automation (Sonarr for Ebooks). Available as [services.readarr](options.html#opt-services.readarr.enable).
|
||||
|
||||
- [gemstash](https://github.com/rubygems/gemstash), a RubyGems.org cache and private gem server. Available as [services.gemstash](#opt-services.gemstash.enable).
|
||||
|
|
|
@ -413,6 +413,9 @@
|
|||
./services/desktops/bamf.nix
|
||||
./services/desktops/blueman.nix
|
||||
./services/desktops/cpupower-gui.nix
|
||||
./services/desktops/deepin/dde-api.nix
|
||||
./services/desktops/deepin/app-services.nix
|
||||
./services/desktops/deepin/dde-daemon.nix
|
||||
./services/desktops/dleyna-renderer.nix
|
||||
./services/desktops/dleyna-server.nix
|
||||
./services/desktops/espanso.nix
|
||||
|
|
36
nixos/modules/services/desktops/deepin/app-services.nix
Normal file
36
nixos/modules/services/desktops/deepin/app-services.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = teams.deepin.members;
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.app-services = {
|
||||
|
||||
enable = mkEnableOption (lib.mdDoc "Service collection of DDE applications, including dconfig-center");
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.services.deepin.app-services.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.deepin.dde-app-services ];
|
||||
|
||||
services.dbus.packages = [ pkgs.deepin.dde-app-services ];
|
||||
|
||||
environment.pathsToLink = [ "/share/dsg" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
50
nixos/modules/services/desktops/deepin/dde-api.nix
Normal file
50
nixos/modules/services/desktops/deepin/dde-api.nix
Normal file
|
@ -0,0 +1,50 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = teams.deepin.members;
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.dde-api = {
|
||||
|
||||
enable = mkEnableOption (lib.mdDoc ''
|
||||
Provides some dbus interfaces that is used for screen zone detecting,
|
||||
thumbnail generating, and sound playing in Deepin Desktop Enviroment.
|
||||
'');
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.services.deepin.dde-api.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.deepin.dde-api ];
|
||||
|
||||
services.dbus.packages = [ pkgs.deepin.dde-api ];
|
||||
|
||||
systemd.packages = [ pkgs.deepin.dde-api ];
|
||||
|
||||
environment.pathsToLink = [ "/lib/deepin-api" ];
|
||||
|
||||
users.groups.deepin-sound-player = { };
|
||||
users.users.deepin-sound-player = {
|
||||
description = "Deepin sound player";
|
||||
home = "/var/lib/deepin-sound-player";
|
||||
createHome = true;
|
||||
group = "deepin-sound-player";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
40
nixos/modules/services/desktops/deepin/dde-daemon.nix
Normal file
40
nixos/modules/services/desktops/deepin/dde-daemon.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
|
||||
meta = {
|
||||
maintainers = teams.deepin.members;
|
||||
};
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.deepin.dde-daemon = {
|
||||
|
||||
enable = mkEnableOption (lib.mdDoc "Daemon for handling the deepin session settings");
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf config.services.deepin.dde-daemon.enable {
|
||||
|
||||
environment.systemPackages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
services.dbus.packages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
services.udev.packages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
systemd.packages = [ pkgs.deepin.dde-daemon ];
|
||||
|
||||
environment.pathsToLink = [ "/lib/deepin-daemon" ];
|
||||
|
||||
};
|
||||
|
||||
}
|
208
nixos/modules/services/x11/desktop-managers/deepin.nix
Normal file
208
nixos/modules/services/x11/desktop-managers/deepin.nix
Normal file
|
@ -0,0 +1,208 @@
|
|||
{ config, lib, pkgs, utils, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
xcfg = config.services.xserver;
|
||||
cfg = xcfg.desktopManager.deepin;
|
||||
|
||||
nixos-gsettings-overrides = pkgs.deepin.dde-gsettings-schemas.override {
|
||||
extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages;
|
||||
extraGSettingsOverrides = cfg.extraGSettingsOverrides;
|
||||
};
|
||||
in
|
||||
{
|
||||
options = {
|
||||
|
||||
services.xserver.desktopManager.deepin = {
|
||||
enable = mkEnableOption (lib.mdDoc "Enable Deepin desktop manager");
|
||||
extraGSettingsOverrides = mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = lib.mdDoc "Additional gsettings overrides.";
|
||||
};
|
||||
extraGSettingsOverridePackages = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.path;
|
||||
description = lib.mdDoc "List of packages for which gsettings are overridden.";
|
||||
};
|
||||
};
|
||||
|
||||
environment.deepin.excludePackages = mkOption {
|
||||
default = [ ];
|
||||
type = types.listOf types.package;
|
||||
description = lib.mdDoc "List of default packages to exclude from the configuration";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable
|
||||
{
|
||||
services.xserver.displayManager.sessionPackages = [ pkgs.deepin.startdde ];
|
||||
services.xserver.displayManager.defaultSession = mkDefault "deepin";
|
||||
|
||||
# Update the DBus activation environment after launching the desktop manager.
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd --all
|
||||
'';
|
||||
|
||||
hardware.bluetooth.enable = mkDefault true;
|
||||
hardware.pulseaudio.enable = mkDefault true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
services.deepin.dde-daemon.enable = mkForce true;
|
||||
services.deepin.dde-api.enable = mkForce true;
|
||||
services.deepin.app-services.enable = mkForce true;
|
||||
|
||||
services.colord.enable = mkDefault true;
|
||||
services.accounts-daemon.enable = mkDefault true;
|
||||
services.gvfs.enable = mkDefault true;
|
||||
services.gnome.glib-networking.enable = mkDefault true;
|
||||
services.gnome.gnome-keyring.enable = mkDefault true;
|
||||
services.bamf.enable = mkDefault true;
|
||||
|
||||
services.xserver.libinput.enable = mkDefault true;
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = mkDefault config.powerManagement.enable;
|
||||
networking.networkmanager.enable = mkDefault true;
|
||||
programs.dconf.enable = mkDefault true;
|
||||
|
||||
fonts.fonts = with pkgs; [ noto-fonts ];
|
||||
xdg.mime.enable = true;
|
||||
xdg.menus.enable = true;
|
||||
xdg.icons.enable = true;
|
||||
xdg.portal.enable = mkDefault true;
|
||||
xdg.portal.extraPortals = mkDefault [
|
||||
(pkgs.xdg-desktop-portal-gtk.override {
|
||||
buildPortalsInGnome = false;
|
||||
})
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||
DDE_POLKIT_AGENT_PLUGINS_DIRS = [ "${pkgs.deepin.dpa-ext-gnomekeyring}/lib/polkit-1-dde/plugins" ];
|
||||
};
|
||||
|
||||
environment.pathsToLink = [
|
||||
"/lib/dde-dock/plugins"
|
||||
"/lib/dde-control-center"
|
||||
"/lib/dde-session-shell"
|
||||
"/lib/dde-file-manager"
|
||||
"/share/backgrounds"
|
||||
"/share/wallpapers"
|
||||
];
|
||||
|
||||
environment.etc = {
|
||||
"distribution.info".text = ''
|
||||
[Distribution]
|
||||
Name=NixOS
|
||||
WebsiteName=www.nixos.org
|
||||
Website=https://www.nixos.org
|
||||
Logo=${pkgs.nixos-icons}/share/icons/hicolor/96x96/apps/nix-snowflake.png
|
||||
LogoLight=${pkgs.nixos-icons}/share/icons/hicolor/32x32/apps/nix-snowflake.png
|
||||
LogoTransparent=${pkgs.deepin.deepin-desktop-base}/share/pixmaps/distribution_logo_transparent.svg
|
||||
'';
|
||||
"deepin-installer.conf".text = ''
|
||||
system_info_vendor_name="Copyright (c) 2003-2023 NixOS contributors"
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/AccountsService 0775 root root - -"
|
||||
"C /var/lib/AccountsService/icons 0775 root root - ${pkgs.deepin.dde-account-faces}/var/lib/AccountsService/icons"
|
||||
];
|
||||
|
||||
security.pam.services.dde-lock.text = ''
|
||||
# original at {dde-session-shell}/etc/pam.d/dde-lock
|
||||
auth substack login
|
||||
account include login
|
||||
password substack login
|
||||
session include login
|
||||
'';
|
||||
|
||||
environment.systemPackages = with pkgs; with deepin;
|
||||
let
|
||||
requiredPackages = [
|
||||
pciutils # for dtkcore/startdde
|
||||
xdotool # for dde-daemon
|
||||
glib # for gsettings program / gdbus
|
||||
gtk3 # for gtk-launch program
|
||||
xdg-user-dirs # Update user dirs
|
||||
util-linux # runuser
|
||||
polkit_gnome
|
||||
librsvg # dde-api use rsvg-convert
|
||||
lshw # for dtkcore
|
||||
libsForQt5.kde-gtk-config # deepin-api/gtk-thumbnailer need
|
||||
libsForQt5.kglobalaccel
|
||||
xsettingsd # lightdm-deepin-greeter
|
||||
qt5platform-plugins
|
||||
deepin-pw-check
|
||||
deepin-turbo
|
||||
|
||||
dde-account-faces
|
||||
deepin-icon-theme
|
||||
deepin-sound-theme
|
||||
deepin-gtk-theme
|
||||
deepin-wallpapers
|
||||
|
||||
startdde
|
||||
dde-dock
|
||||
dde-launcher
|
||||
dde-session-ui
|
||||
dde-session-shell
|
||||
dde-file-manager
|
||||
dde-control-center
|
||||
dde-network-core
|
||||
dde-clipboard
|
||||
dde-calendar
|
||||
dde-polkit-agent
|
||||
dpa-ext-gnomekeyring
|
||||
deepin-desktop-schemas
|
||||
deepin-terminal
|
||||
dde-kwin
|
||||
deepin-kwin
|
||||
];
|
||||
optionalPackages = [
|
||||
onboard # dde-dock plugin
|
||||
deepin-camera
|
||||
deepin-calculator
|
||||
deepin-compressor
|
||||
deepin-editor
|
||||
deepin-picker
|
||||
deepin-draw
|
||||
deepin-album
|
||||
deepin-image-viewer
|
||||
deepin-music
|
||||
deepin-movie-reborn
|
||||
deepin-system-monitor
|
||||
deepin-screen-recorder
|
||||
deepin-shortcut-viewer
|
||||
];
|
||||
in
|
||||
requiredPackages
|
||||
++ utils.removePackagesByName optionalPackages config.environment.deepin.excludePackages;
|
||||
|
||||
services.dbus.packages = with pkgs.deepin; [
|
||||
dde-dock
|
||||
dde-launcher
|
||||
dde-session-ui
|
||||
dde-session-shell
|
||||
dde-file-manager
|
||||
dde-control-center
|
||||
dde-calendar
|
||||
dde-clipboard
|
||||
dde-kwin
|
||||
deepin-kwin
|
||||
deepin-pw-check
|
||||
];
|
||||
|
||||
systemd.packages = with pkgs.deepin; [
|
||||
dde-launcher
|
||||
dde-file-manager
|
||||
dde-calendar
|
||||
dde-clipboard
|
||||
deepin-kwin
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -21,7 +21,7 @@ in
|
|||
./none.nix ./xterm.nix ./phosh.nix ./xfce.nix ./plasma5.nix ./lumina.nix
|
||||
./lxqt.nix ./enlightenment.nix ./gnome.nix ./retroarch.nix ./kodi.nix
|
||||
./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
|
||||
./cinnamon.nix ./budgie.nix
|
||||
./cinnamon.nix ./budgie.nix ./deepin.nix
|
||||
];
|
||||
|
||||
options = {
|
||||
|
|
|
@ -171,6 +171,7 @@ in {
|
|||
cups-pdf = handleTest ./cups-pdf.nix {};
|
||||
custom-ca = handleTest ./custom-ca.nix {};
|
||||
croc = handleTest ./croc.nix {};
|
||||
deepin = handleTest ./deepin.nix {};
|
||||
deluge = handleTest ./deluge.nix {};
|
||||
dendrite = handleTest ./matrix/dendrite.nix {};
|
||||
dex-oidc = handleTest ./dex-oidc.nix {};
|
||||
|
|
57
nixos/tests/deepin.nix
Normal file
57
nixos/tests/deepin.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
name = "deepin";
|
||||
|
||||
meta = with lib; {
|
||||
maintainers = teams.deepin.members;
|
||||
};
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
];
|
||||
|
||||
services.xserver.enable = true;
|
||||
|
||||
services.xserver.displayManager = {
|
||||
lightdm.enable = true;
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.desktopManager.deepin.enable = true;
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }:
|
||||
let
|
||||
user = nodes.machine.users.users.alice;
|
||||
in
|
||||
''
|
||||
with subtest("Wait for login"):
|
||||
machine.wait_for_x()
|
||||
machine.wait_for_file("${user.home}/.Xauthority")
|
||||
machine.succeed("xauth merge ${user.home}/.Xauthority")
|
||||
|
||||
with subtest("Check that logging in has given the user ownership of devices"):
|
||||
machine.succeed("getfacl -p /dev/snd/timer | grep -q ${user.name}")
|
||||
|
||||
with subtest("Check if DDE wm chooser actually start"):
|
||||
machine.wait_until_succeeds("pgrep -f dde-wm-chooser")
|
||||
machine.wait_for_window("dde-wm-chooser")
|
||||
machine.execute("pkill dde-wm-chooser")
|
||||
|
||||
|
||||
with subtest("Check if Deepin session components actually start"):
|
||||
machine.wait_until_succeeds("pgrep -f dde-session-daemon")
|
||||
machine.wait_for_window("dde-session-daemon")
|
||||
machine.wait_until_succeeds("pgrep -f dde-desktop")
|
||||
machine.wait_for_window("dde-desktop")
|
||||
|
||||
with subtest("Open deepin-terminal"):
|
||||
machine.succeed("su - ${user.name} -c 'DISPLAY=:0 deepin-terminal >&2 &'")
|
||||
machine.wait_for_window("deepin-terminal")
|
||||
machine.sleep(20)
|
||||
machine.screenshot("screen")
|
||||
'';
|
||||
})
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ft2-clone";
|
||||
version = "1.66";
|
||||
version = "1.67";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "8bitbubsy";
|
||||
repo = "ft2-clone";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-glLgjZFWvz/bJe9R8KTDu4+778dueC9tw3nVKF3xcps=";
|
||||
sha256 = "sha256-v/yGHWd/hhE2jDdAQhyQbZOuHSS0FSG4WlVe8Oc6tMc=";
|
||||
};
|
||||
|
||||
# Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mympd";
|
||||
version = "10.3.0";
|
||||
version = "10.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jcorporation";
|
||||
repo = "myMPD";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-iO/Ogh3G67GYoputrxAiA1i0fAon2NDrgPCMYxxn/o4=";
|
||||
sha256 = "sha256-KQf+Szr/AunL/roCtRPiC771P2A3POXPFlXUhbNej6g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -23,13 +23,13 @@
|
|||
|
||||
stdenv.mkDerivation rec{
|
||||
pname = "corectrl";
|
||||
version = "1.3.3";
|
||||
version = "1.3.5";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "corectrl";
|
||||
repo = "corectrl";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-WgtLDAjywHd9++7DvPfpfEXGbBQWx8kQxseIadho1YE=";
|
||||
sha256 = "sha256-HETD2+acxJf30iC6UwRXD/onFYo3ki4RwAAVs4NbSAw=";
|
||||
};
|
||||
patches = [
|
||||
./polkit-dir.patch
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "cloudflared";
|
||||
version = "2023.4.1";
|
||||
version = "2023.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudflare";
|
||||
repo = "cloudflared";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-PG2+rEn3X1EdMUDbfrtfEjYclErMGAGTcP2g7Jz+s1A=";
|
||||
hash = "sha256-oHiaRdTEiTcGQkYoGw8TT0KZMFR8Rkce/4+cxSXAHMM=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "civo";
|
||||
version = "1.0.49";
|
||||
version = "1.0.50";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "civo";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-j9fnOM7OLnu42LM/LaO/Sw9TJtPFHjAC+QzqywbxKKo=";
|
||||
sha256 = "sha256-w1Ozj9zmeGzuokX0LgHab5TI0WcdtY29n7w4LfOWthI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-7I4V4DVdHSvr/1ic/YT+Vttreg0tFasRNT/aFe4/0OY=";
|
||||
|
|
|
@ -182,11 +182,11 @@
|
|||
"vendorHash": "sha256-jOscYbwZ8m4smGiAy2vNhPMTAUnINkpuVRQ8E6LpWVw="
|
||||
},
|
||||
"buildkite": {
|
||||
"hash": "sha256-/LTUDnE5XB8Gwbs+CroJW+3pM7opNSVQFWvRQWQjFqc=",
|
||||
"hash": "sha256-nwGnt/+pSR1rGiXZ1RJIpekT+i0k4ZmMN27VpYCDVU0=",
|
||||
"homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
|
||||
"owner": "buildkite",
|
||||
"repo": "terraform-provider-buildkite",
|
||||
"rev": "v0.16.0",
|
||||
"rev": "v0.17.0",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-ZXjmR1maiiLeWipXGOAGfLEuot9TsrzAX4EPRNQ5Gbo="
|
||||
},
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
let
|
||||
pname = "rambox";
|
||||
version = "2.1.2";
|
||||
version = "2.1.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ramboxapp/download/releases/download/v${version}/Rambox-${version}-linux-x64.AppImage";
|
||||
sha256 = "sha256-FeW11prM9wTYA6cELF/qcITbTqJ+B+VVvzcw2W6i/CY=";
|
||||
sha256 = "sha256-wvjCr1U+/1/GtebMNWJjizzegqZ+wWXUrmOshYtMq6o=";
|
||||
};
|
||||
|
||||
desktopItem = (makeDesktopItem {
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
, qtxmlpatterns
|
||||
, qtwebengine
|
||||
, qca-qt5
|
||||
, qtnetworkauth
|
||||
# KDE
|
||||
, ki18n
|
||||
, kxmlgui
|
||||
|
@ -28,13 +29,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "kbibtex";
|
||||
version = "0.9.3.2";
|
||||
version = "0.10.0";
|
||||
|
||||
src = let
|
||||
majorMinorPatch = lib.concatStringsSep "." (lib.take 3 (lib.splitVersion version));
|
||||
in fetchurl {
|
||||
url = "mirror://kde/stable/KBibTeX/${majorMinorPatch}/kbibtex-${version}.tar.xz";
|
||||
hash = "sha256-BzPCTKMiMnzz2S+jbk4ZbEudyJX5EaTDVY59te/AxFc=";
|
||||
hash = "sha256-sSeyQKfNd8U4YZ3IgqOZs8bM13oEQopJevkG8U0JuMQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -46,6 +47,7 @@ mkDerivation rec {
|
|||
qtxmlpatterns
|
||||
qtwebengine
|
||||
qca-qt5
|
||||
qtnetworkauth
|
||||
# TODO qtoauth
|
||||
ki18n
|
||||
kxmlgui
|
||||
|
@ -72,5 +74,6 @@ mkDerivation rec {
|
|||
changelog = "https://invent.kde.org/office/kbibtex/-/raw/v${version}/ChangeLog";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ dotlambda ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "kitsas";
|
||||
version = "4.0.3";
|
||||
version = "4.0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "artoh";
|
||||
repo = "kitupiikki";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-7s21++sA4enZFuDVUEAbn7InpyLx6BOwrFdsUzHWK0M=";
|
||||
hash = "sha256-ODl1yrtrCVhuBWbA1AvHl22d+JSdySG/Gi2hlpVW3jg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.4.7";
|
||||
version = "1.4.8";
|
||||
pname = "flrig";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-RzyeJf3T1vKTlyU/EMXFY+ObkqKq7wJyBB8ZeKMOO1M=";
|
||||
sha256 = "sha256-7aqjNbcAE1ATb5Zl+ziVb7O86nqlFwdpsYm9RoX51rg=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "minimap2";
|
||||
version = "2.24";
|
||||
version = "2.25";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
repo = pname;
|
||||
owner = "lh3";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-sEp7/Y5ifV9LTqrkhlkfykTJYMMuc+VtF7PvmIpBxUw=";
|
||||
sha256 = "sha256-9X2wYoUH11Ys4uPArwyGsXuQLQaAwtNV/pnO9yd7Oiw=";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "amazon-ecs-agent";
|
||||
version = "1.70.2";
|
||||
version = "1.71.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "aws";
|
||||
repo = pname;
|
||||
hash = "sha256-52Ty7g8SnhYAgYsE9mpmRmg4T6QifjWDIwNnJZBSPMk=";
|
||||
hash = "sha256-+/aeLI1+VE80NdeAqc7ctZsS6i0Ymj/GXssduP8X//c=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
|
57
pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix
Normal file
57
pkgs/desktops/deepin/core/dde-gsettings-schemas/default.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, runCommand
|
||||
, glib
|
||||
, gtk3
|
||||
, dtkcommon
|
||||
, dde-dock
|
||||
, startdde
|
||||
, dde-launcher
|
||||
, dde-session-shell
|
||||
, dde-session-ui
|
||||
, dde-control-center
|
||||
, dde-file-manager
|
||||
, deepin-desktop-schemas
|
||||
, deepin-movie-reborn
|
||||
, deepin-screen-recorder
|
||||
, deepin-system-monitor
|
||||
, extraGSettingsOverrides ? ""
|
||||
, extraGSettingsOverridePackages ? [ ]
|
||||
}:
|
||||
|
||||
let
|
||||
gsettingsOverridePackages = [
|
||||
dtkcommon
|
||||
dde-dock
|
||||
startdde
|
||||
dde-launcher
|
||||
dde-session-shell
|
||||
dde-session-ui
|
||||
dde-control-center
|
||||
dde-file-manager
|
||||
deepin-desktop-schemas
|
||||
deepin-movie-reborn
|
||||
deepin-screen-recorder
|
||||
deepin-system-monitor
|
||||
] ++ extraGSettingsOverridePackages;
|
||||
|
||||
in
|
||||
with lib;
|
||||
|
||||
# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
|
||||
runCommand "nixos-gsettings-desktop-schemas" { }
|
||||
''
|
||||
schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
|
||||
|
||||
mkdir -p $schema_dir
|
||||
|
||||
${concatMapStrings (pkg: "cp -rvf ${glib.getSchemaPath pkg}/* $schema_dir\n") gsettingsOverridePackages}
|
||||
|
||||
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
|
||||
|
||||
cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
|
||||
${extraGSettingsOverrides}
|
||||
EOF
|
||||
|
||||
${glib.dev}/bin/glib-compile-schemas $schema_dir
|
||||
''
|
|
@ -37,6 +37,7 @@ let
|
|||
dde-session-ui = callPackage ./core/dde-session-ui { };
|
||||
dde-polkit-agent = callPackage ./core/dde-polkit-agent { };
|
||||
dpa-ext-gnomekeyring = callPackage ./core/dpa-ext-gnomekeyring { };
|
||||
dde-gsettings-schemas = callPackage ./core/dde-gsettings-schemas { };
|
||||
|
||||
#### Dtk Application
|
||||
deepin-album = callPackage ./apps/deepin-album { };
|
||||
|
|
|
@ -3,14 +3,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
|
||||
version = "3.3.1";
|
||||
|
||||
fullMaude = fetchurl {
|
||||
url = "https://maude.cs.illinois.edu/w/images/b/bc/Full-Maude-3.2.1.zip";
|
||||
sha256 = "0751b3c4619283b3f0adf1c3aac113f1d4334a3ca859ed00d66de5f5857563ec";
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
|
@ -51,8 +44,6 @@ stdenv.mkDerivation {
|
|||
|
||||
postInstall = ''
|
||||
for n in "$out/bin/"*; do wrapProgram "$n" --suffix MAUDE_LIB ':' "$out/share/maude"; done
|
||||
unzip ${fullMaude}
|
||||
install -D -m 444 full-maude.maude $out/share/maude/full-maude.maude
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libudev-zero";
|
||||
version = "1.0.1";
|
||||
version = "1.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "illiliti";
|
||||
repo = "libudev-zero";
|
||||
rev = version;
|
||||
sha256 = "1dg6zqy8w3gxca8clz6hhv4jyvz8jdwvpmn9y289nrms1zx1jcs5";
|
||||
sha256 = "sha256-SU1pPmLLeTWZe5ybhmDplFw6O/vpEjFAKgfKDl0RS4U=";
|
||||
};
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sqlcipher";
|
||||
version = "4.5.3";
|
||||
version = "4.5.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sqlcipher";
|
||||
repo = "sqlcipher";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-yo7bB6xgF23Hdur25fprSFgbuxNclseUCdq3DFAfIK8=";
|
||||
hash = "sha256-n9KPtTj/mHXrnFJnbWPO3H+Vol3Z2mg7XLl55ynyLwY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -154,7 +154,6 @@
|
|||
, "git-ssb"
|
||||
, "git-standup"
|
||||
, "@gitbeaker/cli"
|
||||
, "@githubnext/github-copilot-cli"
|
||||
, "gitmoji-cli"
|
||||
, "glob"
|
||||
, "gramma"
|
||||
|
|
1411
pkgs/development/node-packages/node-packages.nix
generated
1411
pkgs/development/node-packages/node-packages.nix
generated
File diff suppressed because it is too large
Load diff
|
@ -39,6 +39,8 @@ final: prev: {
|
|||
];
|
||||
};
|
||||
|
||||
"@githubnext/github-copilot-cli" = pkgs.github-copilot-cli;
|
||||
|
||||
"@medable/mdctl-cli" = prev."@medable/mdctl-cli".override (oldAttrs: {
|
||||
nativeBuildInputs = with pkgs; with darwin.apple_sdk.frameworks; [
|
||||
glib
|
||||
|
|
|
@ -22,14 +22,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "ansible-lint";
|
||||
version = "6.14.3";
|
||||
version = "6.15.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-c+xZkptiFPbSzlhYwixk46HaunuM3BJxgzu208cVVEk=";
|
||||
hash = "sha256-TOeQzwAGdgugHYuUbYAwNwL8dFS9GcazB53ZjUBRfm8=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
let
|
||||
pname = "gptcommit";
|
||||
version = "0.5.7";
|
||||
version = "0.5.8";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
|
@ -19,10 +19,10 @@ rustPlatform.buildRustPackage {
|
|||
owner = "zurawiki";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ymG0D/geYH0o4fBzggeJH41fwZnO3THUV8ipk5GfwQc=";
|
||||
sha256 = "sha256-K4A0np8+gpFpSU4jBv6PAw4RyUWmIB7dTgWvpy36CYY=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-OiKuMbczyZ92x2rketRWNdYO2dTsJJo0cioKpxB9aAc=";
|
||||
cargoSha256 = "sha256-awztElsrJCUGUn2HcGpCkxUO/nEy8iZO22/fQtwAKdg=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
buildGraalvmNativeImage rec {
|
||||
pname = "jet";
|
||||
version = "0.4.24";
|
||||
version = "0.5.25";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-8UIPDq+POe5Ss4H8ecHkheYKul4FpGzQgWGQ0N7h41M=";
|
||||
sha256 = "sha256-4uXK9MRBXLjfHDNl6KJY1n9b02uXg+BlIr/q1DGeRKU=";
|
||||
};
|
||||
|
||||
extraNativeImageBuildArgs = [
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "opengrok";
|
||||
version = "1.12.0";
|
||||
version = "1.12.3";
|
||||
|
||||
# binary distribution
|
||||
src = fetchurl {
|
||||
url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz";
|
||||
hash = "sha256-a+iDY00cqtDm1Bm4nclbW/vRpeqWVAjAlBbKS+SC9Us=";
|
||||
hash = "sha256-GHSsfsEhBYeUbSKZfve3O2Z+bL3e7dqpl4sQKrQgWDE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
|
@ -7,13 +7,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "operator-sdk";
|
||||
version = "1.28.0";
|
||||
version = "1.28.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "operator-framework";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-n7lJnTeMZQVSNG98WPlqjFD0cJfMr1zRh8uAie2JiRM=";
|
||||
hash = "sha256-YzkPAKwkV8io0lz7JxIX4lciv85iqldkyitrLicbFJc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ZWOIF3vmtoXzdGHHzjPy/351bHzMTTXcgSRBso+ixyM=";
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "protoc-gen-validate";
|
||||
version = "0.10.1";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bufbuild";
|
||||
repo = "protoc-gen-validate";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-yo0/RhUs9KUdY0l0qqRs3eGWr4y183ZNSCsWihFK++4=";
|
||||
sha256 = "sha256-tYdWXioiPF1S5lpAipm3UN9NUjXo1/8nx22q28UQFDY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-yGQO5vTdkAr6bKnpaQz//n7r07NGyQg+vQ2BqPGe8Nk=";
|
||||
vendorHash = "sha256-OOjVlRHaOLIJVg3r97qZ3lPv8ANYY2HSn7hUJhg3Cfs=";
|
||||
|
||||
excludedPackages = [ "tests" ];
|
||||
|
||||
|
|
|
@ -13,14 +13,14 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rust-analyzer-unwrapped";
|
||||
version = "2023-04-17";
|
||||
cargoSha256 = "sha256-vO7ay79PkSYjovzi/hqkS2pMBfMcJLOUZn5eTya7h/U=";
|
||||
version = "2023-04-24";
|
||||
cargoSha256 = "sha256-VLN4VNq1ogh0gdeqiFagdFgMOpg28WACHn1hxMYoBjo=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rust-lang";
|
||||
repo = "rust-analyzer";
|
||||
rev = version;
|
||||
sha256 = "sha256-bijdVXzzfVSMHCjRuQ+PysNJt0Ei2mIhs+CPnR6yP4w=";
|
||||
sha256 = "sha256-Z07/byuJdxLK6E8Yb9qNvUMhUCOWEgYAriojU/wZHu8=";
|
||||
};
|
||||
|
||||
cargoBuildFlags = [ "--bin" "rust-analyzer" "--bin" "rust-analyzer-proc-macro-srv" ];
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, bc
|
||||
, bind # host and dig binary
|
||||
, coreutils # date and timeout binary
|
||||
, curl
|
||||
, fetchFromGitHub
|
||||
, file
|
||||
, openssl
|
||||
, makeWrapper
|
||||
, which
|
||||
, curl
|
||||
, bc
|
||||
, coreutils # date and timeout binary
|
||||
, bind # host and dig binary
|
||||
, nmap
|
||||
, iproute2
|
||||
, makeWrapper
|
||||
, netcat-gnu
|
||||
, nmap
|
||||
, openssl
|
||||
, python3
|
||||
, which
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "check_ssl_cert";
|
||||
version = "2.66.0";
|
||||
version = "2.68.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "matteocorti";
|
||||
repo = "check_ssl_cert";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-sk0t/oy8YsTcYSMKtSsC3apGp8LNa9AUggHrHKd75pw=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-yigg2C1FkdS/O+GCAkbQhXwARO0583V8MREzVCNsoGA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
{
|
||||
|
||||
tlpdb-nix = runCommand "texlive-test-tlpdb-nix" {
|
||||
tlpdbNix = runCommand "texlive-test-tlpdb-nix" {
|
||||
nixpkgsTlpdbNix = ../../tools/typesetting/tex/texlive/tlpdb.nix;
|
||||
tlpdbNix = texlive.tlpdb-nix;
|
||||
tlpdbNix = texlive.tlpdb.nix;
|
||||
}
|
||||
''
|
||||
mkdir -p "$out"
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "credhub-cli";
|
||||
version = "2.9.13";
|
||||
version = "2.9.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudfoundry-incubator";
|
||||
repo = "credhub-cli";
|
||||
rev = version;
|
||||
sha256 = "sha256-6ZTuWlF+yPDfvCLJpfOyRgikCzG1vcMP983/MWZdchM=";
|
||||
sha256 = "sha256-3RVVbZ3UvtM9JSGbjzC6bLq2DwQAOzF/lMaE74Cft2g=";
|
||||
};
|
||||
|
||||
# these tests require network access that we're not going to give them
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fluent-bit";
|
||||
version = "2.1.1";
|
||||
version = "2.1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fluent";
|
||||
repo = "fluent-bit";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-l0kl+4ISrfT9rQlvCs3GSJfQAqGwxhYmcqn3USl9Ewo=";
|
||||
sha256 = "sha256-AdIK1qNM2mUC/dLNN5GqYzi9ulqViqsyyd1mvHRfeIM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake flex bison ];
|
||||
|
|
28
pkgs/tools/misc/github-copilot-cli/default.nix
Normal file
28
pkgs/tools/misc/github-copilot-cli/default.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{ lib, buildNpmPackage, fetchzip }:
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "github-copilot-cli";
|
||||
version = "0.1.33";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://registry.npmjs.org/@githubnext/${pname}/-/${pname}-${version}.tgz";
|
||||
hash = "sha256-uTv6Z/AzvINinMiIfaaqRZDCmsAQ7tOE5SpuecpzGug=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-VIg9a63GH246SbmK4Q8CwA2jdaaOwNUXoJkuDVwy5jE=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
'';
|
||||
|
||||
dontNpmBuild = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A CLI experience for letting GitHub Copilot help you on the command line";
|
||||
homepage = "https://githubnext.com/projects/copilot-cli/";
|
||||
license = licenses.free;
|
||||
maintainers = [ maintainers.malo ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
3035
pkgs/tools/misc/github-copilot-cli/package-lock.json
generated
Normal file
3035
pkgs/tools/misc/github-copilot-cli/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "papeer";
|
||||
version = "0.7.0";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lapwat";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-MhErx/Sjz9DUBZb39pQNVf4V+cRdGxerSOj8alsEaPc=";
|
||||
hash = "sha256-oXhAiw2oYefmF+a8DqjP2f3AY0+WZ1ZdiNG9bEhSQ84=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-3QRSdkx9p0H+zPB//bpWCBKKjKjrx0lHMk5lFm+U7pA=";
|
||||
|
|
|
@ -1,62 +1,46 @@
|
|||
# Notes on maintaining/upgrading
|
||||
|
||||
## Upgrading texlive.bin
|
||||
## Upgrading `texlive.bin`
|
||||
|
||||
texlive contains a few binaries, defined in bin.nix and released once a year.
|
||||
`texlive` contains a few binaries, defined in `bin.nix` and released once a year.
|
||||
|
||||
In order to reduce closure size for users who just need a few of them, we split it into
|
||||
packages such as core, core-big, xvdi, etc. This requires making assumptions
|
||||
packages such as `core`, `core-big`, `xdvi`, etc. This requires making assumptions
|
||||
about dependencies between the projects that may change between releases; if
|
||||
you upgrade you may have to do some work here.
|
||||
|
||||
|
||||
## Updating the package set
|
||||
|
||||
texlive contains several thousand packages from CTAN, defined in pkgs.nix.
|
||||
`texlive` contains several thousand packages from CTAN, defined in `tlpdb.nix`.
|
||||
|
||||
The CTAN mirrors are not version-controlled and continuously moving,
|
||||
with more than 100 updates per month.
|
||||
|
||||
To create a consistent and reproducible package set in nixpkgs, we snapshot CTAN
|
||||
and generate nix expressions for all packages in texlive at that point.
|
||||
|
||||
We mirror CTAN sources of this snapshot on community-operated servers and on IPFS.
|
||||
|
||||
To upgrade the package snapshot, follow this process:
|
||||
|
||||
|
||||
### Snapshot sources and texlive package database
|
||||
|
||||
Mirror the current CTAN archive to our mirror(s) and IPFS (URLs in `default.nix`).
|
||||
See https://tug.org/texlive/acquire-mirror.html for instructions.
|
||||
To create a consistent and reproducible package set in nixpkgs, we generate nix
|
||||
expressions for all packages in TeX Live at a certain day.
|
||||
|
||||
To upgrade the package snapshot, follow this process.
|
||||
|
||||
### Upgrade package information from texlive package database
|
||||
|
||||
First, edit `default.nix` as follows.
|
||||
|
||||
If upgrading to a daily snapshot:
|
||||
- change `snapshot.year`, `snapshot.month`, `snapshot.day`;
|
||||
- ensure `urlPrefixes` uses the https://texlive.info/tlnet-archive mirror;
|
||||
- ensure `texlive.extraVersion` uses the `snapshot` info.
|
||||
|
||||
If upgrading to a final release:
|
||||
- upgrade `texlive.bin` first;
|
||||
- ensure `urlPrefixes` uses the historic mirrors;
|
||||
- ensure `texlive.extraVersion` is `"-final"`.
|
||||
|
||||
Then upgrade `tlpdb.hash` to match the new hash of `texlive.tlpdb.xz` and run
|
||||
Update `version` in `default.nix` with the day of the new snapshot, the new TeX
|
||||
Live year, and the final status of the snapshot. Then update
|
||||
`texlive.tlpdbxz.hash` to match the new hash of `texlive.tlpdb.xz` and run
|
||||
|
||||
```bash
|
||||
nix-build ../../../../.. -A texlive.tlpdb-nix --no-out-link
|
||||
nix-build ../../../../.. -A texlive.tlpdb.nix --no-out-link
|
||||
```
|
||||
|
||||
This will download the daily snapshot of the CTAN package database
|
||||
`texlive.tlpdb.xz` and extract the relevant package info (including version
|
||||
numbers and sha512 hashes) for the selected upstream distribution. Then replace
|
||||
`tlpdb.nix` with the generated file.
|
||||
This will download either the daily or the final snapshot of the TeX Live
|
||||
package database `texlive.tlpdb.xz` and extract the relevant package info
|
||||
(including version numbers and sha512 hashes) for the selected upstream
|
||||
distribution.
|
||||
|
||||
The test `pkgs.tests.texlive.tlpdb-nix` verifies that the file `tlpdb.nix`
|
||||
Finally, replace `tlpdb.nix` with the generated file. Note that if the
|
||||
`version` info does not match the metadata of `tlpdb.nix` (as found in the
|
||||
`00texlive.config` package), TeX Live packages will not evaluate.
|
||||
|
||||
The test `pkgs.tests.texlive.tlpdbNix` verifies that the file `tlpdb.nix`
|
||||
in Nixpkgs matches the one that generated from `texlive.tlpdb.xz`.
|
||||
|
||||
### Build packages locally and generate fix hashes
|
||||
|
@ -81,4 +65,4 @@ mv fixedHashes-new.nix fixedHashes.nix
|
|||
|
||||
### Commit changes
|
||||
|
||||
Commit the updated `pkgs.nix` and `fixedHashes.nix` to the repository.
|
||||
Commit the updated `tlpdb.nix` and `fixedHashes.nix` to the repository.
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
let
|
||||
withSystemLibs = map (libname: "--with-system-${libname}");
|
||||
|
||||
year = "2022";
|
||||
year = toString ((import ./tlpdb.nix)."00texlive.config").year;
|
||||
version = year; # keep names simple for now
|
||||
|
||||
common = {
|
||||
|
|
|
@ -10,8 +10,8 @@ let
|
|||
pkgSet = removeAttrs args [ "pkgFilter" "extraName" "extraVersion" ] // {
|
||||
# include a fake "core" package
|
||||
core.pkgs = [
|
||||
(bin.core.out // { pname = "core"; version = "0"; tlType = "bin"; })
|
||||
(bin.core.doc // { pname = "core"; version = "0"; tlType = "doc"; })
|
||||
(bin.core.out // { pname = "core"; tlType = "bin"; })
|
||||
(bin.core.doc // { pname = "core"; tlType = "doc"; })
|
||||
];
|
||||
};
|
||||
pkgList = rec {
|
||||
|
|
|
@ -28,9 +28,13 @@ let
|
|||
ghostscript = ghostscript_headless;
|
||||
};
|
||||
|
||||
tlpdb = import ./tlpdb.nix;
|
||||
|
||||
tlpdbVersion = tlpdb."00texlive.config";
|
||||
|
||||
# the set of TeX Live packages, collections, and schemes; using upstream naming
|
||||
tl = let
|
||||
orig = import ./tlpdb.nix;
|
||||
orig = removeAttrs tlpdb [ "00texlive.config" ];
|
||||
|
||||
overridden = orig // {
|
||||
# overrides of texlive.tlpdb
|
||||
|
@ -56,10 +60,12 @@ let
|
|||
};
|
||||
|
||||
texdoc = orig.texdoc // {
|
||||
version = orig.texdoc.version + "-tlpdb-" + (toString tlpdbVersion.revision);
|
||||
|
||||
# build Data.tlpdb.lua (part of the 'tlType == "run"' package)
|
||||
postUnpack = ''
|
||||
if [[ -f "$out"/scripts/texdoc/texdoc.tlu ]]; then
|
||||
unxz --stdout "${tlpdb}" > texlive.tlpdb
|
||||
unxz --stdout "${tlpdbxz}" > texlive.tlpdb
|
||||
|
||||
# create dummy doc file to ensure that texdoc does not return an error
|
||||
mkdir -p support/texdoc
|
||||
|
@ -109,11 +115,15 @@ let
|
|||
( bin.${pname} // { tlType = "bin"; } );
|
||||
};
|
||||
|
||||
# for daily snapshots
|
||||
snapshot = {
|
||||
year = "2022";
|
||||
month = "12";
|
||||
day = "27";
|
||||
version = {
|
||||
# day of the snapshot being taken
|
||||
year = "2023";
|
||||
month = "03";
|
||||
day = "19";
|
||||
# TeX Live version
|
||||
texliveYear = 2022;
|
||||
# final (historic) release or snapshot
|
||||
final = true;
|
||||
};
|
||||
|
||||
# The tarballs on CTAN mirrors for the current release are constantly
|
||||
|
@ -121,27 +131,30 @@ let
|
|||
# need to be used instead. Ideally, for the release branches of NixOS we
|
||||
# should be switching to the tlnet-final versions
|
||||
# (https://tug.org/historic/).
|
||||
urlPrefixes = [
|
||||
# tlnet-final snapshot
|
||||
"http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${bin.texliveYear}/tlnet-final/archive"
|
||||
"ftp://tug.org/texlive/historic/${bin.texliveYear}/tlnet-final/archive"
|
||||
|
||||
# Daily snapshots hosted by one of the texlive release managers
|
||||
#"https://texlive.info/tlnet-archive/${snapshot.year}/${snapshot.month}/${snapshot.day}/tlnet/archive"
|
||||
urlPrefixes = with version; lib.optionals final [
|
||||
# tlnet-final snapshot; used when texlive.tlpdb is frozen
|
||||
# the TeX Live yearly freeze typically happens in mid-March
|
||||
"http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${toString texliveYear}/tlnet-final"
|
||||
"ftp://tug.org/texlive/historic/${toString texliveYear}/tlnet-final"
|
||||
] ++ [
|
||||
# daily snapshots hosted by one of the texlive release managers;
|
||||
# used for non-final snapshots and as fallback for final snapshots that have not reached yet the historic mirrors
|
||||
# please note that this server is not meant for large scale deployment and should be avoided on release branches
|
||||
# https://tug.org/pipermail/tex-live/2019-November/044456.html
|
||||
"https://texlive.info/tlnet-archive/${year}/${month}/${day}/tlnet"
|
||||
];
|
||||
|
||||
tlpdb = fetchurl {
|
||||
# use the same mirror(s) as urlPrefixes above
|
||||
urls = map (up: "${up}/../tlpkg/texlive.tlpdb.xz") urlPrefixes;
|
||||
tlpdbxz = fetchurl {
|
||||
urls = map (up: "${up}/tlpkg/texlive.tlpdb.xz") urlPrefixes;
|
||||
hash = "sha256-vm7DmkH/h183pN+qt1p1wZ6peT2TcMk/ae0nCXsCoMw=";
|
||||
};
|
||||
|
||||
tlpdb-nix = runCommand "tlpdb.nix" {
|
||||
inherit tlpdb;
|
||||
tlpdbNix = runCommand "tlpdb.nix" {
|
||||
inherit tlpdbxz;
|
||||
tl2nix = ./tl2nix.sed;
|
||||
}
|
||||
''
|
||||
xzcat "$tlpdb" | sed -rn -f "$tl2nix" | uniq > "$out"
|
||||
xzcat "$tlpdbxz" | sed -rn -f "$tl2nix" | uniq > "$out"
|
||||
'';
|
||||
|
||||
# create a derivation that contains an unpacked upstream TL package
|
||||
|
@ -153,7 +166,7 @@ let
|
|||
fixedHash = fixedHashes.${tlName} or null; # be graceful about missing hashes
|
||||
|
||||
urls = args.urls or (if args ? url then [ args.url ] else
|
||||
map (up: "${up}/${urlName}.r${toString revision}.tar.xz") (args.urlPrefixes or urlPrefixes));
|
||||
map (up: "${up}/archive/${urlName}.r${toString revision}.tar.xz") (args.urlPrefixes or urlPrefixes));
|
||||
|
||||
in runCommand "texlive-${tlName}"
|
||||
( {
|
||||
|
@ -198,9 +211,21 @@ let
|
|||
operator = { pkg, ... }: pkgListToSets (pkg.tlDeps or []);
|
||||
});
|
||||
|
||||
assertions =
|
||||
lib.assertMsg (tlpdbVersion.year == version.texliveYear) "TeX Live year in texlive does not match tlpdb.nix, refusing to evaluate" &&
|
||||
lib.assertMsg (tlpdbVersion.frozen == version.final) "TeX Live final status in texlive does not match tlpdb.nix, refusing to evaluate";
|
||||
|
||||
in
|
||||
tl // {
|
||||
inherit bin combine tlpdb-nix;
|
||||
|
||||
tlpdb = {
|
||||
# nested in an attribute set to prevent them from appearing in search
|
||||
nix = tlpdbNix;
|
||||
xz = tlpdbxz;
|
||||
};
|
||||
|
||||
bin = assert assertions; bin;
|
||||
combine = assert assertions; combine;
|
||||
|
||||
# Pre-defined combined packages for TeX Live schemes,
|
||||
# to make nix-env usage more comfortable and build selected on Hydra.
|
||||
|
@ -215,8 +240,7 @@ in
|
|||
(combine {
|
||||
${pname} = attrs;
|
||||
extraName = "combined" + lib.removePrefix "scheme" pname;
|
||||
#extraVersion = "-final";
|
||||
extraVersion = ".${snapshot.year}${snapshot.month}${snapshot.day}";
|
||||
extraVersion = with version; if final then "-final" else ".${year}${month}${day}";
|
||||
})
|
||||
)
|
||||
{ inherit (tl)
|
||||
|
|
|
@ -797,8 +797,8 @@
|
|||
"texdiff.doc-0.4"="0f7q7cszy6ca6fmwzi7fn6p72szgzyj9fldvzz1rk3ywkhsnpakr";
|
||||
"texdirflatten-1.3"="0q2m138gpk9cvfp19jvsw746mkxa613c2204qfxw1bxw8b454d7m";
|
||||
"texdirflatten.doc-1.3"="19iiznql82a34d2yhzqcp339zszbhfz9fh0h4mb11696mj8rx3v7";
|
||||
"texdoc-4.0.1"="1ph4mzrlri8daxg7j4n15s3b9dj58ni4fdqhpvqxwy6736fiw130";
|
||||
"texdoc.doc-4.0.1"="1dpz5ni9xdbwfy4m12j3v407ywbddmy3j2dhzwrdsyj7wq3impmg";
|
||||
"texdoc-4.0.1-tlpdb-66590"="1ph4mzrlri8daxg7j4n15s3b9dj58ni4fdqhpvqxwy6736fiw130";
|
||||
"texdoc.doc-4.0.1-tlpdb-66590"="1dpz5ni9xdbwfy4m12j3v407ywbddmy3j2dhzwrdsyj7wq3impmg";
|
||||
"texdoctk-0.6.0"="13j0c5m12if8jx8sp7hlirz33y6l2jk8lvnms7dalz52mxz8kq4h";
|
||||
"texdoctk.doc-0.6.0"="1k41z2lbfjsar5rl47xnk1adbcnnb4w97bzbgf2rnjhimd1gn9hq";
|
||||
"texfot-1.48"="19aswiyr722n9misvg9ajdsgpn1ghmic2xfmr4w0w00sai5sh5rx";
|
||||
|
|
|
@ -2,6 +2,17 @@
|
|||
1i{ # no indentation
|
||||
$a}
|
||||
|
||||
# extract repository metadata
|
||||
/^name 00texlive\.config$/,/^$/{
|
||||
s/^name (.*)$/"\1" = {/p
|
||||
/^$/,1i};
|
||||
|
||||
s!^depend frozen/0$! frozen = false;!p
|
||||
s!^depend frozen/1$! frozen = true;!p
|
||||
s!^depend release/(.*)$! year = \1;!p
|
||||
s!^depend revision/(.*)$! revision = \1;!p
|
||||
}
|
||||
|
||||
# form an attrmap per package
|
||||
# ignore packages whose name contains "." (such as binaries)
|
||||
/^name ([^.]+)$/,/^$/{
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
{ # no indentation
|
||||
"00texlive.config" = {
|
||||
frozen = true;
|
||||
year = 2022;
|
||||
revision = 66590;
|
||||
};
|
||||
"12many" = {
|
||||
revision = 15878;
|
||||
stripPrefix = 0;
|
||||
|
|
|
@ -1520,6 +1520,8 @@ with pkgs;
|
|||
|
||||
gen6dns = callPackage ../tools/networking/gen6dns { };
|
||||
|
||||
github-copilot-cli = callPackage ../tools/misc/github-copilot-cli { };
|
||||
|
||||
gfshare = callPackage ../tools/security/gfshare { };
|
||||
|
||||
gh-actions-cache = callPackage ../tools/misc/gh-actions-cache { };
|
||||
|
@ -17555,6 +17557,8 @@ with pkgs;
|
|||
|
||||
bam = callPackage ../development/tools/build-managers/bam { };
|
||||
|
||||
bandit = with python3Packages; toPythonApplication bandit;
|
||||
|
||||
bazel = bazel_6;
|
||||
|
||||
bazel_4 = callPackage ../development/tools/build-managers/bazel/bazel_4 {
|
||||
|
|
Loading…
Reference in a new issue