Merge staging-next into staging

This commit is contained in:
Frederik Rietdijk
2020-10-06 10:25:58 +02:00
646 changed files with 11286 additions and 6998 deletions

View File

@@ -6,7 +6,7 @@
let
# Disable immobile space so we don't run out of memory on large books; see
# http://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL
# https://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL
sbcl = args.sbcl.override { disableImmobileSpace = true; };
# Wrap to add `-model` argument because some of the books in 8.3 need this.
@@ -121,7 +121,7 @@ in stdenv.mkDerivation rec {
'' else ''
The community books are not included in this package.
'');
homepage = "http://www.cs.utexas.edu/users/moore/acl2/";
homepage = "https://www.cs.utexas.edu/users/moore/acl2/";
downloadPage = "https://github.com/acl2-devel/acl2-devel/releases";
license = with licenses; [
# ACL2 itself is bsd3

View File

@@ -3,8 +3,8 @@
# How to obtain `sha256`:
# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
mkDerivation {
version = "23.0.3";
sha256 = "133aw1ffkxdf38na3smmvn5qwwlalh4r4a51793h1wkhdzkyl6mv";
version = "23.1";
sha256 = "1k74g6m2lidhp04vrcwrg0jszj3zwxyrm4fsma09sfn9rfsra36g";
prePatch = ''
substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"

View File

@@ -272,16 +272,16 @@ let
};
php73base = callPackage generic (_args // {
version = "7.3.20";
sha256 = "1pl9bjwvdva2yx4sh465z9cr4bnr8mvv008w71sy1kqsj6a7ivf6";
version = "7.3.23";
sha256 = "0k600imsxm3r3qdv20ryqhvfmnkmjhvm2hcnqr180l058snncrpx";
# https://bugs.php.net/bug.php?id=76826
extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
});
php74base = callPackage generic (_args // {
version = "7.4.8";
sha256 = "0ql01sfg8l7y2bfwmnjxnfw9irpibnz57ssck24b00y00nkd6j3a";
version = "7.4.11";
sha256 = "1idq2sk3x6msy8l2g42jv3y87h1fgb1aybxw7wpjkliv4iaz422l";
});
defaultPhpExtensions = { all, ... }: with all; ([

View File

@@ -108,9 +108,9 @@ in {
major = "3";
minor = "9";
patch = "0";
suffix = "rc2";
suffix = "";
};
sha256 = "gLV8EfYNwfRqQIsVQ/BO1S5kde1eWXtMI/P9ZfC3Kbo=";
sha256 = "0m18z05nlmqm1zjw9s0ifgrn1jvjn3jwjg0bpswhjmw5k4yfcwww";
inherit (darwin) configd;
inherit passthruFun;
};

View File

@@ -12,11 +12,10 @@ to update all non-pinned libraries in that folder.
"""
import argparse
import logging
import os
import pathlib
import re
import requests
import toolz
from concurrent.futures import ThreadPoolExecutor as Pool
from packaging.version import Version as _Version
from packaging.version import InvalidVersion
@@ -34,6 +33,8 @@ PRERELEASES = False
GIT = "git"
NIXPGKS_ROOT = str(pathlib.Path(__file__).absolute().parents[5])
import logging
logging.basicConfig(level=logging.INFO)
@@ -101,6 +102,7 @@ def _replace_value(attribute, value, text):
new_text = text.replace(old_line, new_line)
return new_text
def _fetch_page(url):
r = requests.get(url)
if r.status_code == requests.codes.ok:
@@ -109,6 +111,19 @@ def _fetch_page(url):
raise ValueError("request for {} failed".format(url))
def _fetch_github(url):
headers = {}
token = os.environ.get('GITHUB_API_TOKEN')
if token:
headers["Authorization"] = f"token {token}"
r = requests.get(url, headers=headers)
if r.status_code == requests.codes.ok:
return r.json()
else:
raise ValueError("request for {} failed".format(url))
SEMVER = {
'major' : 0,
'minor' : 1,
@@ -167,11 +182,42 @@ def _get_latest_version_pypi(package, extension, current_version, target):
break
else:
sha256 = None
return version, sha256
return version, sha256, None
def _get_latest_version_github(package, extension, current_version, target):
raise ValueError("updating from GitHub is not yet supported.")
def strip_prefix(tag):
return re.sub("^[^0-9]*", "", tag)
def get_prefix(string):
matches = re.findall(r"^([^0-9]*)", string)
return next(iter(matches), "")
try:
homepage = subprocess.check_output(
["nix", "eval", "-f", f"{NIXPGKS_ROOT}/default.nix", "--raw", f"python3Packages.{package}.src.meta.homepage"])\
.decode('utf-8')
except Exception as e:
raise ValueError(f"Unable to determine homepage: {e}")
owner_repo = homepage[len("https://github.com/"):] # remove prefix
owner, repo = owner_repo.split("/")
url = f"https://api.github.com/repos/{owner}/{repo}/releases"
all_releases = _fetch_github(url)
releases = list(filter(lambda x: not x['prerelease'], all_releases))
if len(releases) == 0:
raise ValueError(f"{homepage} does not contain any stable releases")
versions = map(lambda x: strip_prefix(x['tag_name']), releases)
version = _determine_latest_version(current_version, target, versions)
release = next(filter(lambda x: strip_prefix(x['tag_name']) == version, releases))
prefix = get_prefix(release['tag_name'])
sha256 = subprocess.check_output(["nix-prefetch-url", "--type", "sha256", "--unpack", f"{release['tarball_url']}"], stderr=subprocess.DEVNULL)\
.decode('utf-8').strip()
return version, sha256, prefix
FETCHERS = {
@@ -240,7 +286,9 @@ def _determine_extension(text, fetcher):
raise ValueError('url does not point to PyPI.')
elif fetcher == 'fetchFromGitHub':
raise ValueError('updating from GitHub is not yet implemented.')
if "fetchSubmodules" in text:
raise ValueError("fetchFromGitHub fetcher doesn't support submodules")
extension = "tar.gz"
return extension
@@ -262,7 +310,7 @@ def _update_package(path, target):
extension = _determine_extension(text, fetcher)
new_version, new_sha256 = FETCHERS[fetcher](pname, extension, version, target)
new_version, new_sha256, prefix = FETCHERS[fetcher](pname, extension, version, target)
if new_version == version:
logging.info("Path {}: no update available for {}.".format(path, pname))
@@ -274,6 +322,10 @@ def _update_package(path, target):
text = _replace_value('version', new_version, text)
text = _replace_value('sha256', new_sha256, text)
if fetcher == 'fetchFromGitHub':
text = _replace_value('rev', f"{prefix}${{version}}", text)
# incase there's no prefix, just rewrite without interpolation
text = text.replace('"${version}";', 'version;')
with open(path, 'w') as f:
f.write(text)
@@ -333,7 +385,11 @@ def _commit(path, pname, old_version, new_version, pkgs_prefix="python: ", **kwa
def main():
parser = argparse.ArgumentParser()
epilog = """
environment variables:
GITHUB_API_TOKEN\tGitHub API token used when updating github packages
"""
parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, epilog=epilog)
parser.add_argument('package', type=str, nargs='+')
parser.add_argument('--target', type=str, choices=SEMVER.keys(), default='major')
parser.add_argument('--commit', action='store_true', help='Create a commit for each package update')

View File

@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "rakudo";
version = "2020.08.2";
version = "2020.09";
src = fetchurl {
url = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
sha256 = "16qsq6alvk2x44x39j2fzxigvm5cvmz85i0nkjcw0wz29yyf8lch";
sha256 = "1izfwns7viwy0x9hnhx13j9w5qa97qpyxqk9cd8iax7i68z057m7";
};
buildInputs = [ icu zlib gmp perl ];
@@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
"--with-nqp=${nqp}/bin/nqp"
];
# Remove test of profiler, fails since 2020.09
preCheck = "rm t/09-moar/01-profilers.t";
# Some tests fail on Darwin
doCheck = !stdenv.isDarwin;

View File

@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
pname = "moarvm";
version = "2020.08";
version = "2020.09";
src = fetchurl {
url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
sha256 = "1gq7z4z5lnkai01721waawkkal82sdmyra05nnbfb1986mq5xpiy";
sha256 = "08prlvnyqwnzb7mwaqvgv662v78xgwsyy12cpyim6gc4z0i1kcj8";
};
buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];

View File

@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "nqp";
version = "2020.08.2";
version = "2020.09";
src = fetchurl {
url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
sha256 = "14zr1swprxl284k0h1w72pcypj24sga15170ylaqjb8wxy8h1mqw";
sha256 = "09kiy7r732yrh3nzdzdq9yki0jx2hamyqvrbahk4mlxmb6cl9qmh";
};
buildInputs = [ perl ];

View File

@@ -192,7 +192,7 @@ let
description = "The Ruby language";
homepage = "http://www.ruby-lang.org/en/";
license = licenses.ruby;
maintainers = with maintainers; [ vrthra manveru ];
maintainers = with maintainers; [ vrthra manveru marsam ];
platforms = platforms.all;
};
@@ -240,10 +240,10 @@ in {
};
ruby_2_7 = generic {
version = rubyVersion "2" "7" "1" "";
version = rubyVersion "2" "7" "2" "";
sha256 = {
src = "0674x98f542y02r7n2yv2qhmh97blqhi2mvh2dn5f000vlxlh66l";
git = "0qk729kr5wm67xmwpljpdprwhp5wvn5y4ikqy00p1zcgwlwdcs33";
src = "1m63461mxi3fg4y3bspbgmb0ckbbb1ldgf9xi0piwkpfsk80cmvf";
git = "0kbgznf1yprfp9645k31ra5f4757b7fichzi0hdg6nxkj90853s0";
};
};
}

View File

@@ -11,7 +11,7 @@
"${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch"
];
"2.7.1" = ops useRailsExpress [
"2.7.2" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
"${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch"

View File

@@ -3,6 +3,6 @@
fetchFromGitHub {
owner = "skaes";
repo = "rvm-patchsets";
rev = "6d8888d34a321198f7fd9253343b78c209efb046";
sha256 = "0xczl0nng1649km3bcbjn6zrr591l6m2kkwgnknh1fnwmmrdaya7";
rev = "e2f4b82e47aeaf2a3b894da3b46ba6f0ca92cbb6";
sha256 = "059mvf8jcjrfplr8hv2y6ibc41id979k0zwfh6zdnb7dynym4bsg";
}

View File

@@ -1,11 +1,11 @@
{ fetchgit, stdenv, xorg, makeWrapper, ncurses, cmake }:
stdenv.mkDerivation {
# The Self wrapper stores source in $XDG_DATA_HOME/self or ~/.local/share/self
# The Self wrapper stores source in $XDG_DATA_HOME/self or ~/.local/share/self
# so that it can be written to when using the Self transposer. Running 'Self'
# after installation runs without an image. You can then build a Self image with:
# $ cd ~/.local/share/self/objects
# $ Self
# $ Self
# > 'worldBuilder.self' _RunScript
#
# This image can later be started with:
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
meta = {
description = "A prototype-based dynamic object-oriented programming language, environment, and virtual machine";
homepage = "http://selflanguage.org/";
homepage = "https://selflanguage.org/";
license = stdenv.lib.licenses.bsd3;
maintainers = [ stdenv.lib.maintainers.doublec ];
platforms = with stdenv.lib.platforms; linux;

View File

@@ -67,5 +67,6 @@ stdenv.mkDerivation rec {
maintainers = [ maintainers.abbradar ];
platforms = platforms.unix;
knownVulnerabilities = [ "SpiderMonkey 38 is outdated and contains known security vulnerabilities." ]; # as per https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/38
};
}

View File

@@ -0,0 +1,118 @@
{ stdenv
, fetchurl
, fetchpatch
, autoconf213
, pkgconfig
, perl
, python3
, zip
, buildPackages
, which
, readline
, zlib
, icu67
, cargo
, rustc
, rust-cbindgen
, yasm
, llvmPackages
, nspr
}:
stdenv.mkDerivation rec {
pname = "spidermonkey";
version = "78.1.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
sha256 = "18k47dl9hbnpqw69csxjar5dhwa7r8k7j9kvcfgmwb1iv6ba601n";
};
outputs = [ "out" "dev" ];
setOutputFlags = false; # Configure script only understands --includedir
nativeBuildInputs = [
autoconf213
cargo
llvmPackages.llvm # for llvm-objdump
perl
pkgconfig
python3
rust-cbindgen
rustc
which
yasm # to buid icu? seems weird
zip
];
buildInputs = [
icu67
nspr
readline
zlib
];
patches = [
# https://mail.gnome.org/archives/distributor-list/2020-August/msg00000.html
(fetchpatch {
url = "https://github.com/ptomato/mozjs/commit/b2974f8a6558d2dc4517b49ee313a9900a853285.patch";
sha256 = "1bl5mbx7gmad6fmpc427263i1ychi2linpg69kxlr2w91r5m6ji3";
})
(fetchpatch {
url = "https://github.com/ptomato/mozjs/commit/e5a2eb99f653ae03c67e536df1d55d265a0a1605.patch";
sha256 = "0xhy63nw2byibmjc41yh6dwpg282nylganrs5aprn9pbqbcpsvif";
})
];
preConfigure = ''
export CXXFLAGS="-fpermissive"
export LIBXUL_DIST=$out
export PYTHON="${buildPackages.python3.interpreter}"
# We can't build in js/src/, so create a build dir
mkdir obj
cd obj/
configureScript=../js/src/configure
'';
configureFlags = [
"--with-system-zlib"
"--with-system-nspr"
"--with-system-icu"
"--with-intl-api"
"--enable-readline"
"--enable-shared-js"
"--disable-jemalloc"
# Fedora and Arch disable optimize, but it doesn't seme to be necessary
# It turns on -O3 which some gcc version had a problem with:
# https://src.fedoraproject.org/rpms/mozjs38/c/761399aba092bcb1299bb4fccfd60f370ab4216e
"--enable-optimize"
"--enable-release"
] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# Spidermonkey seems to use different host/build terminology for cross
# compilation here.
"--host=${stdenv.buildPlatform.config}"
"--target=${stdenv.hostPlatform.config}"
];
configurePlatforms = [ ];
depsBuildBuild = [ buildPackages.stdenv.cc ];
# Remove unnecessary static lib
preFixup = ''
moveToOutput bin/js60-config "$dev"
rm $out/lib/libjs_static.ajs
ln -s $out/bin/js60 $out/bin/js
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Mozilla's JavaScript engine written in C/C++";
homepage = "https://developer.mozilla.org/en/SpiderMonkey";
license = licenses.gpl2; # TODO: MPL/GPL/LGPL tri-license.
maintainers = [ maintainers.abbradar ];
platforms = platforms.linux;
};
}