mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-12 20:55:31 +03:00
nixos/moinmoin, nixos/tests/moinmoin, python2Packages.moinmoin: remove
Stuck on python2 and the NixOS test has been failing for 6 months.
This commit is contained in:
parent
90ac790416
commit
5dd90167ce
10 changed files with 10 additions and 388 deletions
|
@ -109,6 +109,13 @@
|
||||||
removed due to it being an outdated version.
|
removed due to it being an outdated version.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The MoinMoin wiki engine
|
||||||
|
(<literal>services.moinmoin</literal>) has been removed,
|
||||||
|
because Python 2 is being retired from nixpkgs.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <literal>wafHook</literal> hook now honors
|
The <literal>wafHook</literal> hook now honors
|
||||||
|
|
|
@ -43,6 +43,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
|
- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
|
||||||
|
|
||||||
|
- The MoinMoin wiki engine (`services.moinmoin`) has been removed, because Python 2 is being retired from nixpkgs.
|
||||||
|
|
||||||
- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
|
- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
|
||||||
|
|
||||||
- `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
|
- `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
|
||||||
|
|
|
@ -1029,7 +1029,6 @@
|
||||||
./services/web-apps/pgpkeyserver-lite.nix
|
./services/web-apps/pgpkeyserver-lite.nix
|
||||||
./services/web-apps/powerdns-admin.nix
|
./services/web-apps/powerdns-admin.nix
|
||||||
./services/web-apps/matomo.nix
|
./services/web-apps/matomo.nix
|
||||||
./services/web-apps/moinmoin.nix
|
|
||||||
./services/web-apps/openwebrx.nix
|
./services/web-apps/openwebrx.nix
|
||||||
./services/web-apps/restya-board.nix
|
./services/web-apps/restya-board.nix
|
||||||
./services/web-apps/sogo.nix
|
./services/web-apps/sogo.nix
|
||||||
|
|
|
@ -24,6 +24,7 @@ with lib;
|
||||||
(mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "")
|
(mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "")
|
||||||
(mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "")
|
(mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "")
|
||||||
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
|
(mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
|
||||||
|
(mkRemovedOptionModule [ "services" "moinmoin" ] "The corresponding package was removed from nixpkgs.")
|
||||||
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
|
(mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
|
||||||
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
|
(mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
|
||||||
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
|
(mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
|
||||||
|
|
|
@ -1,304 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.services.moinmoin;
|
|
||||||
python = pkgs.python27;
|
|
||||||
pkg = python.pkgs.moinmoin;
|
|
||||||
dataDir = "/var/lib/moin";
|
|
||||||
usingGunicorn = cfg.webServer == "nginx-gunicorn" || cfg.webServer == "gunicorn";
|
|
||||||
usingNginx = cfg.webServer == "nginx-gunicorn";
|
|
||||||
user = "moin";
|
|
||||||
group = "moin";
|
|
||||||
|
|
||||||
uLit = s: ''u"${s}"'';
|
|
||||||
indentLines = n: str: concatMapStrings (line: "${fixedWidthString n " " " "}${line}\n") (splitString "\n" str);
|
|
||||||
|
|
||||||
moinCliWrapper = wikiIdent: pkgs.writeShellScriptBin "moin-${wikiIdent}" ''
|
|
||||||
${pkgs.su}/bin/su -s ${pkgs.runtimeShell} -c "${pkg}/bin/moin --config-dir=/var/lib/moin/${wikiIdent}/config $*" ${user}
|
|
||||||
'';
|
|
||||||
|
|
||||||
wikiConfig = wikiIdent: w: ''
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
|
|
||||||
from MoinMoin.config import multiconfig, url_prefix_static
|
|
||||||
|
|
||||||
class Config(multiconfig.DefaultConfig):
|
|
||||||
${optionalString (w.webLocation != "/") ''
|
|
||||||
url_prefix_static = '${w.webLocation}' + url_prefix_static
|
|
||||||
''}
|
|
||||||
|
|
||||||
sitename = u'${w.siteName}'
|
|
||||||
page_front_page = u'${w.frontPage}'
|
|
||||||
|
|
||||||
data_dir = '${dataDir}/${wikiIdent}/data'
|
|
||||||
data_underlay_dir = '${dataDir}/${wikiIdent}/underlay'
|
|
||||||
|
|
||||||
language_default = u'${w.languageDefault}'
|
|
||||||
${optionalString (w.superUsers != []) ''
|
|
||||||
superuser = [${concatMapStringsSep ", " uLit w.superUsers}]
|
|
||||||
''}
|
|
||||||
|
|
||||||
${indentLines 4 w.extraConfig}
|
|
||||||
'';
|
|
||||||
wikiConfigFile = name: wiki: pkgs.writeText "${name}.py" (wikiConfig name wiki);
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.services.moinmoin = with types; {
|
|
||||||
enable = mkEnableOption "MoinMoin Wiki Engine";
|
|
||||||
|
|
||||||
webServer = mkOption {
|
|
||||||
type = enum [ "nginx-gunicorn" "gunicorn" "none" ];
|
|
||||||
default = "nginx-gunicorn";
|
|
||||||
example = "none";
|
|
||||||
description = ''
|
|
||||||
Which web server to use to serve the wiki.
|
|
||||||
Use <literal>none</literal> if you want to configure this yourself.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
gunicorn.workers = mkOption {
|
|
||||||
type = ints.positive;
|
|
||||||
default = 3;
|
|
||||||
example = 10;
|
|
||||||
description = ''
|
|
||||||
The number of worker processes for handling requests.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
wikis = mkOption {
|
|
||||||
type = attrsOf (submodule ({ name, ... }: {
|
|
||||||
options = {
|
|
||||||
siteName = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "Untitled Wiki";
|
|
||||||
example = "ExampleWiki";
|
|
||||||
description = ''
|
|
||||||
Short description of your wiki site, displayed below the logo on each page, and
|
|
||||||
used in RSS documents as the channel title.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
webHost = mkOption {
|
|
||||||
type = str;
|
|
||||||
description = "Host part of the wiki URL. If undefined, the name of the attribute set will be used.";
|
|
||||||
example = "wiki.example.org";
|
|
||||||
};
|
|
||||||
|
|
||||||
webLocation = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "/";
|
|
||||||
example = "/moin";
|
|
||||||
description = "Location part of the wiki URL.";
|
|
||||||
};
|
|
||||||
|
|
||||||
frontPage = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "LanguageSetup";
|
|
||||||
example = "FrontPage";
|
|
||||||
description = ''
|
|
||||||
Front page name. Set this to something like <literal>FrontPage</literal> once languages are
|
|
||||||
configured.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
superUsers = mkOption {
|
|
||||||
type = listOf str;
|
|
||||||
default = [];
|
|
||||||
example = [ "elvis" ];
|
|
||||||
description = ''
|
|
||||||
List of trusted user names with wiki system administration super powers.
|
|
||||||
|
|
||||||
Please note that accounts for these users need to be created using the <command>moin</command> command-line utility, e.g.:
|
|
||||||
<command>moin-<replaceable>WIKINAME</replaceable> account create --name=<replaceable>NAME</replaceable> --email=<replaceable>EMAIL</replaceable> --password=<replaceable>PASSWORD</replaceable></command>.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
languageDefault = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "en";
|
|
||||||
example = "de";
|
|
||||||
description = "The ISO-639-1 name of the main wiki language. Languages that MoinMoin does not support are ignored.";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = mkOption {
|
|
||||||
type = lines;
|
|
||||||
default = "";
|
|
||||||
example = ''
|
|
||||||
show_hosts = True
|
|
||||||
search_results_per_page = 100
|
|
||||||
acl_rights_default = u"Known:read,write,delete,revert All:read"
|
|
||||||
logo_string = u"<h2>\U0001f639</h2>"
|
|
||||||
theme_default = u"modernized"
|
|
||||||
|
|
||||||
user_checkbox_defaults = {'show_page_trail': 0, 'edit_on_doubleclick': 0}
|
|
||||||
navi_bar = [u'SomePage'] + multiconfig.DefaultConfig.navi_bar
|
|
||||||
actions_excluded = multiconfig.DefaultConfig.actions_excluded + ['newaccount']
|
|
||||||
|
|
||||||
mail_smarthost = "mail.example.org"
|
|
||||||
mail_from = u"Example.Org Wiki <wiki@example.org>"
|
|
||||||
'';
|
|
||||||
description = ''
|
|
||||||
Additional configuration to be appended verbatim to this wiki's config.
|
|
||||||
|
|
||||||
See <link xlink:href='http://moinmo.in/HelpOnConfiguration' /> for documentation.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
config = {
|
|
||||||
webHost = mkDefault name;
|
|
||||||
};
|
|
||||||
}));
|
|
||||||
example = literalExpression ''
|
|
||||||
{
|
|
||||||
"mywiki" = {
|
|
||||||
siteName = "Example Wiki";
|
|
||||||
webHost = "wiki.example.org";
|
|
||||||
superUsers = [ "admin" ];
|
|
||||||
frontPage = "Index";
|
|
||||||
extraConfig = "page_category_regex = ur'(?P<all>(Category|Kategorie)(?P<key>(?!Template)\S+))'"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
description = ''
|
|
||||||
Configurations of the individual wikis. Attribute names must be valid Python
|
|
||||||
identifiers of the form <literal>[A-Za-z_][A-Za-z0-9_]*</literal>.
|
|
||||||
|
|
||||||
For every attribute <replaceable>WIKINAME</replaceable>, a helper script
|
|
||||||
moin-<replaceable>WIKINAME</replaceable> is created which runs the
|
|
||||||
<command>moin</command> command under the <literal>moin</literal> user (to avoid
|
|
||||||
file ownership issues) and with the right configuration directory passed to it.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
assertions = forEach (attrNames cfg.wikis) (wname:
|
|
||||||
{ assertion = builtins.match "[A-Za-z_][A-Za-z0-9_]*" wname != null;
|
|
||||||
message = "${wname} is not valid Python identifier";
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
users.users = {
|
|
||||||
moin = {
|
|
||||||
description = "MoinMoin wiki";
|
|
||||||
home = dataDir;
|
|
||||||
group = group;
|
|
||||||
isSystemUser = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups = {
|
|
||||||
moin = {
|
|
||||||
members = mkIf usingNginx [ config.services.nginx.user ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [ pkg ] ++ map moinCliWrapper (attrNames cfg.wikis);
|
|
||||||
|
|
||||||
systemd.services = mkIf usingGunicorn
|
|
||||||
(flip mapAttrs' cfg.wikis (wikiIdent: wiki:
|
|
||||||
nameValuePair "moin-${wikiIdent}"
|
|
||||||
{
|
|
||||||
description = "MoinMoin wiki ${wikiIdent} - gunicorn process";
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
after = [ "network.target" ];
|
|
||||||
restartIfChanged = true;
|
|
||||||
restartTriggers = [ (wikiConfigFile wikiIdent wiki) ];
|
|
||||||
|
|
||||||
environment = let
|
|
||||||
penv = python.buildEnv.override {
|
|
||||||
# setuptools: https://github.com/benoitc/gunicorn/issues/1716
|
|
||||||
extraLibs = [ python.pkgs.eventlet python.pkgs.setuptools pkg ];
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
PYTHONPATH = "${dataDir}/${wikiIdent}/config:${penv}/${python.sitePackages}";
|
|
||||||
};
|
|
||||||
|
|
||||||
preStart = ''
|
|
||||||
umask 0007
|
|
||||||
rm -rf ${dataDir}/${wikiIdent}/underlay
|
|
||||||
cp -r ${pkg}/share/moin/underlay ${dataDir}/${wikiIdent}/
|
|
||||||
chmod -R u+w ${dataDir}/${wikiIdent}/underlay
|
|
||||||
'';
|
|
||||||
|
|
||||||
startLimitIntervalSec = 30;
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
User = user;
|
|
||||||
Group = group;
|
|
||||||
WorkingDirectory = "${dataDir}/${wikiIdent}";
|
|
||||||
ExecStart = ''${python.pkgs.gunicorn}/bin/gunicorn moin_wsgi \
|
|
||||||
--name gunicorn-${wikiIdent} \
|
|
||||||
--workers ${toString cfg.gunicorn.workers} \
|
|
||||||
--worker-class eventlet \
|
|
||||||
--bind unix:/run/moin/${wikiIdent}/gunicorn.sock
|
|
||||||
'';
|
|
||||||
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = "2s";
|
|
||||||
|
|
||||||
StateDirectory = "moin/${wikiIdent}";
|
|
||||||
StateDirectoryMode = "0750";
|
|
||||||
RuntimeDirectory = "moin/${wikiIdent}";
|
|
||||||
RuntimeDirectoryMode = "0750";
|
|
||||||
|
|
||||||
NoNewPrivileges = true;
|
|
||||||
ProtectSystem = "strict";
|
|
||||||
ProtectHome = true;
|
|
||||||
PrivateTmp = true;
|
|
||||||
PrivateDevices = true;
|
|
||||||
PrivateNetwork = true;
|
|
||||||
ProtectKernelTunables = true;
|
|
||||||
ProtectKernelModules = true;
|
|
||||||
ProtectControlGroups = true;
|
|
||||||
RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
|
|
||||||
RestrictNamespaces = true;
|
|
||||||
LockPersonality = true;
|
|
||||||
MemoryDenyWriteExecute = true;
|
|
||||||
RestrictRealtime = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
));
|
|
||||||
|
|
||||||
services.nginx = mkIf usingNginx {
|
|
||||||
enable = true;
|
|
||||||
virtualHosts = flip mapAttrs' cfg.wikis (name: w: nameValuePair w.webHost {
|
|
||||||
forceSSL = mkDefault true;
|
|
||||||
enableACME = mkDefault true;
|
|
||||||
locations."${w.webLocation}" = {
|
|
||||||
extraConfig = ''
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
proxy_set_header X-Forwarded-Host $host;
|
|
||||||
proxy_set_header X-Forwarded-Server $host;
|
|
||||||
|
|
||||||
proxy_pass http://unix:/run/moin/${name}/gunicorn.sock;
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d /run/moin 0750 ${user} ${group} - -"
|
|
||||||
"d ${dataDir} 0550 ${user} ${group} - -"
|
|
||||||
]
|
|
||||||
++ (concatLists (flip mapAttrsToList cfg.wikis (wikiIdent: wiki: [
|
|
||||||
"d ${dataDir}/${wikiIdent} 0750 ${user} ${group} - -"
|
|
||||||
"d ${dataDir}/${wikiIdent}/config 0550 ${user} ${group} - -"
|
|
||||||
"L+ ${dataDir}/${wikiIdent}/config/wikiconfig.py - - - - ${wikiConfigFile wikiIdent wiki}"
|
|
||||||
# needed in order to pass module name to gunicorn
|
|
||||||
"L+ ${dataDir}/${wikiIdent}/config/moin_wsgi.py - - - - ${pkg}/share/moin/server/moin.wsgi"
|
|
||||||
# seed data files
|
|
||||||
"C ${dataDir}/${wikiIdent}/data 0770 ${user} ${group} - ${pkg}/share/moin/data"
|
|
||||||
# fix nix store permissions
|
|
||||||
"Z ${dataDir}/${wikiIdent}/data 0770 ${user} ${group} - -"
|
|
||||||
])));
|
|
||||||
};
|
|
||||||
|
|
||||||
meta.maintainers = with lib.maintainers; [ mmilata ];
|
|
||||||
}
|
|
|
@ -273,7 +273,6 @@ in
|
||||||
misc = handleTest ./misc.nix {};
|
misc = handleTest ./misc.nix {};
|
||||||
mjolnir = handleTest ./matrix/mjolnir.nix {};
|
mjolnir = handleTest ./matrix/mjolnir.nix {};
|
||||||
mod_perl = handleTest ./mod_perl.nix {};
|
mod_perl = handleTest ./mod_perl.nix {};
|
||||||
moinmoin = handleTest ./moinmoin.nix {};
|
|
||||||
mongodb = handleTest ./mongodb.nix {};
|
mongodb = handleTest ./mongodb.nix {};
|
||||||
moodle = handleTest ./moodle.nix {};
|
moodle = handleTest ./moodle.nix {};
|
||||||
morty = handleTest ./morty.nix {};
|
morty = handleTest ./morty.nix {};
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
|
||||||
name = "moinmoin";
|
|
||||||
meta.maintainers = with lib.maintainers; [ mmilata ];
|
|
||||||
|
|
||||||
machine =
|
|
||||||
{ ... }:
|
|
||||||
{ services.moinmoin.enable = true;
|
|
||||||
services.moinmoin.wikis.ExampleWiki.superUsers = [ "admin" ];
|
|
||||||
services.moinmoin.wikis.ExampleWiki.webHost = "localhost";
|
|
||||||
|
|
||||||
services.nginx.virtualHosts.localhost.enableACME = false;
|
|
||||||
services.nginx.virtualHosts.localhost.forceSSL = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
testScript = ''
|
|
||||||
start_all()
|
|
||||||
|
|
||||||
machine.wait_for_unit("moin-ExampleWiki.service")
|
|
||||||
machine.wait_for_unit("nginx.service")
|
|
||||||
machine.wait_for_file("/run/moin/ExampleWiki/gunicorn.sock")
|
|
||||||
|
|
||||||
assert "If you have just installed" in machine.succeed("curl -L http://localhost/")
|
|
||||||
|
|
||||||
assert "status success" in machine.succeed(
|
|
||||||
"moin-ExampleWiki account create --name=admin --email=admin@example.com --password=foo 2>&1"
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
})
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ lib, buildPythonPackage, fetchurl, isPy3k
|
|
||||||
, pytest, werkzeug, pygments
|
|
||||||
}:
|
|
||||||
|
|
||||||
buildPythonPackage rec {
|
|
||||||
pname = "moinmoin";
|
|
||||||
version = "1.9.11";
|
|
||||||
|
|
||||||
# SyntaxError in setup.py
|
|
||||||
disabled = isPy3k;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "http://static.moinmo.in/files/moin-${version}.tar.gz";
|
|
||||||
sha256 = "sha256-Ar4x1V851P4MYlPfi0ngG3bQlWNMvRtW0YX2bh4MPPU=";
|
|
||||||
};
|
|
||||||
|
|
||||||
patches = [
|
|
||||||
# Recommended to install on their download page.
|
|
||||||
./fix_tests.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
prePatch = ''
|
|
||||||
sed -i "s/\xfc/ü/" setup.cfg
|
|
||||||
'';
|
|
||||||
|
|
||||||
checkInputs = [ pytest werkzeug pygments ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Advanced, easy to use and extensible WikiEngine";
|
|
||||||
|
|
||||||
homepage = "https://moinmo.in/";
|
|
||||||
|
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
diff -ru3 moin-1.9.9-old/MoinMoin/conftest.py moin-1.9.9-new/MoinMoin/conftest.py
|
|
||||||
--- moin-1.9.9-old/MoinMoin/conftest.py 2016-10-31 23:44:02.000000000 +0300
|
|
||||||
+++ moin-1.9.9-new/MoinMoin/conftest.py 2018-02-18 12:13:19.551929093 +0300
|
|
||||||
@@ -22,10 +22,11 @@
|
|
||||||
|
|
||||||
import atexit
|
|
||||||
import sys
|
|
||||||
+import os
|
|
||||||
|
|
||||||
import py
|
|
||||||
|
|
||||||
-rootdir = py.magic.autopath().dirpath()
|
|
||||||
+rootdir = os.path.abspath(os.path.dirname(__file__))
|
|
||||||
moindir = rootdir.join("..")
|
|
||||||
sys.path.insert(0, str(moindir))
|
|
||||||
|
|
|
@ -288,9 +288,6 @@ with self; with super; {
|
||||||
|
|
||||||
mock = callPackage ../development/python-modules/mock/2.nix { };
|
mock = callPackage ../development/python-modules/mock/2.nix { };
|
||||||
|
|
||||||
# Needed here because moinmoin is loaded as a Python library.
|
|
||||||
moinmoin = callPackage ../development/python-modules/moinmoin { };
|
|
||||||
|
|
||||||
monosat = disabled super.monosat;
|
monosat = disabled super.monosat;
|
||||||
|
|
||||||
more-itertools = callPackage ../development/python-modules/more-itertools/2.7.nix { };
|
more-itertools = callPackage ../development/python-modules/more-itertools/2.7.nix { };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue