Merge master into staging-next
This commit is contained in:
@@ -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" = {
|
||||
|
||||
@@ -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 {};
|
||||
|
||||
@@ -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")
|
||||
'';
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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; {
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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; };
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
+6
-6
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
})
|
||||
@@ -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
|
||||
|
||||
Generated
-3579
File diff suppressed because it is too large
Load Diff
@@ -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 = [
|
||||
|
||||
@@ -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 can’t 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:
|
||||
|
||||
@@ -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))
|
||||
@@ -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
|
||||
];
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 { };
|
||||
|
||||
Reference in New Issue
Block a user