Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-02-11 12:05:55 +00:00
committed by GitHub
58 changed files with 1236 additions and 3975 deletions
+18
View File
@@ -8204,6 +8204,12 @@
name = "Florian Brandes";
keys = [ { fingerprint = "0200 3EF8 8D2B CF2D 8F00 FFDC BBB3 E40E 5379 7FD9"; } ];
};
gaelj = {
name = "Gaël James";
email = "gaeljames@gmail.com";
github = "gaelj";
githubId = 8884632;
};
gaelreyrol = {
email = "me@gaelreyrol.dev";
matrix = "@Zevran:matrix.org";
@@ -16315,6 +16321,12 @@
githubId = 1859691;
name = "Amedeo Molnár";
};
nekitdev = {
email = "nekit@nekit.dev";
github = "nekitdev";
githubId = 43587167;
name = "Nikita Tikhonov";
};
nelsonjeppesen = {
email = "nix@jeppesen.io";
github = "NelsonJeppesen";
@@ -18180,6 +18192,12 @@
githubId = 301903;
name = "Chip Collier";
};
phrmendes = {
name = "Pedro Mendes";
email = "pedrohrmendes@proton.me";
github = "phrmendes";
githubId = 22376151;
};
phrogg = {
name = "Phil Roggenbuck";
email = "nixpkgs@phrogg.de";
@@ -95,6 +95,7 @@ in
lomiri-gallery-app
lomiri-history-service
lomiri-mediaplayer-app
lomiri-music-app
lomiri-polkit-agent
lomiri-schemas # exposes some required dbus interfaces
lomiri-session # wrappers to properly launch the session
@@ -198,37 +199,54 @@ in
"/share/sounds"
];
systemd.user.services = {
# Unconditionally run service that collects system-installed URL handlers before LUD
# TODO also run user-installed one?
"lomiri-url-dispatcher-update-system-dir" = {
description = "Lomiri URL dispatcher system directory updater";
wantedBy = [ "lomiri-url-dispatcher.service" ];
before = [ "lomiri-url-dispatcher.service" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.lomiri.lomiri-url-dispatcher}/libexec/lomiri-url-dispatcher/lomiri-update-directory /run/current-system/sw/share/lomiri-url-dispatcher/urls/";
};
};
"lomiri-polkit-agent" = rec {
description = "Lomiri Polkit agent";
wantedBy = [
systemd.user.services =
let
lomiriServiceNames = [
"lomiri.service"
"lomiri-full-greeter.service"
"lomiri-full-shell.service"
"lomiri-greeter.service"
"lomiri-shell.service"
];
after = [ "graphical-session.target" ];
partOf = wantedBy;
serviceConfig = {
Type = "simple";
Restart = "always";
ExecStart = "${pkgs.lomiri.lomiri-polkit-agent}/libexec/lomiri-polkit-agent/policykit-agent";
in
{
# Unconditionally run service that collects system-installed URL handlers before LUD
# TODO also run user-installed one?
"lomiri-url-dispatcher-update-system-dir" = {
description = "Lomiri URL dispatcher system directory updater";
wantedBy = [ "lomiri-url-dispatcher.service" ];
before = [ "lomiri-url-dispatcher.service" ];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.lomiri.lomiri-url-dispatcher}/libexec/lomiri-url-dispatcher/lomiri-update-directory /run/current-system/sw/share/lomiri-url-dispatcher/urls/";
};
};
"lomiri-polkit-agent" = {
description = "Lomiri Polkit agent";
wantedBy = lomiriServiceNames;
after = [ "graphical-session.target" ];
partOf = lomiriServiceNames;
serviceConfig = {
Type = "simple";
Restart = "always";
ExecStart = "${pkgs.lomiri.lomiri-polkit-agent}/libexec/lomiri-polkit-agent/policykit-agent";
};
};
"mediascanner-2.0" = {
description = "Media Scanner";
wantedBy = lomiriServiceNames;
before = lomiriServiceNames;
partOf = lomiriServiceNames;
serviceConfig = {
Type = "dbus";
BusName = "com.lomiri.MediaScanner2.Daemon";
Restart = "on-failure";
ExecStart = "${lib.getExe pkgs.lomiri.mediascanner2}";
};
};
};
};
systemd.services = {
"dbus-com.lomiri.UserMetrics" = {
+1
View File
@@ -569,6 +569,7 @@ in {
lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix;
lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix;
lomiri-mediaplayer-app = runTest ./lomiri-mediaplayer-app.nix;
lomiri-music-app = runTest ./lomiri-music-app.nix;
lomiri-gallery-app = runTest ./lomiri-gallery-app.nix;
lomiri-system-settings = handleTest ./lomiri-system-settings.nix {};
lorri = handleTest ./lorri/default.nix {};
+193
View File
@@ -0,0 +1,193 @@
{ lib, ... }:
let
ocrContent = "Music Test";
musicFile = "test.mp3";
ocrPauseColor = "#FF00FF";
ocrStartColor = "#00FFFF";
in
{
name = "lomiri-music-app-standalone";
meta = {
maintainers = lib.teams.lomiri.members;
# This needs a Linux VM
platforms = lib.platforms.linux;
};
nodes.machine =
{ config, pkgs, ... }:
{
imports = [
./common/auto.nix
./common/user-account.nix
./common/x11.nix
];
services.xserver.enable = true;
environment = {
# Setup video
etc."${musicFile}".source =
pkgs.runCommand musicFile
{
nativeBuildInputs = with pkgs; [
ffmpeg # produce music
(imagemagick.override { ghostscriptSupport = true; }) # produce OCR-able cover image
];
}
''
magick -size 400x400 canvas:white -pointsize 40 -fill black -annotate +100+100 '${ocrContent}' output.png
ffmpeg -re \
-f lavfi -i anullsrc=channel_layout=mono:sample_rate=44100 \
-i output.png \
-map 0:0 -map 1:0 \
-id3v2_version 3 \
-metadata:s:v title="Album cover" \
-metadata:s:v comment="Cover (front)" \
-t 120 \
$out -loglevel fatal
'';
systemPackages =
with pkgs;
[
xdg-user-dirs # generate XDG dirs
xdotool # mouse movement
]
++ (with pkgs.lomiri; [
mediascanner2
lomiri-music-app
lomiri-thumbnailer
# To check if playback actually works, or is broken due to missing codecs, we need to make the app's icons more OCR-able
(lib.meta.hiPrio (
suru-icon-theme.overrideAttrs (oa: {
# Colour the background in special colours, which we can OCR for
postPatch =
(oa.postPatch or "")
+ ''
substituteInPlace suru/actions/scalable/media-playback-pause.svg \
--replace-fail 'fill:none' 'fill:${ocrPauseColor}'
substituteInPlace suru/actions/scalable/media-playback-start.svg \
--replace-fail 'fill:none' 'fill:${ocrStartColor}'
'';
})
))
]);
variables = {
UITK_ICON_THEME = "suru";
};
};
# Get mediascanner-2.0.service
services.desktopManager.lomiri.enable = lib.mkForce true;
# ...but stick with icewm
services.displayManager.defaultSession = lib.mkForce "none+icewm";
systemd.tmpfiles.settings = {
"10-lomiri-music-app-test-setup" = {
"/root/Music".d = {
mode = "0755";
user = "root";
group = "root";
};
"/root/Music/${musicFile}"."C+".argument = "/etc/${musicFile}";
};
};
i18n.supportedLocales = [ "all" ];
};
enableOCR = true;
testScript = ''
from collections.abc import Callable
import tempfile
import subprocess
pauseColor: str = "${ocrPauseColor}"
startColor: str = "${ocrStartColor}"
# Based on terminal-emulators.nix' check_for_pink
def check_for_color(color: str) -> Callable[[bool], bool]:
def check_for_color_retry(final=False) -> bool:
with tempfile.NamedTemporaryFile() as tmpin:
machine.send_monitor_command("screendump {}".format(tmpin.name))
cmd = 'convert {} -define histogram:unique-colors=true -format "%c" histogram:info:'.format(
tmpin.name
)
ret = subprocess.run(cmd, shell=True, capture_output=True)
if ret.returncode != 0:
raise Exception(
"image analysis failed with exit code {}".format(ret.returncode)
)
text = ret.stdout.decode("utf-8")
return color in text
return check_for_color_retry
machine.wait_for_x()
# mediascanner2 needs XDG dirs to exist
machine.succeed("xdg-user-dirs-update")
# mediascanner2 needs to have run, is only started automatically by Lomiri
machine.systemctl("start mediascanner-2.0.service", "root")
with subtest("lomiri music launches"):
machine.succeed("lomiri-music-app >&2 &")
machine.wait_for_text("favorite music")
machine.send_key("alt-f10")
machine.screenshot("lomiri-music")
with subtest("lomiri music plays music"):
machine.succeed("xdotool mousemove 30 720 click 1") # Skip intro
machine.wait_for_text("Albums")
machine.succeed("xdotool mousemove 25 45 click 1") # Open categories
machine.wait_for_text("Tracks")
machine.succeed("xdotool mousemove 25 240 click 1") # Switch to Tracks category
machine.wait_for_text("test") # the test file
machine.screenshot("lomiri-music_listing")
# Ensure pause colours isn't present already
assert (
check_for_color(pauseColor)(True) == False
), "pauseColor {} was present on the screen before we selected anything!".format(pauseColor)
machine.succeed("xdotool mousemove 25 120 click 1") # Select the track
# Waiting for pause icon to be displayed
with machine.nested("Waiting for the screen to have pauseColor {} on it:".format(pauseColor)):
retry(check_for_color(pauseColor))
machine.screenshot("lomiri-music_playback")
# Ensure play colours isn't present already
assert (
check_for_color(startColor)(True) == False
), "startColor {} was present on the screen before we were expecting it to be!".format(startColor)
machine.succeed("xdotool mousemove 860 480 click 1") # Pause track (only works if app can actually decode the file)
# Waiting for play icon to be displayed
with machine.nested("Waiting for the screen to have startColor {} on it:".format(startColor)):
retry(check_for_color(startColor))
machine.screenshot("lomiri-music_paused")
# Lastly, check if generated cover image got extracted properly
# if not, indicates an issue with mediascanner / lomiri-thumbnailer
machine.wait_for_text("${ocrContent}")
machine.succeed("pkill -f lomiri-music-app")
with subtest("lomiri music localisation works"):
machine.succeed("env LANG=de_DE.UTF-8 lomiri-music-app .mp4 >&2 &")
machine.wait_for_text("Titel")
machine.screenshot("lomiri-music_localised")
'';
}
-5
View File
@@ -448,9 +448,6 @@ in
machine.send_key("ctrl-alt-t")
wait_for_text(r"(${user}|machine)")
machine.screenshot("terminal_opens")
# lomiri-terminal-app has a separate VM test to test its basic functionality
machine.send_key("alt-f4")
# We want the ability to launch applications
@@ -601,8 +598,6 @@ in
wait_for_text(r"(${user}|machine)")
machine.screenshot("terminal_opens")
# lomiri-terminal-app has a separate VM test to test its basic functionality
# for the LSS lomiri-content-hub test to work reliably, we need to kick off peer collecting
machine.send_chars("lomiri-content-hub-test-importer\n")
wait_for_text(r"(/build/source|hub.cpp|handler.cpp|void|virtual|const)") # awaiting log messages from lomiri-content-hub
-5
View File
@@ -65,11 +65,6 @@ let
konsole.pkg = p: p.plasma5Packages.konsole;
lomiri-terminal-app.pkg = p: p.lomiri.lomiri-terminal-app;
# after recent Mesa change, borked software rendering config under x86_64 icewm?
# BGR colour display on x86_64, RGB on aarch64
lomiri-terminal-app.colourTest = false;
lxterminal.pkg = p: p.lxterminal;
mate-terminal.pkg = p: p.mate.mate-terminal;
+8 -3
View File
@@ -9,6 +9,7 @@
versionCheckHook,
makeFontsConf,
qtbase,
qtsvg,
}:
python3Packages.buildPythonApplication rec {
@@ -27,9 +28,13 @@ python3Packages.buildPythonApplication rec {
wrapQtAppsHook
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
qtwayland
];
buildInputs =
[
qtsvg
]
++ lib.optionals stdenv.hostPlatform.isLinux [
qtwayland
];
build-system = with python3Packages; [
setuptools
@@ -982,14 +982,19 @@ let
cssh = ignoreCompilationError super.cssh; # elisp error
dap-mode = super.dap-mode.overrideAttrs (old: {
# empty file causing native-compiler-error-empty-byte
preBuild =
''
rm --verbose dapui.el
''
+ old.preBuild or "";
});
dap-mode = super.dap-mode.overrideAttrs (
finalAttrs: previousAttrs: {
# empty file causing native-compiler-error-empty-byte
preBuild =
if lib.versionOlder finalAttrs.version "20250131.1624" then
''
rm --verbose dapui.el
''
+ previousAttrs.preBuild or ""
else
previousAttrs.preBuild or null;
}
);
db-pg = ignoreCompilationError super.db-pg; # elisp error
@@ -43,14 +43,14 @@ let
in
stdenv.mkDerivation rec {
version = "7.2";
version = "7.4.1";
pname = "quantum-espresso";
src = fetchFromGitLab {
owner = "QEF";
repo = "q-e";
rev = "qe-${version}";
hash = "sha256-0q0QWX4BVjVHjcbKOBpjbBADuL+2S5LAALyrxmjVs4c=";
hash = "sha256-o1CjIuJCTtIud4zeHROksK1Ub9RL/OB8GecAQOIGf1s=";
};
# add git submodules manually and fix pkg-config file
@@ -77,6 +77,11 @@ stdenv.mkDerivation rec {
--replace 'libdir="''${prefix}/@CMAKE_INSTALL_LIBDIR@"' 'libdir="@CMAKE_INSTALL_FULL_LIBDIR@"'
'';
patches = [
# this patch reverts commit 5fb5a679, which enforced static library builds.
./findLibxc.patch
];
passthru = { inherit mpi; };
nativeBuildInputs = [
@@ -0,0 +1,70 @@
diff --git a/cmake/FindLibxc.cmake b/cmake/FindLibxc.cmake
index 011a36b77..226f38051 100644
--- a/cmake/FindLibxc.cmake
+++ b/cmake/FindLibxc.cmake
@@ -1,45 +1,50 @@
-include(FindPackageHandleStandardArgs)
-find_package(PkgConfig REQUIRED)
-
pkg_search_module(_LIBXC libxc>=${Libxc_FIND_VERSION})
-find_library(LIBXC_LIBRARIES NAMES libxc.a
+find_library(LIBXC_LIBRARIES NAMES xc
PATH_SUFFIXES lib
HINTS
- ${LIBXC_ROOT}
ENV EBROOTLIBXC
ENV LIBXCROOT
${_LIBXC_LIBRARY_DIRS}
DOC "libxc libraries list")
-find_library(LIBXC_LIBRARIES_F03 NAMES libxcf03.a
+find_library(LIBXC_LIBRARIES_F90 NAMES xcf90
PATH_SUFFIXES lib
HINTS
- ${LIBXC_ROOT}
ENV EBROOTLIBXC
ENV LIBXCROOT
${_LIBXC_LIBRARY_DIRS}
DOC "libxc libraries list")
+find_library(LIBXC_LIBRARIES_F03 NAMES xcf03
+ PATH_SUFFIXES lib
+ HINTS
+ ENV EBROOTLIBXC
+ ENV LIBXCROOT
+ ${_LIBXC_LIBRARY_DIRS})
find_path(LIBXC_INCLUDE_DIR NAMES xc.h
PATH_SUFFIXES inc include
HINTS
- ${LIBXC_ROOT}
${_LIBXC_INCLUDE_DIRS}
ENV EBROOTLIBXC
ENV LIBXCROOT)
+find_path(LIBXC_INCLUDE_DIR_F90 NAMES xc_f90_lib_m.mod
+ PATH_SUFFIXES inc include
+ HINTS
+ ${_LIBXC_INCLUDE_DIRS}
+ ENV EBROOTLIBXC
+ ENV LIBXCROOT)
find_path(LIBXC_INCLUDE_DIR_F03 NAMES xc_f03_lib_m.mod
PATH_SUFFIXES inc include
HINTS
- ${LIBXC_ROOT}
${_LIBXC_INCLUDE_DIRS}
ENV EBROOTLIBXC
ENV LIBXCROOT)
find_package_handle_standard_args(Libxc DEFAULT_MSG LIBXC_LIBRARIES LIBXC_INCLUDE_DIR)
-if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F03)
+if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F90 AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F90 AND LIBXC_INCLUDE_DIR_F03)
if(_LIBXC_VERSION)
set(Libxc_VERSION ${_LIBXC_VERSION})
else()
@@ -53,4 +58,3 @@ if (${Libxc_FOUND} AND LIBXC_LIBRARIES_F03 AND LIBXC_INCLUDE_DIR_F03)
else()
unset(Libxc_FOUND)
endif()
-
@@ -11,7 +11,7 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "blackmagic-desktop-video";
version = "14.2a1";
version = "14.4.1a4";
buildInputs = [
autoPatchelfHook
@@ -25,15 +25,15 @@ stdenv.mkDerivation (finalAttrs: {
src =
let
# from the URL the download page where you click the "only download" button is at
REFERID = "b97e55f37a0042fbacd234971d8c93ed";
REFERID = "5baba0af3eda41ee9cd0ec7349660d74";
# from the URL that the POST happens to, see browser console
DOWNLOADID = "552546307a7c4de29ea6d09a6ca08c90";
DOWNLOADID = "bc31044728f146859c6d9e0ccef868d8";
in
runCommandLocal "${finalAttrs.pname}-${lib.versions.majorMinor finalAttrs.version}-src.tar.gz"
{
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-rfZDL1YvAuMD5u68MMyiT8cERsIHMc9K25lXt7cqrrk=";
outputHash = "sha256-qh305s7u1yurv58TZnlONgDmWT4RXG3fXTfun382HAs=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
@@ -58,7 +58,6 @@ stdenv.mkDerivation (finalAttrs: {
"platform" = "Linux";
"policy" = true;
};
}
''
RESOLVEURL=$(curl \
+16 -5
View File
@@ -2,28 +2,39 @@
lib,
rustPlatform,
fetchFromGitHub,
fetchpatch2,
}:
rustPlatform.buildRustPackage rec {
pname = "cargo-spellcheck";
version = "0.14.0";
version = "0.15.1";
src = fetchFromGitHub {
owner = "drahnr";
repo = pname;
rev = "v${version}";
hash = "sha256-NrtPV2bd9BuA1nnniIcth85gJQmFGy9LHdajqmW8j4Q=";
tag = "v${version}";
hash = "sha256-o4gvTF9Zb6bZ9443zos4bz37w3bXKumW2x425MM5/FY=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-1bOEOZ1byVm9apCqR9zgESsgA9Z9TdFSondwzwOPfWI=";
cargoHash = "sha256-wEcHMzeSj/JO/ZBPmQAiHaixtOTCT2+rTd1LDCY9wqc=";
patches = [
# fixes compilation of tests
# https://github.com/drahnr/cargo-spellcheck/pull/342
(fetchpatch2 {
name = "fix-test-compilation.patch";
url = "https://github.com/drahnr/cargo-spellcheck/pull/342/commits/aed8f3ca7a50fae38a5c6e0b974ed9773cd6c659.patch";
hash = "sha256-840t8uPg0EiiVppmMT38C1P16vps7F+g0o313tzghjE=";
})
];
nativeBuildInputs = [ rustPlatform.bindgenHook ];
preCheck = "HOME=$(mktemp -d)";
checkFlags = [
"--skip checker::hunspell::tests::hunspell_binding_is_sane"
"--skip=checker::hunspell::tests::hunspell_binding_is_sane"
];
meta = with lib; {
+36
View File
@@ -0,0 +1,36 @@
{
lib,
fetchCrate,
rustPlatform,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "changelogging";
version = "0.7.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-orTUCBHacD0MQNfhOUWdh9RxT/9YNvgfCHFDr2eNQic=";
};
cargoHash = "sha256-2uYNwKjD0vX+C2Sj2epyTqe4sMqPa7cwVwoUHs3vtQE=";
useFetchCargoVendor = true;
passthru.updateScript = nix-update-script { };
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
meta = {
description = "CLI tool for building changelogs from fragments";
homepage = "https://github.com/nekitdev/changelogging";
changelog = "https://github.com/nekitdev/changelogging/releases/tag/v${version}";
platforms = lib.platforms.all;
license = lib.licenses.mit;
maintainers = [ lib.maintainers.nekitdev ];
mainProgram = "changelogging";
};
}
+2 -2
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "crocoddyl";
version = "2.1.0";
version = "2.2.0";
src = fetchFromGitHub {
owner = "loco-3d";
repo = "crocoddyl";
rev = "v${finalAttrs.version}";
hash = "sha256-SVV9sleDXLm2QJmNgL25XLHC3y5bfKab4GSlE8jbT8w=";
hash = "sha256-j3TL5TpIdTkTO32Fuu+LyiieiXoOMvShi/LbBL5YYzA=";
};
outputs = [
+3 -3
View File
@@ -27,16 +27,16 @@ assert lib.assertMsg (lib.elem true [
rustPlatform.buildRustPackage rec {
pname = "diesel-cli";
version = "2.2.6";
version = "2.2.7";
src = fetchCrate {
inherit version;
crateName = "diesel_cli";
hash = "sha256-jKTQxlmpTlb0eITwNbnYfONknGhHsO/nzdup04ikEB0=";
hash = "sha256-0rmuOeWPczO5XRlpkeFC7FXMSnWSy5FBd9GpClA+i7c=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-mMXLivUWH5LIdFbAxgkha8oEYZFt0eUVCxtyPlBPpVI=";
cargoHash = "sha256-waX8wkbU8rXN183j0RDfszHKsLxQdq19UMwrqI8gBOY=";
nativeBuildInputs = [
installShellFiles
+5 -5
View File
@@ -171,11 +171,11 @@ let
linux = stdenv.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "132.0.6834.110";
version = "133.0.6943.53";
src = fetchurl {
url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
hash = "sha256-4mtVCiKXKnjmHlyYgnDneX9hOmYgafwZ230iFfH48Tc=";
hash = "sha256-73X2cohboI+GbFDk5ikjxnT1PKjG4UoyzhA9T9Qe9Vk=";
};
# With strictDeps on, some shebangs were not being patched correctly
@@ -274,11 +274,11 @@ let
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname meta passthru;
version = "132.0.6834.111";
version = "133.0.6943.54";
src = fetchurl {
url = "http://dl.google.com/release2/chrome/acuc7atz5smv6q4nvkuutofbz6uq_132.0.6834.111/GoogleChrome-132.0.6834.111.dmg";
hash = "sha256-kC4MA57eeapnzCgyBuLNq9NBTFdcECMtoNwMzWd0KEg=";
url = "http://dl.google.com/release2/chrome/acyg7rfg57oedifn3wrcxvaq5duq_133.0.6943.54/GoogleChrome-133.0.6943.54.dmg";
hash = "sha256-VkLjnKjAgj9Fg21jh9Xl56XDBmG0OUuDsnj93rQvJ40=";
};
dontPatch = true;
+40
View File
@@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "iwe";
version = "0.0.17";
src = fetchFromGitHub {
owner = "iwe-org";
repo = "iwe";
tag = "iwe-v${version}";
hash = "sha256-eE84KzYJTJ39UDQt3VZpSIba/P+7VFR9K6+MSMlg0Wc=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-K8RxVYHh0pStQyHMiLLeUakAoK1IMoUtCNg70/NfDiI=";
cargoBuildFlags = [
"--package=iwe"
"--package=iwes"
];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Personal knowledge management system (editor plugin & command line utility)";
homepage = "https://iwe.md/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ phrmendes ];
mainProgram = "iwe";
};
}
+2 -2
View File
@@ -5,10 +5,10 @@
let
pname = "jan";
version = "0.5.13";
version = "0.5.14";
src = fetchurl {
url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
hash = "sha256-QetnD+0SCzn5Zx5v1EJNjhx8U9ueHdp+zZu/Yf77AdY=";
hash = "sha256-NYTOuoFpeqj6aCclkM0hzYQ3esjbI9g0vMHrZXpaOq0=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
+2 -2
View File
@@ -19,13 +19,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lock";
version = "1.3.9";
version = "1.4.1";
src = fetchFromGitHub {
owner = "konstantintutsch";
repo = "Lock";
tag = "v${finalAttrs.version}";
hash = "sha256-aRXwRJ4FTdIef1UHBJ9877d86uxm5GHML//IqOGEGXs=";
hash = "sha256-DTq3hJVWoLnosjN5XWUNaQCdXut4nqGeD6XutzBAKa8=";
};
strictDeps = true;
+37
View File
@@ -0,0 +1,37 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "mmtui";
version = "0.1.1";
src = fetchFromGitHub {
owner = "SL-RU";
repo = "mmtui";
tag = "v${version}";
hash = "sha256-s+50kz6OODZ0xKz8oNF2YEzk+mLZ6gXXynl8g6Uwdo4=";
};
cargoHash = "sha256-9F1YMepkWksTQRrkziNhLxVJnhoDH17lSKef5kOjp3Y=";
useFetchCargoVendor = true;
nativeBuildInputs = [
rustPlatform.bindgenHook
];
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/SL-RU/mmtui/releases/tag/v${version}";
description = "TUI disk mount manager for TUI file managers";
homepage = "https://github.com/SL-RU/mmtui";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ grimmauld ];
mainProgram = "mmtui";
platforms = lib.platforms.linux;
};
}
+6 -3
View File
@@ -6,17 +6,18 @@
python3Packages.buildPythonApplication rec {
pname = "oterm";
version = "0.7.3";
version = "0.8.3";
pyproject = true;
src = fetchFromGitHub {
owner = "ggozad";
repo = "oterm";
tag = version;
hash = "sha256-COIvnn6qDG9srv4ByWTBoRHfIva3a2dLS+yIZDguo+M=";
hash = "sha256-QIvnGU1BHKsJ/UMcS9zS2v9rn51wKoXvx50rGBIAzm4=";
};
pythonRelaxDeps = [
"aiosql"
"aiosqlite"
"httpx"
"ollama"
@@ -33,6 +34,7 @@ python3Packages.buildPythonApplication rec {
aiosql
aiosqlite
httpx
mcp
ollama
packaging
pillow
@@ -40,6 +42,7 @@ python3Packages.buildPythonApplication rec {
python-dotenv
rich-pixels
textual
textualeffects
typer
];
@@ -53,7 +56,7 @@ python3Packages.buildPythonApplication rec {
homepage = "https://github.com/ggozad/oterm";
changelog = "https://github.com/ggozad/oterm/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ suhr ];
maintainers = with lib.maintainers; [ gaelj ];
mainProgram = "oterm";
};
}
+2 -2
View File
@@ -34,7 +34,7 @@ in
python3Packages.buildPythonApplication rec {
pname = "refine";
version = "0.4.3";
version = "0.4.4";
pyproject = false; # uses meson
src = fetchFromGitLab {
@@ -42,7 +42,7 @@ python3Packages.buildPythonApplication rec {
owner = "TheEvilSkeleton";
repo = "Refine";
tag = version;
hash = "sha256-WFajNhTXFqZUYLXumcnDM2pfmKye8p7h6L+BS1orEgs=";
hash = "sha256-39fbUJpNON0aALT/pb18/m9hStue4TxkrAsHymEpy5I=";
};
nativeBuildInputs = [
+5
View File
@@ -23,6 +23,11 @@ stdenv.mkDerivation (finalAttrs: {
# c.f https://github.com/Shark-ML/Shark/commit/221c1f2e8abfffadbf3c5ef7cf324bc6dc9b4315
patches = [ ./shark-2-ext-num-literals-all.diff ];
# Remove explicitly setting C++11, because boost::math headers need C++14 since Boost187.
postPatch = ''
sed -i '/CXX_STANDARD/d' src/CMakeLists.txt
'';
# https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/blob/develop/SuperBuild/CMake/External_shark.cmake?ref_type=heads
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
+5
View File
@@ -64,6 +64,11 @@ stdenv.mkDerivation rec {
patchShebangs data/meson_compile_gschema.py
'';
postInstall = ''
mkdir -p $out/share/icons/hicolor/scalable/actions/
install -m 444 ../data/icons/scalable/actions/* $out/share/icons/hicolor/scalable/actions/
'';
doCheck = true;
passthru = {
@@ -15,7 +15,7 @@
readosm,
sqlite,
testers,
spatialite_tools,
spatialite-tools,
}:
stdenv.mkDerivation rec {
@@ -53,21 +53,21 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
passthru.tests.version = testers.testVersion {
package = spatialite_tools;
package = spatialite-tools;
command = "! spatialite_tool --version";
version = "${libspatialite.version}";
};
meta = with lib; {
meta = {
description = "Complete sqlite3-compatible CLI front-end for libspatialite";
homepage = "https://www.gaia-gis.it/fossil/spatialite-tools";
license = with licenses; [
license = with lib.licenses; [
mpl11
gpl2Plus
lgpl21Plus
];
platforms = platforms.unix;
maintainers = with maintainers; [ dotlambda ];
platforms = lib.platforms.unix;
maintainers = lib.teams.geospatial.members ++ (with lib.maintainers; [ dotlambda ]);
mainProgram = "spatialite_tool";
};
}
+2 -2
View File
@@ -11,13 +11,13 @@
}:
stdenv.mkDerivation rec {
pname = "sqlitestudio";
version = "3.4.15";
version = "3.4.16";
src = fetchFromGitHub {
owner = "pawelsalawa";
repo = "sqlitestudio";
rev = version;
hash = "sha256-wMkTvw0zGl01511udpk3zZQygVWkmYp1QB+HsghWzNg=";
hash = "sha256-N+WizF7R23GUtCBvGggoONag5F53ugKHaxWP67i7hO8=";
};
nativeBuildInputs =
@@ -9,17 +9,17 @@
rustPlatform.buildRustPackage rec {
pname = "static-web-server";
version = "2.35.0";
version = "2.36.0";
src = fetchFromGitHub {
owner = "static-web-server";
repo = pname;
rev = "v${version}";
hash = "sha256-vrv/qCn57wO3no3ASgaJFAhTjFyW5M4kZkfpgkpYYhY=";
hash = "sha256-TE0V9Ai7lLb1TBtusDV+ACuPO8/1VUjeVZzA4XoL3VQ=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-i+x8Box4gz79qnrcI2XXkSZ3u3h5qHKwJhOBc+Lx+Nw=";
cargoHash = "sha256-uGEn+UvHse4tGOAQGzEoFpJxqbXM0u4IrXmMVgKz8z4=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+69
View File
@@ -0,0 +1,69 @@
{
stdenvNoCC,
lib,
fetchFromGitHub,
unstableGitUpdater,
bash,
coreutils,
dosfstools,
makeWrapper,
mtools,
wget,
which,
xz,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ubports-pdk";
version = "0-unstable-2024-08-28";
src = fetchFromGitHub {
owner = "ubports";
repo = "ubports-pdk";
rev = "ce16915f1ec2aa54bc0f010db7603fbb0deebf4b";
hash = "sha256-jxlia3RgH3DAUO5OK3jB4IH0vUoG2XZKmODq4VhwJFE=";
};
strictDeps = true;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
bash
coreutils
dosfstools
mtools
wget
which
xz
];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 ubuntu-touch-pdk $out/share/ubuntu-touch-pdk/ubuntu-touch-pdk
cp -R scripts $out/share/ubuntu-touch-pdk/
makeWrapper $out/share/ubuntu-touch-pdk/ubuntu-touch-pdk $out/bin/ubuntu-touch-pdk \
--prefix PATH : ${lib.makeBinPath finalAttrs.finalPackage.buildInputs}
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Platform Development Kit for Ubuntu Touch";
homepage = "https://github.com/ubports/ubports-pdk";
license = lib.licenses.gpl3Only;
mainProgram = "ubuntu-touch-pdk";
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.unix;
# setup wants to use brew to install extra prerequisites
broken = stdenvNoCC.hostPlatform.isDarwin;
};
})
+3 -3
View File
@@ -96,7 +96,7 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "zed-editor";
version = "0.172.10";
version = "0.172.11";
outputs = [ "out" ] ++ lib.optional buildRemoteServer "remote_server";
@@ -104,7 +104,7 @@ rustPlatform.buildRustPackage rec {
owner = "zed-industries";
repo = "zed";
tag = "v${version}";
hash = "sha256-4R7s+575ofL9JK1Axvvk2Z9QgHPxvJrgl9zCv3m+sZY=";
hash = "sha256-ozPARaFIPJZHsxB9e9c12nVuV/jGBRBXQJ1M+/luExY=";
};
patches = [
@@ -124,7 +124,7 @@ rustPlatform.buildRustPackage rec {
'';
useFetchCargoVendor = true;
cargoHash = "sha256-yzShyOn90U79Ts+sKLhAK6SYiqPX7MKT/9fgF2plgI4=";
cargoHash = "sha256-3xpsTAj4jrttMZIbZCZc2Qf7g3Q4B6FBSUYEHf0u2+w=";
nativeBuildInputs =
[
@@ -0,0 +1,24 @@
From b83e6354de099860bcb1ca3876c222c57de89f0c Mon Sep 17 00:00:00 2001
From: Michael Hoang <enzime@users.noreply.github.com>
Date: Mon, 10 Feb 2025 18:03:12 +0700
Subject: [PATCH] rustfsm: remove unsupported `lints.workspace`
This patch will no longer be necessary when
https://github.com/NixOS/nixpkgs/pull/300532 is merged
---
fsm/Cargo.toml | 2 --
1 file changed, 2 deletions(-)
diff --git a/fsm/Cargo.toml b/fsm/Cargo.toml
index 5e9e1c9..3fda704 100644
--- a/fsm/Cargo.toml
+++ b/fsm/Cargo.toml
@@ -17,5 +17,3 @@ rustfsm_trait = { version = "0.1", path = "rustfsm_trait" }
[package.metadata.workspaces]
independent = true
-[lints]
-workspace = true
--
2.46.0
File diff suppressed because it is too large Load Diff
+24 -31
View File
@@ -18,45 +18,46 @@
let
pname = "zerotierone";
version = "1.14.0";
version = "1.14.2";
src = fetchFromGitHub {
owner = "zerotier";
repo = "ZeroTierOne";
rev = version;
hash = "sha256-YWcqALUB3ZEukL4er2FKcyNdEbuaf//QU5hRbKAfxDA=";
tag = version;
hash = "sha256-D+7/ja5uYzH1iNd+Ti3k+dWOf5GvN4U+GuVBA9gxtTc=";
};
in
stdenv.mkDerivation {
inherit pname version src;
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"jwt-0.16.0" = "sha256-P5aJnNlcLe9sBtXZzfqHdRvxNfm6DPBcfcKOVeLZxcM=";
"rustfsm-0.1.0" = "sha256-q7J9QgN67iuoNhQC8SDVzUkjCNRXGiNCkE8OsQc5+oI=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
sourceRoot = "source/rustybits";
hash = "sha256-CSpm4zBWKhcrM/KXGU6/51NSQ6hzpT44D2J+QETBtpQ=";
# REMOVEME when https://github.com/NixOS/nixpkgs/pull/300532 is merged
postBuild = ''
pushd $out/git/730aadcc02767ae630e88f8f8c788a85d6bc81e6
patch --verbose -p1 <${./0001-rustfsm-remove-unsupported-lints.workspace.patch}
popd
'';
};
patches = [
# https://github.com/zerotier/ZeroTierOne/pull/2314
(fetchpatch {
url = "https://github.com/zerotier/ZeroTierOne/commit/f9c6ee0181acb1b77605d9a4e4106ac79aaacca3.patch";
hash = "sha256-zw7KmaxiCH99Y0wQtOQM4u0ruxiePhvv/birxMQioJU=";
})
./0001-darwin-disable-link-time-optimization.patch
# https://github.com/zerotier/ZeroTierOne/pull/2435
(fetchpatch {
url = "https://github.com/zerotier/ZeroTierOne/commit/8f56d484b681ea30cd28e19cab34499acfa6e64d.patch";
hash = "sha256-UplkX2O4o8XKKTlR3ZsSG9E0y5gVhAagyepqwyGEYmA=";
})
];
postPatch = ''
cp ${./Cargo.lock} Cargo.lock
cp ${./Cargo.lock} rustybits/Cargo.lock
cp rustybits/Cargo.lock Cargo.lock
'';
preConfigure = ''
cmp ./Cargo.lock ./rustybits/Cargo.lock || {
echo 1>&2 "Please make sure that the derivation's Cargo.lock is identical to ./rustybits/Cargo.lock!"
exit 1
}
patchShebangs ./doc/build.sh
substituteInPlace ./doc/build.sh \
--replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
@@ -94,20 +95,12 @@ stdenv.mkDerivation {
preBuild =
if stdenv.hostPlatform.isDarwin then
''
makeFlagsArray+=("ARCH_FLAGS=") # disable multi-arch build
# building multiple architectures at the same time from nixpkgs is not supported
makeFlagsArray+=("ARCH=${stdenv.hostPlatform.darwinArch}")
if ! grep -q MACOS_VERSION_MIN=10.13 make-mac.mk; then
echo "You may need to update MACOSX_DEPLOYMENT_TARGET to match the value in make-mac.mk"
exit 1
fi
(cd rustybits && MACOSX_DEPLOYMENT_TARGET=10.13 cargo build -p zeroidc --release)
cp \
./rustybits/target/${stdenv.hostPlatform.rust.rustcTarget}/release/libzeroidc.a \
./rustybits/target
# zerotier uses the "FORCE" target as a phony target to force rebuilds.
# We don't want to rebuild libzeroidc.a as we build want to build this library ourself for a single architecture
touch FORCE
''
else
''
@@ -0,0 +1,124 @@
{
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
nixosTests,
cmake,
gettext,
gst_all_1,
libusermetrics,
lomiri-content-hub,
lomiri-thumbnailer,
lomiri-ui-toolkit,
qtbase,
qtdeclarative,
qtmultimedia,
qtsystems,
wrapGAppsHook3,
wrapQtAppsHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-music-app";
version = "3.2.2";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/apps/lomiri-music-app";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-tHCbZF+7i/gYs8WqM5jDBhhKmM4ZeUbG3DYBdQAiUT8=";
};
patches = [
# Remove when version > 3.2.2
(fetchpatch {
name = "0001-lomiri-music-app-Fix-GNUInstallDirs-usage.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-music-app/-/commit/32591f2332aa204b9ee2857992e50594db0e6ff2.patch";
hash = "sha256-SXn+7jItzi1Q0xK0iK57+W3SpEdSCx1dKSfeghOCePg=";
})
# Remove when version > 3.2.2
(fetchpatch {
name = "0002-lomiri-music-app-bindtextdomain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-music-app/-/commit/4e950521a67e201f3d02b3b71c6bb1ddce8ef2b2.patch";
hash = "sha256-HgGKk44FU+IXRVx2NK3iGSo/wPJce1T2k/vP8nZtewQ=";
})
];
postPatch = ''
# We don't want absolute paths in desktop files
substituteInPlace CMakeLists.txt \
--replace-fail 'ICON ''${DATA_DIR}/''${ICON_FILE}' 'ICON lomiri-music-app' \
--replace-fail 'SPLASH ''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-music-app.svg'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
gettext
wrapGAppsHook3
wrapQtAppsHook
];
buildInputs =
[
qtbase
qtdeclarative
# QML
libusermetrics
lomiri-content-hub
lomiri-thumbnailer
lomiri-ui-toolkit
qtmultimedia
qtsystems
]
# QtMultimedia playback support
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
]);
dontWrapGApps = true;
cmakeFlags = [
(lib.cmakeBool "CLICK_MODE" false)
(lib.cmakeBool "INSTALL_TESTS" false)
];
# Only autopilot tests
doCheck = false;
postInstall = ''
mkdir -p $out/share/{icons/hicolor/scalable/apps,lomiri-app-launch/splash}
ln -s $out/share/{lomiri-music-app/app/graphics/music-app.svg,icons/hicolor/scalable/apps/lomiri-music-app.svg}
ln -s $out/share/{lomiri-music-app/app/graphics/music-app-splash.svg,lomiri-app-launch/splash/lomiri-music-app.svg}
'';
preFixup = ''
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
passthru = {
tests.vm = nixosTests.lomiri-music-app;
updateScript = gitUpdater { };
};
meta = {
description = "Default Music application for Ubuntu devices";
homepage = "https://gitlab.com/ubports/development/apps/lomiri-music-app";
changelog = "https://gitlab.com/ubports/development/apps/lomiri-music-app/-/blob/v${finalAttrs.version}/ChangeLog";
license = with lib.licenses; [
gpl3Only
];
mainProgram = "lomiri-music-app";
maintainers = lib.teams.lomiri.members;
platforms = lib.platforms.linux;
};
})
@@ -61,7 +61,12 @@ stdenv.mkDerivation (finalAttrs: {
];
passthru = {
tests.vm-test = nixosTests.terminal-emulators.lomiri-terminal-app;
tests = {
# The way the test works sometimes causes segfaults in qtfeedback
# https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/issues/117
# vm-test = nixosTests.terminal-emulators.lomiri-terminal-app;
inherit (nixosTests.lomiri) desktop-basics desktop-appinteractions;
};
updateScript = gitUpdater {
rev-prefix = "v";
};
@@ -13,6 +13,7 @@
makeWrapper,
pkg-config,
systemd,
xdg-user-dirs,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
@@ -34,6 +35,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
substituteInPlace systemd/CMakeLists.txt \
--replace-fail 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir)' 'pkg_get_variable(SYSTEMD_USER_DIR systemd systemduserunitdir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})'
# Inject a call to xdg-user-dirs-update, so when mediascanner2 launches, it can actually scan for files
substituteInPlace desktop/dm-lomiri-session.in \
--replace-fail '@CMAKE_INSTALL_FULL_LIBEXECDIR@/lomiri-session/run-systemd-session' '${lib.getExe' xdg-user-dirs "xdg-user-dirs-update"} && @CMAKE_INSTALL_FULL_LIBEXECDIR@/lomiri-session/run-systemd-session'
'';
nativeBuildInputs = [
+1
View File
@@ -21,6 +21,7 @@ let
lomiri-filemanager-app = callPackage ./applications/lomiri-filemanager-app { };
lomiri-gallery-app = callPackage ./applications/lomiri-gallery-app { };
lomiri-mediaplayer-app = callPackage ./applications/lomiri-mediaplayer-app { };
lomiri-music-app = callPackage ./applications/lomiri-music-app { };
lomiri-system-settings-unwrapped = callPackage ./applications/lomiri-system-settings { };
lomiri-system-settings = callPackage ./applications/lomiri-system-settings/wrapper.nix { };
lomiri-terminal-app = callPackage ./applications/lomiri-terminal-app { };
@@ -176,7 +176,11 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
tests = {
# gallery app delegates to thumbnailer, tests various formats
vm = nixosTests.lomiri-gallery-app;
gallery-app = nixosTests.lomiri-gallery-app;
# music app relies on thumbnailer to extract embedded cover art
music-app = nixosTests.lomiri-music-app;
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
updateScript = gitUpdater { };
@@ -2,7 +2,9 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
nixosTests,
testers,
# dbus-cpp not compatible with Boost 1.87
# https://gitlab.com/ubports/development/core/lib-cpp/dbus-cpp/-/issues/8
@@ -44,6 +46,14 @@ stdenv.mkDerivation (finalAttrs: {
"dev"
];
patches = [
(fetchpatch {
name = "0001-mediascanner2-scannerdaemon-Drop-desktop-and-MEDIASCANNER_RUN-check.patch";
url = "https://gitlab.com/ubports/development/core/mediascanner2/-/commit/1e65b32e32a0536b9e2f283ba563fa78b6ef6d61.patch";
hash = "sha256-Xhm5+/E/pP+mn+4enqdsor1oRqfYTzabg1ODVfIhra4=";
})
];
postPatch = ''
substituteInPlace src/qml/MediaScanner.*/CMakeLists.txt \
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
@@ -101,7 +111,12 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
tests = {
# music app needs mediascanner to work properly, so it can find files
music-app = nixosTests.lomiri-music-app;
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
updateScript = gitUpdater { };
};
@@ -105,6 +105,9 @@ stdenv.mkDerivation {
touch $HOME/.cabal/config
cd lib/boot
export EM_CACHE="$HOME/.emscriptencache"
mkdir -p "$EM_CACHE"
mkdir -p $out/bin
mkdir -p $out/lib/${bootGhcjs.name}
lndir ${bootGhcjs}/bin $out/bin
@@ -54,9 +54,10 @@ stdenv.mkDerivation (rec {
src = src';
inherit patches;
# LLDB expects to find the path to `bin` relative to `lib` on Darwin. It cant be patched with the location of
# the `lib` output because that would create a cycle between it and the `out` output.
outputs = [ "out" "dev" ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ "lib" ];
# There is no `lib` output because some of the files in `$out/lib` depend on files in `$out/bin`.
# For example, `$out/lib/python3.12/site-packages/lldb/lldb-argdumper` is a symlink to `$out/bin/lldb-argdumper`.
# Also, LLDB expects to find the path to `bin` relative to `lib` on Darwin.
outputs = [ "out" "dev" ];
sourceRoot = lib.optional (lib.versionAtLeast release_version "13") "${src.name}/${pname}";
@@ -140,7 +141,7 @@ stdenv.mkDerivation (rec {
'';
postInstall = ''
wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/
wrapProgram $out/bin/lldb --prefix PYTHONPATH : ''${!outputLib}/${python3.sitePackages}/
# Editor support
# vscode:
+3 -3
View File
@@ -32,9 +32,9 @@ let
"19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I=";
"20.1.0-rc1".officialRelease.sha256 = "sha256-yOczbperlR20+iLoao9g0CR+Ml2mjTCx1cqP/9WOhME=";
"21.0.0-git".gitRelease = {
rev = "312055d1da169f043e65b35fcd62d6d685700114";
rev-version = "21.0.0-unstable-2025-02-01";
sha256 = "sha256-V14ypUGn7GxzchmKjoSH2oiHDUQa07b4bQWjjRpQKCo=";
rev = "c9f1d2cbf18990311ea1287cc154e3784a10a3b0";
rev-version = "21.0.0-unstable-2025-02-10";
sha256 = "sha256-ggH32zM85geN0c0LPLBv7VAObi67AxPlTJ4YgbT4s7M=";
};
} // llvmVersions;
@@ -0,0 +1,27 @@
#lang racket/base
(require
racket/function
racket/list
racket/pretty
racket/string
setup/dirs
)
(define config-file (build-path (find-config-dir) "config.rktd"))
(define lib-paths
((compose remove-duplicates
(curry map (curryr string-trim "-L" #:right? #f))
(curry filter (curryr string-prefix? "-L"))
string-split)
(getenv "NIX_LDFLAGS")))
(define config
(let* ([prev-config (read-installation-configuration-table)]
[prev-lib-search-dirs (hash-ref prev-config 'lib-search-dirs '(#f))]
[lib-search-dirs (remove-duplicates (append lib-paths prev-lib-search-dirs))])
(hash-set prev-config 'lib-search-dirs lib-search-dirs)))
(call-with-output-file config-file
#:exists 'replace
(curry pretty-write config))
+61 -193
View File
@@ -2,14 +2,7 @@
lib,
stdenv,
fetchurl,
libiconvReal,
libz,
lz4,
ncurses,
openssl,
isMinimal ? false,
racket-minimal,
cairo,
fontconfig,
@@ -22,17 +15,17 @@
libpng,
makeFontsConf,
pango,
sqlite,
unixODBC,
wrapGAppsHook3,
disableDocs ? false,
callPackage,
writers,
}:
let
minimal = racket-minimal.override { inherit disableDocs; };
makeLibPaths = lib.concatMapStringsSep " " (
lib.flip lib.pipe [
lib.getLib
@@ -41,100 +34,46 @@ let
);
manifest = lib.importJSON ./manifest.json;
inherit (stdenv.hostPlatform) isDarwin isStatic;
runtimeDeps = [ openssl ];
mainDistDeps = [
(if isDarwin then libiodbc else unixODBC)
cairo
fontconfig
glib
gtk3
libGL
libjpeg
libpng
pango
sqlite
];
inherit (stdenv.hostPlatform) isDarwin;
in
stdenv.mkDerivation (finalAttrs: {
pname = "racket";
inherit (manifest) version;
src =
let
info = manifest.${if isMinimal then "minimal" else "full"};
in
fetchurl {
url = "https://mirror.racket-lang.org/installers/${manifest.version}/${info.filename}";
inherit (info) sha256;
minimal.overrideAttrs (
finalAttrs: prevAttrs: {
src = fetchurl {
url = "https://mirror.racket-lang.org/installers/${manifest.version}/${manifest.full.filename}";
inherit (manifest.full) sha256;
};
nativeBuildInputs = lib.optionals (!isMinimal) [
wrapGAppsHook3
];
buildInputs = [
libiconvReal
libz
lz4
ncurses
];
patches = lib.optionals isDarwin [
/*
The entry point binary $out/bin/racket is codesigned at least once. The
following error is triggered as a result.
(error 'add-ad-hoc-signature "file already has a signature")
We always remove the existing signature then call add-ad-hoc-signature to
circumvent this error.
*/
./patches/force-remove-codesign-then-add.patch
];
preConfigure =
/*
The configure script forces using `libtool -o` as AR on Darwin. But, the
`-o` option is only available from Apple libtool. GNU ar works here.
*/
lib.optionalString isDarwin ''
substituteInPlace src/ChezScheme/zlib/configure \
--replace-fail 'ARFLAGS="-o"' 'AR=ar; ARFLAGS="rc"'
''
+ ''
mkdir src/build
cd src/build
'';
configureScript = "../configure";
configureFlags =
[
"--enable-check"
"--enable-csonly"
"--enable-liblz4"
"--enable-libz"
]
++ lib.optional disableDocs "--disable-docs"
++ lib.optionals (!isStatic) [
# instead of `--disable-static` that `stdenv` assumes
"--disable-libs"
# "not currently supported" in `configure --help-cs` but still emphasized in README
"--enable-shared"
]
++ lib.optionals isDarwin [
"--disable-strip"
# "use Unix style (e.g., use Gtk) for Mac OS", which eliminates many problems
"--enable-xonx"
buildInputs = prevAttrs.buildInputs ++ [
(if isDarwin then libiodbc else unixODBC)
cairo
fontconfig.lib
glib
gtk3
libGL
libjpeg
libpng
pango
];
preBuild =
let
libPaths = makeLibPaths mainDistDeps;
libPathsVar = if isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" else "LD_LIBRARY_PATH";
in
lib.optionalString (!isMinimal) (
nativeBuildInputs = [
wrapGAppsHook3
];
patches = prevAttrs.patches or [ ] ++ [
/*
Hardcode variant detection because nixpkgs wraps the Racket binary making it
fail to detect its variant at runtime.
https://github.com/NixOS/nixpkgs/issues/114993#issuecomment-812951247
*/
./patches/force-cs-variant.patch
];
preBuild =
let
libPaths = makeLibPaths finalAttrs.buildInputs;
libPathsVar = if isDarwin then "DYLD_FALLBACK_LIBRARY_PATH" else "LD_LIBRARY_PATH";
in
/*
Makes FFIs available for setting up `main-distribution` and its
dependencies, which is integrated into the build process of Racket
@@ -148,81 +87,29 @@ stdenv.mkDerivation (finalAttrs: {
+ ''
export FONTCONFIG_FILE=${makeFontsConf { fontDirectories = [ ]; }}
export XDG_CACHE_HOME=$(mktemp -d)
''
);
'';
dontStrip = isDarwin;
preFixup = lib.optionalString (!isMinimal && !isDarwin) ''
gappsWrapperArgs+=("--set" "LOCALE_ARCHIVE" "${glibcLocales}/lib/locale/locale-archive")
'';
postFixup =
let
libPaths = makeLibPaths (runtimeDeps ++ lib.optionals (!isMinimal) mainDistDeps);
in
''
$out/bin/racket -f - <<EOF
(require setup/dirs)
(define config-path (build-path (find-config-dir) "config.rktd"))
(define prev-config (with-input-from-file config-path read))
(define prev-lib-search-dirs (hash-ref prev-config 'lib-search-dirs '(#f)))
(define lib-search-dirs (append '(${libPaths}) prev-lib-search-dirs))
(define config (hash-set prev-config 'lib-search-dirs lib-search-dirs))
(with-output-to-file config-path (thunk (pretty-write config))
#:exists 'replace)
EOF
preFixup = lib.optionalString (!isDarwin) ''
gappsWrapperArgs+=("--set" "LOCALE_ARCHIVE" "${glibcLocales}/lib/locale/locale-archive")
'';
passthru = {
# Functionalities #
updateScript = {
command = ./update.py;
attrPath = "racket";
supportedFeatures = [ "commit" ];
};
writeScript =
nameOrPath:
{
libraries ? [ ],
...
}@config:
assert lib.assertMsg (libraries == [ ]) "library integration for Racket has not been implemented";
writers.makeScriptWriter (
builtins.removeAttrs config [ "libraries" ]
// {
interpreter = "${lib.getExe finalAttrs.finalPackage}";
}
) nameOrPath;
writeScriptBin = name: finalAttrs.passthru.writeScript "/bin/${name}";
passthru =
let
notUpdated = x: !builtins.isAttrs x || lib.isDerivation x;
stopPred =
_: lhs: rhs:
notUpdated lhs || notUpdated rhs;
in
lib.recursiveUpdateUntil stopPred prevAttrs.passthru {
tests = builtins.mapAttrs (name: path: callPackage path { racket = finalAttrs.finalPackage; }) {
## `main-distribution` ##
draw-crossing = ./tests/draw-crossing.nix;
};
};
# Tests #
tests = builtins.mapAttrs (name: path: callPackage path { racket = finalAttrs.finalPackage; }) (
{
## Basic ##
write-greeting = ./tests/write-greeting.nix;
get-version-and-variant = ./tests/get-version-and-variant.nix;
load-openssl = ./tests/load-openssl.nix;
## Nixpkgs supports ##
nix-write-script = ./tests/nix-write-script.nix;
}
// lib.optionalAttrs (!isMinimal) {
## `main-distribution` ##
draw-crossing = ./tests/draw-crossing.nix;
}
);
};
meta = {
description =
"Programmable programming language" + lib.optionalString isMinimal " (minimal distribution)";
longDescription =
''
meta = prevAttrs.meta // {
description = "Programmable programming language";
longDescription = ''
Racket is a full-spectrum programming language. It goes beyond
Lisp and Scheme with dialects that support objects, types,
laziness, and more. Racket enables programmers to link
@@ -230,28 +117,9 @@ stdenv.mkDerivation (finalAttrs: {
programmers to create new, project-specific dialects. Racket's
libraries support applications from web servers and databases to
GUIs and charts.
''
+ lib.optionalString isMinimal ''
This minimal distribution includes just enough of Racket that you can
use `raco pkg` to install more.
'';
homepage = "https://racket-lang.org/";
changelog = "https://github.com/racket/racket/releases/tag/v${finalAttrs.version}";
/*
> Racket is distributed under the MIT license and the Apache version 2.0
> license, at your option.
> The Racket runtime system embeds Chez Scheme, which is distributed
> under the Apache version 2.0 license.
*/
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [ rc-zb ];
mainProgram = "racket";
platforms = lib.platforms.${if isMinimal then "all" else "unix"};
badPlatforms = lib.platforms.darwin;
};
})
platforms = lib.platforms.unix;
badPlatforms = lib.platforms.darwin;
};
}
)
@@ -0,0 +1,169 @@
{
lib,
stdenv,
fetchurl,
libiconvReal,
libz,
lz4,
ncurses,
openssl,
sqlite,
disableDocs ? false,
callPackage,
writers,
}:
let
manifest = lib.importJSON ./manifest.json;
inherit (stdenv.hostPlatform) isDarwin isStatic;
in
stdenv.mkDerivation (finalAttrs: {
pname = "racket";
inherit (manifest) version;
src = fetchurl {
url = "https://mirror.racket-lang.org/installers/${manifest.version}/${manifest.minimal.filename}";
inherit (manifest.minimal) sha256;
};
buildInputs = [
libiconvReal
libz
lz4
ncurses
openssl
sqlite.out
];
patches = lib.optionals isDarwin [
/*
The entry point binary $out/bin/racket is codesigned at least once. The
following error is triggered as a result.
(error 'add-ad-hoc-signature "file already has a signature")
We always remove the existing signature then call add-ad-hoc-signature to
circumvent this error.
*/
./patches/force-remove-codesign-then-add.patch
];
preConfigure =
/*
The configure script forces using `libtool -o` as AR on Darwin. But, the
`-o` option is only available from Apple libtool. GNU ar works here.
*/
lib.optionalString isDarwin ''
substituteInPlace src/ChezScheme/zlib/configure \
--replace-fail 'ARFLAGS="-o"' 'AR=ar; ARFLAGS="rc"'
''
+ ''
mkdir src/build
cd src/build
'';
configureScript = "../configure";
configureFlags =
[
"--enable-check"
"--enable-csonly"
"--enable-liblz4"
"--enable-libz"
]
++ lib.optional disableDocs "--disable-docs"
++ lib.optionals (!isStatic) [
# instead of `--disable-static` that `stdenv` assumes
"--disable-libs"
# "not currently supported" in `configure --help-cs` but still emphasized in README
"--enable-shared"
]
++ lib.optionals isDarwin [
"--disable-strip"
# "use Unix style (e.g., use Gtk) for Mac OS", which eliminates many problems
"--enable-xonx"
];
dontStrip = isDarwin;
postFixup =
let
configureInstallation = builtins.path {
name = "configure-installation.rkt";
path = ./configure-installation.rkt;
};
in
''
$out/bin/racket -U -u ${configureInstallation}
'';
passthru = {
# Functionalities #
updateScript = {
command = ./update.py;
attrPath = "racket";
supportedFeatures = [ "commit" ];
};
writeScript =
nameOrPath:
{
libraries ? [ ],
...
}@config:
assert lib.assertMsg (libraries == [ ]) "library integration for Racket has not been implemented";
writers.makeScriptWriter (
builtins.removeAttrs config [ "libraries" ]
// {
interpreter = "${lib.getExe finalAttrs.finalPackage}";
}
) nameOrPath;
writeScriptBin = name: finalAttrs.passthru.writeScript "/bin/${name}";
# Tests #
tests = builtins.mapAttrs (name: path: callPackage path { racket = finalAttrs.finalPackage; }) {
## Basic ##
write-greeting = ./tests/write-greeting.nix;
get-version-and-variant = ./tests/get-version-and-variant.nix;
load-openssl = ./tests/load-openssl.nix;
## Nixpkgs supports ##
nix-write-script = ./tests/nix-write-script.nix;
};
};
meta = {
description = "Programmable programming language (minimal distribution)";
longDescription = ''
Racket is a full-spectrum programming language. It goes beyond
Lisp and Scheme with dialects that support objects, types,
laziness, and more. Racket enables programmers to link
components written in different dialects, and it empowers
programmers to create new, project-specific dialects. Racket's
libraries support applications from web servers and databases to
GUIs and charts.
This minimal distribution includes just enough of Racket that you can
use `raco pkg` to install more.
'';
homepage = "https://racket-lang.org/";
changelog = "https://github.com/racket/racket/releases/tag/v${finalAttrs.version}";
/*
> Racket is distributed under the MIT license and the Apache version 2.0
> license, at your option.
> The Racket runtime system embeds Chez Scheme, which is distributed
> under the Apache version 2.0 license.
*/
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [ rc-zb ];
mainProgram = "racket";
platforms = lib.platforms.all;
badPlatforms = lib.platforms.darwin;
};
})
@@ -0,0 +1,12 @@
--- old/collects/setup/variant.rkt
+++ new/collects/setup/variant.rkt
@@ -7,7 +7,8 @@
(provide variant-suffix
script-variant?)
-(define plain-variant
+(define plain-variant 'cs)
+#;(define plain-variant
(delay/sync
(cond
[(cross-installation?)
@@ -1,27 +1,45 @@
{ runCommandLocal, racket }:
{
lib,
runCommandLocal,
racket,
}:
runCommandLocal "racket-test-get-version-and-variant"
{
nativeBuildInputs = [ racket ];
}
''
expectation="${racket.version}"
(
lib.concatLines (
builtins.map
(
{ expectation, output }:
''
expectation="${expectation}"
output="$(racket -e '(display (version))')"
output="${output}"
if test "$output" != "$expectation"; then
echo "output mismatch: expected ''${expectation}, but got ''${output}"
exit 1
fi
expectation="cs"
output="$(racket -e '(require launcher/launcher) (display (current-launcher-variant))')"
if test "$output" != "$expectation"; then
echo "output mismatch: expected ''${expectation}, but got ''${output}"
exit 1
fi
touch $out
''
if test "$output" != "$expectation"; then
echo "output mismatch: expected ''${expectation}, but got ''${output}"
exit 1
fi
''
)
[
{
expectation = racket.version;
output = "$(racket -e '(display (version))')";
}
{
expectation = "cs";
output = "$(racket -e '(require launcher/launcher) (display (current-launcher-variant))')";
}
{
expectation = "${lib.getExe racket}";
output = "$(racket -e '(require compiler/find-exe) (display (find-exe))')";
}
]
)
+ ''
touch $out
''
)
@@ -9,13 +9,13 @@ let
params =
if lib.versionAtLeast ocaml.version "4.08" then
{
version = "1.3.3";
sha256 = "sha256:05n4mm1yz33h9gw811ivjw7x4m26lpmf7kns9lza4v6227lwmz7a";
version = "1.3.4";
hash = "sha256-Hb8FHp9oV03ebi4lSma5xSTKQl6As26Zr5btlkq2EMM=";
}
else
{
version = "1.3.2";
sha256 = "sha256:09hrikx310pac2sb6jzaa7k6fmiznnmhdsqij1gawdymhawc4h1l";
hash = "sha256-NEDCuILVN65ekBHrBqu1P1Zn5lHqS7O0YOqCMPqMGSY=";
};
in
@@ -25,15 +25,34 @@ buildDunePackage rec {
src = fetchurl {
url = "https://github.com/ocaml-community/easy-format/releases/download/${version}/easy-format-${version}.tbz";
inherit (params) sha256;
inherit (params) hash;
};
doCheck = true;
meta = with lib; {
meta = {
description = "High-level and functional interface to the Format module of the OCaml standard library";
longDescription = ''
This module offers a high-level and functional interface to the Format module of
the OCaml standard library. It is a pretty-printing facility, i.e. it takes as
input some code represented as a tree and formats this code into the most
visually satisfying result, breaking and indenting lines of code where
appropriate.
Input data must be first modelled and converted into a tree using 3 kinds of
nodes:
* atoms
* lists
* labelled nodes
Atoms represent any text that is guaranteed to be printed as-is. Lists can model
any sequence of items such as arrays of data or lists of definitions that are
labelled with something like "int main", "let x =" or "x:".
'';
homepage = "https://github.com/ocaml-community/easy-format";
license = licenses.bsd3;
maintainers = [ maintainers.vbgl ];
changelog = "https://github.com/ocaml-community/easy-format/releases/tag/${params.version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ vbgl ];
};
}
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools-scm,
loguru,
mbstrdecoder,
pytestCheckHook,
@@ -14,18 +15,20 @@
buildPythonPackage rec {
pname = "dataproperty";
version = "1.1.0";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "thombashi";
repo = pname;
repo = "dataproperty";
tag = "v${version}";
hash = "sha256-IEEwdOcC9nKwVumWnjpZlqYKCFGwZebMh7nGdGVjibE=";
};
propagatedBuildInputs = [
build-system = [ setuptools-scm ];
dependencies = [
mbstrdecoder
typepy
tcolorpy
@@ -42,11 +45,11 @@ buildPythonPackage rec {
pythonImportsCheck = [ "dataproperty" ];
meta = with lib; {
meta = {
description = "Library for extracting properties from data";
homepage = "https://github.com/thombashi/dataproperty";
homepage = "https://github.com/thombashi/DataProperty";
changelog = "https://github.com/thombashi/DataProperty/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ genericnerdyusername ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ genericnerdyusername ];
};
}
@@ -12,7 +12,7 @@
pytestCheckHook,
pythonOlder,
pyyaml,
setuptools,
setuptools-scm,
simplejson,
tabledata,
tcolorpy,
@@ -25,20 +25,20 @@
buildPythonPackage rec {
pname = "pytablewriter";
version = "1.2.1";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "thombashi";
repo = pname;
repo = "pytablewriter";
tag = "v${version}";
hash = "sha256-YuuSMKTSG3oybvA6TDWNnGg4EiDAw2tRlM0S9mBQlkc=";
};
nativeBuildInputs = [ setuptools ];
build-system = [ setuptools-scm ];
propagatedBuildInputs = [
dependencies = [
dataproperty
mbstrdecoder
pathvalidate
@@ -103,11 +103,11 @@ buildPythonPackage rec {
"test/writer/test_elasticsearch_writer.py"
];
meta = with lib; {
meta = {
description = "Library to write a table in various formats";
homepage = "https://github.com/thombashi/pytablewriter";
changelog = "https://github.com/thombashi/pytablewriter/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ genericnerdyusername ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ genericnerdyusername ];
};
}
@@ -2,6 +2,7 @@
buildPythonPackage,
fetchFromGitHub,
lib,
setuptools-scm,
dataproperty,
typepy,
pytestCheckHook,
@@ -10,27 +11,29 @@
buildPythonPackage rec {
pname = "tabledata";
version = "1.3.4";
format = "setuptools";
pyproject = true;
src = fetchFromGitHub {
owner = "thombashi";
repo = pname;
repo = "tabledata";
tag = "v${version}";
hash = "sha256-kZAEKUOcxb3fK3Oh6+4byJJlB/xzDAEGNpUDEKyVkhs=";
};
propagatedBuildInputs = [
build-system = [ setuptools-scm ];
dependencies = [
dataproperty
typepy
];
nativeCheckInputs = [ pytestCheckHook ];
meta = with lib; {
meta = {
homepage = "https://github.com/thombashi/tabledata";
description = "Library to represent tabular data";
changelog = "https://github.com/thombashi/tabledata/releases/tag/${src.tag}";
maintainers = with maintainers; [ genericnerdyusername ];
license = licenses.mit;
maintainers = with lib.maintainers; [ genericnerdyusername ];
license = lib.licenses.mit;
};
}
@@ -0,0 +1,38 @@
{
lib,
buildPythonPackage,
fetchPypi,
pythonOlder,
hatchling,
terminaltexteffects,
}:
buildPythonPackage rec {
pname = "textualeffects";
version = "0.1.3";
pyproject = true;
disabled = pythonOlder "3.10";
src = fetchPypi {
inherit pname version;
hash = "sha256-s6LrsCJu/ubDIXQqxQlY2HVbzDc9+FtUE9oBSulUsm8=";
};
build-system = [ hatchling ];
dependencies = [ terminaltexteffects ];
pythonImportsCheck = [ "textualeffects" ];
# no tests implemented
doCheck = false;
meta = {
description = "Visual effects for Textual, a TerminalTextEffects wrapper";
homepage = "https://github.com/ggozad/textualeffects";
changelog = "https://github.com/ggozad/textualeffects/blob/v${version}/CHANGES.txt";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ gaelj ];
};
}
@@ -9,24 +9,16 @@
buildPythonPackage rec {
pname = "traits";
version = "6.4.3";
version = "7.0.2";
pyproject = true;
disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
hash = "sha256-qbv9ngwIt94H6G72TmnLlqKcIQWkO/gyzYsWL6HiL0Q=";
hash = "sha256-pWNRWAnLORGXXeWlQgmFXwtv23ymkSpegd4mUp9wQow=";
};
patches = [
(fetchpatch2 {
url = "https://github.com/enthought/traits/commit/a20f2154b2c79eb8550ea9228d1a4415ff51b72a.patch";
hash = "sha256-ycStcpxlvmobL3ZXaSbGrXAzk/Tkjs3BJ67lnwZpeVA=";
excludes = [ ".github/*" ];
})
];
build-system = [ setuptools ];
pythonImportsCheck = [ "traits" ];
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools-scm,
mbstrdecoder,
python-dateutil,
pytz,
@@ -14,18 +15,20 @@
buildPythonPackage rec {
pname = "typepy";
version = "1.3.4";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "thombashi";
repo = pname;
repo = "typepy";
tag = "v${version}";
hash = "sha256-lgwXoEtv2nBRKiWQH5bDrAIfikKN3cOqcHLEdnSAMpc=";
};
propagatedBuildInputs = [ mbstrdecoder ];
build-system = [ setuptools-scm ];
dependencies = [ mbstrdecoder ];
optional-dependencies = {
datetime = [
@@ -42,11 +45,11 @@ buildPythonPackage rec {
pythonImportsCheck = [ "typepy" ];
meta = with lib; {
meta = {
description = "Library for variable type checker/validator/converter at a run time";
homepage = "https://github.com/thombashi/typepy";
changelog = "https://github.com/thombashi/typepy/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [ genericnerdyusername ];
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ genericnerdyusername ];
};
}
@@ -8,7 +8,7 @@
buildPythonPackage rec {
pname = "verlib2";
version = "0.2.0";
version = "0.2.1";
pyproject = true;
# This tarball doesn't include tests unfortuneatly, and the GitHub tarball
@@ -19,7 +19,7 @@ buildPythonPackage rec {
# should work for us as well.
src = fetchPypi {
inherit pname version;
hash = "sha256-CrlAh8CU4nFjlI36gXyY1itr3QEibM5RiPjMPNaDRbk=";
hash = "sha256-0+JmanzxCUK/E0dNdQkuuNdavUGqZ6p5UAQ/WUGdnT8=";
};
nativeBuildInputs = [
@@ -4,8 +4,8 @@
fetchPypi,
pytestCheckHook,
pythonOlder,
flit-core,
requests,
hatchling,
httpx,
tomli,
}:
@@ -14,17 +14,17 @@ buildPythonPackage rec {
version = "0.11.0";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.9";
src = fetchPypi {
inherit pname version;
hash = "sha256-TDvTNh+5cxgBoy9nuXItHOdtfbsP+3F16egZjUBSpak=";
};
nativeBuildInputs = [ flit-core ];
build-system = [ hatchling ];
propagatedBuildInputs = [
requests
dependencies = [
httpx
tomli
];
+1
View File
@@ -1287,6 +1287,7 @@ mapAliases {
SPAdes = spades; # Added 2024-06-12
spark2014 = gnatprove; # Added 2024-02-25
spatialite_gui = throw "spatialite_gui has been renamed to spatialite-gui"; # Added 2025-01-12
spatialite_tools = throw "spatialite_tools has been renamed to spatialite-tools"; # Added 2025-02-06
# Added 2020-02-10
sourceHanSansPackages = {
+1 -1
View File
@@ -7290,7 +7290,7 @@ with pkgs;
wireplumber = callPackage ../development/libraries/pipewire/wireplumber.nix { };
racket = callPackage ../development/interpreters/racket { };
racket-minimal = racket.override { isMinimal = true; };
racket-minimal = callPackage ../development/interpreters/racket/minimal.nix { };
rakudo = callPackage ../development/interpreters/rakudo { };
moarvm = darwin.apple_sdk_11_0.callPackage ../development/interpreters/rakudo/moarvm.nix {
+2
View File
@@ -16245,6 +16245,8 @@ self: super: with self; {
textual-universal-directorytree = callPackage ../development/python-modules/textual-universal-directorytree { };
textualeffects = callPackage ../development/python-modules/textualeffects { };
textual-textarea = callPackage ../development/python-modules/textual-textarea { };
testbook = callPackage ../development/python-modules/testbook { };