commit
3a16467909
@ -1,5 +1,5 @@ |
||||
# Locales {#locales} |
||||
|
||||
To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable. |
||||
To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats, Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable. |
||||
|
||||
On non-NixOS distributions this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package. |
||||
On non-NixOS distributions, this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package. |
||||
|
Can't render this file because it has a wrong number of fields in line 67.
|
@ -0,0 +1,59 @@ |
||||
# This module defines a NixOS installation CD that contains GNOME. |
||||
|
||||
{ pkgs, ... }: |
||||
|
||||
{ |
||||
imports = [ ./installation-cd-graphical-calamares.nix ]; |
||||
|
||||
isoImage.edition = "gnome"; |
||||
|
||||
services.xserver.desktopManager.gnome = { |
||||
# Add Firefox and other tools useful for installation to the launcher |
||||
favoriteAppsOverride = '' |
||||
[org.gnome.shell] |
||||
favorite-apps=[ 'firefox.desktop', 'nixos-manual.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop', 'gparted.desktop', 'io.calamares.calamares.desktop' ] |
||||
''; |
||||
|
||||
# Override GNOME defaults to disable GNOME tour and disable suspend |
||||
extraGSettingsOverrides = '' |
||||
[org.gnome.shell] |
||||
welcome-dialog-last-shown-version='9999999999' |
||||
|
||||
[org.gnome.settings-daemon.plugins.power] |
||||
sleep-inactive-ac-type='nothing' |
||||
sleep-inactive-battery-type='nothing' |
||||
''; |
||||
|
||||
extraGSettingsOverridePackages = [ pkgs.gnome.gnome-settings-daemon ]; |
||||
|
||||
enable = true; |
||||
}; |
||||
|
||||
# Theme calamares with GNOME theme |
||||
qt5 = { |
||||
enable = true; |
||||
platformTheme = "gnome"; |
||||
}; |
||||
|
||||
# Fix scaling for calamares on wayland |
||||
environment.variables = { |
||||
QT_QPA_PLATFORM = "$([[ $XDG_SESSION_TYPE = \"wayland\" ]] && echo \"wayland\")"; |
||||
}; |
||||
|
||||
services.xserver.displayManager = { |
||||
gdm = { |
||||
enable = true; |
||||
# autoSuspend makes the machine automatically suspend after inactivity. |
||||
# It's possible someone could/try to ssh'd into the machine and obviously |
||||
# have issues because it's inactive. |
||||
# See: |
||||
# * https://github.com/NixOS/nixpkgs/pull/63790 |
||||
# * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22 |
||||
autoSuspend = false; |
||||
}; |
||||
autoLogin = { |
||||
enable = true; |
||||
user = "nixos"; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,49 @@ |
||||
# This module defines a NixOS installation CD that contains X11 and |
||||
# Plasma 5. |
||||
|
||||
{ pkgs, ... }: |
||||
|
||||
{ |
||||
imports = [ ./installation-cd-graphical-calamares.nix ]; |
||||
|
||||
isoImage.edition = "plasma5"; |
||||
|
||||
services.xserver = { |
||||
desktopManager.plasma5 = { |
||||
enable = true; |
||||
}; |
||||
|
||||
# Automatically login as nixos. |
||||
displayManager = { |
||||
sddm.enable = true; |
||||
autoLogin = { |
||||
enable = true; |
||||
user = "nixos"; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
environment.systemPackages = with pkgs; [ |
||||
# Graphical text editor |
||||
kate |
||||
]; |
||||
|
||||
system.activationScripts.installerDesktop = let |
||||
|
||||
# Comes from documentation.nix when xserver and nixos.enable are true. |
||||
manualDesktopFile = "/run/current-system/sw/share/applications/nixos-manual.desktop"; |
||||
|
||||
homeDir = "/home/nixos/"; |
||||
desktopDir = homeDir + "Desktop/"; |
||||
|
||||
in '' |
||||
mkdir -p ${desktopDir} |
||||
chown nixos ${homeDir} ${desktopDir} |
||||
|
||||
ln -sfT ${manualDesktopFile} ${desktopDir + "nixos-manual.desktop"} |
||||
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop ${desktopDir + "gparted.desktop"} |
||||
ln -sfT ${pkgs.konsole}/share/applications/org.kde.konsole.desktop ${desktopDir + "org.kde.konsole.desktop"} |
||||
ln -sfT ${pkgs.calamares-nixos}/share/applications/io.calamares.calamares.desktop ${desktopDir + "io.calamares.calamares.desktop"} |
||||
''; |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
# This module adds the calamares installer to the basic graphical NixOS |
||||
# installation CD. |
||||
|
||||
{ pkgs, ... }: |
||||
let |
||||
calamares-nixos-autostart = pkgs.makeAutostartItem { name = "io.calamares.calamares"; package = pkgs.calamares-nixos; }; |
||||
in |
||||
{ |
||||
imports = [ ./installation-cd-graphical-base.nix ]; |
||||
|
||||
environment.systemPackages = with pkgs; [ |
||||
# Calamares for graphical installation |
||||
libsForQt5.kpmcore |
||||
calamares-nixos |
||||
calamares-nixos-autostart |
||||
calamares-nixos-extensions |
||||
# Needed for calamares QML module packagechooserq |
||||
libsForQt5.full |
||||
]; |
||||
} |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,14 +1,14 @@ |
||||
{ |
||||
"version": "14.10.0", |
||||
"repo_hash": "0j4dx32d4i8b44zfmqshkc19g3g9a2c2rg1r8mifjv67p7hvacnx", |
||||
"version": "14.10.1", |
||||
"repo_hash": "13868wb0zr862xaxapp8nxh16gjsawklw66rlxx95bhhm3r81nrp", |
||||
"yarn_hash": "17wxqvig34namf8kvh8bwci3y0f3k2nl4zs99jcvskdad9p45rlc", |
||||
"owner": "gitlab-org", |
||||
"repo": "gitlab", |
||||
"rev": "v14.10.0-ee", |
||||
"rev": "v14.10.1-ee", |
||||
"passthru": { |
||||
"GITALY_SERVER_VERSION": "14.10.0", |
||||
"GITALY_SERVER_VERSION": "14.10.1", |
||||
"GITLAB_PAGES_VERSION": "1.56.1", |
||||
"GITLAB_SHELL_VERSION": "13.25.1", |
||||
"GITLAB_WORKHORSE_VERSION": "14.10.0" |
||||
"GITLAB_WORKHORSE_VERSION": "14.10.1" |
||||
} |
||||
} |
||||
|
@ -0,0 +1,76 @@ |
||||
{ lib, which, fetchzip, |
||||
mkCoqDerivation, recurseIntoAttrs, single ? false, |
||||
coqPackages, coq, equations, version ? null }@args: |
||||
with builtins // lib; |
||||
let |
||||
repo = "metacoq"; |
||||
owner = "MetaCoq"; |
||||
defaultVersion = with versions; switch coq.coq-version [ |
||||
{ case = "8.11"; out = "1.0-beta2-8.11"; } |
||||
{ case = "8.12"; out = "1.0-beta2-8.12"; } |
||||
# Do not provide 8.13 because it does not compile with equations 1.3 provided by default (only 1.2.3) |
||||
# { case = "8.13"; out = "1.0-beta2-8.13"; } |
||||
] null; |
||||
release = { |
||||
"1.0-beta2-8.11".sha256 = "sha256-I9YNk5Di6Udvq5/xpLSNflfjRyRH8fMnRzbo3uhpXNs="; |
||||
"1.0-beta2-8.12".sha256 = "sha256-I8gpmU9rUQJh0qfp5KOgDNscVvCybm5zX4TINxO1TVA="; |
||||
"1.0-beta2-8.13".sha256 = "sha256-IC56/lEDaAylUbMCfG/3cqOBZniEQk8jmI053DBO5l8="; |
||||
}; |
||||
releaseRev = v: "v${v}"; |
||||
|
||||
# list of core metacoq packages sorted by dependency order |
||||
packages = [ "template-coq" "pcuic" "safechecker" "erasure" "all" ]; |
||||
|
||||
template-coq = metacoq_ "template-coq"; |
||||
|
||||
metacoq_ = package: let |
||||
metacoq-deps = if package == "single" then [] |
||||
else map metacoq_ (head (splitList (pred.equal package) packages)); |
||||
pkgpath = if package == "single" then "./" else "./${package}"; |
||||
pname = if package == "all" then "metacoq" else "metacoq-${package}"; |
||||
pkgallMake = '' |
||||
mkdir all |
||||
echo "all:" > all/Makefile |
||||
echo "install:" >> all/Makefile |
||||
'' ; |
||||
derivation = mkCoqDerivation ({ |
||||
inherit version pname defaultVersion release releaseRev repo owner; |
||||
|
||||
extraNativeBuildInputs = [ which ]; |
||||
mlPlugin = true; |
||||
extraBuildInputs = [ coq.ocamlPackages.zarith ]; |
||||
propagatedBuildInputs = [ equations ] ++ metacoq-deps; |
||||
|
||||
patchPhase = '' |
||||
patchShebangs ./configure.sh |
||||
patchShebangs ./template-coq/update_plugin.sh |
||||
patchShebangs ./template-coq/gen-src/to-lower.sh |
||||
patchShebangs ./pcuic/clean_extraction.sh |
||||
patchShebangs ./safechecker/clean_extraction.sh |
||||
patchShebangs ./erasure/clean_extraction.sh |
||||
echo "CAMLFLAGS+=-w -60 # Unused module" >> ./safechecker/Makefile.plugin.local |
||||
sed -i -e 's/mv $i $newi;/mv $i tmp; mv tmp $newi;/' ./template-coq/gen-src/to-lower.sh ./pcuic/clean_extraction.sh ./safechecker/clean_extraction.sh ./erasure/clean_extraction.sh |
||||
'' ; |
||||
|
||||
configurePhase = optionalString (package == "all") pkgallMake + '' |
||||
touch ${pkgpath}/metacoq-config |
||||
'' + optionalString (elem package ["safechecker" "erasure"]) '' |
||||
echo "-I ${template-coq}/lib/coq/${coq.coq-version}/user-contrib/MetaCoq/Template/" > ${pkgpath}/metacoq-config |
||||
'' + optionalString (package == "single") '' |
||||
./configure.sh local |
||||
''; |
||||
|
||||
preBuild = '' |
||||
cd ${pkgpath} |
||||
'' ; |
||||
|
||||
meta = { |
||||
homepage = "https://metacoq.github.io/"; |
||||
license = licenses.mit; |
||||
maintainers = with maintainers; [ cohencyril ]; |
||||
}; |
||||
} // optionalAttrs (package != "single") |
||||
{ passthru = genAttrs packages metacoq_; }); |
||||
in derivation; |
||||
in |
||||
metacoq_ (if single then "single" else "all") |
@ -0,0 +1,57 @@ |
||||
# This hook automatically finds Sphinx documentation, builds it in html format |
||||
# and installs it. |
||||
# |
||||
# This hook knows about several popular locations in which subdirectory |
||||
# documentation may be, but in very unusual cases $sphinxRoot directory can be |
||||
# set explicitly. |
||||
# |
||||
# Name of the directory relative to ${doc:-$out}/share/doc is normally also |
||||
# deduced automatically, but can be overridden with $sphinxOutdir variable. |
||||
# |
||||
# Sphinx build system can depend on arbitrary amount of python modules, client |
||||
# code is responsible for ensuring that all dependencies are present. |
||||
|
||||
buildSphinxPhase() { |
||||
local __sphinxRoot="" o |
||||
|
||||
runHook preBuildSphinx |
||||
if [[ -n "${sphinxRoot:-}" ]] ; then # explicit root |
||||
if ! [[ -f "${sphinxRoot}/conf.py" ]] ; then |
||||
echo 2>&1 "$sphinxRoot/conf.py: no such file" |
||||
exit 1 |
||||
fi |
||||
__sphinxRoot=$sphinxRoot |
||||
else |
||||
for o in doc docs doc/source docs/source ; do |
||||
if [[ -f "$o/conf.py" ]] ; then |
||||
echo "Sphinx documentation found in $o" |
||||
__sphinxRoot=$o |
||||
break |
||||
fi |
||||
done |
||||
fi |
||||
|
||||
if [[ -z "${__sphinxRoot}" ]] ; then |
||||
echo 2>&1 "Sphinx documentation not found, use 'sphinxRoot' variable" |
||||
exit 1 |
||||
fi |
||||
sphinx-build -M html "${__sphinxRoot}" ".sphinx/html" -v |
||||
|
||||
runHook postBuildSphinx |
||||
} |
||||
|
||||
installSphinxPhase() { |
||||
local docdir="" |
||||
runHook preInstallSphinx |
||||
|
||||
docdir="${doc:-$out}/share/doc/${sphinxOutdir:-$name}" |
||||
mkdir -p "$docdir" |
||||
|
||||
cp -r .sphinx/html/html "$docdir/" |
||||
rm -fr "${docdir}/html/_sources" "${docdir}/html/.buildinfo" |
||||
|
||||
runHook postInstallSphinx |
||||
} |
||||
|
||||
preBuildPhases+=" buildSphinxPhase" |
||||
postPhases+=" installSphinxPhase" |
@ -0,0 +1,76 @@ |
||||
diff --git nss/cmd/shlibsign/shlibsign.c nss/cmd/shlibsign/shlibsign.c
|
||||
index ad8f3b84e..74676d039 100644
|
||||
--- nss/cmd/shlibsign/shlibsign.c
|
||||
+++ nss/cmd/shlibsign/shlibsign.c
|
||||
@@ -875,6 +875,8 @@ main(int argc, char **argv)
|
||||
goto cleanup;
|
||||
}
|
||||
lib = PR_LoadLibrary(libname);
|
||||
+ if (!lib)
|
||||
+ lib = PR_LoadLibrary(NIX_NSS_LIBDIR"libsoftokn3.so");
|
||||
assert(lib != NULL);
|
||||
if (!lib) {
|
||||
PR_fprintf(PR_STDERR, "loading softokn3 failed");
|
||||
diff --git nss/lib/pk11wrap/pk11load.c nss/lib/pk11wrap/pk11load.c
|
||||
index 119c8c512..720d39ccc 100644
|
||||
--- nss/lib/pk11wrap/pk11load.c
|
||||
+++ nss/lib/pk11wrap/pk11load.c
|
||||
@@ -486,6 +486,15 @@ secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule)
|
||||
#else
|
||||
library = PR_LoadLibrary(mod->dllName);
|
||||
#endif // defined(_WIN32)
|
||||
+#ifndef NSS_STATIC_SOFTOKEN
|
||||
+ if ((library == NULL) &&
|
||||
+ !rindex(mod->dllName, PR_GetDirectorySeparator())) {
|
||||
+ library = PORT_LoadLibraryFromOrigin(my_shlib_name,
|
||||
+ (PRFuncPtr) &softoken_LoadDSO,
|
||||
+ mod->dllName);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
mod->library = (void *)library;
|
||||
|
||||
if (library == NULL) {
|
||||
diff --git nss/lib/util/secload.c nss/lib/util/secload.c
|
||||
index 12efd2f75..8b74478f6 100644
|
||||
--- nss/lib/util/secload.c
|
||||
+++ nss/lib/util/secload.c
|
||||
@@ -70,9 +70,14 @@ loader_LoadLibInReferenceDir(const char* referencePath, const char* name)
|
||||
|
||||
/* Remove the trailing filename from referencePath and add the new one */
|
||||
c = strrchr(referencePath, PR_GetDirectorySeparator());
|
||||
+ if (!c) { /* referencePath doesn't contain a / means that dladdr gave us argv[0]
|
||||
+ * and program was called from $PATH. Hack to get libs from NIX_NSS_LIBDIR */
|
||||
+ referencePath = NIX_NSS_LIBDIR;
|
||||
+ c = (char*) &referencePath[sizeof(NIX_NSS_LIBDIR) - 1]; /* last / */
|
||||
+ }
|
||||
if (c) {
|
||||
size_t referencePathSize = 1 + c - referencePath;
|
||||
- fullName = (char*)PORT_Alloc(strlen(name) + referencePathSize + 1);
|
||||
+ fullName = (char*) PORT_Alloc(strlen(name) + referencePathSize + 5);
|
||||
if (fullName) {
|
||||
memcpy(fullName, referencePath, referencePathSize);
|
||||
strcpy(fullName + referencePathSize, name);
|
||||
@@ -82,6 +87,11 @@ loader_LoadLibInReferenceDir(const char* referencePath, const char* name)
|
||||
#endif
|
||||
libSpec.type = PR_LibSpec_Pathname;
|
||||
libSpec.value.pathname = fullName;
|
||||
+ if ((referencePathSize >= 4) &&
|
||||
+ (strncmp(fullName + referencePathSize - 4, "bin", 3) == 0)) {
|
||||
+ memcpy(fullName + referencePathSize -4, "lib", 3);
|
||||
+ }
|
||||
+ strcpy(fullName + referencePathSize, name);
|
||||
dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL
|
||||
#ifdef PR_LD_ALT_SEARCH_PATH
|
||||
/* allow library's dependencies to be found in the same directory
|
||||
@@ -89,6 +99,10 @@ loader_LoadLibInReferenceDir(const char* referencePath, const char* name)
|
||||
| PR_LD_ALT_SEARCH_PATH
|
||||
#endif
|
||||
);
|
||||
+ if (! dlh) {
|
||||
+ strcpy(fullName + referencePathSize, name);
|
||||
+ dlh = PR_LoadLibraryWithFlags(libSpec, PR_LD_NOW | PR_LD_LOCAL);
|
||||
+ }
|
||||
PORT_Free(fullName);
|
||||
}
|
||||
}
|
@ -1,33 +1,46 @@ |
||||
{ lib, buildPythonPackage, fetchPypi, nose, numpy |
||||
, bottle, pyyaml, redis, six |
||||
, zlib |
||||
, pytestCheckHook }: |
||||
{ lib |
||||
, bottle |
||||
, buildPythonPackage |
||||
, fetchPypi |
||||
, numpy |
||||
, pytestCheckHook |
||||
, pythonOlder |
||||
, pyyaml |
||||
, redis |
||||
}: |
||||
|
||||
buildPythonPackage rec { |
||||
pname = "Jug"; |
||||
version = "2.1.1"; |
||||
buildInputs = [ nose numpy ]; |
||||
pname = "jug"; |
||||
version = "2.2.0"; |
||||
format = "setuptools"; |
||||
|
||||
disabled = pythonOlder "3.7"; |
||||
|
||||
src = fetchPypi { |
||||
pname = "Jug"; |
||||
inherit version; |
||||
hash = "sha256-2Y9xRr5DyV9UqG6tiq9rYET2Z7LaPXfzwYKKGwR3OSs="; |
||||
}; |
||||
|
||||
propagatedBuildInputs = [ |
||||
bottle |
||||
]; |
||||
|
||||
checkInputs = [ |
||||
numpy |
||||
pytestCheckHook |
||||
pyyaml |
||||
redis |
||||
six |
||||
|
||||
zlib |
||||
]; |
||||
|
||||
src = fetchPypi { |
||||
inherit pname version; |
||||
sha256 = "8ae7bb45d4495cf3d0dc5dd9df104a35bba2ca83eb4576732cadf8469e7cf1a1"; |
||||
}; |
||||
|
||||
checkInputs = [ pytestCheckHook ]; |
||||
pythonImportsCheck = [ "jug" ]; |
||||
pythonImportsCheck = [ |
||||
"jug" |
||||
]; |
||||
|
||||
meta = with lib; { |
||||
description = "A Task-Based Parallelization Framework"; |
||||
license = licenses.mit; |
||||
homepage = "https://jug.readthedocs.io/"; |
||||
license = licenses.mit; |
||||
maintainers = with maintainers; [ luispedro ]; |
||||
}; |
||||
} |
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue