···62 machine.send_key("tab")
63 machine.send_chars("/home/alice/foo.keyfile")
64 machine.send_key("ret")
65+ # Database is unlocked (doesn't have "[Locked]" in the title anymore)
66+ machine.wait_for_text("foo.kdbx - KeePassXC")
67 '';
68})
···21in
22stdenv.mkDerivation rec {
23 pname = "clightning";
24- version = "0.11.0.1";
2526 src = fetchurl {
27 url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
28- sha256 = "e2ad6eead19a0cd8869e291c27d318cf553bb015339c1f0e8d8b30e7bc0910d8";
29 };
3031 # when building on darwin we need dawin.cctools to provide the correct libtool
···21in
22stdenv.mkDerivation rec {
23 pname = "clightning";
24+ version = "0.11.1";
2526 src = fetchurl {
27 url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
28+ sha256 = "0vsh6gpv3458pfc5cggay9pw7bxjzyxpcniks9b2s3y1rxwk15xi";
29 };
3031 # when building on darwin we need dawin.cctools to provide the correct libtool
···8 elseif(APPLE AND WITH_APP_BUNDLE)
9+ set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/Applications")
10 set(BUNDLE_INSTALL_DIR "${PROGNAME}.app/Contents")
11+ set(CMAKE_INSTALL_MANDIR "${BUNDLE_INSTALL_DIR}/Resources/man")
12+ set(CLI_INSTALL_DIR "${BUNDLE_INSTALL_DIR}/MacOS")
13+@@ -470,11 +470,6 @@ set(CMAKE_AUTORCC ON)
1415 if(APPLE)
16 set(CMAKE_MACOSX_RPATH TRUE)
17+- find_program(MACDEPLOYQT_EXE macdeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
18- if(NOT MACDEPLOYQT_EXE)
19- message(FATAL_ERROR "macdeployqt is required to build on macOS")
0020- endif()
21+- message(STATUS "Using macdeployqt: ${MACDEPLOYQT_EXE}")
22+ set(MACDEPLOYQT_EXTRA_BINARIES "")
23+ elseif(WIN32)
24+ find_program(WINDEPLOYQT_EXE windeployqt HINTS ${Qt5_PREFIX}/bin ${Qt5_PREFIX}/tools/qt5/bin ENV PATH)
25+diff --git a/src/post_install/CMakeLists.txt b/src/post_install/CMakeLists.txt
26+index 359c891f..a6a061a3 100644
27+--- a/src/post_install/CMakeLists.txt
28++++ b/src/post_install/CMakeLists.txt
29+@@ -1,7 +1,7 @@
30+ # The install commands in this subdirectory will be executed after all the install commands in the
31+ # current scope are ran. It is required for correct functtioning of macdeployqt.
0000003233+-if(APPLE AND WITH_APP_BUNDLE)
34++if(FALSE)
35+ # Run macdeloyqt on the main app and any extra binaries and plugins as specified by the
36+ # _MACDEPLOYQT_EXTRA_BINARIES global property.
37+ # All install(TARGETS) calls should have already been called.
00000000
···48 logo64 = "${sage-src}/src/doc/common/themes/sage/static/sageicon.png";
49 };
5000000051 three = callPackage ./threejs-sage.nix { };
5253 # A bash script setting various environment variables to tell sage where
···73 # The documentation for sage, building it takes a lot of ram.
74 sagedoc = callPackage ./sagedoc.nix {
75 inherit sage-with-env;
76- inherit python3 maxima;
77 };
7879 # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
···167in
168# A wrapper around sage that makes sure sage finds its docs (if they were build).
169callPackage ./sage.nix {
170- inherit sage-tests sage-with-env sagedoc jupyter-kernel-definition;
171 inherit withDoc requireSageTests;
172}
···48 logo64 = "${sage-src}/src/doc/common/themes/sage/static/sageicon.png";
49 };
5051+ jupyter-kernel-specs = pkgs.jupyter-kernel.create {
52+ definitions = pkgs.jupyter-kernel.default // {
53+ sagemath = jupyter-kernel-definition;
54+ };
55+ };
56+57 three = callPackage ./threejs-sage.nix { };
5859 # A bash script setting various environment variables to tell sage where
···79 # The documentation for sage, building it takes a lot of ram.
80 sagedoc = callPackage ./sagedoc.nix {
81 inherit sage-with-env;
82+ inherit python3 maxima jupyter-kernel-specs;
83 };
8485 # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
···173in
174# A wrapper around sage that makes sure sage finds its docs (if they were build).
175callPackage ./sage.nix {
176+ inherit sage-tests sage-with-env sagedoc jupyter-kernel-specs;
177 inherit withDoc requireSageTests;
178}
···186 export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
187188 # for find_library
189- export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
190 '';
191} // { # equivalent of `passthru`, which `writeTextFile` doesn't support
192 lib = sagelib;
···186 export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
187188 # for find_library
189+ export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular giac]}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
190 '';
191} // { # equivalent of `passthru`, which `writeTextFile` doesn't support
192 lib = sagelib;
+5-84
pkgs/applications/science/math/sage/sage-src.nix
···58 );
59in
60stdenv.mkDerivation rec {
61- version = "9.5";
62 pname = "sage-src";
6364 src = fetchFromGitHub {
65 owner = "sagemath";
66 repo = "sage";
67 rev = version;
68- sha256 = "sha256-uOsLpsGpcIGs8Xr82X82MElnTB2E908gytyNJ8WVD5w=";
69 };
7071 # Patches needed because of particularities of nix or the way this is packaged.
72 # The goal is to upstream all of them and get rid of this list.
73 nixPatches = [
74- # Since https://trac.sagemath.org/ticket/32174, some external features are
75- # marked as "safe" and get auto-detected, in which case the corresponding
76- # optional tests are executed. We disable auto-detection of safe features if
77- # we are doctesting with an "--optional" argument which does not include
78- # "sage", because tests from autodetected features expect context provided
79- # by running basic sage tests. This is necessary to test sagemath_doc_html
80- # separately. See https://trac.sagemath.org/ticket/26110 for a related
81- # upstream discussion (from the time when Sage still had optional py2/py3
82- # tags).
83- ./patches/Only-test-external-software-when-all-of-sage-is.patch
84-85 # Fixes a potential race condition which can lead to transient doctest failures.
86 ./patches/fix-ecl-race.patch
87···120 # https://trac.sagemath.org/ticket/32959
121 ./patches/linbox-1.7-upgrade.patch
122123- # https://trac.sagemath.org/ticket/33170
124- (fetchSageDiff {
125- base = "9.6.beta5";
126- name = "ipython-8.1-update.patch";
127- rev = "4d2b53f1541375861310af3a7f7109c1c2ed475d";
128- sha256 = "sha256-ELda/VBzsQH7NdFas69fQ35QPUoJCeLx/gxT1j7qGR8=";
129- })
130-131- # https://trac.sagemath.org/ticket/32968
132- (fetchSageDiff {
133- base = "9.5";
134- name = "sphinx-4.3-update.patch";
135- rev = "fc84f82f52b6f05f512cb359ec7c100f93cf8841";
136- sha256 = "sha256-bBbfdcnw/9LUOlY8rHJRbFJEdMXK4shosqTNaobTS1Q=";
137- })
138-139- # https://trac.sagemath.org/ticket/33189
140- (fetchSageDiff {
141- base = "9.5";
142- name = "arb-2.22-update.patch";
143- rev = "53532ddd4e2dc92469c1590ebf0c40f8f69bf579";
144- sha256 = "sha256-6SoSBvIlqvNwZV3jTB6uPdUtaWIOeNmddi2poK/WvGs=";
145- })
146-147- # TODO: This will not be necessary when Sphinx 4.4.1 is released,
148- # since some warnings introduced in 4.4.0 will be disabled by then
149- # (https://github.com/sphinx-doc/sphinx/pull/10126).
150- # https://trac.sagemath.org/ticket/33272
151- (fetchSageDiff {
152- base = "9.5";
153- name = "sphinx-4.4-warnings.patch";
154- rev = "97d7958bed441cf2ccc714d88f83d3a8426bc085";
155- sha256 = "sha256-y1STE0oxswnijGCsBw8eHWWqpmT1XMznIfA0vvX9pFA=";
156- })
157-158 # adapted from https://trac.sagemath.org/ticket/23712#comment:22
159 ./patches/tachyon-renamed-focallength.patch
160161- # https://trac.sagemath.org/ticket/33336
162- (fetchSageDiff {
163- base = "9.6.beta2";
164- name = "scipy-1.8-update.patch";
165- rev = "9c8235e44ffb509efa8a3ca6cdb55154e2b5066d";
166- sha256 = "sha256-bfc4ljNOxVnhlmxIuNbjbKl4vJXYq2tlF3Z8bbC8PWw=";
167- })
168-169- # https://trac.sagemath.org/ticket/33495
170- (fetchSageDiff {
171- base = "9.6.beta5";
172- name = "networkx-2.7-update.patch";
173- rev = "8452003846a7303100847d8d0ed642fc642c11d6";
174- sha256 = "sha256-A/XMouPlc2sjFp30L+56fBGJXydS2EtzfPOV98FCDqI=";
175- })
176-177- # https://trac.sagemath.org/ticket/33226
178- (fetchSageDiff {
179- base = "9.6.beta0";
180- name = "giac-1.7.0-45-update.patch";
181- rev = "33ea2adf01e9e2ce9f1e33779f0b1ac0d9d1989c";
182- sha256 = "sha256-DOyxahf3+IaYdkgmAReNDCorRzMgO8+yiVrJ5TW1km0=";
183- })
184-185- # https://trac.sagemath.org/ticket/33398
186- (fetchSageDiff {
187- base = "9.6.beta4";
188- name = "sympy-1.10-update.patch";
189- rev = "6b7c3a28656180e42163dc10f7b4a571b93e5f27";
190- sha256 = "sha256-fnUyM2yjHkCykKRfzQQ4glcUYmCS/fYzDzmCf0nuebk=";
191- # The patch contains a whitespace change to a file that didn't exist in Sage 9.5.
192- excludes = [ "build/*" "src/sage/manifolds/vector_bundle_fiber_element.py" ];
193- })
194-195 # docutils 0.18.1 now triggers Sphinx warnings. tolerate them for
196- # now, because patching Sphinx is not feasible.
197- # https://github.com/sphinx-doc/sphinx/issues/9777#issuecomment-1104481271
0198 ./patches/docutils-0.18.1-deprecation.patch
199 ];
200
···58 );
59in
60stdenv.mkDerivation rec {
61+ version = "9.6";
62 pname = "sage-src";
6364 src = fetchFromGitHub {
65 owner = "sagemath";
66 repo = "sage";
67 rev = version;
68+ sha256 = "sha256-QY8Yga3hD1WhSCtA2/PVry8hHlMmC31J8jCBFtWgIU0=";
69 };
7071 # Patches needed because of particularities of nix or the way this is packaged.
72 # The goal is to upstream all of them and get rid of this list.
73 nixPatches = [
0000000000074 # Fixes a potential race condition which can lead to transient doctest failures.
75 ./patches/fix-ecl-race.patch
76···109 # https://trac.sagemath.org/ticket/32959
110 ./patches/linbox-1.7-upgrade.patch
11100000000000000000000000000000000000112 # adapted from https://trac.sagemath.org/ticket/23712#comment:22
113 ./patches/tachyon-renamed-focallength.patch
1140000000000000000000000000000000000115 # docutils 0.18.1 now triggers Sphinx warnings. tolerate them for
116+ # now, because patching Sphinx is not feasible. remove when Sphinx
117+ # 5.0 hits nixpkgs.
118+ # https://github.com/sphinx-doc/sphinx/pull/10372
119 ./patches/docutils-0.18.1-deprecation.patch
120 ];
121
+3-12
pkgs/applications/science/math/sage/sage.nix
···2, makeWrapper
3, sage-tests
4, sage-with-env
5-, jupyter-kernel-definition
6-, jupyter-kernel
7, sagedoc
8, withDoc
9, requireSageTests
···12# A wrapper that makes sure sage finds its docs (if they were build) and the
13# jupyter kernel spec.
1415-let
16- # generate kernel spec + default kernels
17- kernel-specs = jupyter-kernel.create {
18- definitions = jupyter-kernel.default // {
19- sagemath = jupyter-kernel-definition;
20- };
21- };
22-in
23stdenv.mkDerivation rec {
24 version = src.version;
25 pname = "sage";
···43 --set SAGE_DOC_SRC_OVERRIDE "${src}/src/doc" ${
44 lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
45 } \
46- --prefix JUPYTER_PATH : "${kernel-specs}"
47 '';
4849 doInstallCheck = withDoc;
···58 quicktest = sage-tests.override { longTests = false; timeLimit = 600; }; # as many tests as possible in ~10m
59 doc = sagedoc;
60 lib = sage-with-env.env.lib;
61- kernelspec = jupyter-kernel-definition;
62 };
6364 meta = with lib; {
···2, makeWrapper
3, sage-tests
4, sage-with-env
5+, jupyter-kernel-specs
06, sagedoc
7, withDoc
8, requireSageTests
···11# A wrapper that makes sure sage finds its docs (if they were build) and the
12# jupyter kernel spec.
130000000014stdenv.mkDerivation rec {
15 version = src.version;
16 pname = "sage";
···34 --set SAGE_DOC_SRC_OVERRIDE "${src}/src/doc" ${
35 lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage"
36 } \
37+ --prefix JUPYTER_PATH : "${jupyter-kernel-specs}"
38 '';
3940 doInstallCheck = withDoc;
···49 quicktest = sage-tests.override { longTests = false; timeLimit = 600; }; # as many tests as possible in ~10m
50 doc = sagedoc;
51 lib = sage-with-env.env.lib;
52+ kernelspec = jupyter-kernel-specs.definition.sagemath;
53 };
5455 meta = with lib; {
···1{ stdenv
2, sage-with-env
3, python3
4+, jupyter-kernel-specs
5, maxima
6, tachyon
7, jmol
···60 OUTPUT="$OUTPUT_DIR/options.txt"
61 ${sage-with-env}/bin/sage -advanced > "$OUTPUT"
6263+ # jupyter-sphinx calls the sagemath jupyter kernel during docbuild
64+ export JUPYTER_PATH=${jupyter-kernel-specs}
65+66+ # sage --docbuild unsets JUPYTER_PATH, so we call sage_docbuild directly
67+ # https://trac.sagemath.org/ticket/33650#comment:32
68+ ${sage-with-env}/bin/sage --python3 -m sage_docbuild \
69 --mathjax \
70 --no-pdf-links \
71+ all html < /dev/null
72 '';
7374 installPhase = ''
···8990 doCheck = true;
91 checkPhase = ''
92+ # sagemath_doc_html tests assume sage tests are being run, so we
93+ # compromise: we run standard tests, but only on files containing
94+ # relevant tests. as of Sage 9.6, there are only 4 such files.
95+ grep -PRl "#.*optional.*sagemath_doc_html" ${src}/src/sage{,_docbuild} | \
96+ xargs ${sage-with-env}/bin/sage -t --optional=sage,sagemath_doc_html
97 '';
98}
+6-2
pkgs/applications/science/math/sage/sagelib.nix
···67, pillow
68, ipykernel
69, networkx
70-, sphinx # TODO: this is in setup.cfg, bug should we override it?
0071}:
7273assert (!blas.isILP64) && (!lapack.isILP64);
···157 networkx
158 jupyter-client
159 ipywidgets
00160 sphinx
161 ];
162···188 # Sage tests already catch any relevant API breakage.
189 # according to the discussion at https://trac.sagemath.org/ticket/33520,
190 # upper bounds will be less noisy starting from Sage 9.6.
191- sed -i 's/==2.1.0rc1/>=2.1.1/' ../gmpy2/install-requires.txt
192 sed -i 's/, <[^, ]*//' ../*/install-requires.txt
193194 for infile in src/*.m4; do
···67, pillow
68, ipykernel
69, networkx
70+, ptyprocess
71+, lrcalc-python
72+, sphinx # TODO: this is in setup.cfg, should we override it?
73}:
7475assert (!blas.isILP64) && (!lapack.isILP64);
···159 networkx
160 jupyter-client
161 ipywidgets
162+ ptyprocess
163+ lrcalc-python
164 sphinx
165 ];
166···192 # Sage tests already catch any relevant API breakage.
193 # according to the discussion at https://trac.sagemath.org/ticket/33520,
194 # upper bounds will be less noisy starting from Sage 9.6.
195+ sed -i 's/==0.5.1/>=0.5.1/' ../ptyprocess/install-requires.txt
196 sed -i 's/, <[^, ]*//' ../*/install-requires.txt
197198 for infile in src/*.m4; do
···47 uuid = uuid.replace("@", "")
48 url: str = f"https://extensions.gnome.org/extension-data/{uuid}.v{version}.shell-extension.zip"
4950- # TODO remove when Vitals@CoreCoding.com version != 53, this extension has a missing manifest.json
51- if url == 'https://extensions.gnome.org/extension-data/VitalsCoreCoding.com.v53.shell-extension.zip':
52- url = 'https://extensions.gnome.org/extension-data/VitalsCoreCoding.com.v53.shell-extension_v1BI2FB.zip'
53-54 # Download extension and add the zip content to nix-store
55 process = subprocess.run(
56 ["nix-prefetch-url", "--unpack", "--print-path", url], capture_output=True, text=True
···47 uuid = uuid.replace("@", "")
48 url: str = f"https://extensions.gnome.org/extension-data/{uuid}.v{version}.shell-extension.zip"
49000050 # Download extension and add the zip content to nix-store
51 process = subprocess.run(
52 ["nix-prefetch-url", "--unpack", "--print-path", url], capture_output=True, text=True
···1112 buildInputs = [ readline bzip2 ];
1300000014 doCheck = true;
1516 meta = with lib; {
···1112 buildInputs = [ readline bzip2 ];
1314+ # Workaround build failure on -fno-common toolchains like upstream
15+ # gcc-10. Otherwise build fails as:
16+ # ld: ../util/libutil.a(estream-printf.o):/build/gnupg-1.4.23/util/../include/memory.h:100: multiple definition of
17+ # `memory_debug_mode'; gpgsplit.o:/build/gnupg-1.4.23/tools/../include/memory.h:100: first defined here
18+ NIX_CFLAGS_COMPILE = "-fcommon";
19+20 doCheck = true;
2122 meta = with lib; {
+1
pkgs/top-level/aliases.nix
···904 ### O ###
905906 oathToolkit = oath-toolkit; # Added 2022-04-04
0907 oracleXE = throw "oracleXE has been removed, as it's heavily outdated and unmaintained"; # Added 2020-10-09
908 OVMF-CSM = throw "OVMF-CSM has been removed in favor of OVMFFull"; # Added 2021-10-16
909 OVMF-secureBoot = throw "OVMF-secureBoot has been removed in favor of OVMFFull"; # Added 2021-10-16
···904 ### O ###
905906 oathToolkit = oath-toolkit; # Added 2022-04-04
907+ oci-image-tool = throw "oci-image-tool is no longer actively maintained, and has had major deficiencies for several years."; # Added 2022-05-14;
908 oracleXE = throw "oracleXE has been removed, as it's heavily outdated and unmaintained"; # Added 2020-10-09
909 OVMF-CSM = throw "OVMF-CSM has been removed in favor of OVMFFull"; # Added 2021-10-16
910 OVMF-secureBoot = throw "OVMF-secureBoot has been removed in favor of OVMFFull"; # Added 2021-10-16