diff --git a/lib/modules.nix b/lib/modules.nix index 71672c7d112..44db77b5d1c 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -326,6 +326,8 @@ rec { # The value with a check that it is defined valueDefined = if res.isDefined then res.mergedValue else + # (nixos-option detects this specific error message and gives it special + # handling. If changed here, please change it there too.) throw "The option `${showOption loc}' is used but not defined."; # Apply the 'apply' function to the merged value. This allows options to diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 854b033f056..2db4184e160 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1194,6 +1194,12 @@ githubId = 30435868; name = "Okina Matara"; }; + chkno = { + email = "chuck@intelligence.org"; + github = "chkno"; + githubId = 1118859; + name = "Scott Worley"; + }; choochootrain = { email = "hurshal@imap.cc"; github = "choochootrain"; @@ -1563,6 +1569,12 @@ githubId = 14032; name = "Daniel Brockman"; }; + dduan = { + email = "daniel@duan.ca"; + github = "dduan"; + githubId = 75067; + name = "Daniel Duan"; + }; deepfire = { email = "_deepfire@feelingofgreen.ru"; github = "deepfire"; @@ -2030,6 +2042,12 @@ github = "ericnorris"; githubId = 1906605; }; + Enteee = { + email = "nix@duckpond.ch"; + github = "Enteee"; + githubid = 5493775; + name = "Ente"; + }; enzime = { email = "enzime@users.noreply.github.com"; github = "enzime"; @@ -7075,6 +7093,12 @@ email = "kirill.wedens@gmail.com"; name = "wedens"; }; + WhittlesJr = { + email = "alex.joseph.whitt@gmail.com"; + github = "WhittlesJr"; + githubId = 19174984; + name = "Alex Whitt"; + }; willibutz = { email = "willibutz@posteo.de"; github = "willibutz"; diff --git a/nixos/doc/manual/development/running-nixos-tests-interactively.xml b/nixos/doc/manual/development/running-nixos-tests-interactively.xml index e390d62fde2..ea3ba0e4bf7 100644 --- a/nixos/doc/manual/development/running-nixos-tests-interactively.xml +++ b/nixos/doc/manual/development/running-nixos-tests-interactively.xml @@ -14,14 +14,14 @@ starting VDE switch for network 1 > - You can then take any Perl statement, e.g. + You can then take any Python statement, e.g. -> startAll -> testScript -> $machine->succeed("touch /tmp/foo") -> print($machine->succeed("pwd")) # Show stdout of command +> start_all() +> test_script() +> machine.succeed("touch /tmp/foo") +> print(machine.succeed("pwd")) # Show stdout of command - The function testScript executes the entire test script + The function test_script executes the entire test script and drops you back into the test driver command line upon its completion. This allows you to inspect the state of the VMs after the test (e.g. to debug the test script). diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml index 6be2d0a4d23..24efd2e3273 100644 --- a/nixos/doc/manual/development/writing-nixos-tests.xml +++ b/nixos/doc/manual/development/writing-nixos-tests.xml @@ -8,7 +8,7 @@ A NixOS test is a Nix expression that has the following structure: -import ./make-test.nix { +import ./make-test-python.nix { # Either the configuration of a single machine: machine = @@ -27,11 +27,11 @@ import ./make-test.nix { testScript = '' - Perl code… + Python code… ''; } - The attribute testScript is a bit of Perl code that + The attribute testScript is a bit of Python code that executes the test (described below). During the test, it will start one or more virtual machines, the configuration of which is described by the attribute machine (if you need only one machine in your @@ -96,26 +96,27 @@ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualis - The test script is a sequence of Perl statements that perform various + The test script is a sequence of Python statements that perform various actions, such as starting VMs, executing commands in the VMs, and so on. Each virtual machine is represented as an object stored in the variable - $name, where - name is the identifier of the machine (which is - just machine if you didn’t specify multiple machines - using the nodes attribute). For instance, the following - starts the machine, waits until it has finished booting, then executes a - command and checks that the output is more-or-less correct: + name if this is also the + identifier of the machine in the declarative config. + If you didn't specify multiple machines using the nodes + attribute, it is just machine. + The following example starts the machine, waits until it has finished booting, + then executes a command and checks that the output is more-or-less correct: -$machine->start; -$machine->waitForUnit("default.target"); -$machine->succeed("uname") =~ /Linux/ or die; +machine.start() +machine.wait_for_unit("default.target") +if not "Linux" in machine.succeed("uname"): + raise Exception("Wrong OS") The first line is actually unnecessary; machines are implicitly started when - you first execute an action on them (such as waitForUnit + you first execute an action on them (such as wait_for_unit or succeed). If you have multiple machines, you can speed up the test by starting them in parallel: -startAll; +start_all() @@ -187,7 +188,7 @@ startAll; - getScreenText + get_screen_text @@ -204,7 +205,7 @@ startAll; - sendMonitorCommand + send_monitor_command @@ -215,23 +216,23 @@ startAll; - sendKeys + send_keys Simulate pressing keys on the virtual keyboard, e.g., - sendKeys("ctrl-alt-delete"). + send_keys("ctrl-alt-delete"). - sendChars + send_chars Simulate typing a sequence of characters on the virtual keyboard, e.g., - sendKeys("foobar\n") will type the string + send_keys("foobar\n") will type the string foobar followed by the Enter key. @@ -272,7 +273,7 @@ startAll; - waitUntilSucceeds + wait_until_succeeds @@ -282,7 +283,7 @@ startAll; - waitUntilFails + wait_until_fails @@ -292,7 +293,7 @@ startAll; - waitForUnit + wait_for_unit @@ -302,7 +303,7 @@ startAll; - waitForFile + wait_for_file @@ -312,7 +313,7 @@ startAll; - waitForOpenPort + wait_for_open_port @@ -323,7 +324,7 @@ startAll; - waitForClosedPort + wait_for_closed_port @@ -333,7 +334,7 @@ startAll; - waitForX + wait_for_x @@ -343,13 +344,13 @@ startAll; - waitForText + wait_for_text Wait until the supplied regular expressions matches the textual contents of the screen by using optical character recognition (see - getScreenText). + get_screen_text). @@ -361,23 +362,23 @@ startAll; - waitForWindow + wait_for_window Wait until an X11 window has appeared whose name matches the given - regular expression, e.g., waitForWindow(qr/Terminal/). + regular expression, e.g., wait_for_window("Terminal"). - copyFileFromHost + copy_file_from_host Copies a file from host to machine, e.g., - copyFileFromHost("myfile", "/etc/my/important/file"). + copy_file_from_host("myfile", "/etc/my/important/file"). The first argument is the file on the host. The file needs to be @@ -397,8 +398,8 @@ startAll; -$machine->systemctl("list-jobs --no-pager"); // runs `systemctl list-jobs --no-pager` -$machine->systemctl("list-jobs --no-pager", "any-user"); // spawns a shell for `any-user` and runs `systemctl --user list-jobs --no-pager` +machine.systemctl("list-jobs --no-pager") # runs `systemctl list-jobs --no-pager` +machine.systemctl("list-jobs --no-pager", "any-user") # spawns a shell for `any-user` and runs `systemctl --user list-jobs --no-pager` @@ -408,14 +409,14 @@ $machine->systemctl("list-jobs --no-pager", "any-user"); // spawns a shell for ` To test user units declared by systemd.user.services the - optional $user argument can be used: + optional user argument can be used: -$machine->start; -$machine->waitForX; -$machine->waitForUnit("xautolock.service", "x-session-user"); +machine.start() +machine.wait_for_x() +machine.wait_for_unit("xautolock.service", "x-session-user") - This applies to systemctl, getUnitInfo, - waitForUnit, startJob and - stopJob. + This applies to systemctl, get_unit_info, + wait_for_unit, start_job and + stop_job. diff --git a/nixos/doc/manual/man-nixos-option.xml b/nixos/doc/manual/man-nixos-option.xml index 81e3739b3be..beabf020c92 100644 --- a/nixos/doc/manual/man-nixos-option.xml +++ b/nixos/doc/manual/man-nixos-option.xml @@ -19,14 +19,10 @@ - + - - - - option.name @@ -62,22 +58,11 @@ - + - This option enables verbose mode, which currently is just the Bash - set debug mode. - - - - - - - - - - This option causes the output to be rendered as XML. + Print the values of all options. diff --git a/nixos/doc/manual/release-notes/rl-2003.xml b/nixos/doc/manual/release-notes/rl-2003.xml index f001a18b1c1..72766f16eb9 100644 --- a/nixos/doc/manual/release-notes/rl-2003.xml +++ b/nixos/doc/manual/release-notes/rl-2003.xml @@ -49,6 +49,12 @@ zfs as soon as any zfs mountpoint is configured in fileSystems. + + + nixos-option has been rewritten in C++, speeding it up, improving correctness, + and adding a option which prints all options and their values. + + diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py new file mode 100644 index 00000000000..45b7e229a5c --- /dev/null +++ b/nixos/lib/test-driver/test-driver.py @@ -0,0 +1,758 @@ +#! /somewhere/python3 + +from contextlib import contextmanager +from xml.sax.saxutils import XMLGenerator +import _thread +import atexit +import os +import pty +import queue +import re +import shutil +import socket +import subprocess +import sys +import tempfile +import time +import unicodedata +import ptpython.repl + +CHAR_TO_KEY = { + "A": "shift-a", + "N": "shift-n", + "-": "0x0C", + "_": "shift-0x0C", + "B": "shift-b", + "O": "shift-o", + "=": "0x0D", + "+": "shift-0x0D", + "C": "shift-c", + "P": "shift-p", + "[": "0x1A", + "{": "shift-0x1A", + "D": "shift-d", + "Q": "shift-q", + "]": "0x1B", + "}": "shift-0x1B", + "E": "shift-e", + "R": "shift-r", + ";": "0x27", + ":": "shift-0x27", + "F": "shift-f", + "S": "shift-s", + "'": "0x28", + '"': "shift-0x28", + "G": "shift-g", + "T": "shift-t", + "`": "0x29", + "~": "shift-0x29", + "H": "shift-h", + "U": "shift-u", + "\\": "0x2B", + "|": "shift-0x2B", + "I": "shift-i", + "V": "shift-v", + ",": "0x33", + "<": "shift-0x33", + "J": "shift-j", + "W": "shift-w", + ".": "0x34", + ">": "shift-0x34", + "K": "shift-k", + "X": "shift-x", + "/": "0x35", + "?": "shift-0x35", + "L": "shift-l", + "Y": "shift-y", + " ": "spc", + "M": "shift-m", + "Z": "shift-z", + "\n": "ret", + "!": "shift-0x02", + "@": "shift-0x03", + "#": "shift-0x04", + "$": "shift-0x05", + "%": "shift-0x06", + "^": "shift-0x07", + "&": "shift-0x08", + "*": "shift-0x09", + "(": "shift-0x0A", + ")": "shift-0x0B", +} + + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + + +def create_vlan(vlan_nr): + global log + log.log("starting VDE switch for network {}".format(vlan_nr)) + vde_socket = os.path.abspath("./vde{}.ctl".format(vlan_nr)) + pty_master, pty_slave = pty.openpty() + vde_process = subprocess.Popen( + ["vde_switch", "-s", vde_socket, "--dirmode", "0777"], + bufsize=1, + stdin=pty_slave, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + shell=False, + ) + fd = os.fdopen(pty_master, "w") + fd.write("version\n") + # TODO: perl version checks if this can be read from + # an if not, dies. we could hang here forever. Fix it. + vde_process.stdout.readline() + if not os.path.exists(os.path.join(vde_socket, "ctl")): + raise Exception("cannot start vde_switch") + + return (vlan_nr, vde_socket, vde_process, fd) + + +def retry(fn): + """Call the given function repeatedly, with 1 second intervals, + until it returns True or a timeout is reached. + """ + + for _ in range(900): + if fn(False): + return + time.sleep(1) + + if not fn(True): + raise Exception("action timed out") + + +class Logger: + def __init__(self): + self.logfile = os.environ.get("LOGFILE", "/dev/null") + self.logfile_handle = open(self.logfile, "wb") + self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8") + self.queue = queue.Queue(1000) + + self.xml.startDocument() + self.xml.startElement("logfile", attrs={}) + + def close(self): + self.xml.endElement("logfile") + self.xml.endDocument() + self.logfile_handle.close() + + def sanitise(self, message): + return "".join(ch for ch in message if unicodedata.category(ch)[0] != "C") + + def maybe_prefix(self, message, attributes): + if "machine" in attributes: + return "{}: {}".format(attributes["machine"], message) + return message + + def log_line(self, message, attributes): + self.xml.startElement("line", attributes) + self.xml.characters(message) + self.xml.endElement("line") + + def log(self, message, attributes={}): + eprint(self.maybe_prefix(message, attributes)) + self.drain_log_queue() + self.log_line(message, attributes) + + def enqueue(self, message): + self.queue.put(message) + + def drain_log_queue(self): + try: + while True: + item = self.queue.get_nowait() + attributes = {"machine": item["machine"], "type": "serial"} + self.log_line(self.sanitise(item["msg"]), attributes) + except queue.Empty: + pass + + @contextmanager + def nested(self, message, attributes={}): + eprint(self.maybe_prefix(message, attributes)) + + self.xml.startElement("nest", attrs={}) + self.xml.startElement("head", attributes) + self.xml.characters(message) + self.xml.endElement("head") + + tic = time.time() + self.drain_log_queue() + yield + self.drain_log_queue() + toc = time.time() + self.log("({:.2f} seconds)".format(toc - tic)) + + self.xml.endElement("nest") + + +class Machine: + def __init__(self, args): + if "name" in args: + self.name = args["name"] + else: + self.name = "machine" + try: + cmd = args["startCommand"] + self.name = re.search("run-(.+)-vm$", cmd).group(1) + except KeyError: + pass + except AttributeError: + pass + + self.script = args.get("startCommand", self.create_startcommand(args)) + + tmp_dir = os.environ.get("TMPDIR", tempfile.gettempdir()) + + def create_dir(name): + path = os.path.join(tmp_dir, name) + os.makedirs(path, mode=0o700, exist_ok=True) + return path + + self.state_dir = create_dir("vm-state-{}".format(self.name)) + self.shared_dir = create_dir("xchg-shared") + + self.booted = False + self.connected = False + self.pid = None + self.socket = None + self.monitor = None + self.logger = args["log"] + self.allow_reboot = args.get("allowReboot", False) + + @staticmethod + def create_startcommand(args): + net_backend = "-netdev user,id=net0" + net_frontend = "-device virtio-net-pci,netdev=net0" + + if "netBackendArgs" in args: + net_backend += "," + args["netBackendArgs"] + + if "netFrontendArgs" in args: + net_frontend += "," + args["netFrontendArgs"] + + start_command = ( + "qemu-kvm -m 384 " + net_backend + " " + net_frontend + " $QEMU_OPTS " + ) + + if "hda" in args: + hda_path = os.path.abspath(args["hda"]) + if args.get("hdaInterface", "") == "scsi": + start_command += ( + "-drive id=hda,file=" + + hda_path + + ",werror=report,if=none " + + "-device scsi-hd,drive=hda " + ) + else: + start_command += ( + "-drive file=" + + hda_path + + ",if=" + + args["hdaInterface"] + + ",werror=report " + ) + + if "cdrom" in args: + start_command += "-cdrom " + args["cdrom"] + " " + + if "usb" in args: + start_command += ( + "-device piix3-usb-uhci -drive " + + "id=usbdisk,file=" + + args["usb"] + + ",if=none,readonly " + + "-device usb-storage,drive=usbdisk " + ) + if "bios" in args: + start_command += "-bios " + args["bios"] + " " + + start_command += args.get("qemuFlags", "") + + return start_command + + def is_up(self): + return self.booted and self.connected + + def log(self, msg): + self.logger.log(msg, {"machine": self.name}) + + def nested(self, msg, attrs={}): + my_attrs = {"machine": self.name} + my_attrs.update(attrs) + return self.logger.nested(msg, my_attrs) + + def wait_for_monitor_prompt(self): + while True: + answer = self.monitor.recv(1024).decode() + if answer.endswith("(qemu) "): + return answer + + def send_monitor_command(self, command): + message = ("{}\n".format(command)).encode() + self.log("sending monitor command: {}".format(command)) + self.monitor.send(message) + return self.wait_for_monitor_prompt() + + def wait_for_unit(self, unit, user=None): + while True: + info = self.get_unit_info(unit, user) + state = info["ActiveState"] + if state == "failed": + raise Exception('unit "{}" reached state "{}"'.format(unit, state)) + + if state == "inactive": + status, jobs = self.systemctl("list-jobs --full 2>&1", user) + if "No jobs" in jobs: + info = self.get_unit_info(unit) + if info["ActiveState"] == state: + raise Exception( + ( + 'unit "{}" is inactive and there ' "are no pending jobs" + ).format(unit) + ) + if state == "active": + return True + + def get_unit_info(self, unit, user=None): + status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user) + if status != 0: + return None + + line_pattern = re.compile(r"^([^=]+)=(.*)$") + + def tuple_from_line(line): + match = line_pattern.match(line) + return match[1], match[2] + + return dict( + tuple_from_line(line) + for line in lines.split("\n") + if line_pattern.match(line) + ) + + def systemctl(self, q, user=None): + if user is not None: + q = q.replace("'", "\\'") + return self.execute( + ( + "su -l {} -c " + "$'XDG_RUNTIME_DIR=/run/user/`id -u` " + "systemctl --user {}'" + ).format(user, q) + ) + return self.execute("systemctl {}".format(q)) + + def execute(self, command): + self.connect() + + out_command = "( {} ); echo '|!EOF' $?\n".format(command) + self.shell.send(out_command.encode()) + + output = "" + status_code_pattern = re.compile(r"(.*)\|\!EOF\s+(\d+)") + + while True: + chunk = self.shell.recv(4096).decode() + match = status_code_pattern.match(chunk) + if match: + output += match[1] + status_code = int(match[2]) + return (status_code, output) + output += chunk + + def succeed(self, *commands): + """Execute each command and check that it succeeds.""" + for command in commands: + with self.nested("must succeed: {}".format(command)): + status, output = self.execute(command) + if status != 0: + self.log("output: {}".format(output)) + raise Exception( + "command `{}` failed (exit code {})".format(command, status) + ) + return output + + def fail(self, *commands): + """Execute each command and check that it fails.""" + for command in commands: + with self.nested("must fail: {}".format(command)): + status, output = self.execute(command) + if status == 0: + raise Exception( + "command `{}` unexpectedly succeeded".format(command) + ) + + def wait_until_succeeds(self, command): + with self.nested("waiting for success: {}".format(command)): + while True: + status, output = self.execute(command) + if status == 0: + return output + + def wait_until_fails(self, command): + with self.nested("waiting for failure: {}".format(command)): + while True: + status, output = self.execute(command) + if status != 0: + return output + + def wait_for_shutdown(self): + if not self.booted: + return + + with self.nested("waiting for the VM to power off"): + sys.stdout.flush() + self.process.wait() + + self.pid = None + self.booted = False + self.connected = False + + def get_tty_text(self, tty): + status, output = self.execute( + "fold -w$(stty -F /dev/tty{0} size | " + "awk '{{print $2}}') /dev/vcs{0}".format(tty) + ) + return output + + def wait_until_tty_matches(self, tty, regexp): + matcher = re.compile(regexp) + with self.nested("waiting for {} to appear on tty {}".format(regexp, tty)): + while True: + text = self.get_tty_text(tty) + if len(matcher.findall(text)) > 0: + return True + + def send_chars(self, chars): + with self.nested("sending keys ‘{}‘".format(chars)): + for char in chars: + self.send_key(char) + + def wait_for_file(self, filename): + with self.nested("waiting for file ‘{}‘".format(filename)): + while True: + status, _ = self.execute("test -e {}".format(filename)) + if status == 0: + return True + + def wait_for_open_port(self, port): + def port_is_open(_): + status, _ = self.execute("nc -z localhost {}".format(port)) + return status == 0 + + with self.nested("waiting for TCP port {}".format(port)): + retry(port_is_open) + + def wait_for_closed_port(self, port): + def port_is_closed(_): + status, _ = self.execute("nc -z localhost {}".format(port)) + return status != 0 + + retry(port_is_closed) + + def start_job(self, jobname, user=None): + return self.systemctl("start {}".format(jobname), user) + + def stop_job(self, jobname, user=None): + return self.systemctl("stop {}".format(jobname), user) + + def wait_for_job(self, jobname): + return self.wait_for_unit(jobname) + + def connect(self): + if self.connected: + return + + with self.nested("waiting for the VM to finish booting"): + self.start() + + tic = time.time() + self.shell.recv(1024) + # TODO: Timeout + toc = time.time() + + self.log("connected to guest root shell") + self.log("(connecting took {:.2f} seconds)".format(toc - tic)) + self.connected = True + + def screenshot(self, filename): + out_dir = os.environ.get("out", os.getcwd()) + word_pattern = re.compile(r"^\w+$") + if word_pattern.match(filename): + filename = os.path.join(out_dir, "{}.png".format(filename)) + tmp = "{}.ppm".format(filename) + + with self.nested( + "making screenshot {}".format(filename), + {"image": os.path.basename(filename)}, + ): + self.send_monitor_command("screendump {}".format(tmp)) + ret = subprocess.run("pnmtopng {} > {}".format(tmp, filename), shell=True) + os.unlink(tmp) + if ret.returncode != 0: + raise Exception("Cannot convert screenshot") + + def get_screen_text(self): + if shutil.which("tesseract") is None: + raise Exception("get_screen_text used but enableOCR is false") + + magick_args = ( + "-filter Catrom -density 72 -resample 300 " + + "-contrast -normalize -despeckle -type grayscale " + + "-sharpen 1 -posterize 3 -negate -gamma 100 " + + "-blur 1x65535" + ) + + tess_args = "-c debug_file=/dev/null --psm 11 --oem 2" + + with self.nested("performing optical character recognition"): + with tempfile.NamedTemporaryFile() as tmpin: + self.send_monitor_command("screendump {}".format(tmpin.name)) + + cmd = "convert {} {} tiff:- | tesseract - - {}".format( + magick_args, tmpin.name, tess_args + ) + ret = subprocess.run(cmd, shell=True, capture_output=True) + if ret.returncode != 0: + raise Exception( + "OCR failed with exit code {}".format(ret.returncode) + ) + + return ret.stdout.decode("utf-8") + + def wait_for_text(self, regex): + def screen_matches(last): + text = self.get_screen_text() + m = re.search(regex, text) + + if last and not m: + self.log("Last OCR attempt failed. Text was: {}".format(text)) + + return m + + with self.nested("waiting for {} to appear on screen".format(regex)): + retry(screen_matches) + + def send_key(self, key): + key = CHAR_TO_KEY.get(key, key) + self.send_monitor_command("sendkey {}".format(key)) + + def start(self): + if self.booted: + return + + self.log("starting vm") + + def create_socket(path): + if os.path.exists(path): + os.unlink(path) + s = socket.socket(family=socket.AF_UNIX, type=socket.SOCK_STREAM) + s.bind(path) + s.listen(1) + return s + + monitor_path = os.path.join(self.state_dir, "monitor") + self.monitor_socket = create_socket(monitor_path) + + shell_path = os.path.join(self.state_dir, "shell") + self.shell_socket = create_socket(shell_path) + + qemu_options = ( + " ".join( + [ + "" if self.allow_reboot else "-no-reboot", + "-monitor unix:{}".format(monitor_path), + "-chardev socket,id=shell,path={}".format(shell_path), + "-device virtio-serial", + "-device virtconsole,chardev=shell", + "-device virtio-rng-pci", + "-serial stdio" if "DISPLAY" in os.environ else "-nographic", + ] + ) + + " " + + os.environ.get("QEMU_OPTS", "") + ) + + environment = { + "QEMU_OPTS": qemu_options, + "SHARED_DIR": self.shared_dir, + "USE_TMPDIR": "1", + } + environment.update(dict(os.environ)) + + self.process = subprocess.Popen( + self.script, + bufsize=1, + stdin=subprocess.DEVNULL, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + shell=False, + cwd=self.state_dir, + env=environment, + ) + self.monitor, _ = self.monitor_socket.accept() + self.shell, _ = self.shell_socket.accept() + + def process_serial_output(): + for line in self.process.stdout: + line = line.decode().replace("\r", "").rstrip() + eprint("{} # {}".format(self.name, line)) + self.logger.enqueue({"msg": line, "machine": self.name}) + + _thread.start_new_thread(process_serial_output, ()) + + self.wait_for_monitor_prompt() + + self.pid = self.process.pid + self.booted = True + + self.log("QEMU running (pid {})".format(self.pid)) + + def shutdown(self): + if self.booted: + return + + self.shell.send("poweroff\n".encode()) + self.wait_for_shutdown() + + def crash(self): + if self.booted: + return + + self.log("forced crash") + self.send_monitor_command("quit") + self.wait_for_shutdown() + + def wait_for_x(self): + """Wait until it is possible to connect to the X server. Note that + testing the existence of /tmp/.X11-unix/X0 is insufficient. + """ + with self.nested("waiting for the X11 server"): + while True: + cmd = ( + "journalctl -b SYSLOG_IDENTIFIER=systemd | " + + 'grep "Reached target Current graphical"' + ) + status, _ = self.execute(cmd) + if status != 0: + continue + status, _ = self.execute("[ -e /tmp/.X11-unix/X0 ]") + if status == 0: + return + + def sleep(self, secs): + time.sleep(secs) + + def block(self): + """Make the machine unreachable by shutting down eth1 (the multicast + interface used to talk to the other VMs). We keep eth0 up so that + the test driver can continue to talk to the machine. + """ + self.send_monitor_command("set_link virtio-net-pci.1 off") + + def unblock(self): + """Make the machine reachable. + """ + self.send_monitor_command("set_link virtio-net-pci.1 on") + + +def create_machine(args): + global log + args["log"] = log + args["redirectSerial"] = os.environ.get("USE_SERIAL", "0") == "1" + return Machine(args) + + +def start_all(): + with log.nested("starting all VMs"): + for machine in machines: + machine.start() + + +def join_all(): + with log.nested("waiting for all VMs to finish"): + for machine in machines: + machine.wait_for_shutdown() + + +def test_script(): + exec(os.environ["testScript"]) + + +def run_tests(): + tests = os.environ.get("tests", None) + if tests is not None: + with log.nested("running the VM test script"): + try: + exec(tests) + except Exception as e: + eprint("error: {}".format(str(e))) + sys.exit(1) + else: + ptpython.repl.embed(locals(), globals()) + + # TODO: Collect coverage data + + for machine in machines: + if machine.is_up(): + machine.execute("sync") + + if nr_tests != 0: + log.log("{} out of {} tests succeeded".format(nr_succeeded, nr_tests)) + + +@contextmanager +def subtest(name): + global nr_tests + global nr_succeeded + + with log.nested(name): + nr_tests += 1 + try: + yield + nr_succeeded += 1 + return True + except Exception as e: + log.log("error: {}".format(str(e))) + + return False + + +if __name__ == "__main__": + global log + log = Logger() + + vlan_nrs = list(dict.fromkeys(os.environ["VLANS"].split())) + vde_sockets = [create_vlan(v) for v in vlan_nrs] + for nr, vde_socket, _, _ in vde_sockets: + os.environ["QEMU_VDE_SOCKET_{}".format(nr)] = vde_socket + + vm_scripts = sys.argv[1:] + machines = [create_machine({"startCommand": s}) for s in vm_scripts] + machine_eval = [ + "{0} = machines[{1}]".format(m.name, idx) for idx, m in enumerate(machines) + ] + exec("\n".join(machine_eval)) + + nr_tests = 0 + nr_succeeded = 0 + + @atexit.register + def clean_up(): + with log.nested("cleaning up"): + for machine in machines: + if machine.pid is None: + continue + log.log("killing {} (pid {})".format(machine.name, machine.pid)) + machine.process.kill() + + for _, _, process, _ in vde_sockets: + process.kill() + log.close() + + tic = time.time() + run_tests() + toc = time.time() + print("test script finished in {:.2f}s".format(toc - tic)) diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix new file mode 100644 index 00000000000..21f6172e967 --- /dev/null +++ b/nixos/lib/testing-python.nix @@ -0,0 +1,279 @@ +{ system +, pkgs ? import ../.. { inherit system config; } + # Use a minimal kernel? +, minimal ? false + # Ignored +, config ? {} + # Modules to add to each VM +, extraConfigurations ? [] }: + +with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; }; +with pkgs; + +let + jquery-ui = callPackage ./testing/jquery-ui.nix { }; + jquery = callPackage ./testing/jquery.nix { }; + +in rec { + + inherit pkgs; + + + testDriver = let + testDriverScript = ./test-driver/test-driver.py; + in stdenv.mkDerivation { + name = "nixos-test-driver"; + + nativeBuildInputs = [ makeWrapper ]; + buildInputs = [ (python3.withPackages (p: [ p.ptpython ])) ]; + checkInputs = with python3Packages; [ pylint black ]; + + dontUnpack = true; + + preferLocalBuild = true; + + doCheck = true; + checkPhase = '' + pylint --errors-only ${testDriverScript} + black --check --diff ${testDriverScript} + ''; + + installPhase = + '' + mkdir -p $out/bin + cp ${testDriverScript} $out/bin/nixos-test-driver + chmod u+x $out/bin/nixos-test-driver + # TODO: copy user script part into this file (append) + + wrapProgram $out/bin/nixos-test-driver \ + --prefix PATH : "${lib.makeBinPath [ qemu_test vde2 netpbm coreutils ]}" \ + ''; + }; + + + # Run an automated test suite in the given virtual network. + # `driver' is the script that runs the network. + runTests = driver: + stdenv.mkDerivation { + name = "vm-test-run-${driver.testName}"; + + requiredSystemFeatures = [ "kvm" "nixos-test" ]; + + buildInputs = [ libxslt ]; + + buildCommand = + '' + mkdir -p $out/nix-support + + LOGFILE=$out/log.xml tests='exec(os.environ["testScript"])' ${driver}/bin/nixos-test-driver + + # Generate a pretty-printed log. + xsltproc --output $out/log.html ${./test-driver/log2html.xsl} $out/log.xml + ln -s ${./test-driver/logfile.css} $out/logfile.css + ln -s ${./test-driver/treebits.js} $out/treebits.js + ln -s ${jquery}/js/jquery.min.js $out/ + ln -s ${jquery}/js/jquery.js $out/ + ln -s ${jquery-ui}/js/jquery-ui.min.js $out/ + ln -s ${jquery-ui}/js/jquery-ui.js $out/ + + touch $out/nix-support/hydra-build-products + echo "report testlog $out log.html" >> $out/nix-support/hydra-build-products + + for i in */xchg/coverage-data; do + mkdir -p $out/coverage-data + mv $i $out/coverage-data/$(dirname $(dirname $i)) + done + ''; + }; + + + makeTest = + { testScript + , makeCoverageReport ? false + , enableOCR ? false + , name ? "unnamed" + , ... + } @ t: + + let + # A standard store path to the vm monitor is built like this: + # /tmp/nix-build-vm-test-run-$name.drv-0/vm-state-machine/monitor + # The max filename length of a unix domain socket is 108 bytes. + # This means $name can at most be 50 bytes long. + maxTestNameLen = 50; + testNameLen = builtins.stringLength name; + + testDriverName = with builtins; + if testNameLen > maxTestNameLen then + abort ("The name of the test '${name}' must not be longer than ${toString maxTestNameLen} " + + "it's currently ${toString testNameLen} characters long.") + else + "nixos-test-driver-${name}"; + + nodes = buildVirtualNetwork ( + t.nodes or (if t ? machine then { machine = t.machine; } else { })); + + testScript' = + # Call the test script with the computed nodes. + if lib.isFunction testScript + then testScript { inherit nodes; } + else testScript; + + vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes); + + vms = map (m: m.config.system.build.vm) (lib.attrValues nodes); + + ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; }; + + imagemagick_tiff = imagemagick_light.override { inherit libtiff; }; + + # Generate onvenience wrappers for running the test driver + # interactively with the specified network, and for starting the + # VMs from the command line. + driver = runCommand testDriverName + { buildInputs = [ makeWrapper]; + testScript = testScript'; + preferLocalBuild = true; + testName = name; + } + '' + mkdir -p $out/bin + + echo -n "$testScript" > $out/test-script + ${python3Packages.black}/bin/black --check --diff $out/test-script + + ln -s ${testDriver}/bin/nixos-test-driver $out/bin/ + vms=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done)) + wrapProgram $out/bin/nixos-test-driver \ + --add-flags "''${vms[*]}" \ + ${lib.optionalString enableOCR + "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \ + --run "export testScript=\"\$(cat $out/test-script)\"" \ + --set VLANS '${toString vlans}' + ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms + wrapProgram $out/bin/nixos-run-vms \ + --add-flags "''${vms[*]}" \ + ${lib.optionalString enableOCR "--prefix PATH : '${ocrProg}/bin'"} \ + --set tests 'start_all(); join_all();' \ + --set VLANS '${toString vlans}' \ + ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"} + ''; # " + + passMeta = drv: drv // lib.optionalAttrs (t ? meta) { + meta = (drv.meta or {}) // t.meta; + }; + + test = passMeta (runTests driver); + report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; }); + + nodeNames = builtins.attrNames nodes; + invalidNodeNames = lib.filter + (node: builtins.match "^[A-z_][A-z0-9_]+$" node == null) nodeNames; + + in + if lib.length invalidNodeNames > 0 then + throw '' + Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})! + All machines are referenced as perl variables in the testing framework which will break the + script when special characters are used. + + Please stick to alphanumeric chars and underscores as separation. + '' + else + (if makeCoverageReport then report else test) // { + inherit nodes driver test; + }; + + runInMachine = + { drv + , machine + , preBuild ? "" + , postBuild ? "" + , ... # ??? + }: + let + vm = buildVM { } + [ machine + { key = "run-in-machine"; + networking.hostName = "client"; + nix.readOnlyStore = false; + virtualisation.writableStore = false; + } + ]; + + buildrunner = writeText "vm-build" '' + source $1 + + ${coreutils}/bin/mkdir -p $TMPDIR + cd $TMPDIR + + exec $origBuilder $origArgs + ''; + + testScript = '' + startAll; + $client->waitForUnit("multi-user.target"); + ${preBuild} + $client->succeed("env -i ${bash}/bin/bash ${buildrunner} /tmp/xchg/saved-env >&2"); + ${postBuild} + $client->succeed("sync"); # flush all data before pulling the plug + ''; + + vmRunCommand = writeText "vm-run" '' + xchg=vm-state-client/xchg + ${coreutils}/bin/mkdir $out + ${coreutils}/bin/mkdir -p $xchg + + for i in $passAsFile; do + i2=''${i}Path + _basename=$(${coreutils}/bin/basename ''${!i2}) + ${coreutils}/bin/cp ''${!i2} $xchg/$_basename + eval $i2=/tmp/xchg/$_basename + ${coreutils}/bin/ls -la $xchg + done + + unset i i2 _basename + export | ${gnugrep}/bin/grep -v '^xchg=' > $xchg/saved-env + unset xchg + + export tests='${testScript}' + ${testDriver}/bin/nixos-test-driver ${vm.config.system.build.vm}/bin/run-*-vm + ''; # */ + + in + lib.overrideDerivation drv (attrs: { + requiredSystemFeatures = [ "kvm" ]; + builder = "${bash}/bin/sh"; + args = ["-e" vmRunCommand]; + origArgs = attrs.args; + origBuilder = attrs.builder; + }); + + + runInMachineWithX = { require ? [], ... } @ args: + let + client = + { ... }: + { + inherit require; + virtualisation.memorySize = 1024; + services.xserver.enable = true; + services.xserver.displayManager.slim.enable = false; + services.xserver.displayManager.auto.enable = true; + services.xserver.windowManager.default = "icewm"; + services.xserver.windowManager.icewm.enable = true; + services.xserver.desktopManager.default = "none"; + }; + in + runInMachine ({ + machine = client; + preBuild = + '' + $client->waitForX; + ''; + } // args); + + + simpleTest = as: (makeTest as).test; + +} diff --git a/nixos/modules/hardware/brillo.nix b/nixos/modules/hardware/brillo.nix new file mode 100644 index 00000000000..e970c948099 --- /dev/null +++ b/nixos/modules/hardware/brillo.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + cfg = config.hardware.brillo; +in +{ + options = { + hardware.brillo = { + enable = mkEnableOption '' + Enable brillo in userspace. + This will allow brightness control from users in the video group. + ''; + }; + }; + + + config = mkIf cfg.enable { + services.udev.packages = [ pkgs.brillo ]; + environment.systemPackages = [ pkgs.brillo ]; + }; +} diff --git a/nixos/modules/hardware/video/displaylink.nix b/nixos/modules/hardware/video/displaylink.nix index 669ac849cba..912f53da836 100644 --- a/nixos/modules/hardware/video/displaylink.nix +++ b/nixos/modules/hardware/video/displaylink.nix @@ -19,6 +19,21 @@ in config = mkIf enabled { boot.extraModulePackages = [ evdi ]; + boot.kernelModules = [ "evdi" ]; + + environment.etc."X11/xorg.conf.d/40-displaylink.conf".text = '' + Section "OutputClass" + Identifier "DisplayLink" + MatchDriver "evdi" + Driver "modesetting" + Option "AccelMethod" "none" + EndSection + ''; + + # make the device available + services.xserver.displayManager.sessionCommands = '' + ${lib.getBin pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource 1 0 + ''; # Those are taken from displaylink-installer.sh and from Arch Linux AUR package. @@ -47,18 +62,13 @@ in description = "DisplayLink Manager Service"; after = [ "display-manager.service" ]; conflicts = [ "getty@tty7.service" ]; - path = [ pkgs.kmod ]; serviceConfig = { ExecStart = "${displaylink}/bin/DisplayLinkManager"; Restart = "always"; RestartSec = 5; + LogsDirectory = "displaylink"; }; - - preStart = '' - mkdir -p /var/log/displaylink - modprobe evdi - ''; }; }; diff --git a/nixos/modules/installer/tools/nixos-option.sh b/nixos/modules/installer/tools/nixos-option.sh deleted file mode 100644 index 4560e9c7403..00000000000 --- a/nixos/modules/installer/tools/nixos-option.sh +++ /dev/null @@ -1,327 +0,0 @@ -#! @shell@ -e - -# FIXME: rewrite this in a more suitable language. - -usage () { - exec man nixos-option - exit 1 -} - -##################### -# Process Arguments # -##################### - -xml=false -verbose=false -nixPath="" - -option="" -exit_code=0 - -argfun="" -for arg; do - if test -z "$argfun"; then - case $arg in - -*) - sarg="$arg" - longarg="" - while test "$sarg" != "-"; do - case $sarg in - --*) longarg=$arg; sarg="--";; - -I) argfun="include_nixpath";; - -*) usage;; - esac - # remove the first letter option - sarg="-${sarg#??}" - done - ;; - *) longarg=$arg;; - esac - for larg in $longarg; do - case $larg in - --xml) xml=true;; - --verbose) verbose=true;; - --help) usage;; - -*) usage;; - *) if test -z "$option"; then - option="$larg" - else - usage - fi;; - esac - done - else - case $argfun in - set_*) - var=$(echo $argfun | sed 's,^set_,,') - eval $var=$arg - ;; - include_nixpath) - nixPath="-I $arg $nixPath" - ;; - esac - argfun="" - fi -done - -if $verbose; then - set -x -else - set +x -fi - -############################# -# Process the configuration # -############################# - -evalNix(){ - # disable `-e` flag, it's possible that the evaluation of `nix-instantiate` fails (e.g. due to broken pkgs) - set +e - result=$(nix-instantiate ${nixPath:+$nixPath} - --eval-only "$@" 2>&1) - exit_code=$? - set -e - - if test $exit_code -eq 0; then - sed '/^warning: Nix search path/d' <&2 <" - else if strict then - if isAttrs x then mapAttrs (n: cleanOutput) x - else if isList x then map cleanOutput x - else x - else x; -in - cleanOutput value -EOF -} - -evalOpt(){ - evalAttr "option" "" "$@" -} - -evalCfg(){ - local strict="$1" - evalAttr "config" "$strict" -} - -findSources(){ - local suffix=$1 - evalNix --strict <,0,g; :inner; s/{[^\{\}]*};/0;/g; t inner;' | \ - evalNix --strict -} - -# map a simple list which contains strings or paths. -nixMap() { - local fun="$1" - local list="$2" - local elem - for elem in $list; do - test $elem = '[' -o $elem = ']' && continue; - $fun $elem - done -} - -# This duplicates the work made below, but it is useful for processing -# the output of nixos-option with other tools such as nixos-gui. -if $xml; then - evalNix --xml --no-location < /dev/null)" = '"option"'; then - echo "Value:" - evalCfg 1 - - echo - - echo "Default:" - if default=$(evalOpt "default" - 2> /dev/null); then - echo "$default" - else - echo "" - fi - echo - if example=$(evalOpt "example" - 2> /dev/null); then - echo "Example:" - echo "$example" - echo - fi - echo "Description:" - echo - echo $(evalOpt "description") - - echo $desc; - - printPath () { echo " $1"; } - - echo "Declared by:" - nixMap printPath "$(findSources "declarations")" - echo - echo "Defined by:" - nixMap printPath "$(findSources "files")" - echo - -else - # echo 1>&2 "Warning: This value is not an option." - - result=$(evalCfg "") - if [ ! -z "$result" ]; then - names=$(attrNames "$result" 2> /dev/null) - echo 1>&2 "This attribute set contains:" - escapeQuotes () { eval echo "$1"; } - nixMap escapeQuotes "$names" - else - echo 1>&2 "An error occurred while looking for attribute names. Are you sure that '$option' exists?" - fi -fi - -exit $exit_code diff --git a/nixos/modules/installer/tools/nixos-option/CMakeLists.txt b/nixos/modules/installer/tools/nixos-option/CMakeLists.txt new file mode 100644 index 00000000000..e5834598c4f --- /dev/null +++ b/nixos/modules/installer/tools/nixos-option/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.6) +project (nixos-option) + +add_executable(nixos-option nixos-option.cc libnix-copy-paste.cc) +target_link_libraries(nixos-option PRIVATE -lnixmain -lnixexpr -lnixstore -lnixutil) +target_compile_features(nixos-option PRIVATE cxx_std_17) + +install (TARGETS nixos-option DESTINATION bin) diff --git a/nixos/modules/installer/tools/nixos-option/default.nix b/nixos/modules/installer/tools/nixos-option/default.nix new file mode 100644 index 00000000000..753fd92c7bb --- /dev/null +++ b/nixos/modules/installer/tools/nixos-option/default.nix @@ -0,0 +1,11 @@ +{lib, stdenv, boost, cmake, pkgconfig, nix, ... }: +stdenv.mkDerivation rec { + name = "nixos-option"; + src = ./.; + nativeBuildInputs = [ cmake pkgconfig ]; + buildInputs = [ boost nix ]; + meta = { + license = stdenv.lib.licenses.lgpl2Plus; + maintainers = with lib.maintainers; [ chkno ]; + }; +} diff --git a/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.cc b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.cc new file mode 100644 index 00000000000..875c07da639 --- /dev/null +++ b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.cc @@ -0,0 +1,83 @@ +// These are useful methods inside the nix library that ought to be exported. +// Since they are not, copy/paste them here. +// TODO: Delete these and use the ones in the library as they become available. + +#include // for nix/globals.hh's reference to SYSTEM + +#include "libnix-copy-paste.hh" +#include // for basic_altstringbuf... +#include // for basic_altstringbuf... +#include // for basic_format +#include // for format +#include // for basic_format::basi... +#include // for get_pointer +#include // for operator<<, basic_... +#include // for Strings, Error +#include // for string, basic_string + +using boost::format; +using nix::Error; +using nix::Strings; +using std::string; + +// From nix/src/libexpr/attr-path.cc +Strings parseAttrPath(const string & s) +{ + Strings res; + string cur; + string::const_iterator i = s.begin(); + while (i != s.end()) { + if (*i == '.') { + res.push_back(cur); + cur.clear(); + } else if (*i == '"') { + ++i; + while (1) { + if (i == s.end()) + throw Error(format("missing closing quote in selection path '%1%'") % s); + if (*i == '"') + break; + cur.push_back(*i++); + } + } else + cur.push_back(*i); + ++i; + } + if (!cur.empty()) + res.push_back(cur); + return res; +} + +// From nix/src/nix/repl.cc +bool isVarName(const string & s) +{ + if (s.size() == 0) + return false; + char c = s[0]; + if ((c >= '0' && c <= '9') || c == '-' || c == '\'') + return false; + for (auto & i : s) + if (!((i >= 'a' && i <= 'z') || (i >= 'A' && i <= 'Z') || (i >= '0' && i <= '9') || i == '_' || i == '-' || + i == '\'')) + return false; + return true; +} + +// From nix/src/nix/repl.cc +std::ostream & printStringValue(std::ostream & str, const char * string) +{ + str << "\""; + for (const char * i = string; *i; i++) + if (*i == '\"' || *i == '\\') + str << "\\" << *i; + else if (*i == '\n') + str << "\\n"; + else if (*i == '\r') + str << "\\r"; + else if (*i == '\t') + str << "\\t"; + else + str << *i; + str << "\""; + return str; +} diff --git a/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.hh b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.hh new file mode 100644 index 00000000000..2274e9a0f85 --- /dev/null +++ b/nixos/modules/installer/tools/nixos-option/libnix-copy-paste.hh @@ -0,0 +1,9 @@ +#pragma once + +#include +#include +#include + +nix::Strings parseAttrPath(const std::string & s); +bool isVarName(const std::string & s); +std::ostream & printStringValue(std::ostream & str, const char * string); diff --git a/nixos/modules/installer/tools/nixos-option/nixos-option.cc b/nixos/modules/installer/tools/nixos-option/nixos-option.cc new file mode 100644 index 00000000000..9b92dc829cd --- /dev/null +++ b/nixos/modules/installer/tools/nixos-option/nixos-option.cc @@ -0,0 +1,618 @@ +#include // for nix/globals.hh's reference to SYSTEM + +#include // for exception_ptr, current_exception +#include // for function +#include // for operator<<, basic_ostream, ostrin... +#include // for next +#include // for _List_iterator +#include // for allocator, unique_ptr, make_unique +#include // for operator new +#include // for argvToStrings, UsageError +#include // for findAlongAttrPath +#include // for Attr, Bindings, Bindings::iterator +#include // for MixEvalArgs +#include // for EvalState::forceValue +#include // for EvalState, initGC, operator<< +#include // for initPlugins, Settings, settings +#include // for Pos +#include // for getArg, LegacyArgs, printVersion +#include // for openStore +#include // for Symbol, SymbolTable +#include // for Error, Path, Strings, PathSet +#include // for absPath, baseNameOf +#include // for Value, Value::(anonymous), Value:... +#include // for string, operator+, operator== +#include // for move +#include // for get, holds_alternative, variant +#include // for vector<>::iterator, vector + +#include "libnix-copy-paste.hh" + +using nix::absPath; +using nix::Bindings; +using nix::Error; +using nix::EvalError; +using nix::EvalState; +using nix::Path; +using nix::PathSet; +using nix::Strings; +using nix::Symbol; +using nix::tAttrs; +using nix::ThrownError; +using nix::tLambda; +using nix::tString; +using nix::UsageError; +using nix::Value; + +// An ostream wrapper to handle nested indentation +class Out +{ + public: + class Separator + {}; + const static Separator sep; + enum LinePolicy + { + ONE_LINE, + MULTI_LINE + }; + explicit Out(std::ostream & ostream) : ostream(ostream), policy(ONE_LINE), writeSinceSep(true) {} + Out(Out & o, const std::string & start, const std::string & end, LinePolicy policy); + Out(Out & o, const std::string & start, const std::string & end, int count) + : Out(o, start, end, count < 2 ? ONE_LINE : MULTI_LINE) + {} + Out(const Out &) = delete; + Out(Out &&) = default; + Out & operator=(const Out &) = delete; + Out & operator=(Out &&) = delete; + ~Out() { ostream << end; } + + private: + std::ostream & ostream; + std::string indentation; + std::string end; + LinePolicy policy; + bool writeSinceSep; + template friend Out & operator<<(Out & o, T thing); +}; + +template Out & operator<<(Out & o, T thing) +{ + if (!o.writeSinceSep && o.policy == Out::MULTI_LINE) { + o.ostream << o.indentation; + } + o.writeSinceSep = true; + o.ostream << thing; + return o; +} + +template <> Out & operator<<(Out & o, Out::Separator /* thing */) +{ + o.ostream << (o.policy == Out::ONE_LINE ? " " : "\n"); + o.writeSinceSep = false; + return o; +} + +Out::Out(Out & o, const std::string & start, const std::string & end, LinePolicy policy) + : ostream(o.ostream), indentation(policy == ONE_LINE ? o.indentation : o.indentation + " "), + end(policy == ONE_LINE ? end : o.indentation + end), policy(policy), writeSinceSep(true) +{ + o << start; + *this << Out::sep; +} + +// Stuff needed for evaluation +struct Context +{ + Context(EvalState & state, Bindings & autoArgs, Value optionsRoot, Value configRoot) + : state(state), autoArgs(autoArgs), optionsRoot(optionsRoot), configRoot(configRoot), + underscoreType(state.symbols.create("_type")) + {} + EvalState & state; + Bindings & autoArgs; + Value optionsRoot; + Value configRoot; + Symbol underscoreType; +}; + +Value evaluateValue(Context & ctx, Value & v) +{ + ctx.state.forceValue(v); + if (ctx.autoArgs.empty()) { + return v; + } + Value called{}; + ctx.state.autoCallFunction(ctx.autoArgs, v, called); + return called; +} + +bool isOption(Context & ctx, const Value & v) +{ + if (v.type != tAttrs) { + return false; + } + const auto & atualType = v.attrs->find(ctx.underscoreType); + if (atualType == v.attrs->end()) { + return false; + } + try { + Value evaluatedType = evaluateValue(ctx, *atualType->value); + if (evaluatedType.type != tString) { + return false; + } + return static_cast(evaluatedType.string.s) == "option"; + } catch (Error &) { + return false; + } +} + +// Add quotes to a component of a path. +// These are needed for paths like: +// fileSystems."/".fsType +// systemd.units."dbus.service".text +std::string quoteAttribute(const std::string & attribute) +{ + if (isVarName(attribute)) { + return attribute; + } + std::ostringstream buf; + printStringValue(buf, attribute.c_str()); + return buf.str(); +} + +const std::string appendPath(const std::string & prefix, const std::string & suffix) +{ + if (prefix.empty()) { + return quoteAttribute(suffix); + } + return prefix + "." + quoteAttribute(suffix); +} + +bool forbiddenRecursionName(std::string name) { return (!name.empty() && name[0] == '_') || name == "haskellPackages"; } + +void recurse(const std::function)> & f, + Context & ctx, Value v, const std::string & path) +{ + std::variant evaluated; + try { + evaluated = evaluateValue(ctx, v); + } catch (Error &) { + evaluated = std::current_exception(); + } + if (!f(path, evaluated)) { + return; + } + if (std::holds_alternative(evaluated)) { + return; + } + const Value & evaluated_value = std::get(evaluated); + if (evaluated_value.type != tAttrs) { + return; + } + for (const auto & child : evaluated_value.attrs->lexicographicOrder()) { + if (forbiddenRecursionName(child->name)) { + continue; + } + recurse(f, ctx, *child->value, appendPath(path, child->name)); + } +} + +// Calls f on all the option names +void mapOptions(const std::function & f, Context & ctx, Value root) +{ + recurse( + [f, &ctx](const std::string & path, std::variant v) { + bool isOpt = std::holds_alternative(v) || isOption(ctx, std::get(v)); + if (isOpt) { + f(path); + } + return !isOpt; + }, + ctx, root, ""); +} + +// Calls f on all the config values inside one option. +// Simple options have one config value inside, like sound.enable = true. +// Compound options have multiple config values. For example, the option +// "users.users" has about 1000 config values inside it: +// users.users.avahi.createHome = false; +// users.users.avahi.cryptHomeLuks = null; +// users.users.avahi.description = "`avahi-daemon' privilege separation user"; +// ... +// users.users.avahi.openssh.authorizedKeys.keyFiles = [ ]; +// users.users.avahi.openssh.authorizedKeys.keys = [ ]; +// ... +// users.users.avahi.uid = 10; +// users.users.avahi.useDefaultShell = false; +// users.users.cups.createHome = false; +// ... +// users.users.cups.useDefaultShell = false; +// users.users.gdm = ... ... ... +// users.users.messagebus = ... .. ... +// users.users.nixbld1 = ... .. ... +// ... +// users.users.systemd-timesync = ... .. ... +void mapConfigValuesInOption( + const std::function v)> & f, + const std::string & path, Context & ctx) +{ + Value * option; + try { + option = findAlongAttrPath(ctx.state, path, ctx.autoArgs, ctx.configRoot); + } catch (Error &) { + f(path, std::current_exception()); + return; + } + recurse( + [f, ctx](const std::string & path, std::variant v) { + bool leaf = std::holds_alternative(v) || std::get(v).type != tAttrs || + ctx.state.isDerivation(std::get(v)); + if (!leaf) { + return true; // Keep digging + } + f(path, v); + return false; + }, + ctx, *option, path); +} + +std::string describeError(const Error & e) { return "«error: " + e.msg() + "»"; } + +void describeDerivation(Context & ctx, Out & out, Value v) +{ + // Copy-pasted from nix/src/nix/repl.cc :( + Bindings::iterator i = v.attrs->find(ctx.state.sDrvPath); + PathSet pathset; + try { + Path drvPath = i != v.attrs->end() ? ctx.state.coerceToPath(*i->pos, *i->value, pathset) : "???"; + out << "«derivation " << drvPath << "»"; + } catch (Error & e) { + out << describeError(e); + } +} + +Value parseAndEval(EvalState & state, const std::string & expression, const std::string & path) +{ + Value v{}; + state.eval(state.parseExprFromString(expression, absPath(path)), v); + return v; +} + +void printValue(Context & ctx, Out & out, std::variant maybeValue, const std::string & path); + +void printList(Context & ctx, Out & out, Value & v) +{ + Out listOut(out, "[", "]", v.listSize()); + for (unsigned int n = 0; n < v.listSize(); ++n) { + printValue(ctx, listOut, *v.listElems()[n], ""); + listOut << Out::sep; + } +} + +void printAttrs(Context & ctx, Out & out, Value & v, const std::string & path) +{ + Out attrsOut(out, "{", "}", v.attrs->size()); + for (const auto & a : v.attrs->lexicographicOrder()) { + std::string name = a->name; + attrsOut << name << " = "; + printValue(ctx, attrsOut, *a->value, appendPath(path, name)); + attrsOut << ";" << Out::sep; + } +} + +void multiLineStringEscape(Out & out, const std::string & s) +{ + int i; + for (i = 1; i < s.size(); i++) { + if (s[i - 1] == '$' && s[i] == '{') { + out << "''${"; + i++; + } else if (s[i - 1] == '\'' && s[i] == '\'') { + out << "'''"; + i++; + } else { + out << s[i - 1]; + } + } + if (i == s.size()) { + out << s[i - 1]; + } +} + +void printMultiLineString(Out & out, const Value & v) +{ + std::string s = v.string.s; + Out strOut(out, "''", "''", Out::MULTI_LINE); + std::string::size_type begin = 0; + while (begin < s.size()) { + std::string::size_type end = s.find('\n', begin); + if (end == std::string::npos) { + multiLineStringEscape(strOut, s.substr(begin, s.size() - begin)); + break; + } + multiLineStringEscape(strOut, s.substr(begin, end - begin)); + strOut << Out::sep; + begin = end + 1; + } +} + +void printValue(Context & ctx, Out & out, std::variant maybeValue, const std::string & path) +{ + try { + if (auto ex = std::get_if(&maybeValue)) { + std::rethrow_exception(*ex); + } + Value v = evaluateValue(ctx, std::get(maybeValue)); + if (ctx.state.isDerivation(v)) { + describeDerivation(ctx, out, v); + } else if (v.isList()) { + printList(ctx, out, v); + } else if (v.type == tAttrs) { + printAttrs(ctx, out, v, path); + } else if (v.type == tString && std::string(v.string.s).find('\n') != std::string::npos) { + printMultiLineString(out, v); + } else { + ctx.state.forceValueDeep(v); + out << v; + } + } catch (ThrownError & e) { + if (e.msg() == "The option `" + path + "' is used but not defined.") { + // 93% of errors are this, and just letting this message through would be + // misleading. These values may or may not actually be "used" in the + // config. The thing throwing the error message assumes that if anything + // ever looks at this value, it is a "use" of this value. But here in + // nixos-option, we are looking at this value only to print it. + // In order to avoid implying that this undefined value is actually + // referenced, eat the underlying error message and emit "«not defined»". + out << "«not defined»"; + } else { + out << describeError(e); + } + } catch (Error & e) { + out << describeError(e); + } +} + +void printConfigValue(Context & ctx, Out & out, const std::string & path, std::variant v) +{ + out << path << " = "; + printValue(ctx, out, std::move(v), path); + out << ";\n"; +} + +void printAll(Context & ctx, Out & out) +{ + mapOptions( + [&ctx, &out](const std::string & optionPath) { + mapConfigValuesInOption( + [&ctx, &out](const std::string & configPath, std::variant v) { + printConfigValue(ctx, out, configPath, v); + }, + optionPath, ctx); + }, + ctx, ctx.optionsRoot); +} + +void printAttr(Context & ctx, Out & out, const std::string & path, Value & root) +{ + try { + printValue(ctx, out, *findAlongAttrPath(ctx.state, path, ctx.autoArgs, root), path); + } catch (Error & e) { + out << describeError(e); + } +} + +bool hasExample(Context & ctx, Value & option) +{ + try { + findAlongAttrPath(ctx.state, "example", ctx.autoArgs, option); + return true; + } catch (Error &) { + return false; + } +} + +void printOption(Context & ctx, Out & out, const std::string & path, Value & option) +{ + out << "Value:\n"; + printAttr(ctx, out, path, ctx.configRoot); + + out << "\n\nDefault:\n"; + printAttr(ctx, out, "default", option); + + out << "\n\nType:\n"; + printAttr(ctx, out, "type.description", option); + + if (hasExample(ctx, option)) { + out << "\n\nExample:\n"; + printAttr(ctx, out, "example", option); + } + + out << "\n\nDescription:\n"; + printAttr(ctx, out, "description", option); + + out << "\n\nDeclared by:\n"; + printAttr(ctx, out, "declarations", option); + + out << "\n\nDefined by:\n"; + printAttr(ctx, out, "files", option); + out << "\n"; +} + +void printListing(Out & out, Value & v) +{ + out << "This attribute set contains:\n"; + for (const auto & a : v.attrs->lexicographicOrder()) { + std::string name = a->name; + if (!name.empty() && name[0] != '_') { + out << name << "\n"; + } + } +} + +bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType) +{ + try { + const auto & typeLookup = v.attrs->find(ctx.state.sType); + if (typeLookup == v.attrs->end()) { + return false; + } + Value type = evaluateValue(ctx, *typeLookup->value); + if (type.type != tAttrs) { + return false; + } + const auto & nameLookup = type.attrs->find(ctx.state.sName); + if (nameLookup == type.attrs->end()) { + return false; + } + Value name = evaluateValue(ctx, *nameLookup->value); + if (name.type != tString) { + return false; + } + return name.string.s == soughtType; + } catch (Error &) { + return false; + } +} + +bool isAggregateOptionType(Context & ctx, Value & v) +{ + return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf") || optionTypeIs(ctx, v, "loaOf"); +} + +MakeError(OptionPathError, EvalError); + +Value getSubOptions(Context & ctx, Value & option) +{ + Value getSubOptions = evaluateValue(ctx, *findAlongAttrPath(ctx.state, "type.getSubOptions", ctx.autoArgs, option)); + if (getSubOptions.type != tLambda) { + throw OptionPathError("Option's type.getSubOptions isn't a function"); + } + Value emptyString{}; + nix::mkString(emptyString, ""); + Value v; + ctx.state.callFunction(getSubOptions, emptyString, v, nix::Pos{}); + return v; +} + +// Carefully walk an option path, looking for sub-options when a path walks past +// an option value. +Value findAlongOptionPath(Context & ctx, const std::string & path) +{ + Strings tokens = parseAttrPath(path); + Value v = ctx.optionsRoot; + for (auto i = tokens.begin(); i != tokens.end(); i++) { + const auto & attr = *i; + try { + bool lastAttribute = std::next(i) == tokens.end(); + v = evaluateValue(ctx, v); + if (attr.empty()) { + throw OptionPathError("empty attribute name"); + } + if (isOption(ctx, v) && optionTypeIs(ctx, v, "submodule")) { + v = getSubOptions(ctx, v); + } + if (isOption(ctx, v) && isAggregateOptionType(ctx, v) && !lastAttribute) { + v = getSubOptions(ctx, v); + // Note that we've consumed attr, but didn't actually use it. This is the path component that's looked + // up in the list or attribute set that doesn't name an option -- the "root" in "users.users.root.name". + } else if (v.type != tAttrs) { + throw OptionPathError("Value is %s while a set was expected", showType(v)); + } else { + const auto & next = v.attrs->find(ctx.state.symbols.create(attr)); + if (next == v.attrs->end()) { + throw OptionPathError("Attribute not found", attr, path); + } + v = *next->value; + } + } catch (OptionPathError & e) { + throw OptionPathError("At '%s' in path '%s': %s", attr, path, e.msg()); + } + } + return v; +} + +void printOne(Context & ctx, Out & out, const std::string & path) +{ + try { + Value option = findAlongOptionPath(ctx, path); + option = evaluateValue(ctx, option); + if (isOption(ctx, option)) { + printOption(ctx, out, path, option); + } else { + printListing(out, option); + } + } catch (Error & e) { + std::cerr << "error: " << e.msg() + << "\nAn error occurred while looking for attribute names. Are " + "you sure that '" + << path << "' exists?\n"; + } +} + +int main(int argc, char ** argv) +{ + bool all = false; + std::string path = "."; + std::string optionsExpr = "(import {}).options"; + std::string configExpr = "(import {}).config"; + std::vector args; + + struct MyArgs : nix::LegacyArgs, nix::MixEvalArgs + { + using nix::LegacyArgs::LegacyArgs; + }; + + MyArgs myArgs(nix::baseNameOf(argv[0]), [&](Strings::iterator & arg, const Strings::iterator & end) { + if (*arg == "--help") { + nix::showManPage("nixos-option"); + } else if (*arg == "--version") { + nix::printVersion("nixos-option"); + } else if (*arg == "--all") { + all = true; + } else if (*arg == "--path") { + path = nix::getArg(*arg, arg, end); + } else if (*arg == "--options_expr") { + optionsExpr = nix::getArg(*arg, arg, end); + } else if (*arg == "--config_expr") { + configExpr = nix::getArg(*arg, arg, end); + } else if (!arg->empty() && arg->at(0) == '-') { + return false; + } else { + args.push_back(*arg); + } + return true; + }); + + myArgs.parseCmdline(nix::argvToStrings(argc, argv)); + + nix::initPlugins(); + nix::initGC(); + nix::settings.readOnlyMode = true; + auto store = nix::openStore(); + auto state = std::make_unique(myArgs.searchPath, store); + + Value optionsRoot = parseAndEval(*state, optionsExpr, path); + Value configRoot = parseAndEval(*state, configExpr, path); + + Context ctx{*state, *myArgs.getAutoArgs(*state), optionsRoot, configRoot}; + Out out(std::cout); + + if (all) { + if (!args.empty()) { + throw UsageError("--all cannot be used with arguments"); + } + printAll(ctx, out); + } else { + if (args.empty()) { + printOne(ctx, out, ""); + } + for (const auto & arg : args) { + printOne(ctx, out, arg); + } + } + + ctx.state.printStats(); + + return 0; +} diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 9e6eead3c4d..e4db39b5c81 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -41,10 +41,7 @@ let inherit (config.system.nixos-generate-config) configuration; }; - nixos-option = makeProg { - name = "nixos-option"; - src = ./nixos-option.sh; - }; + nixos-option = pkgs.callPackage ./nixos-option { }; nixos-version = makeProg { name = "nixos-version"; @@ -123,7 +120,7 @@ in # programs.gnupg.agent = { # enable = true; # enableSSHSupport = true; - # flavour = "gnome3"; + # pinentryFlavor = "gnome3"; # }; # List services that you want to enable: diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index df6e4dc1336..24912c27245 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -44,6 +44,7 @@ ./hardware/all-firmware.nix ./hardware/bladeRF.nix ./hardware/brightnessctl.nix + ./hardware/brillo.nix ./hardware/ckb-next.nix ./hardware/cpu/amd-microcode.nix ./hardware/cpu/intel-microcode.nix @@ -619,7 +620,6 @@ ./services/networking/iodine.nix ./services/networking/iperf3.nix ./services/networking/ircd-hybrid/default.nix - ./services/networking/jormungandr.nix ./services/networking/iwd.nix ./services/networking/keepalived/default.nix ./services/networking/keybase.nix @@ -812,8 +812,10 @@ ./services/web-apps/nexus.nix ./services/web-apps/pgpkeyserver-lite.nix ./services/web-apps/matomo.nix + ./services/web-apps/moinmoin.nix ./services/web-apps/restya-board.nix ./services/web-apps/tt-rss.nix + ./services/web-apps/trac.nix ./services/web-apps/selfoss.nix ./services/web-apps/shiori.nix ./services/web-apps/virtlyst.nix @@ -864,6 +866,7 @@ ./services/x11/hardware/multitouch.nix ./services/x11/hardware/synaptics.nix ./services/x11/hardware/wacom.nix + ./services/x11/hardware/digimend.nix ./services/x11/hardware/cmt.nix ./services/x11/gdk-pixbuf.nix ./services/x11/redshift.nix diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix index 733b8f7636f..703975fd06c 100644 --- a/nixos/modules/programs/ssh.nix +++ b/nixos/modules/programs/ssh.nix @@ -115,6 +115,16 @@ in ''; }; + agentPKCS11Whitelist = mkOption { + type = types.nullOr types.str; + default = null; + example = "\${pkgs.opensc}/lib/opensc-pkcs11.so"; + description = '' + A pattern-list of acceptable paths for PKCS#11 shared libraries + that may be used with the -s option to ssh-add. + ''; + }; + package = mkOption { type = types.package; default = pkgs.openssh; @@ -241,6 +251,7 @@ in ExecStart = "${cfg.package}/bin/ssh-agent " + optionalString (cfg.agentTimeout != null) ("-t ${cfg.agentTimeout} ") + + optionalString (cfg.agentPKCS11Whitelist != null) ("-P ${cfg.agentPKCS11Whitelist} ") "-a %t/ssh-agent"; StandardOutput = "null"; Type = "forking"; diff --git a/nixos/modules/security/pam_mount.nix b/nixos/modules/security/pam_mount.nix index 8b131c54a2a..75f58462d13 100644 --- a/nixos/modules/security/pam_mount.nix +++ b/nixos/modules/security/pam_mount.nix @@ -50,9 +50,6 @@ in - ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))} - ${concatStringsSep "\n" cfg.extraVolumes} - @@ -64,6 +61,9 @@ in ${pkgs.pam_mount}/bin/mount.crypt %(VOLUME) %(MNTPT) ${pkgs.pam_mount}/bin/umount.crypt %(MNTPT) ${pkgs.pam_mount}/bin/pmvarrun -u %(USER) -o %(OPERATION) + + ${concatStrings (map userVolumeEntry (attrValues extraUserVolumes))} + ${concatStringsSep "\n" cfg.extraVolumes} ''; }]; diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix index 0df8f9688d2..56dc858b640 100644 --- a/nixos/modules/services/audio/mpd.nix +++ b/nixos/modules/services/audio/mpd.nix @@ -181,6 +181,7 @@ in { ProtectKernelModules = true; RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK"; RestrictNamespaces = true; + Restart = "always"; }; }; diff --git a/nixos/modules/services/monitoring/netdata.nix b/nixos/modules/services/monitoring/netdata.nix index 7d976db9630..3ffde8e9bce 100644 --- a/nixos/modules/services/monitoring/netdata.nix +++ b/nixos/modules/services/monitoring/netdata.nix @@ -138,7 +138,7 @@ in { description = "Real time performance monitoring"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; - path = (with pkgs; [ gawk curl ]) ++ lib.optional cfg.python.enable + path = (with pkgs; [ curl gawk which ]) ++ lib.optional cfg.python.enable (pkgs.python3.withPackages cfg.python.extraPackages); serviceConfig = { Environment="PYTHONPATH=${pkgs.netdata}/libexec/netdata/python.d/python_modules"; diff --git a/nixos/modules/services/networking/jormungandr.nix b/nixos/modules/services/networking/jormungandr.nix deleted file mode 100644 index 152cceb4bf9..00000000000 --- a/nixos/modules/services/networking/jormungandr.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ config, lib, pkgs, ... }: - -let - cfg = config.services.jormungandr; - - inherit (lib) mkEnableOption mkIf mkOption; - inherit (lib) optionalString types; - - dataDir = "/var/lib/jormungandr"; - - # Default settings so far, as the service matures we will - # move these out as separate settings - configSettings = { - storage = dataDir; - p2p = { - public_address = "/ip4/127.0.0.1/tcp/8299"; - topics_of_interest = { - messages = "high"; - blocks = "high"; - }; - }; - rest = { - listen = "127.0.0.1:8607"; - }; - }; - - configFile = if cfg.configFile == null then - pkgs.writeText "jormungandr.yaml" (builtins.toJSON configSettings) - else cfg.configFile; - -in { - - options = { - - services.jormungandr = { - enable = mkEnableOption "jormungandr service"; - - configFile = mkOption { - type = types.nullOr types.path; - default = null; - example = "/var/lib/jormungandr/node.yaml"; - description = '' - The path of the jormungandr blockchain configuration file in YAML format. - If no file is specified, a file is generated using the other options. - ''; - }; - - secretFile = mkOption { - type = types.nullOr types.path; - default = null; - example = "/etc/secret/jormungandr.yaml"; - description = '' - The path of the jormungandr blockchain secret node configuration file in - YAML format. Do not store this in nix store! - ''; - }; - - genesisBlockHash = mkOption { - type = types.nullOr types.str; - default = null; - example = "d70495af81ae8600aca3e642b2427327cb6001ec4d7a0037e96a00dabed163f9"; - description = '' - Set the genesis block hash (the hash of the block0) so we can retrieve - the genesis block (and the blockchain configuration) from the existing - storage or from the network. - ''; - }; - - genesisBlockFile = mkOption { - type = types.nullOr types.path; - default = null; - example = "/var/lib/jormungandr/block-0.bin"; - description = '' - The path of the genesis block file if we are hosting it locally. - ''; - }; - - }; - }; - - config = mkIf cfg.enable { - - systemd.services.jormungandr = { - description = "jormungandr server"; - wantedBy = [ "multi-user.target" ]; - after = [ "network-online.target" ]; - environment = { - RUST_BACKTRACE = "full"; - }; - serviceConfig = { - DynamicUser = true; - StateDirectory = baseNameOf dataDir; - ExecStart = '' - ${pkgs.jormungandr}/bin/jormungandr --config ${configFile} \ - ${optionalString (cfg.secretFile != null) " --secret ${cfg.secretFile}"} \ - ${optionalString (cfg.genesisBlockHash != null) " --genesis-block-hash ${cfg.genesisBlockHash}"} \ - ${optionalString (cfg.genesisBlockFile != null) " --genesis-block ${cfg.genesisBlockFile}"} - ''; - }; - }; - }; -} diff --git a/nixos/modules/services/networking/nat.nix b/nixos/modules/services/networking/nat.nix index 89d8590093d..5681bda51cb 100644 --- a/nixos/modules/services/networking/nat.nix +++ b/nixos/modules/services/networking/nat.nix @@ -29,7 +29,7 @@ let iptables -w -t nat -N nixos-nat-post # We can't match on incoming interface in POSTROUTING, so - # mark packets coming from the external interfaces. + # mark packets coming from the internal interfaces. ${concatMapStrings (iface: '' iptables -w -t nat -A nixos-nat-pre \ -i '${iface}' -j MARK --set-mark 1 diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix index d5962ba9af9..b0ab8fadcbe 100644 --- a/nixos/modules/services/security/vault.nix +++ b/nixos/modules/services/security/vault.nix @@ -119,9 +119,8 @@ in }; users.groups.vault.gid = config.ids.gids.vault; - systemd.tmpfiles.rules = optional (cfg.storagePath != null) [ - "d '${cfg.storagePath}' 0700 vault vault - -" - ]; + systemd.tmpfiles.rules = optional (cfg.storagePath != null) + "d '${cfg.storagePath}' 0700 vault vault - -"; systemd.services.vault = { description = "Vault server daemon"; diff --git a/nixos/modules/services/web-apps/moinmoin.nix b/nixos/modules/services/web-apps/moinmoin.nix new file mode 100644 index 00000000000..0fee64be0bb --- /dev/null +++ b/nixos/modules/services/web-apps/moinmoin.nix @@ -0,0 +1,303 @@ +{ 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 none 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 FrontPage 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 moin command-line utility, e.g.: + moin-WIKINAME account create --name=NAME --email=EMAIL --password=PASSWORD. + ''; + }; + + 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"

\U0001f639

" + 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 " + ''; + description = '' + Additional configuration to be appended verbatim to this wiki's config. + + See for documentation. + ''; + }; + + }; + config = { + webHost = mkDefault name; + }; + })); + example = literalExample '' + { + "mywiki" = { + siteName = "Example Wiki"; + webHost = "wiki.example.org"; + superUsers = [ "admin" ]; + frontPage = "Index"; + extraConfig = "page_category_regex = ur'(?P(Category|Kategorie)(?P(?!Template)\S+))'" + }; + } + ''; + description = '' + Configurations of the individual wikis. Attribute names must be valid Python + identifiers of the form [A-Za-z_][A-Za-z0-9_]*. + + For every attribute WIKINAME, a helper script + moin-WIKINAME is created which runs the + moin command under the moin 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.gevent 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 + ''; + + 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 gevent \ + --bind unix:/run/moin/${wikiIdent}/gunicorn.sock + ''; + + Restart = "on-failure"; + RestartSec = "2s"; + StartLimitIntervalSec = "30s"; + + 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; [ b42 ]; +} diff --git a/nixos/modules/services/web-apps/trac.nix b/nixos/modules/services/web-apps/trac.nix new file mode 100644 index 00000000000..207fb857438 --- /dev/null +++ b/nixos/modules/services/web-apps/trac.nix @@ -0,0 +1,79 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.services.trac; + + inherit (lib) mkEnableOption mkIf mkOption types; + +in { + + options = { + + services.trac = { + enable = mkEnableOption "Trac service"; + + listen = { + ip = mkOption { + type = types.str; + default = "0.0.0.0"; + description = '' + IP address that Trac should listen on. + ''; + }; + + port = mkOption { + type = types.port; + default = 8000; + description = '' + Listen port for Trac. + ''; + }; + }; + + dataDir = mkOption { + default = "/var/lib/trac"; + type = types.path; + description = '' + The directory for storing the Trac data. + ''; + }; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open ports in the firewall for Trac. + ''; + }; + }; + + }; + + config = mkIf cfg.enable { + + systemd.services.trac = { + description = "Trac server"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + DynamicUser = true; + StateDirectory = baseNameOf cfg.dataDir; + ExecStart = '' + ${pkgs.trac}/bin/tracd -s \ + -b ${toString cfg.listen.ip} \ + -p ${toString cfg.listen.port} \ + ${cfg.dataDir} + ''; + }; + preStart = '' + if [ ! -e ${cfg.dataDir}/VERSION ]; then + ${pkgs.trac}/bin/trac-admin ${cfg.dataDir} initenv Trac "sqlite:db/trac.db" + fi + ''; + }; + + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ cfg.listen.port ]; + }; + + }; +} diff --git a/nixos/modules/services/x11/hardware/digimend.nix b/nixos/modules/services/x11/hardware/digimend.nix new file mode 100644 index 00000000000..a9f5640905a --- /dev/null +++ b/nixos/modules/services/x11/hardware/digimend.nix @@ -0,0 +1,43 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + cfg = config.services.xserver.digimend; + + pkg = config.boot.kernelPackages.digimend; + +in + +{ + + options = { + + services.xserver.digimend = { + + enable = mkOption { + default = false; + description = '' + Whether to enable the digimend drivers for Huion/XP-Pen/etc. tablets. + ''; + }; + + }; + + }; + + + config = mkIf cfg.enable { + + # digimend drivers use xsetwacom and wacom X11 drivers + services.xserver.wacom.enable = true; + + boot.extraModulePackages = [ pkg ]; + + environment.etc."X11/xorg.conf.d/50-digimend.conf".source = + "${pkg}/usr/share/X11/xorg.conf.d/50-digimend.conf"; + + }; + +} diff --git a/nixos/modules/services/x11/hardware/libinput.nix b/nixos/modules/services/x11/hardware/libinput.nix index bd289976532..4a25232383d 100644 --- a/nixos/modules/services/x11/hardware/libinput.nix +++ b/nixos/modules/services/x11/hardware/libinput.nix @@ -122,7 +122,7 @@ in { description = '' Specify the scrolling method: twofinger, edge, - or none + button, or none ''; }; diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index ed3431554be..e313d2b411b 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -23,24 +23,56 @@ let cfg = config.virtualisation; - qemuGraphics = lib.optionalString (!cfg.graphics) "-nographic"; - consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles; - # XXX: This is very ugly and in the future we really should use attribute - # sets to build ALL of the QEMU flags instead of this mixed mess of Nix - # expressions and shell script stuff. - mkDiskIfaceDriveFlag = idx: driveArgs: let - inherit (cfg.qemu) diskInterface; - # The drive identifier created by incrementing the index by one using the - # shell. - drvId = "drive$((${idx} + 1))"; - # NOTE: DO NOT shell escape, because this may contain shell variables. - commonArgs = "index=${idx},id=${drvId},${driveArgs}"; - isSCSI = diskInterface == "scsi"; - devArgs = "${diskInterface}-hd,drive=${drvId}"; - args = "-drive ${commonArgs},if=none -device lsi53c895a -device ${devArgs}"; - in if isSCSI then args else "-drive ${commonArgs},if=${diskInterface}"; + driveOpts = { ... }: { + + options = { + + file = mkOption { + type = types.str; + description = "The file image used for this drive."; + }; + + driveExtraOpts = mkOption { + type = types.attrsOf types.str; + default = {}; + description = "Extra options passed to drive flag."; + }; + + deviceExtraOpts = mkOption { + type = types.attrsOf types.str; + default = {}; + description = "Extra options passed to device flag."; + }; + + }; + + }; + + driveCmdline = idx: { file, driveExtraOpts, deviceExtraOpts, ... }: + let + drvId = "drive${toString idx}"; + mkKeyValue = generators.mkKeyValueDefault {} "="; + mkOpts = opts: concatStringsSep "," (mapAttrsToList mkKeyValue opts); + driveOpts = mkOpts (driveExtraOpts // { + index = idx; + id = drvId; + "if" = "none"; + inherit file; + }); + deviceOpts = mkOpts (deviceExtraOpts // { + drive = drvId; + }); + device = + if cfg.qemu.diskInterface == "scsi" then + "-device lsi53c895a -device scsi-hd,${deviceOpts}" + else + "-device virtio-blk-pci,${deviceOpts}"; + in + "-drive ${driveOpts} ${device}"; + + drivesCmdLine = drives: concatStringsSep " " (imap1 driveCmdline drives); # Shell script to start the VM. startVM = @@ -77,13 +109,11 @@ let ''} cd $TMPDIR - idx=2 - extraDisks="" + idx=0 ${flip concatMapStrings cfg.emptyDiskImages (size: '' if ! test -e "empty$idx.qcow2"; then ${qemu}/bin/qemu-img create -f qcow2 "empty$idx.qcow2" "${toString size}M" fi - extraDisks="$extraDisks ${mkDiskIfaceDriveFlag "$idx" "file=$(pwd)/empty$idx.qcow2,werror=report"}" idx=$((idx + 1)) '')} @@ -97,21 +127,7 @@ let -virtfs local,path=/nix/store,security_model=none,mount_tag=store \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ -virtfs local,path=''${SHARED_DIR:-$TMPDIR/xchg},security_model=none,mount_tag=shared \ - ${if cfg.useBootLoader then '' - ${mkDiskIfaceDriveFlag "0" "file=$NIX_DISK_IMAGE,cache=writeback,werror=report"} \ - ${mkDiskIfaceDriveFlag "1" "file=$TMPDIR/disk.img,media=disk"} \ - ${if cfg.useEFIBoot then '' - -pflash $TMPDIR/bios.bin \ - '' else '' - ''} - '' else '' - ${mkDiskIfaceDriveFlag "0" "file=$NIX_DISK_IMAGE,cache=writeback,werror=report"} \ - -kernel ${config.system.build.toplevel}/kernel \ - -initrd ${config.system.build.toplevel}/initrd \ - -append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS" \ - ''} \ - $extraDisks \ - ${qemuGraphics} \ + ${drivesCmdLine config.virtualisation.qemu.drives} \ ${toString config.virtualisation.qemu.options} \ $QEMU_OPTS \ "$@" @@ -367,6 +383,12 @@ in ''; }; + drives = + mkOption { + type = types.listOf (types.submodule driveOpts); + description = "Drives passed to qemu."; + }; + diskInterface = mkOption { default = "virtio"; @@ -476,8 +498,49 @@ in # FIXME: Consolidate this one day. virtualisation.qemu.options = mkMerge [ - (mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ "-vga std" "-usb" "-device usb-tablet,bus=usb-bus.0" ]) - (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [ "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" ]) + (mkIf (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) [ + "-vga std" "-usb" "-device usb-tablet,bus=usb-bus.0" + ]) + (mkIf (pkgs.stdenv.isAarch32 || pkgs.stdenv.isAarch64) [ + "-device virtio-gpu-pci" "-device usb-ehci,id=usb0" "-device usb-kbd" "-device usb-tablet" + ]) + (mkIf (!cfg.useBootLoader) [ + "-kernel ${config.system.build.toplevel}/kernel" + "-initrd ${config.system.build.toplevel}/initrd" + ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"'' + ]) + (mkIf cfg.useEFIBoot [ + "-pflash $TMPDIR/bios.bin" + ]) + (mkIf (!cfg.graphics) [ + "-nographic" + ]) + ]; + + virtualisation.qemu.drives = mkMerge [ + (mkIf cfg.useBootLoader [ + { + file = "$NIX_DISK_IMAGE"; + driveExtraOpts.cache = "writeback"; + driveExtraOpts.werror = "report"; + } + { + file = "$TMPDIR/disk.img"; + driveExtraOpts.media = "disk"; + deviceExtraOpts.bootindex = "1"; + } + ]) + (mkIf (!cfg.useBootLoader) [ + { + file = "$NIX_DISK_IMAGE"; + driveExtraOpts.cache = "writeback"; + driveExtraOpts.werror = "report"; + } + ]) + (imap0 (idx: _: { + file = "$(pwd)/empty${toString idx}.qcow2"; + driveExtraOpts.werror = "report"; + }) cfg.emptyDiskImages) ]; # Mount the host filesystem via 9P, and bind-mount the Nix store diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index 206d97849f0..6bd315ff1ea 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -1,6 +1,6 @@ let commonConfig = ./common/letsencrypt/common.nix; -in import ./make-test.nix { +in import ./make-test-python.nix { name = "acme"; nodes = rec { @@ -90,39 +90,44 @@ in import ./make-test.nix { newServerSystem = nodes.webserver2.config.system.build.toplevel; switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test"; in - # Note, waitForUnit does not work for oneshot services that do not have RemainAfterExit=true, + # Note, wait_for_unit does not work for oneshot services that do not have RemainAfterExit=true, # this is because a oneshot goes from inactive => activating => inactive, and never # reaches the active state. To work around this, we create some mock target units which # get pulled in by the oneshot units. The target units linger after activation, and hence we # can use them to probe that a oneshot fired. It is a bit ugly, but it is the best we can do '' - $client->start; - $letsencrypt->start; - $acmeStandalone->start; + client.start() + letsencrypt.start() + acmeStandalone.start() - $letsencrypt->waitForUnit("default.target"); - $letsencrypt->waitForUnit("pebble.service"); + letsencrypt.wait_for_unit("default.target") + letsencrypt.wait_for_unit("pebble.service") - subtest "can request certificate with HTTPS-01 challenge", sub { - $acmeStandalone->waitForUnit("default.target"); - $acmeStandalone->succeed("systemctl start acme-standalone.com.service"); - $acmeStandalone->waitForUnit("acme-finished-standalone.com.target"); - }; + with subtest("can request certificate with HTTPS-01 challenge"): + acmeStandalone.wait_for_unit("default.target") + acmeStandalone.succeed("systemctl start acme-standalone.com.service") + acmeStandalone.wait_for_unit("acme-finished-standalone.com.target") - $client->waitForUnit("default.target"); + client.wait_for_unit("default.target") - $client->succeed('curl https://acme-v02.api.letsencrypt.org:15000/roots/0 > /tmp/ca.crt'); - $client->succeed('curl https://acme-v02.api.letsencrypt.org:15000/intermediate-keys/0 >> /tmp/ca.crt'); + client.succeed("curl https://acme-v02.api.letsencrypt.org:15000/roots/0 > /tmp/ca.crt") + client.succeed( + "curl https://acme-v02.api.letsencrypt.org:15000/intermediate-keys/0 >> /tmp/ca.crt" + ) - subtest "Can request certificate for nginx service", sub { - $webserver->waitForUnit("acme-finished-a.example.com.target"); - $client->succeed('curl --cacert /tmp/ca.crt https://a.example.com/ | grep -qF "hello world"'); - }; + with subtest("Can request certificate for nginx service"): + webserver.wait_for_unit("acme-finished-a.example.com.target") + client.succeed( + "curl --cacert /tmp/ca.crt https://a.example.com/ | grep -qF 'hello world'" + ) - subtest "Can add another certificate for nginx service", sub { - $webserver->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test"); - $webserver->waitForUnit("acme-finished-b.example.com.target"); - $client->succeed('curl --cacert /tmp/ca.crt https://b.example.com/ | grep -qF "hello world"'); - }; + with subtest("Can add another certificate for nginx service"): + webserver.succeed( + "/run/current-system/fine-tune/child-1/bin/switch-to-configuration test" + ) + webserver.wait_for_unit("acme-finished-b.example.com.target") + client.succeed( + "curl --cacert /tmp/ca.crt https://b.example.com/ | grep -qF 'hello world'" + ) ''; } diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 744d7ed0f83..5e7c8a7f4b5 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -135,7 +135,6 @@ in jackett = handleTest ./jackett.nix {}; jellyfin = handleTest ./jellyfin.nix {}; jenkins = handleTest ./jenkins.nix {}; - jormungandr = handleTest ./jormungandr.nix {}; kafka = handleTest ./kafka.nix {}; kerberos = handleTest ./kerberos/default.nix {}; kernel-latest = handleTest ./kernel-latest.nix {}; @@ -170,6 +169,7 @@ in minio = handleTest ./minio.nix {}; minidlna = handleTest ./minidlna.nix {}; misc = handleTest ./misc.nix {}; + moinmoin = handleTest ./moinmoin.nix {}; mongodb = handleTest ./mongodb.nix {}; moodle = handleTest ./moodle.nix {}; morty = handleTest ./morty.nix {}; @@ -242,7 +242,6 @@ in prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {}; proxy = handleTest ./proxy.nix {}; quagga = handleTest ./quagga.nix {}; - quake3 = handleTest ./quake3.nix {}; rabbitmq = handleTest ./rabbitmq.nix {}; radarr = handleTest ./radarr.nix {}; radicale = handleTest ./radicale.nix {}; @@ -280,6 +279,7 @@ in tinydns = handleTest ./tinydns.nix {}; tor = handleTest ./tor.nix {}; transmission = handleTest ./transmission.nix {}; + trac = handleTest ./trac.nix {}; trezord = handleTest ./trezord.nix {}; trickster = handleTest ./trickster.nix {}; udisks2 = handleTest ./udisks2.nix {}; diff --git a/nixos/tests/ammonite.nix b/nixos/tests/ammonite.nix index fedfde233e8..1955e42be5f 100644 --- a/nixos/tests/ammonite.nix +++ b/nixos/tests/ammonite.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "ammonite"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ nequissimus ]; @@ -13,8 +13,8 @@ import ./make-test.nix ({ pkgs, ...} : { }; testScript = '' - startAll; + start_all() - $amm->succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42") + amm.succeed("amm -c 'val foo = 21; println(foo * 2)' | grep 42") ''; }) diff --git a/nixos/tests/automysqlbackup.nix b/nixos/tests/automysqlbackup.nix index ada104a34de..224b93862fb 100644 --- a/nixos/tests/automysqlbackup.nix +++ b/nixos/tests/automysqlbackup.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, lib, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: { name = "automysqlbackup"; @@ -15,20 +15,24 @@ import ./make-test.nix ({ pkgs, lib, ... }: }; testScript = '' - startAll; + start_all() # Need to have mysql started so that it can be populated with data. - $machine->waitForUnit("mysql.service"); + machine.wait_for_unit("mysql.service") - # Wait for testdb to be fully populated (5 rows). - $machine->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"); + with subtest("Wait for testdb to be fully populated (5 rows)."): + machine.wait_until_succeeds( + "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5" + ) - # Do a backup and wait for it to start - $machine->startJob("automysqlbackup.service"); - $machine->waitForJob("automysqlbackup.service"); + with subtest("Do a backup and wait for it to start"): + machine.start_job("automysqlbackup.service") + machine.wait_for_job("automysqlbackup.service") - # wait for backup file and check that data appears in backup - $machine->waitForFile("/var/backup/mysql/daily/testdb"); - $machine->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"); + with subtest("wait for backup file and check that data appears in backup"): + machine.wait_for_file("/var/backup/mysql/daily/testdb") + machine.succeed( + "${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello" + ) ''; }) diff --git a/nixos/tests/bittorrent.nix b/nixos/tests/bittorrent.nix index 3b1169a1b7f..e5be652c711 100644 --- a/nixos/tests/bittorrent.nix +++ b/nixos/tests/bittorrent.nix @@ -6,7 +6,7 @@ # which only works if the first client successfully uses the UPnP-IGD # protocol to poke a hole in the NAT. -import ./make-test.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, ... }: let @@ -108,42 +108,56 @@ in testScript = { nodes, ... }: '' - startAll; + start_all() # Wait for network and miniupnpd. - $router->waitForUnit("network-online.target"); - $router->waitForUnit("miniupnpd"); + router.wait_for_unit("network-online.target") + router.wait_for_unit("miniupnpd") # Create the torrent. - $tracker->succeed("mkdir /tmp/data"); - $tracker->succeed("cp ${file} /tmp/data/test.tar.bz2"); - $tracker->succeed("transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent"); - $tracker->succeed("chmod 644 /tmp/test.torrent"); + tracker.succeed("mkdir /tmp/data") + tracker.succeed( + "cp ${file} /tmp/data/test.tar.bz2" + ) + tracker.succeed( + "transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent" + ) + tracker.succeed("chmod 644 /tmp/test.torrent") # Start the tracker. !!! use a less crappy tracker - $tracker->waitForUnit("network-online.target"); - $tracker->waitForUnit("opentracker.service"); - $tracker->waitForOpenPort(6969); + tracker.wait_for_unit("network-online.target") + tracker.wait_for_unit("opentracker.service") + tracker.wait_for_open_port(6969) # Start the initial seeder. - $tracker->succeed("transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data"); + tracker.succeed( + "transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data" + ) # Now we should be able to download from the client behind the NAT. - $tracker->waitForUnit("httpd"); - $client1->waitForUnit("network-online.target"); - $client1->succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &"); - $client1->waitForFile("/tmp/test.tar.bz2"); - $client1->succeed("cmp /tmp/test.tar.bz2 ${file}"); + tracker.wait_for_unit("httpd") + client1.wait_for_unit("network-online.target") + client1.succeed( + "transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &" + ) + client1.wait_for_file("/tmp/test.tar.bz2") + client1.succeed( + "cmp /tmp/test.tar.bz2 ${file}" + ) # Bring down the initial seeder. - # $tracker->stopJob("transmission"); + # tracker.stop_job("transmission") # Now download from the second client. This can only succeed if # the first client created a NAT hole in the router. - $client2->waitForUnit("network-online.target"); - $client2->succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &"); - $client2->waitForFile("/tmp/test.tar.bz2"); - $client2->succeed("cmp /tmp/test.tar.bz2 ${file}"); + client2.wait_for_unit("network-online.target") + client2.succeed( + "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &" + ) + client2.wait_for_file("/tmp/test.tar.bz2") + client2.succeed( + "cmp /tmp/test.tar.bz2 ${file}" + ) ''; }) diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix index 57d8006d7ac..c5040f3b31f 100644 --- a/nixos/tests/boot.nix +++ b/nixos/tests/boot.nix @@ -3,7 +3,7 @@ pkgs ? import ../.. { inherit system config; } }: -with import ../lib/testing.nix { inherit system pkgs; }; +with import ../lib/testing-python.nix { inherit system pkgs; }; with pkgs.lib; let @@ -17,11 +17,11 @@ let ]; }).config.system.build.isoImage; - perlAttrs = params: "{ ${concatStringsSep ", " (mapAttrsToList (name: param: "${name} => ${builtins.toJSON param}") params)} }"; + pythonDict = params: "\n {\n ${concatStringsSep ",\n " (mapAttrsToList (name: param: "\"${name}\": \"${param}\"") params)},\n }\n"; makeBootTest = name: extraConfig: let - machineConfig = perlAttrs ({ qemuFlags = "-m 768"; } // extraConfig); + machineConfig = pythonDict ({ qemuFlags = "-m 768"; } // extraConfig); in makeTest { inherit iso; @@ -29,16 +29,16 @@ let nodes = { }; testScript = '' - my $machine = createMachine(${machineConfig}); - $machine->start; - $machine->waitForUnit("multi-user.target"); - $machine->succeed("nix verify -r --no-trust /run/current-system"); + machine = create_machine(${machineConfig}) + machine.start() + machine.wait_for_unit("multi-user.target") + machine.succeed("nix verify -r --no-trust /run/current-system") - # Test whether the channel got installed correctly. - $machine->succeed("nix-instantiate --dry-run '' -A hello"); - $machine->succeed("nix-env --dry-run -iA nixos.procps"); + with subtest("Check whether the channel got installed correctly"): + machine.succeed("nix-instantiate --dry-run '' -A hello") + machine.succeed("nix-env --dry-run -iA nixos.procps") - $machine->shutdown; + machine.shutdown() ''; }; @@ -60,7 +60,7 @@ let config.system.build.netbootIpxeScript ]; }; - machineConfig = perlAttrs ({ + machineConfig = pythonDict ({ qemuFlags = "-boot order=n -m 2000"; netBackendArgs = "tftp=${ipxeBootDir},bootfile=netboot.ipxe"; } // extraConfig); @@ -68,12 +68,11 @@ let makeTest { name = "boot-netboot-" + name; nodes = { }; - testScript = - '' - my $machine = createMachine(${machineConfig}); - $machine->start; - $machine->waitForUnit("multi-user.target"); - $machine->shutdown; + testScript = '' + machine = create_machine(${machineConfig}) + machine.start() + machine.wait_for_unit("multi-user.target") + machine.shutdown() ''; }; in { diff --git a/nixos/tests/emacs-daemon.nix b/nixos/tests/emacs-daemon.nix index 3594e35e343..b89d9b1bde6 100644 --- a/nixos/tests/emacs-daemon.nix +++ b/nixos/tests/emacs-daemon.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "emacs-daemon"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ ]; @@ -21,25 +21,28 @@ import ./make-test.nix ({ pkgs, ...} : { environment.variables.TEST_SYSTEM_VARIABLE = "system variable"; }; - testScript = - '' - $machine->waitForUnit("multi-user.target"); + testScript = '' + machine.wait_for_unit("multi-user.target") # checks that the EDITOR environment variable is set - $machine->succeed("test \$(basename \"\$EDITOR\") = emacseditor"); + machine.succeed('test $(basename "$EDITOR") = emacseditor') # waits for the emacs service to be ready - $machine->waitUntilSucceeds("systemctl --user status emacs.service | grep 'Active: active'"); + machine.wait_until_succeeds( + "systemctl --user status emacs.service | grep 'Active: active'" + ) # connects to the daemon - $machine->succeed("emacsclient --create-frame \$EDITOR &"); + machine.succeed("emacsclient --create-frame $EDITOR &") # checks that Emacs shows the edited filename - $machine->waitForText("emacseditor"); + machine.wait_for_text("emacseditor") # makes sure environment variables are accessible from Emacs - $machine->succeed("emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")'") =~ /system variable/ or die; + machine.succeed( + "emacsclient --eval '(getenv \"TEST_SYSTEM_VARIABLE\")' | grep -q 'system variable'" + ) - $machine->screenshot("emacsclient"); + machine.screenshot("emacsclient") ''; }) diff --git a/nixos/tests/fsck.nix b/nixos/tests/fsck.nix index f943bb7f235..e522419fde2 100644 --- a/nixos/tests/fsck.nix +++ b/nixos/tests/fsck.nix @@ -1,4 +1,4 @@ -import ./make-test.nix { +import ./make-test-python.nix { name = "fsck"; machine = { lib, ... }: { @@ -14,16 +14,18 @@ import ./make-test.nix { }; testScript = '' - $machine->waitForUnit('default.target'); + machine.wait_for_unit("default.target") - subtest "root fs is fsckd", sub { - $machine->succeed('journalctl -b | grep "fsck.ext4.*/dev/vda"'); - }; + with subtest("root fs is fsckd"): + machine.succeed("journalctl -b | grep 'fsck.ext4.*/dev/vda'") - subtest "mnt fs is fsckd", sub { - $machine->succeed('journalctl -b | grep "fsck.*/dev/vdb.*clean"'); - $machine->succeed('grep "Requires=systemd-fsck@dev-vdb.service" /run/systemd/generator/mnt.mount'); - $machine->succeed('grep "After=systemd-fsck@dev-vdb.service" /run/systemd/generator/mnt.mount'); - }; + with subtest("mnt fs is fsckd"): + machine.succeed("journalctl -b | grep 'fsck.*/dev/vdb.*clean'") + machine.succeed( + "grep 'Requires=systemd-fsck@dev-vdb.service' /run/systemd/generator/mnt.mount" + ) + machine.succeed( + "grep 'After=systemd-fsck@dev-vdb.service' /run/systemd/generator/mnt.mount" + ) ''; } diff --git a/nixos/tests/gitea.nix b/nixos/tests/gitea.nix index b8ab6dabc8c..ffbc07cfbb2 100644 --- a/nixos/tests/gitea.nix +++ b/nixos/tests/gitea.nix @@ -3,7 +3,7 @@ pkgs ? import ../.. { inherit system config; } }: -with import ../lib/testing.nix { inherit system pkgs; }; +with import ../lib/testing-python.nix { inherit system pkgs; }; with pkgs.lib; { @@ -18,11 +18,11 @@ with pkgs.lib; }; testScript = '' - startAll; + start_all() - $machine->waitForUnit('gitea.service'); - $machine->waitForOpenPort('3000'); - $machine->succeed("curl --fail http://localhost:3000/"); + machine.wait_for_unit("gitea.service") + machine.wait_for_open_port(3000) + machine.succeed("curl --fail http://localhost:3000/") ''; }; @@ -37,11 +37,11 @@ with pkgs.lib; }; testScript = '' - startAll; + start_all() - $machine->waitForUnit('gitea.service'); - $machine->waitForOpenPort('3000'); - $machine->succeed("curl --fail http://localhost:3000/"); + machine.wait_for_unit("gitea.service") + machine.wait_for_open_port(3000) + machine.succeed("curl --fail http://localhost:3000/") ''; }; @@ -56,12 +56,14 @@ with pkgs.lib; }; testScript = '' - startAll; + start_all() - $machine->waitForUnit('gitea.service'); - $machine->waitForOpenPort('3000'); - $machine->succeed("curl --fail http://localhost:3000/"); - $machine->succeed("curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. Please contact your site administrator.'"); + machine.wait_for_unit("gitea.service") + machine.wait_for_open_port(3000) + machine.succeed("curl --fail http://localhost:3000/") + machine.succeed( + "curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. Please contact your site administrator.'" + ) ''; }; } diff --git a/nixos/tests/gjs.nix b/nixos/tests/gjs.nix index e6002ef98dd..87c8d7f2817 100644 --- a/nixos/tests/gjs.nix +++ b/nixos/tests/gjs.nix @@ -3,13 +3,13 @@ import ./make-test.nix ({ pkgs, ... }: { name = "gjs"; meta = { - maintainers = pkgs.gnome3.gjs.meta.maintainers; + maintainers = pkgs.gjs.meta.maintainers; }; machine = { pkgs, ... }: { imports = [ ./common/x11.nix ]; environment.systemPackages = with pkgs; [ gnome-desktop-testing ]; - environment.variables.XDG_DATA_DIRS = [ "${pkgs.gnome3.gjs.installedTests}/share" ]; + environment.variables.XDG_DATA_DIRS = [ "${pkgs.gjs.installedTests}/share" ]; }; testScript = '' diff --git a/nixos/tests/jormungandr.nix b/nixos/tests/jormungandr.nix deleted file mode 100644 index 2abafc53ce5..00000000000 --- a/nixos/tests/jormungandr.nix +++ /dev/null @@ -1,77 +0,0 @@ -import ./make-test.nix ({ pkgs, ... }: { - name = "jormungandr"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ mmahut ]; - }; - - nodes = { - # Testing the Byzantine Fault Tolerant protocol - bft = { ... }: { - environment.systemPackages = [ pkgs.jormungandr ]; - services.jormungandr.enable = true; - services.jormungandr.genesisBlockFile = "/var/lib/jormungandr/block-0.bin"; - services.jormungandr.secretFile = "/etc/secrets/jormungandr.yaml"; - }; - - # Testing the Ouroboros Genesis Praos protocol - genesis = { ... }: { - environment.systemPackages = [ pkgs.jormungandr ]; - services.jormungandr.enable = true; - services.jormungandr.genesisBlockFile = "/var/lib/jormungandr/block-0.bin"; - services.jormungandr.secretFile = "/etc/secrets/jormungandr.yaml"; - }; - }; - - testScript = '' - startAll; - - ## Testing BFT - # Let's wait for the StateDirectory - $bft->waitForFile("/var/lib/jormungandr/"); - - # First, we generate the genesis file for our new blockchain - $bft->succeed("jcli genesis init > /root/genesis.yaml"); - - # We need to generate our secret key - $bft->succeed("jcli key generate --type=Ed25519 > /root/key.prv"); - - # We include the secret key into our services.jormungandr.secretFile - $bft->succeed("mkdir -p /etc/secrets"); - $bft->succeed("echo -e \"bft:\\n signing_key:\" \$(cat /root/key.prv) > /etc/secrets/jormungandr.yaml"); - - # After that, we generate our public key from it - $bft->succeed("cat /root/key.prv | jcli key to-public > /root/key.pub"); - - # We add our public key as a consensus leader in the genesis configration file - $bft->succeed("sed -ie \"s/ed25519_pk1vvwp2s0n5jl5f4xcjurp2e92sj2awehkrydrlas4vgqr7xzt33jsadha32/\$(cat /root/key.pub)/\" /root/genesis.yaml"); - - # Now we can generate the genesis block from it - $bft->succeed("jcli genesis encode --input /root/genesis.yaml --output /var/lib/jormungandr/block-0.bin"); - - # We should have everything to start the service now - $bft->succeed("systemctl restart jormungandr"); - $bft->waitForUnit("jormungandr.service"); - - # Now we can test if we are able to reach the REST API - $bft->waitUntilSucceeds("curl -L http://localhost:8607/api/v0/node/stats | grep uptime"); - - ## Testing Genesis - # Let's wait for the StateDirectory - $genesis->waitForFile("/var/lib/jormungandr/"); - - # Bootstraping the configuration - $genesis->succeed("jormungandr-bootstrap -g -p 8607 -s 1"); - - # Moving generated files in place - $genesis->succeed("mkdir -p /etc/secrets"); - $genesis->succeed("mv pool-secret1.yaml /etc/secrets/jormungandr.yaml"); - $genesis->succeed("mv block-0.bin /var/lib/jormungandr/"); - - # We should have everything to start the service now - $genesis->succeed("systemctl restart jormungandr"); - $genesis->waitForUnit("jormungandr.service"); - - # Now we can create and delegate an account - $genesis->succeed("./create-account-and-delegate.sh | tee -a /tmp/delegate.log"); - ''; -}) diff --git a/nixos/tests/login.nix b/nixos/tests/login.nix index bd8ed23a7b8..d36c1a91be4 100644 --- a/nixos/tests/login.nix +++ b/nixos/tests/login.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, latestKernel ? false, ... }: +import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... }: { name = "login"; @@ -12,62 +12,48 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... }: sound.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then }; - testScript = - '' - $machine->waitForUnit('multi-user.target'); - $machine->waitUntilSucceeds("pgrep -f 'agetty.*tty1'"); - $machine->screenshot("postboot"); + testScript = '' + machine.wait_for_unit("multi-user.target") + machine.wait_until_succeeds("pgrep -f 'agetty.*tty1'") + machine.screenshot("postboot") - subtest "create user", sub { - $machine->succeed("useradd -m alice"); - $machine->succeed("(echo foobar; echo foobar) | passwd alice"); - }; + with subtest("create user"): + machine.succeed("useradd -m alice") + machine.succeed("(echo foobar; echo foobar) | passwd alice") - # Check whether switching VTs works. - subtest "virtual console switching", sub { - $machine->fail("pgrep -f 'agetty.*tty2'"); - $machine->sendKeys("alt-f2"); - $machine->waitUntilSucceeds("[ \$(fgconsole) = 2 ]"); - $machine->waitForUnit('getty@tty2.service'); - $machine->waitUntilSucceeds("pgrep -f 'agetty.*tty2'"); - }; + with subtest("Check whether switching VTs works"): + machine.fail("pgrep -f 'agetty.*tty2'") + machine.send_key("alt-f2") + machine.wait_until_succeeds("[ $(fgconsole) = 2 ]") + machine.wait_for_unit("getty@tty2.service") + machine.wait_until_succeeds("pgrep -f 'agetty.*tty2'") - # Log in as alice on a virtual console. - subtest "virtual console login", sub { - $machine->waitUntilTTYMatches(2, "login: "); - $machine->sendChars("alice\n"); - $machine->waitUntilTTYMatches(2, "login: alice"); - $machine->waitUntilSucceeds("pgrep login"); - $machine->waitUntilTTYMatches(2, "Password: "); - $machine->sendChars("foobar\n"); - $machine->waitUntilSucceeds("pgrep -u alice bash"); - $machine->sendChars("touch done\n"); - $machine->waitForFile("/home/alice/done"); - }; + with subtest("Log in as alice on a virtual console"): + machine.wait_until_tty_matches(2, "login: ") + machine.send_chars("alice\n") + machine.wait_until_tty_matches(2, "login: alice") + machine.wait_until_succeeds("pgrep login") + machine.wait_until_tty_matches(2, "Password: ") + machine.send_chars("foobar\n") + machine.wait_until_succeeds("pgrep -u alice bash") + machine.send_chars("touch done\n") + machine.wait_for_file("/home/alice/done") - # Check whether systemd gives and removes device ownership as - # needed. - subtest "device permissions", sub { - $machine->succeed("getfacl -p /dev/snd/timer | grep -q alice"); - $machine->sendKeys("alt-f1"); - $machine->waitUntilSucceeds("[ \$(fgconsole) = 1 ]"); - $machine->fail("getfacl -p /dev/snd/timer | grep -q alice"); - $machine->succeed("chvt 2"); - $machine->waitUntilSucceeds("getfacl -p /dev/snd/timer | grep -q alice"); - }; + with subtest("Systemd gives and removes device ownership as needed"): + machine.succeed("getfacl /dev/snd/timer | grep -q alice") + machine.send_key("alt-f1") + machine.wait_until_succeeds("[ $(fgconsole) = 1 ]") + machine.fail("getfacl /dev/snd/timer | grep -q alice") + machine.succeed("chvt 2") + machine.wait_until_succeeds("getfacl /dev/snd/timer | grep -q alice") - # Log out. - subtest "virtual console logout", sub { - $machine->sendChars("exit\n"); - $machine->waitUntilFails("pgrep -u alice bash"); - $machine->screenshot("mingetty"); - }; - - # Check whether ctrl-alt-delete works. - subtest "ctrl-alt-delete", sub { - $machine->sendKeys("ctrl-alt-delete"); - $machine->waitForShutdown; - }; - ''; + with subtest("Virtual console logout"): + machine.send_chars("exit\n") + machine.wait_until_fails("pgrep -u alice bash") + machine.screenshot("mingetty") + with subtest("Check whether ctrl-alt-delete works"): + machine.send_key("ctrl-alt-delete") + machine.wait_for_shutdown() + ''; }) diff --git a/nixos/tests/make-test-python.nix b/nixos/tests/make-test-python.nix new file mode 100644 index 00000000000..89897fe7e61 --- /dev/null +++ b/nixos/tests/make-test-python.nix @@ -0,0 +1,9 @@ +f: { + system ? builtins.currentSystem, + pkgs ? import ../.. { inherit system; config = {}; }, + ... +} @ args: + +with import ../lib/testing-python.nix { inherit system pkgs; }; + +makeTest (if pkgs.lib.isFunction f then f (args // { inherit pkgs; inherit (pkgs) lib; }) else f) diff --git a/nixos/tests/moinmoin.nix b/nixos/tests/moinmoin.nix new file mode 100644 index 00000000000..2662b79aa09 --- /dev/null +++ b/nixos/tests/moinmoin.nix @@ -0,0 +1,24 @@ +import ./make-test.nix ({ pkgs, lib, ... }: { + name = "moinmoin"; + meta.maintainers = [ ]; # waiting for https://github.com/NixOS/nixpkgs/pull/65397 + + 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 = '' + startAll; + + $machine->waitForUnit('moin-ExampleWiki.service'); + $machine->waitForUnit('nginx.service'); + $machine->waitForFile('/run/moin/ExampleWiki/gunicorn.sock'); + $machine->succeed('curl -L http://localhost/') =~ /If you have just installed/ or die; + $machine->succeed('moin-ExampleWiki account create --name=admin --email=admin@example.com --password=foo 2>&1') =~ /status success/ or die; + ''; +}) diff --git a/nixos/tests/nixos-generate-config.nix b/nixos/tests/nixos-generate-config.nix index 15a173e024b..6c83ccecc70 100644 --- a/nixos/tests/nixos-generate-config.nix +++ b/nixos/tests/nixos-generate-config.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ lib, ... } : { +import ./make-test-python.nix ({ lib, ... } : { name = "nixos-generate-config"; meta.maintainers = with lib.maintainers; [ basvandijk ]; machine = { @@ -11,14 +11,16 @@ import ./make-test.nix ({ lib, ... } : { ''; }; testScript = '' - startAll; - $machine->waitForUnit("multi-user.target"); - $machine->succeed("nixos-generate-config"); + start_all() + machine.wait_for_unit("multi-user.target") + machine.succeed("nixos-generate-config") # Test if the configuration really is overridden - $machine->succeed("grep 'OVERRIDDEN' /etc/nixos/configuration.nix"); + machine.succeed("grep 'OVERRIDDEN' /etc/nixos/configuration.nix") # Test of if the Perl variable $bootLoaderConfig is spliced correctly: - $machine->succeed("grep 'boot\\.loader\\.grub\\.enable = true;' /etc/nixos/configuration.nix"); + machine.succeed( + "grep 'boot\\.loader\\.grub\\.enable = true;' /etc/nixos/configuration.nix" + ) ''; }) diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix index 8b9e2170f15..e9692b50327 100644 --- a/nixos/tests/openssh.nix +++ b/nixos/tests/openssh.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, ... }: let inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey; @@ -58,47 +58,55 @@ in { }; testScript = '' - startAll; + start_all() - my $key=`${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f key -N ""`; + server.wait_for_unit("sshd") - $server->waitForUnit("sshd"); + with subtest("manual-authkey"): + client.succeed("mkdir -m 700 /root/.ssh") + client.succeed( + '${pkgs.openssh}/bin/ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N ""' + ) + public_key = client.succeed( + "${pkgs.openssh}/bin/ssh-keygen -y -f /root/.ssh/id_ed25519" + ) + public_key = public_key.strip() + client.succeed("chmod 600 /root/.ssh/id_ed25519") - subtest "manual-authkey", sub { - $server->succeed("mkdir -m 700 /root/.ssh"); - $server->copyFileFromHost("key.pub", "/root/.ssh/authorized_keys"); - $server_lazy->succeed("mkdir -m 700 /root/.ssh"); - $server_lazy->copyFileFromHost("key.pub", "/root/.ssh/authorized_keys"); + server.succeed("mkdir -m 700 /root/.ssh") + server.succeed("echo '{}' > /root/.ssh/authorized_keys".format(public_key)) + server_lazy.succeed("mkdir -m 700 /root/.ssh") + server_lazy.succeed("echo '{}' > /root/.ssh/authorized_keys".format(public_key)) - $client->succeed("mkdir -m 700 /root/.ssh"); - $client->copyFileFromHost("key", "/root/.ssh/id_ed25519"); - $client->succeed("chmod 600 /root/.ssh/id_ed25519"); + client.wait_for_unit("network.target") + client.succeed( + "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2" + ) + client.succeed( + "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024" + ) - $client->waitForUnit("network.target"); - $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'echo hello world' >&2"); - $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server 'ulimit -l' | grep 1024"); + client.succeed( + "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2" + ) + client.succeed( + "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024" + ) - $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'echo hello world' >&2"); - $client->succeed("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server_lazy 'ulimit -l' | grep 1024"); + with subtest("configured-authkey"): + client.succeed( + "cat ${snakeOilPrivateKey} > privkey.snakeoil" + ) + client.succeed("chmod 600 privkey.snakeoil") + client.succeed( + "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server true" + ) + client.succeed( + "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil server_lazy true" + ) - }; - - subtest "configured-authkey", sub { - $client->succeed("cat ${snakeOilPrivateKey} > privkey.snakeoil"); - $client->succeed("chmod 600 privkey.snakeoil"); - $client->succeed("ssh -o UserKnownHostsFile=/dev/null" . - " -o StrictHostKeyChecking=no -i privkey.snakeoil" . - " server true"); - - $client->succeed("ssh -o UserKnownHostsFile=/dev/null" . - " -o StrictHostKeyChecking=no -i privkey.snakeoil" . - " server_lazy true"); - - }; - - subtest "localhost-only", sub { - $server_localhost_only->succeed("ss -nlt | grep '127.0.0.1:22'"); - $server_localhost_only_lazy->succeed("ss -nlt | grep '127.0.0.1:22'"); - } + with subtest("localhost-only"): + server_localhost_only.succeed("ss -nlt | grep '127.0.0.1:22'") + server_localhost_only_lazy.succeed("ss -nlt | grep '127.0.0.1:22'") ''; }) diff --git a/nixos/tests/postgresql.nix b/nixos/tests/postgresql.nix index ae5d6d095ea..e71c3888288 100644 --- a/nixos/tests/postgresql.nix +++ b/nixos/tests/postgresql.nix @@ -3,7 +3,7 @@ pkgs ? import ../.. { inherit system config; } }: -with import ../lib/testing.nix { inherit system pkgs; }; +with import ../lib/testing-python.nix { inherit system pkgs; }; with pkgs.lib; let @@ -40,29 +40,33 @@ let backupName = if backup-all then "all" else "postgres"; backupService = if backup-all then "postgresqlBackup" else "postgresqlBackup-postgres"; in '' - sub check_count { - my ($select, $nlines) = @_; - return 'test $(sudo -u postgres psql postgres -tAc "' . $select . '"|wc -l) -eq ' . $nlines; - } + def check_count(statement, lines): + return 'test $(sudo -u postgres psql postgres -tAc "{}"|wc -l) -eq {}'.format( + statement, lines + ) + + + machine.start() + machine.wait_for_unit("postgresql") - $machine->start; - $machine->waitForUnit("postgresql"); # postgresql should be available just after unit start - $machine->succeed("cat ${test-sql} | sudo -u postgres psql"); - $machine->shutdown; # make sure that postgresql survive restart (bug #1735) - sleep(2); - $machine->start; - $machine->waitForUnit("postgresql"); - $machine->fail(check_count("SELECT * FROM sth;", 3)); - $machine->succeed(check_count("SELECT * FROM sth;", 5)); - $machine->fail(check_count("SELECT * FROM sth;", 4)); - $machine->succeed(check_count("SELECT xpath(\'/test/text()\', doc) FROM xmltest;", 1)); + machine.succeed( + "cat ${test-sql} | sudo -u postgres psql" + ) + machine.shutdown() # make sure that postgresql survive restart (bug #1735) + time.sleep(2) + machine.start() + machine.wait_for_unit("postgresql") + machine.fail(check_count("SELECT * FROM sth;", 3)) + machine.succeed(check_count("SELECT * FROM sth;", 5)) + machine.fail(check_count("SELECT * FROM sth;", 4)) + machine.succeed(check_count("SELECT xpath('/test/text()', doc) FROM xmltest;", 1)) # Check backup service - $machine->succeed("systemctl start ${backupService}.service"); - $machine->succeed("zcat /var/backup/postgresql/${backupName}.sql.gz | grep 'ok'"); - $machine->succeed("stat -c '%a' /var/backup/postgresql/${backupName}.sql.gz | grep 600"); - $machine->shutdown; + machine.succeed("systemctl start ${backupService}.service") + machine.succeed("zcat /var/backup/postgresql/${backupName}.sql.gz | grep 'ok'") + machine.succeed("stat -c '%a' /var/backup/postgresql/${backupName}.sql.gz | grep 600") + machine.shutdown() ''; }; diff --git a/nixos/tests/quake3.nix b/nixos/tests/quake3.nix deleted file mode 100644 index 4253ce4a867..00000000000 --- a/nixos/tests/quake3.nix +++ /dev/null @@ -1,95 +0,0 @@ -import ./make-test.nix ({ pkgs, ...} : - -let - - # Build Quake with coverage instrumentation. - overrides = pkgs: - { - quake3game = pkgs.quake3game.override (args: { - stdenv = pkgs.stdenvAdapters.addCoverageInstrumentation args.stdenv; - }); - }; - - # Only allow the demo data to be used (only if it's unfreeRedistributable). - unfreePredicate = pkg: with pkgs.lib; let - allowPackageNames = [ "quake3-demodata" "quake3-pointrelease" ]; - allowLicenses = [ pkgs.lib.licenses.unfreeRedistributable ]; - in elem pkg.pname allowPackageNames && - elem (pkg.meta.license or null) allowLicenses; - -in - -rec { - name = "quake3"; - meta = with pkgs.stdenv.lib.maintainers; { - maintainers = [ domenkozar eelco ]; - }; - - # TODO: lcov doesn't work atm - #makeCoverageReport = true; - - client = - { pkgs, ... }: - - { imports = [ ./common/x11.nix ]; - hardware.opengl.driSupport = true; - environment.systemPackages = [ pkgs.quake3demo ]; - nixpkgs.config.packageOverrides = overrides; - nixpkgs.config.allowUnfreePredicate = unfreePredicate; - }; - - nodes = - { server = - { pkgs, ... }: - - { systemd.services.quake3-server = - { wantedBy = [ "multi-user.target" ]; - script = - "${pkgs.quake3demo}/bin/quake3-server +set g_gametype 0 " + - "+map q3dm7 +addbot grunt +addbot daemia 2> /tmp/log"; - }; - nixpkgs.config.packageOverrides = overrides; - nixpkgs.config.allowUnfreePredicate = unfreePredicate; - networking.firewall.allowedUDPPorts = [ 27960 ]; - }; - - client1 = client; - client2 = client; - }; - - testScript = - '' - startAll; - - $server->waitForUnit("quake3-server"); - $client1->waitForX; - $client2->waitForX; - - $client1->execute("quake3 +set r_fullscreen 0 +set name Foo +connect server &"); - $client2->execute("quake3 +set r_fullscreen 0 +set name Bar +connect server &"); - - $server->waitUntilSucceeds("grep -q 'Foo.*entered the game' /tmp/log"); - $server->waitUntilSucceeds("grep -q 'Bar.*entered the game' /tmp/log"); - - $server->sleep(10); # wait for a while to get a nice screenshot - - $client1->block(); - - $server->sleep(20); - - $client1->screenshot("screen1"); - $client2->screenshot("screen2"); - - $client1->unblock(); - - $server->sleep(10); - - $client1->screenshot("screen3"); - $client2->screenshot("screen4"); - - $client1->shutdown(); - $client2->shutdown(); - $server->stopJob("quake3-server"); - ''; - -}) diff --git a/nixos/tests/simple.nix b/nixos/tests/simple.nix index 84c5621d962..3810a2cd3a5 100644 --- a/nixos/tests/simple.nix +++ b/nixos/tests/simple.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "simple"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ eelco ]; @@ -10,8 +10,8 @@ import ./make-test.nix ({ pkgs, ...} : { testScript = '' - startAll; - $machine->waitForUnit("multi-user.target"); - $machine->shutdown; + start_all() + machine.wait_for_unit("multi-user.target") + machine.shutdown() ''; }) diff --git a/nixos/tests/tor.nix b/nixos/tests/tor.nix index 0cb44ddff24..ad07231557c 100644 --- a/nixos/tests/tor.nix +++ b/nixos/tests/tor.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ lib, ... }: with lib; +import ./make-test-python.nix ({ lib, ... }: with lib; rec { name = "tor"; @@ -21,8 +21,10 @@ rec { }; testScript = '' - $client->waitForUnit("tor.service"); - $client->waitForOpenPort(9051); - $client->succeed("echo GETINFO version | nc 127.0.0.1 9051") =~ /514 Authentication required./ or die; + client.wait_for_unit("tor.service") + client.wait_for_open_port(9051) + assert "514 Authentication required." in client.succeed( + "echo GETINFO version | nc 127.0.0.1 9051" + ) ''; }) diff --git a/nixos/tests/trac.nix b/nixos/tests/trac.nix new file mode 100644 index 00000000000..643095d947e --- /dev/null +++ b/nixos/tests/trac.nix @@ -0,0 +1,19 @@ +import ./make-test.nix ({ pkgs, ... }: { + name = "trac"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ mmahut ]; + }; + + nodes = { + machine = { ... }: { + services.trac.enable = true; + }; + }; + + testScript = '' + startAll; + $machine->waitForUnit("trac.service"); + $machine->waitForOpenPort(8000); + $machine->waitUntilSucceeds("curl -L http://localhost:8000/ | grep 'Trac Powered'"); + ''; +}) diff --git a/nixos/tests/transmission.nix b/nixos/tests/transmission.nix index f1c238730eb..f4f2186be1f 100644 --- a/nixos/tests/transmission.nix +++ b/nixos/tests/transmission.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ...} : { +import ./make-test-python.nix ({ pkgs, ...} : { name = "transmission"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ coconnor ]; @@ -14,8 +14,8 @@ import ./make-test.nix ({ pkgs, ...} : { testScript = '' - startAll; - $machine->waitForUnit("transmission"); - $machine->shutdown; + start_all() + machine.wait_for_unit("transmission") + machine.shutdown() ''; }) diff --git a/nixos/tests/vault.nix b/nixos/tests/vault.nix index caf0cbb2abf..ac8cf0703da 100644 --- a/nixos/tests/vault.nix +++ b/nixos/tests/vault.nix @@ -1,4 +1,4 @@ -import ./make-test.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, ... }: { name = "vault"; meta = with pkgs.stdenv.lib.maintainers; { @@ -12,12 +12,12 @@ import ./make-test.nix ({ pkgs, ... }: testScript = '' - startAll; + start_all() - $machine->waitForUnit('multi-user.target'); - $machine->waitForUnit('vault.service'); - $machine->waitForOpenPort(8200); - $machine->succeed('vault operator init'); - $machine->succeed('vault status | grep Sealed | grep true'); + machine.wait_for_unit("multi-user.target") + machine.wait_for_unit("vault.service") + machine.wait_for_open_port(8200) + machine.succeed("vault operator init") + machine.succeed("vault status | grep Sealed | grep true") ''; }) diff --git a/nixos/tests/wireguard/default.nix b/nixos/tests/wireguard/default.nix index b0797b96323..8206823a918 100644 --- a/nixos/tests/wireguard/default.nix +++ b/nixos/tests/wireguard/default.nix @@ -2,7 +2,7 @@ let wg-snakeoil-keys = import ./snakeoil-keys.nix; in -import ../make-test.nix ({ pkgs, ...} : { +import ../make-test-python.nix ({ pkgs, ...} : { name = "wireguard"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ ma27 ]; @@ -86,12 +86,12 @@ import ../make-test.nix ({ pkgs, ...} : { }; testScript = '' - startAll; + start_all() - $peer0->waitForUnit("wireguard-wg0.service"); - $peer1->waitForUnit("wireguard-wg0.service"); + peer0.wait_for_unit("wireguard-wg0.service") + peer1.wait_for_unit("wireguard-wg0.service") - $peer1->succeed("ping -c5 fc00::1"); - $peer1->succeed("ping -c5 10.23.42.1") + peer1.succeed("ping -c5 fc00::1") + peer1.succeed("ping -c5 10.23.42.1") ''; }) diff --git a/nixos/tests/wireguard/generated.nix b/nixos/tests/wireguard/generated.nix index 897feafe3ff..a29afd2d466 100644 --- a/nixos/tests/wireguard/generated.nix +++ b/nixos/tests/wireguard/generated.nix @@ -1,4 +1,4 @@ -import ../make-test.nix ({ pkgs, ...} : { +import ../make-test-python.nix ({ pkgs, ...} : { name = "wireguard-generated"; meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ ma27 grahamc ]; @@ -28,30 +28,34 @@ import ../make-test.nix ({ pkgs, ...} : { }; testScript = '' - startAll; + start_all() - $peer1->waitForUnit("wireguard-wg0.service"); - $peer2->waitForUnit("wireguard-wg0.service"); + peer1.wait_for_unit("wireguard-wg0.service") + peer2.wait_for_unit("wireguard-wg0.service") - my ($retcode, $peer1pubkey) = $peer1->execute("wg pubkey < /etc/wireguard/private"); - $peer1pubkey =~ s/\s+$//; - if ($retcode != 0) { - die "Could not read public key from peer1"; - } + retcode, peer1pubkey = peer1.execute("wg pubkey < /etc/wireguard/private") + if retcode != 0: + raise Exception("Could not read public key from peer1") - my ($retcode, $peer2pubkey) = $peer2->execute("wg pubkey < /etc/wireguard/private"); - $peer2pubkey =~ s/\s+$//; - if ($retcode != 0) { - die "Could not read public key from peer2"; - } + retcode, peer2pubkey = peer2.execute("wg pubkey < /etc/wireguard/private") + if retcode != 0: + raise Exception("Could not read public key from peer2") - $peer1->succeed("wg set wg0 peer $peer2pubkey allowed-ips 10.10.10.2/32 endpoint 192.168.1.2:12345 persistent-keepalive 1"); - $peer1->succeed("ip route replace 10.10.10.2/32 dev wg0 table main"); + peer1.succeed( + "wg set wg0 peer {} allowed-ips 10.10.10.2/32 endpoint 192.168.1.2:12345 persistent-keepalive 1".format( + peer2pubkey.strip() + ) + ) + peer1.succeed("ip route replace 10.10.10.2/32 dev wg0 table main") - $peer2->succeed("wg set wg0 peer $peer1pubkey allowed-ips 10.10.10.1/32 endpoint 192.168.1.1:12345 persistent-keepalive 1"); - $peer2->succeed("ip route replace 10.10.10.1/32 dev wg0 table main"); + peer2.succeed( + "wg set wg0 peer {} allowed-ips 10.10.10.1/32 endpoint 192.168.1.1:12345 persistent-keepalive 1".format( + peer1pubkey.strip() + ) + ) + peer2.succeed("ip route replace 10.10.10.1/32 dev wg0 table main") - $peer1->succeed("ping -c1 10.10.10.2"); - $peer2->succeed("ping -c1 10.10.10.1"); + peer1.succeed("ping -c1 10.10.10.2") + peer2.succeed("ping -c1 10.10.10.1") ''; }) diff --git a/nixos/tests/zfs.nix b/nixos/tests/zfs.nix index d7a08268e98..8f844aca416 100644 --- a/nixos/tests/zfs.nix +++ b/nixos/tests/zfs.nix @@ -7,7 +7,7 @@ with import ../lib/testing.nix { inherit system pkgs; }; let - makeTest = import ./make-test.nix; + makeTest = import ./make-test-python.nix; makeZfsTest = name: { kernelPackage ? pkgs.linuxPackages_latest @@ -34,12 +34,12 @@ let }; testScript = '' - $machine->succeed("modprobe zfs"); - $machine->succeed("zpool status"); + machine.succeed("modprobe zfs") + machine.succeed("zpool status") - $machine->succeed("ls /dev"); + machine.succeed("ls /dev") - $machine->succeed( + machine.succeed( "mkdir /tmp/mnt", "udevadm settle", @@ -55,9 +55,7 @@ let "umount /tmp/mnt", "zpool destroy rpool", "udevadm settle" - - ); - + ) '' + extraTest; }; @@ -70,8 +68,8 @@ in { unstable = makeZfsTest "unstable" { enableUnstable = true; extraTest = '' - $machine->succeed( - "echo password | zpool create -o altroot='/tmp/mnt' -O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1", + machine.succeed( + "echo password | zpool create -o altroot=\"/tmp/mnt\" -O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1", "zfs create -o mountpoint=legacy rpool/root", "mount -t zfs rpool/root /tmp/mnt", "udevadm settle", @@ -79,7 +77,7 @@ in { "umount /tmp/mnt", "zpool destroy rpool", "udevadm settle" - ); + ) ''; }; diff --git a/pkgs/applications/audio/asunder/default.nix b/pkgs/applications/audio/asunder/default.nix index e252635e953..5a0b6797a24 100644 --- a/pkgs/applications/audio/asunder/default.nix +++ b/pkgs/applications/audio/asunder/default.nix @@ -12,15 +12,15 @@ with stdenv.lib; stdenv.mkDerivation rec { - version = "2.9.4"; + version = "2.9.5"; pname = "asunder"; src = fetchurl { url = "http://littlesvr.ca/asunder/releases/${pname}-${version}.tar.bz2"; - sha256 = "1bwc9v9l1f3kqjd7wis6g2sv6ibc618ybh0gsb8mkkfhadp68w30"; + sha256 = "069x6az2r3wlb2hd07iz0hxpxwknw7s9h7pyhnkmzv1pw9ci3kk4"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtk2 libcddb intltool makeWrapper ]; + nativeBuildInputs = [ intltool makeWrapper pkgconfig ]; + buildInputs = [ gtk2 libcddb ]; runtimeDeps = optional mp3Support lame ++ diff --git a/pkgs/applications/audio/drumgizmo/default.nix b/pkgs/applications/audio/drumgizmo/default.nix index 86de7df101d..2581f223c91 100644 --- a/pkgs/applications/audio/drumgizmo/default.nix +++ b/pkgs/applications/audio/drumgizmo/default.nix @@ -3,12 +3,12 @@ }: stdenv.mkDerivation rec { - version = "0.9.18"; + version = "0.9.18.1"; pname = "drumgizmo"; src = fetchurl { url = "https://www.drumgizmo.org/releases/${pname}-${version}/${pname}-${version}.tar.gz"; - sha256 = "1vig9pm0dakpk8wa62m9ajj3bz536h0170r8vb98hxbm4wyys8yj"; + sha256 = "0bpbkzcr3znbwfdk79c14n5k5hh80iqlk2nc03q95vhimbadk8k7"; }; configureFlags = [ "--enable-lv2" ]; diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix index f8a2aa8db76..8bdf45a968a 100644 --- a/pkgs/applications/audio/lollypop/default.nix +++ b/pkgs/applications/audio/lollypop/default.nix @@ -19,7 +19,7 @@ python3.pkgs.buildPythonApplication rec { pname = "lollypop"; - version = "1.2.2"; + version = "1.2.5"; format = "other"; doCheck = false; @@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec { url = "https://gitlab.gnome.org/World/lollypop"; rev = "refs/tags/${version}"; fetchSubmodules = true; - sha256 = "02dgp3b10yaw0yqzdzd15msjgxayvjkg9m652is0d7rwgjq1pk6v"; + sha256 = "148p3ab7nnfz13hgjkx1cf2ahq9mgl72csrl35xy6d0nkfqbfr8r"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix index 49e40bad0be..6d97a2da739 100644 --- a/pkgs/applications/audio/padthv1/default.nix +++ b/pkgs/applications/audio/padthv1/default.nix @@ -2,11 +2,11 @@ mkDerivation rec { pname = "padthv1"; - version = "0.9.10"; + version = "0.9.11"; src = fetchurl { url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz"; - sha256 = "07gpq31a9iwk79yzndqzmw7snap7s4ifnsc4mfwkdga2zx13z0rx"; + sha256 = "02yfwyirjqxa075yqdnci9b9k57kdmkjvn9gnpdbnjp887pds76g"; }; buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ]; diff --git a/pkgs/applications/audio/radiotray-ng/default.nix b/pkgs/applications/audio/radiotray-ng/default.nix index c0186a146be..a64e407b39b 100644 --- a/pkgs/applications/audio/radiotray-ng/default.nix +++ b/pkgs/applications/audio/radiotray-ng/default.nix @@ -21,7 +21,7 @@ # User-agent info , lsb-release # rt2rtng -, python2 +, python3 # Testing , gtest # Fixup @@ -36,17 +36,17 @@ let gst-libav ]; # For the rt2rtng utility for converting bookmark file to -ng format - pythonInputs = with python2.pkgs; [ python2 lxml ]; + pythonInputs = with python3.pkgs; [ python lxml ]; in stdenv.mkDerivation rec { pname = "radiotray-ng"; - version = "0.2.6"; + version = "0.2.7"; src = fetchFromGitHub { owner = "ebruck"; - repo = "radiotray-ng"; + repo = pname; rev = "v${version}"; - sha256 = "0khrfxjas2ldh0kksq7l811srqy16ahjxchvz0hhykx5hykymxlb"; + sha256 = "1v2nsz7s0jj0wmqabzk6akcf1353rachm1lfq77hxbq9z5pw8pgb"; }; nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook makeWrapper ]; diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix index 134757079f6..4874969b633 100644 --- a/pkgs/applications/audio/samplv1/default.nix +++ b/pkgs/applications/audio/samplv1/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "samplv1"; - version = "0.9.10"; + version = "0.9.11"; src = fetchurl { url = "mirror://sourceforge/samplv1/${pname}-${version}.tar.gz"; - sha256 = "04p5jkighmc8rf7fzzy8ch6knqbxv03vhjzdfh9dva2mlzw9rvjj"; + sha256 = "17zs8kvvwqv00bm4lxpn09a5hxjlbz7k5mkl3k7jspw7rqn3djf2"; }; buildInputs = [ libjack2 alsaLib liblo libsndfile lv2 qt5.qtbase qt5.qttools]; diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix index 6d650abfb97..349c7acc3db 100644 --- a/pkgs/applications/audio/synthv1/default.nix +++ b/pkgs/applications/audio/synthv1/default.nix @@ -1,15 +1,15 @@ -{ stdenv, fetchurl, pkgconfig, qt5, libjack2, alsaLib, liblo, lv2 }: +{ mkDerivation, stdenv, fetchurl, pkgconfig, qtbase, qttools, libjack2, alsaLib, liblo, lv2 }: -stdenv.mkDerivation rec { +mkDerivation rec { pname = "synthv1"; - version = "0.9.10"; + version = "0.9.11"; src = fetchurl { url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz"; - sha256 = "1ssdm7aiaz908ydqwdx9khxnnd0yfacjgvbxg5p9s9xhkbqqc2f2"; + sha256 = "116k2vca9dygvsd684wvxm61p0l1xrrgdph4qrrprlsr6vj0llgm"; }; - buildInputs = [ qt5.qtbase qt5.qttools libjack2 alsaLib liblo lv2 ]; + buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ]; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix index 74a59c0e963..b8acaa5a7e4 100644 --- a/pkgs/applications/audio/yoshimi/default.nix +++ b/pkgs/applications/audio/yoshimi/default.nix @@ -6,11 +6,11 @@ assert stdenv ? glibc; stdenv.mkDerivation rec { pname = "yoshimi"; - version = "1.6.0.1"; + version = "1.6.0.2"; src = fetchurl { url = "mirror://sourceforge/yoshimi/${pname}-${version}.tar.bz2"; - sha256 = "140f2k4akj39pny8c7i794q125415gyvmy4rday0il5ncp3glik4"; + sha256 = "0q2cw168r53r50zghkdqcxba2cybn44axbdkwacvkm7ag2z0j2l8"; }; buildInputs = [ diff --git a/pkgs/applications/blockchains/jormungandr/default.nix b/pkgs/applications/blockchains/jormungandr/default.nix deleted file mode 100644 index 0898e469a6f..00000000000 --- a/pkgs/applications/blockchains/jormungandr/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ stdenv -, lib -, fetchgit -, rustPlatform -, openssl -, pkgconfig -, protobuf -, darwin -}: - -rustPlatform.buildRustPackage rec { - pname = "jormungandr"; - version = "0.7.0-rc4"; - - src = fetchgit { - url = "https://github.com/input-output-hk/${pname}"; - rev = "v${version}"; - sha256 = "1cjdapy0r2bikqck64cl09vzs307wcfi628hfmpczrg33i81pr3g"; - fetchSubmodules = true; - }; - - cargoSha256 = "0546ahgwcczaxda1hc1r20skzi93s40isq2ys40y9165sgdydn4i"; - - nativeBuildInputs = [ pkgconfig protobuf ]; - buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ]; - - patchPhase = '' - sed -i "s~SCRIPTPATH=.*~SCRIPTPATH=$out/templates/~g" scripts/bootstrap - ''; - - installPhase = '' - install -d $out/bin $out/templates - install -m755 target/*/release/jormungandr $out/bin/ - install -m755 target/*/release/jcli $out/bin/ - install -m755 target/*/release/jormungandr-scenario-tests $out/bin/ - install -m755 scripts/send-transaction $out/templates - install -m755 scripts/jcli-helpers $out/bin/ - install -m755 scripts/bootstrap $out/bin/jormungandr-bootstrap - install -m644 scripts/faucet-send-money.shtempl $out/templates/ - install -m644 scripts/create-account-and-delegate.shtempl $out/templates/ - install -m644 scripts/faucet-send-certificate.shtempl $out/templates/ - ''; - - PROTOC = "${protobuf}/bin/protoc"; - - # Disabling integration tests - doCheck = false; - - meta = with stdenv.lib; { - description = "An aspiring blockchain node"; - homepage = "https://input-output-hk.github.io/jormungandr/"; - license = licenses.mit; - maintainers = [ maintainers.mmahut ]; - platforms = platforms.all; - }; -} diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 1d1c47bc14f..ca5a6e91a59 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -8,14 +8,14 @@ let inherit (gnome2) GConf gnome_vfs; }; stableVersion = { - version = "3.5.1.0"; # "Android Studio 3.5.1" - build = "191.5900203"; - sha256Hash = "0afxlif8pkrl6m1lhiqri1qv4vf5mfm1yg6qk5rad0442hm3kz4l"; + version = "3.5.2.0"; # "Android Studio 3.5.2" + build = "191.5977832"; + sha256Hash = "0kcd6kd5rn4b76damkfddin18d1r0dck05piv8mq1ns7x1n4hf7q"; }; betaVersion = { - version = "3.6.0.13"; # "Android Studio 3.6 Beta 1" - build = "192.5916306"; - sha256Hash = "0kvz3mgpfb3wqr1pw9847d5syswlzls3b4nilzgk6w127k2zmkfy"; + version = "3.6.0.14"; # "Android Studio 3.6 Beta 2" + build = "192.5947919"; + sha256Hash = "09l7mdjkzwnkkcgxp0x66bzm125ignrfssy7n141wvs2rd66i2fs"; }; latestVersion = { # canary & dev version = "4.0.0.1"; # "Android Studio 4.0 Canary 1" diff --git a/pkgs/applications/editors/emacs-modes/org-generated.nix b/pkgs/applications/editors/emacs-modes/org-generated.nix index c1fad2dc865..f1833225013 100644 --- a/pkgs/applications/editors/emacs-modes/org-generated.nix +++ b/pkgs/applications/editors/emacs-modes/org-generated.nix @@ -4,10 +4,10 @@ elpaBuild { pname = "org"; ename = "org"; - version = "20190527"; + version = "20190904"; src = fetchurl { - url = "http://orgmode.org/elpa/org-20190527.tar"; - sha256 = "1fc2nyylzpikjikyb24xq2mcilridcahmjwmg0s426dqrgqpm9ij"; + url = "http://orgmode.org/elpa/org-20190904.tar"; + sha256 = "0ah5zgbxp4j3mfgriw9liamy73npp9zbkq0zrg6cfhf8l3xwbnxn"; }; packageRequires = []; meta = { @@ -19,10 +19,10 @@ elpaBuild { pname = "org-plus-contrib"; ename = "org-plus-contrib"; - version = "20190527"; + version = "20190904"; src = fetchurl { - url = "http://orgmode.org/elpa/org-plus-contrib-20190527.tar"; - sha256 = "16kf47ij25fijf6pbfxzq9xzildj1asdzhnkf5zv5pn4312pvgnq"; + url = "http://orgmode.org/elpa/org-plus-contrib-20190904.tar"; + sha256 = "08s3fk3jim0y2v00l6ah8y08ba8wbcf29z6fxqzyaxj58a5sq81a"; }; packageRequires = []; meta = { diff --git a/pkgs/applications/editors/quilter/default.nix b/pkgs/applications/editors/quilter/default.nix index 41a87de2eff..d9c3bd0825d 100644 --- a/pkgs/applications/editors/quilter/default.nix +++ b/pkgs/applications/editors/quilter/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "quilter"; - version = "2.0.0"; + version = "2.0.3"; src = fetchFromGitHub { owner = "lainsce"; repo = pname; rev = version; - sha256 = "1jmgnmpalnl3261wifk0mqa9viag6yvlrycgzqalmnrm1b20pyg4"; + sha256 = "13l8z3bchha4ax14s48pcqdxh8gnj4mlvv06lk9dwk9fplc93821"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix index 20cbd6fc5cf..1497fe19991 100644 --- a/pkgs/applications/graphics/avocode/default.nix +++ b/pkgs/applications/graphics/avocode/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "avocode"; - version = "3.9.3"; + version = "3.9.6"; src = fetchurl { url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip"; - sha256 = "1ki2fpn70p1rzf52q8511a90n7y7dqi86fs2a48qhass1abxlpqx"; + sha256 = "0jnl461dg2s5panrw12707bv34g6wxc1pxc90awnja13yq0z6bfc"; }; libPath = stdenv.lib.makeLibraryPath (with xorg; [ diff --git a/pkgs/applications/graphics/drawpile/default.nix b/pkgs/applications/graphics/drawpile/default.nix index 46bfe64dd03..5744aeb462e 100644 --- a/pkgs/applications/graphics/drawpile/default.nix +++ b/pkgs/applications/graphics/drawpile/default.nix @@ -60,11 +60,11 @@ let in mkDerivation rec { pname = "drawpile"; - version = "2.1.11"; + version = "2.1.12"; src = fetchurl { url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz"; - sha256 = "00r5vzracvjk369rri2jxzgfaa1ll4qj5gdmzgflvidz8420bcvm"; + sha256 = "0jvy21xmlidyfkk1p47rgyf4c1ksizcpm8s17n8mwdbnjrf6m55n"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix index ee7586709dc..eb087c42ce0 100644 --- a/pkgs/applications/graphics/freecad/default.nix +++ b/pkgs/applications/graphics/freecad/default.nix @@ -1,4 +1,4 @@ -{ stdenv, mkDerivation, fetchurl, fetchpatch, cmake, ninja, coin3d, xercesc, ode +{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d, xercesc, ode , eigen, qtbase, qttools, qtwebkit, opencascade-occt, gts, hdf5, vtk, medfile , zlib, python3Packages, swig, gfortran, libXmu, soqt, libf2c, libGLU , makeWrapper, pkgconfig, mpi ? null }: @@ -9,11 +9,13 @@ let pythonPackages = python3Packages; in mkDerivation rec { pname = "freecad"; - version = "0.18.3"; + version = "0.18.4"; - src = fetchurl { - url = "https://github.com/FreeCAD/FreeCAD/archive/${version}.tar.gz"; - sha256 = "07j7azgnicmd8cqnyskp15y44ykgj5qqz5y3w1jdynrv3yrvk1kz"; + src = fetchFromGitHub { + owner = "FreeCAD"; + repo = "FreeCAD"; + rev = version; + sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s"; }; nativeBuildInputs = [ cmake ninja pkgconfig pythonPackages.pyside2-tools ]; diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix index e3994b1b412..e53deb99b5b 100644 --- a/pkgs/applications/graphics/gimp/default.nix +++ b/pkgs/applications/graphics/gimp/default.nix @@ -1,31 +1,118 @@ -{ stdenv, fetchurl, substituteAll, pkgconfig, intltool, babl, gegl, gtk2, glib, gdk-pixbuf, isocodes -, pango, cairo, freetype, fontconfig, lcms, libpng, libjpeg, poppler, poppler_data, libtiff -, libmng, librsvg, libwmf, zlib, libzip, ghostscript, aalib, shared-mime-info -, python2Packages, libexif, gettext, xorg, glib-networking, libmypaint, gexiv2 -, harfbuzz, mypaint-brushes, libwebp, libheif, libgudev, openexr -, AppKit, Cocoa, gtk-mac-integration-gtk2 }: +{ stdenv +, lib +, fetchurl +, substituteAll +, pkgconfig +, intltool +, babl +, gegl +, gtk2 +, glib +, gdk-pixbuf +, isocodes +, pango +, cairo +, freetype +, fontconfig +, lcms +, libpng +, libjpeg +, poppler +, poppler_data +, libtiff +, libmng +, librsvg +, libwmf +, zlib +, libzip +, ghostscript +, aalib +, shared-mime-info +, python2Packages +, libexif +, gettext +, xorg +, glib-networking +, libmypaint +, gexiv2 +, harfbuzz +, mypaint-brushes +, libwebp +, libheif +, libgudev +, openexr +, AppKit +, Cocoa +, gtk-mac-integration-gtk2 +}: let inherit (python2Packages) pygtk wrapPython python; in stdenv.mkDerivation rec { pname = "gimp"; - version = "2.10.12"; + version = "2.10.14"; src = fetchurl { - url = "http://download.gimp.org/pub/gimp/v${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; - sha256 = "0wdcr8d2ink4swn5r4v13bsiya6s3xm4ya97sdbhs4l40y7bb03x"; + url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; + sha256 = "0m6wdnfvsxyhimdd4v3351g4r1fklllnbipbwcfym3h7q88hz6yz"; }; - nativeBuildInputs = [ pkgconfig intltool gettext wrapPython ]; - propagatedBuildInputs = [ gegl ]; # needed by gimp-2.0.pc + nativeBuildInputs = [ + pkgconfig + intltool + gettext + wrapPython + ]; + buildInputs = [ - babl gegl gtk2 glib gdk-pixbuf pango cairo gexiv2 harfbuzz isocodes - freetype fontconfig lcms libpng libjpeg poppler poppler_data libtiff openexr - libmng librsvg libwmf zlib libzip ghostscript aalib shared-mime-info libwebp libheif - python pygtk libexif xorg.libXpm glib-networking libmypaint mypaint-brushes - ] ++ stdenv.lib.optionals stdenv.isDarwin [ - AppKit Cocoa gtk-mac-integration-gtk2 - ] ++ stdenv.lib.optionals stdenv.isLinux [ libgudev ]; + babl + gegl + gtk2 + glib + gdk-pixbuf + pango + cairo + gexiv2 + harfbuzz + isocodes + freetype + fontconfig + lcms + libpng + libjpeg + poppler + poppler_data + libtiff + openexr + libmng + librsvg + libwmf + zlib + libzip + ghostscript + aalib + shared-mime-info + libwebp + libheif + python + pygtk + libexif + xorg.libXpm + glib-networking + libmypaint + mypaint-brushes + ] ++ lib.optionals stdenv.isDarwin [ + AppKit + Cocoa + gtk-mac-integration-gtk2 + ] ++ lib.optionals stdenv.isLinux [ + libgudev + ]; + + # needed by gimp-2.0.pc + propagatedBuildInputs = [ + gegl + ]; pythonPath = [ pygtk ]; @@ -48,7 +135,7 @@ in stdenv.mkDerivation rec { postFixup = '' wrapPythonProgramsIn $out/lib/gimp/${passthru.majorVersion}/plug-ins/ - wrapProgram $out/bin/gimp-${stdenv.lib.versions.majorMinor version} \ + wrapProgram $out/bin/gimp-${lib.versions.majorMinor version} \ --prefix PYTHONPATH : "$PYTHONPATH" \ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" ''; @@ -56,9 +143,9 @@ in stdenv.mkDerivation rec { passthru = rec { # The declarations for `gimp-with-plugins` wrapper, # used for determining plug-in installation paths - majorVersion = "${stdenv.lib.versions.major version}.0"; + majorVersion = "${lib.versions.major version}.0"; targetPluginDir = "lib/gimp/${majorVersion}/plug-ins"; - targetScriptDir = "lib/gimp/${majorVersion}/scripts"; + targetScriptDir = "share/gimp/${majorVersion}/scripts"; # probably its a good idea to use the same gtk in plugins ? gtk = gtk2; @@ -76,9 +163,9 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; - meta = with stdenv.lib; { + meta = with lib; { description = "The GNU Image Manipulation Program"; - homepage = https://www.gimp.org/; + homepage = "https://www.gimp.org/"; maintainers = with maintainers; [ jtojnar ]; license = licenses.gpl3Plus; platforms = platforms.unix; diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix index 2c520f21f84..29c1445b9ce 100644 --- a/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/pkgs/applications/graphics/gimp/plugins/default.nix @@ -8,31 +8,33 @@ let inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub; inherit (gimp) targetPluginDir targetScriptDir; - pluginDerivation = a: stdenv.mkDerivation ({ + pluginDerivation = a: let + name = a.name or "${a.pname}-${a.version}"; + in stdenv.mkDerivation ({ prePhases = "extraLib"; extraLib = '' installScripts(){ - mkdir -p $out/${targetScriptDir}; - for p in "$@"; do cp "$p" $out/${targetScriptDir}; done + mkdir -p $out/${targetScriptDir}/${name}; + for p in "$@"; do cp "$p" -r $out/${targetScriptDir}/${name}; done } installPlugins(){ - mkdir -p $out/${targetPluginDir}; - for p in "$@"; do cp "$p" $out/${targetPluginDir}; done + mkdir -p $out/${targetPluginDir}/${name}; + for p in "$@"; do cp "$p" -r $out/${targetPluginDir}/${name}; done } ''; } // a // { - name = "gimp-plugin-${a.name or "${a.pname}-${a.version}"}"; + name = "gimp-plugin-${name}"; buildInputs = [ gimp gimp.gtk glib ] ++ (a.buildInputs or []); nativeBuildInputs = [ pkgconfig intltool ] ++ (a.nativeBuildInputs or []); } ); - scriptDerivation = {name, src} : pluginDerivation { - inherit name; phases = "extraLib installPhase"; + scriptDerivation = {src, ...}@attrs : pluginDerivation ({ + phases = [ "extraLib" "installPhase" ]; installPhase = "installScripts ${src}"; - }; + } // attrs); in @@ -46,6 +48,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { url = https://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/gimp-gap-2.6.0.tar.bz2; sha256 = "1jic7ixcmsn4kx2cn32nc5087rk6g8xsrz022xy11yfmgvhzb0ql"; }; + NIX_LDFLAGS = [ "-lm" ]; patchPhase = '' sed -e 's,^\(GIMP_PLUGIN_DIR=\).*,\1'"$out/${gimp.name}-plugins", \ -e 's,^\(GIMP_DATA_DIR=\).*,\1'"$out/share/${gimp.name}", -i configure @@ -131,6 +134,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { Filters/Enhance/Wavelet sharpen */ name = "wavelet-sharpen-0.1.2"; + NIX_LDFLAGS = [ "-lm" ]; src = fetchurl { url = http://registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz; sha256 = "0vql1k67i21g5ivaa1jh56rg427m0icrkpryrhg75nscpirfxxqw"; @@ -195,6 +199,7 @@ stdenv.lib.makeScope pkgs.newScope (self: with self; { url = http://tir.astro.utoledo.edu/jdsmith/code/eb/exposure-blend.scm; sha256 = "1b6c9wzpklqras4wwsyw3y3jp6fjmhnnskqiwm5sabs8djknfxla"; }; + meta.broken = true; }; lightning = scriptDerivation { diff --git a/pkgs/applications/graphics/gimp/wrapper.nix b/pkgs/applications/graphics/gimp/wrapper.nix index d58dc375cb9..841728d3a29 100644 --- a/pkgs/applications/graphics/gimp/wrapper.nix +++ b/pkgs/applications/graphics/gimp/wrapper.nix @@ -17,6 +17,7 @@ in symlinkJoin { for each in gimp-${versionBranch} gimp-console-${versionBranch}; do wrapProgram $out/bin/$each \ --set GIMP2_PLUGINDIR "$out/lib/gimp/2.0" \ + --set GIMP2_DATADIR "$out/share/gimp/2.0" \ --prefix GTK_PATH : "${gnome3.gnome-themes-extra}/lib/gtk-2.0" \ ${toString extraArgs} done diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index ed1f61b98d3..e3fa897aec6 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, pkgconfig, perlPackages, libXft , libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm2 , glibmm, libsigcxx, lcms, boost, gettext, makeWrapper -, gsl, python2, poppler, imagemagick, libwpg, librevenge +, gsl, gtkspell2, cairo, python2, poppler, imagemagick, libwpg, librevenge , libvisio, libcdr, libexif, potrace, cmake , librsvg, wrapGAppsHook }: @@ -52,7 +52,8 @@ stdenv.mkDerivation rec { librsvg # for loading icons python2Env perlPackages.perl - ]; + ] ++ stdenv.lib.optional (!stdenv.isDarwin) gtkspell2 + ++ stdenv.lib.optional stdenv.isDarwin cairo; enableParallelBuilding = true; @@ -62,9 +63,6 @@ stdenv.mkDerivation rec { install_name_tool -change $out/lib/libinkscape_base.dylib $out/lib/inkscape/libinkscape_base.dylib $out/bin/inkview ''; - # 0.92.3 complains about an invalid conversion from const char * to char * - NIX_CFLAGS_COMPILE = " -fpermissive "; - meta = with stdenv.lib; { license = "GPL"; homepage = https://www.inkscape.org; diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index b2c54105946..22ae573353e 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -47,7 +47,7 @@ mkDerivation rec { poppler_utils libpng imagemagick libjpeg fontconfig podofo qtbase chmlib icu sqlite libusb1 libmtp xdg_utils ] ++ (with pypkgs; [ - apsw cssselect css-parser dateutil dnspython html5-parser lxml netifaces pillow + apsw cssselect css-parser dateutil dnspython html5-parser lxml markdown netifaces pillow python pyqt5_with_qtwebkit sip regex msgpack beautifulsoup4 html2text # the following are distributed with calibre, but we use upstream instead diff --git a/pkgs/applications/misc/cura/lulzbot/curaengine.nix b/pkgs/applications/misc/cura/lulzbot/curaengine.nix index 90f5f307d85..aad9b9bee89 100644 --- a/pkgs/applications/misc/cura/lulzbot/curaengine.nix +++ b/pkgs/applications/misc/cura/lulzbot/curaengine.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "curaengine-lulzBot"; - version = "3.6.18"; + version = "3.6.21"; src = fetchgit { url = https://code.alephobjects.com/source/curaengine-lulzbot.git; diff --git a/pkgs/applications/misc/cura/lulzbot/default.nix b/pkgs/applications/misc/cura/lulzbot/default.nix index 2d32d1895f9..c67fcb74047 100644 --- a/pkgs/applications/misc/cura/lulzbot/default.nix +++ b/pkgs/applications/misc/cura/lulzbot/default.nix @@ -1,45 +1,44 @@ -{ lib, callPackage, fetchgit, cmake, jq, python3Packages, qtbase, qtquickcontrols2 }: +{ lib, mkDerivation, wrapQtAppsHook, callPackage, fetchgit, cmake, jq, python3, qtbase, qtquickcontrols2 }: let # admittedly, we're using (printer firmware) blobs when we could compile them ourselves. - curaBinaryDataVersion = "3.6.18"; # Marlin v2.0.0.144. Keep this accurate wrt. the below. + curaBinaryDataVersion = "3.6.21"; # Marlin v2.0.0.174 for Bio, v2.0.0.144 for others. curaBinaryData = fetchgit { url = https://code.alephobjects.com/diffusion/CBD/cura-binary-data.git; - rev = "cdc046494bbfe1f65bfb34659a257eef9a0100a0"; - sha256 = "0v0s036gxdjiglas2yzw95alv60sw3pq5k1zrrhmw9mxr4irrblb"; + rev = "5c75d0f6c10d8b7a903e2072a48cd1f08059509e"; + sha256 = "1qdsj6rczwzdwzyr7nz7fnypbphckjrnwl8c9dr6izsxyzs465c4"; }; libarcusLulzbot = callPackage ./libarcus.nix { - inherit (python3Packages) buildPythonPackage sip pythonOlder; + inherit (python3.pkgs) buildPythonPackage sip pythonOlder; }; libsavitarLulzbot = callPackage ./libsavitar.nix { - inherit (python3Packages) buildPythonPackage sip pythonOlder; + inherit (python3.pkgs) buildPythonPackage sip pythonOlder; }; - inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; + inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; curaengine = callPackage ./curaengine.nix { inherit libarcusLulzbot; }; uraniumLulzbot = callPackage ./uranium.nix { inherit callPackage libarcusLulzbot; - inherit (python3Packages) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; + inherit (python3.pkgs) buildPythonPackage pyqt5 numpy scipy shapely pythonOlder; }; in -python3Packages.buildPythonApplication rec { - name = "cura-lulzbot-${version}"; - version = "3.6.18"; +mkDerivation rec { + pname = "cura-lulzbot"; + version = "3.6.21"; src = fetchgit { url = https://code.alephobjects.com/source/cura-lulzbot.git; - rev = "71f1ac5a2b9f535175a3858a565930348358a9ca"; - sha256 = "0by06fpxvdgy858lwhsccbmvkdq67j2s1cz8v6jnrnjrsxk7vzka"; + rev = "7faeb18604c83004846a02c60cb240708db0034f"; + sha256 = "10q38s8c8x6xkh1vns4p3iqa5y267vrjh5vq8h55mg1q5001scyq"; }; - format = "other"; # using cmake to build buildInputs = [ qtbase qtquickcontrols2 ]; # numpy-stl temporarily disabled due to https://code.alephobjects.com/T8415 - propagatedBuildInputs = with python3Packages; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl - nativeBuildInputs = [ cmake python3Packages.wrapPython ]; + propagatedBuildInputs = with python3.pkgs; [ pyserial requests zeroconf ] ++ [ libsavitarLulzbot uraniumLulzbot libarcusLulzbot ]; # numpy-stl + nativeBuildInputs = [ cmake python3.pkgs.wrapPython ]; cmakeFlags = [ "-DURANIUM_DIR=${uraniumLulzbot.src}" @@ -68,6 +67,11 @@ python3Packages.buildPythonApplication rec { EOF ''; + postFixup = '' + wrapPythonPrograms + wrapQtApp "$out/bin/cura-lulzbot" + ''; + meta = with lib; { description = "3D printer / slicing GUI built on top of the Uranium framework"; homepage = https://code.alephobjects.com/diffusion/CURA/; diff --git a/pkgs/applications/misc/cura/lulzbot/libarcus.nix b/pkgs/applications/misc/cura/lulzbot/libarcus.nix index 4d32328af8b..733aa27da85 100644 --- a/pkgs/applications/misc/cura/lulzbot/libarcus.nix +++ b/pkgs/applications/misc/cura/lulzbot/libarcus.nix @@ -2,13 +2,13 @@ buildPythonPackage { pname = "libarcus"; - version = "3.6.18"; + version = "3.6.21"; format = "other"; src = fetchgit { url = https://code.alephobjects.com/source/arcus.git; - rev = "c795c0644591703ce04e1fd799fc97b1539031aa"; - sha256 = "1yap9wbqxbjx3kqyqcsldny4mlcm33ywiwpdjlfgs0wjahfg4ip0"; + rev = "aeda02d7727f45b657afb72cef203283fbf09325"; + sha256 = "1ak0d4k745sx7paic27was3s4987z9h3czscjs21hxbi6qy83g99"; }; disabled = pythonOlder "3.4.0"; diff --git a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix index f8ffbf041bd..e6c277959e0 100644 --- a/pkgs/applications/misc/cura/lulzbot/libsavitar.nix +++ b/pkgs/applications/misc/cura/lulzbot/libsavitar.nix @@ -3,13 +3,13 @@ buildPythonPackage { pname = "libsavitar-lulzbot"; name = "libsavitar-lulzbot"; - version = "3.6.18"; + version = "3.6.21"; format = "other"; src = fetchgit { url = https://code.alephobjects.com/source/savitar.git; - rev = "988a26d35b2a1d042f8c38938ccda77ab146af7d"; - sha256 = "146agw3a92azkgs5ahmn2rrck4an78m2r3pcss6ihmb60lx165k7"; + rev = "ee8ada42c55f54727ce4d275c294ba426d3d8234"; + sha256 = "1wm5ii3cmni8dk3c65kw4wglpypkdsfpgd480d3hc1r5bqpq0d6j"; }; postPatch = '' diff --git a/pkgs/applications/misc/cura/lulzbot/uranium-qt512-support.patch b/pkgs/applications/misc/cura/lulzbot/uranium-qt512-support.patch deleted file mode 100644 index 2c666a98c8f..00000000000 --- a/pkgs/applications/misc/cura/lulzbot/uranium-qt512-support.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/UM/Qt/Bindings/i18nCatalogProxy.py b/UM/Qt/Bindings/i18nCatalogProxy.py -index 7e2bb16c..cec70dd6 100644 ---- a/UM/Qt/Bindings/i18nCatalogProxy.py -+++ b/UM/Qt/Bindings/i18nCatalogProxy.py -@@ -86,9 +86,9 @@ class i18nCatalogProxy(QObject): # [CodeStyle: Ultimaker code style requires cla - # \todo Move this to a more generic place so more things can use it. - def _wrapFunction(self, engine, this_object, function): - # JavaScript code that wraps the Python method call in a closure -- wrap_js = """function(this_object) {{ -+ wrap_js = """(function(this_object) {{ - return function({args}) {{ return this_object.{function}({args}) }} -- }}""" -+ }})""" - - # Get the function name and argument list. - function_name = function.__name__ diff --git a/pkgs/applications/misc/cura/lulzbot/uranium.nix b/pkgs/applications/misc/cura/lulzbot/uranium.nix index 1ad755cdfbd..acffc741d57 100644 --- a/pkgs/applications/misc/cura/lulzbot/uranium.nix +++ b/pkgs/applications/misc/cura/lulzbot/uranium.nix @@ -2,15 +2,15 @@ , pyqt5, numpy, scipy, shapely, libarcusLulzbot, doxygen, gettext, pythonOlder }: buildPythonPackage { - version = "3.6.18"; + version = "3.6.21"; pname = "uranium"; name = "uraniumLulzbot"; format = "other"; src = fetchgit { url = https://code.alephobjects.com/diffusion/U/uranium.git; - rev = "33df88a7414375ac924ac761113baa48d2ced2b4"; - sha256 = "109cbv7y105crbrzfp70lmcr9n20ap5c97i5qd46fmxbx86yj7f8"; + rev = "54d911edd2551c5875c554928896122835a0dd6c"; + sha256 = "04bym3vwikaxw8ab0mymv9sc9n8i7yw5kfsv99ic811g9lzz3j1i"; }; disabled = pythonOlder "3.5.0"; @@ -19,9 +19,6 @@ buildPythonPackage { propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcusLulzbot ]; nativeBuildInputs = [ cmake doxygen ]; - # Qt 5.12+ support; see https://code.alephobjects.com/rU70b73ba0a270799b9eacf78e400aa8b8ab3fb2ee - patches = [ ./uranium-qt512-support.patch ]; - postPatch = '' sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt sed -i \ diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index 191c6a31972..1549ab00a4f 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "6.2.3"; + version = "6.2.4"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "1v4sllzvaz4fj8s14ddzw11wczlghbdppv8fl5jg6xglg687sgaj"; + sha256 = "1k3aan290kfy2b53gl8r4yxvb8jas6sms1r052m3jld3i8frqgva"; }; installPhase = '' diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index ae83802a7b4..5d99cbaa988 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -3,11 +3,11 @@ librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib, ghostscript, makeWra stdenv.mkDerivation rec { pname = "eaglemode"; - version = "0.94.1"; + version = "0.94.2"; src = fetchurl { url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2"; - sha256 = "0mpnk0fzy02jxbafipkdkj48m6k38h42j599gw4sdnag7ymlms89"; + sha256 = "10zxih7gmyhq0az1mnsw2x563l4bbwcns794s4png8rf4d6hjszm"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix b/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix new file mode 100644 index 00000000000..e2b26eaee90 --- /dev/null +++ b/pkgs/applications/misc/keepass-plugins/otpkeyprov/default.nix @@ -0,0 +1,32 @@ +{ stdenv, buildEnv, fetchzip, mono }: + +let + version = "2.6"; + drv = stdenv.mkDerivation { + pname = "otpkeyprov"; + inherit version; + + src = fetchzip { + url = "https://keepass.info/extensions/v2/otpkeyprov/OtpKeyProv-${version}.zip"; + sha256 = "1p60k55v2sxnv1varmp0dgbsi2rhjg9kj19cf54mkc87nss5h1ki"; + stripRoot = false; + }; + + meta = { + description = "OtpKeyProv is a key provider based on one-time passwords"; + homepage = "https://keepass.info/plugins.html#otpkeyprov"; + platforms = with stdenv.lib.platforms; linux; + license = stdenv.lib.licenses.gpl2; + maintainers = [ stdenv.lib.maintainers.ente ]; + }; + + pluginFilename = "OtpKeyProv.plgx"; + + installPhase = '' + mkdir -p $out/lib/dotnet/keepass/ + cp $pluginFilename $out/lib/dotnet/keepass/$pluginFilename + ''; + }; +in + # Mono is required to compile plugin at runtime, after loading. + buildEnv { name = drv.name; paths = [ mono drv ]; } diff --git a/pkgs/applications/misc/netsurf/buildsystem/default.nix b/pkgs/applications/misc/netsurf/buildsystem/default.nix index 36d5a70735a..0560b1d25b3 100644 --- a/pkgs/applications/misc/netsurf/buildsystem/default.nix +++ b/pkgs/applications/misc/netsurf/buildsystem/default.nix @@ -19,6 +19,6 @@ stdenv.mkDerivation rec { description = "Build system for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/netsurf/libnsgif/default.nix b/pkgs/applications/misc/netsurf/libnsgif/default.nix index 4de882243fe..e826dee0d25 100644 --- a/pkgs/applications/misc/netsurf/libnsgif/default.nix +++ b/pkgs/applications/misc/netsurf/libnsgif/default.nix @@ -26,6 +26,6 @@ stdenv.mkDerivation rec { description = "GIF Decoder for netsurf browser"; license = licenses.gpl2; maintainers = [ maintainers.vrthra ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix index c0bacc2c50d..29a04627bef 100644 --- a/pkgs/applications/misc/octoprint/default.nix +++ b/pkgs/applications/misc/octoprint/default.nix @@ -56,17 +56,18 @@ let "websocket-client" "wrapt" "sentry-sdk" + "werkzeug" # 0.16 just deprecates some stuff ]; in py.pkgs.buildPythonApplication rec { pname = "OctoPrint"; - version = "1.3.11"; + version = "1.3.12"; src = fetchFromGitHub { owner = "foosel"; repo = "OctoPrint"; rev = version; - sha256 = "1102ki1819wsmkfg4riz4i0hjlr3w6nsvk8wrzqq0lc0s5ycf4jx"; + sha256 = "1lmqssgwjyhknjf3x58g7cr0fqz7fs5a3rl07r69wfpch63ranyd"; }; propagatedBuildInputs = with py.pkgs; [ @@ -75,7 +76,7 @@ in py.pkgs.buildPythonApplication rec { psutil pyserial flask_login netaddr markdown sockjs-tornado pylru pyyaml sarge feedparser netifaces click websocket_client scandir chainmap future futures wrapt monotonic emoji - frozendict cachelib sentry-sdk typing + frozendict cachelib sentry-sdk typing filetype ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ]; checkInputs = with py.pkgs; [ nose mock ddt ]; @@ -96,6 +97,6 @@ in py.pkgs.buildPythonApplication rec { homepage = https://octoprint.org/; description = "The snappy web interface for your 3D printer"; license = licenses.agpl3; - maintainers = with maintainers; [ abbradar ]; + maintainers = with maintainers; [ abbradar gebner ]; }; } diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix index d8179e1b402..ce800e8f18b 100644 --- a/pkgs/applications/misc/octoprint/plugins.nix +++ b/pkgs/applications/misc/octoprint/plugins.nix @@ -47,13 +47,13 @@ let mqtt = buildPlugin rec { pname = "MQTT"; - version = "0.8.0"; + version = "0.8.6"; src = fetchFromGitHub { owner = "OctoPrint"; repo = "OctoPrint-MQTT"; rev = version; - sha256 = "1318pgwy39gkdqgll3q5lwm7avslgdwyiwb5v8m23cgyh5w8cjq7"; + sha256 = "0y1jnfplcy8mh3szrfbbvngl02j49cbdizglrfsry4fvqg50zjxd"; }; propagatedBuildInputs = with python2Packages; [ paho-mqtt ]; @@ -87,13 +87,13 @@ let stlviewer = buildPlugin rec { pname = "STLViewer"; - version = "0.4.1"; + version = "0.4.2"; src = fetchFromGitHub { owner = "jneilliii"; repo = "OctoPrint-STLViewer"; - rev = "v${version}"; - sha256 = "1f64s37g2d79g76v0vjnjrc2jp2gwrsnfgx7w3n0hkf1lz1pjkm0"; + rev = version; + sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b"; }; meta = with stdenv.lib; { @@ -168,13 +168,13 @@ let printtimegenius = buildPlugin rec { pname = "PrintTimeGenius"; - version = "1.3.1"; + version = "2.0.2"; src = fetchFromGitHub { owner = "eyal0"; repo = "OctoPrint-${pname}"; rev = version; - sha256 = "0ijv1nxmikv06a00hqqkqri6wnydqh6lwcx07pmvw6jy706jhy28"; + sha256 = "1w4jm42434x87sbih45brkb9krik851vxkz153w3w5c8p74kgg6f"; }; preConfigure = '' diff --git a/pkgs/applications/misc/pytrainer/default.nix b/pkgs/applications/misc/pytrainer/default.nix index 7c560cacda1..0375b99af48 100644 --- a/pkgs/applications/misc/pytrainer/default.nix +++ b/pkgs/applications/misc/pytrainer/default.nix @@ -26,13 +26,13 @@ in python3.pkgs.buildPythonApplication rec { pname = "pytrainer"; - version = "2.0.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "pytrainer"; repo = "pytrainer"; rev = "v${version}"; - sha256 = "1w5z1xwb2g6j2izm89b7lv9n92r1zhsr8bglxcn7jc5gwbvwysvd"; + sha256 = "0m2sy3f5pyc4wv1ns31r7vlafqkzp0a2jasaskwrkl6273agbbk9"; }; patches = [ diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix index 87125eb1b36..be8e2105401 100644 --- a/pkgs/applications/misc/simplenote/default.nix +++ b/pkgs/applications/misc/simplenote/default.nix @@ -6,10 +6,10 @@ let pname = "simplenote"; - version = "1.8.0"; + version = "1.9.1"; sha256 = { - x86_64-linux = "066gr1awdj5nwdr1z57mmvx7dd1z19g0wzsgbnrrb89bqfj67ykl"; + x86_64-linux = "1zqrjh1xfdpkpj1fsri9r4qkazh9j89pbj8vjr474b39v56v693j"; }.${system}; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/veracrypt/default.nix b/pkgs/applications/misc/veracrypt/default.nix index 9639cee2d8c..fe1de349cff 100644 --- a/pkgs/applications/misc/veracrypt/default.nix +++ b/pkgs/applications/misc/veracrypt/default.nix @@ -1,21 +1,36 @@ -{ stdenv, fetchurl, pkgconfig, makeself, yasm, fuse, unzip, wxGTK, lvm2 }: +{ stdenv, fetchurl, fetchpatch, pkgconfig, makeself, yasm, fuse, wxGTK, lvm2 }: with stdenv.lib; stdenv.mkDerivation rec { pname = "veracrypt"; - version = "1.23"; - minorVersion = "-Hotfix-2"; + version = "1.24-Hotfix1"; src = fetchurl { - url = "https://launchpad.net/${pname}/trunk/${version}/+download/VeraCrypt_${version}${minorVersion}_Source.zip"; - sha256 = "229de81b2478cfa5fa73e74e60798a298cd616e9852b9f47b484c80bc2a2c259"; + url = "https://launchpad.net/${pname}/trunk/${toLower version}/+download/VeraCrypt_${version}_Source.tar.bz2"; + sha256 = "8b40ece805b216843d7a71b1a30069c4057931341b030bf65caace59263c5c8c"; }; + + patches = [ + # https://github.com/veracrypt/VeraCrypt/issues/529 - fix build on non-x86 + (fetchpatch { + url = "https://github.com/veracrypt/VeraCrypt/commit/afe6b2f45b15393026a1159e5f3d165ac7d0b94a.patch"; + sha256 = "1xm9cl6zinlr0vah5xr9bvh0y9gw4331zl7d2n5xvqrcdxw3ww1y"; + stripLen = 1; + }) + # https://github.com/veracrypt/VeraCrypt/issues/529 - fix build on non-x86 + (fetchpatch { + url = "https://github.com/veracrypt/VeraCrypt/commit/3fa636d477119fff6e372074568edb42d038f508.patch"; + sha256 = "0qsccilip0ksnlzxina38a052gb533r4s422lxhrj3wv9zgpp7l3"; + stripLen = 1; + }) + ]; + sourceRoot = "src"; nativeBuildInputs = [ makeself pkgconfig yasm ]; - buildInputs = [ fuse lvm2 unzip wxGTK ]; + buildInputs = [ fuse lvm2 wxGTK ]; enableParallelBuilding = true; diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix index 50b7153533d..d70490f8218 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix @@ -1,935 +1,965 @@ { - version = "69.0b16"; + version = "71.0b6"; sources = [ - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ach/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ach/firefox-71.0b6.tar.bz2"; locale = "ach"; arch = "linux-x86_64"; - sha512 = "5fe26093cdffc6c3afde7438bbcde7fb24867e70b74c18ef287d5897e4470f2671fe30053bf7d9077d9494e9cc97a2dabb9938d4c99fcaf7981d8df7cea281fe"; + sha512 = "0f2aab504455ab3e18b220d3a284d955b0342ef864990d8b100e98fde00cbb9d660ecd9af1a9601d4b93bfd425599a5e111a2566d057932e9b40627b34318857"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/af/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/af/firefox-71.0b6.tar.bz2"; locale = "af"; arch = "linux-x86_64"; - sha512 = "2a1ea5564ac0bb16dc716f29f4f3a63f8029ba314e353ad74bb437a70ade138b29f58df2fb8320efbf5c001232253aa4a16f48673bc4c6e5906ce3c4c912026a"; + sha512 = "64ed124236183b2fbf9c31b5130de0caae8d314afbc09fdeab2b3a23217b2af4aaa6c8fdd46aab27402d4079639080af1e8ee68ad3b074f20748e213e6a9f92b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/an/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/an/firefox-71.0b6.tar.bz2"; locale = "an"; arch = "linux-x86_64"; - sha512 = "5fae2f3b33d7776f70a4244c6be02a47e81000a9de91fde1a3d73be2675e1ca67a2219f8aeacb70759cc779b985e4f0698c625c20f895e75e28ed9c764c8c3e4"; + sha512 = "ab46ba25db59894be85e8a78074a811d12cc9e233554f79b028bc0ad6cadc452a8b37fbd59c9a15b81b1a0a499050e37b5f75a154c056324f1207c2c1ac1d75a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ar/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ar/firefox-71.0b6.tar.bz2"; locale = "ar"; arch = "linux-x86_64"; - sha512 = "dd8eb0155a3d9489645c03c3240f5ca2c6ee0b0de7cd82e62aad1575e8868f3ec763985c4142078ef8ace86da81887bf7d1f95c2ec22d5bc73086e230898e7a9"; + sha512 = "298682210b8127ab77f509a79b3bc61c3206a1a405a5da44f9697fe7361deb3f936449f32494f3a8e15420b56775cfbd773a77185aa5f07f593aa371d61c74f4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ast/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ast/firefox-71.0b6.tar.bz2"; locale = "ast"; arch = "linux-x86_64"; - sha512 = "960fea994048e4c08389c7701541266e3631c4d70f604146189805f1ad606aab16ef9c2b28eedee82acbe0f42f69c96a90a041ba4cf95fec060b1d6c29a94bc7"; + sha512 = "30221379730f41d32e0738689cf8ebdd8615275c6905a984f186f4a7823f7a84a707ab5ed8ce9448f091750a78373d10df4999a94ca32020e44b0ab81442df29"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/az/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/az/firefox-71.0b6.tar.bz2"; locale = "az"; arch = "linux-x86_64"; - sha512 = "8e7b6bb3fc5c6726115a0a20f61d1cad5e9a4e9e86e462e1ab6a454f5257af22ebf8dcdea3298fc1e9648fe630c36245f4c45ba4093d45e59741ceb882fc501b"; + sha512 = "f948c6bf563012639a6ecaafa8730d0430ec569c193bae617436cbbafd61de197b87116a1ee3e16035048d15bc794b499e9e4f8dbd8522166f20fe8be038d965"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/be/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/be/firefox-71.0b6.tar.bz2"; locale = "be"; arch = "linux-x86_64"; - sha512 = "919a1f9007599ed0b325e0b218b18fc803c535f7eab76068cf4e94fe1ceb4543d090d7f341ba5f4d4de9aaaedc1b19d88ddbcb5c329ed5650d2ebc721f6aa49b"; + sha512 = "9c7db4af9b692896faf7e9ba3c5b1e8360a5ab2e60b6850a901288b4554bfb0e45c738f167a0d96a3af2db4fb150a557eb1e81b375087f4086e4ee5438b219d8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/bg/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/bg/firefox-71.0b6.tar.bz2"; locale = "bg"; arch = "linux-x86_64"; - sha512 = "6746f4d0c2a73f99bc04c3b12bcf54e5eca7262ac6d54835a567a23a07fc91775db9e64d0c5accf045aabd5d4645a753413f934e6eac9dbcefaea30c944aadd8"; + sha512 = "ea01ee47f6febd71a1f77b883bb48c093fbc19e20f277dbe676a351cd35e334ecc81b8ee9510650c38048e11a68365e2815fd0545ffd4d833afec2e3c3e31f73"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/bn/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/bn/firefox-71.0b6.tar.bz2"; locale = "bn"; arch = "linux-x86_64"; - sha512 = "ba88ff34405c92b907cc16e44dbd5d1db0b4bcf0fb75ca650739bf307a6e2270cfd69bba9ead6c260721857738165fbbcd4af44fbe8cb9d7402d97c32eb09532"; + sha512 = "d4143ef97c5f9f20605dcf8b646b0acdde7b9475cf2696be7f3dd6ae5830511319a083f5dc6488a7d83764be7f39f6134fc67d28ac3e334f2a87235958ce3070"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/br/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/br/firefox-71.0b6.tar.bz2"; locale = "br"; arch = "linux-x86_64"; - sha512 = "e7c78c11b3fd36d7c6ab55ac9571a53615a595dd5c5d66cd3dc6fb6d3fb42a1b29dcc86180f2028502f25869c951ad3caedf4590a61fe525616f18d560d6e775"; + sha512 = "04a0d955fc4e74bee803f274e89dea46500bc0c89b3cbbc03b892d30b93c648ee2909a37078b38a4d106338e045cf5698bdfcc6125baacb8d839cda7f178c715"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/bs/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/bs/firefox-71.0b6.tar.bz2"; locale = "bs"; arch = "linux-x86_64"; - sha512 = "36a677f1c449ad58e8750323cffdea3200c3953b9fc6bf920a0439229eb00164d4c1199286d1f0cc47eb31b3fe7acf9e78ebc3f4a3f49a443d1425afe717ab2e"; + sha512 = "f06e2d49206fa5569d3584b71f321c1ca9270cedc5bfb1c4ee8969f00cdd094bfcff400c1dbf67c9d4b45173f7aeabe9a44a393f8c49d30feacd4e4a0e24a47a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ca/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ca-valencia/firefox-71.0b6.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-x86_64"; + sha512 = "13aec7c68757c07e9b1016121ac474d894d580cdd88a05ec6e4a2f34018b483a37aca8bff8b46e7f00439059cb9cc44a9032363c8a157bdc3f06fee3be021309"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ca/firefox-71.0b6.tar.bz2"; locale = "ca"; arch = "linux-x86_64"; - sha512 = "b78937e7ca4c7df19ed1c40a8b459d65176ca908333d7d19f30a377fddf836438cd750f2efeebb235c75c25f4a42a70e919c2c0061b865f7b90d71fe2ea119f1"; + sha512 = "e548c5a7b741c8affd6852a538f0842f3774048f9765c7f25177ebd71c8c7d41530e4236ef11fa03f4d2ae1d8704c19b29c95c7744715ff374dda20a7923f716"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/cak/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/cak/firefox-71.0b6.tar.bz2"; locale = "cak"; arch = "linux-x86_64"; - sha512 = "ac21c01a6528790fd31d56f0c637a0cee8b4cd0938ecd18200c48f8c982ee6a06a36ad779f9cb708d0b8191b7df4480d62dd75cd2a4bd0502cdd862aa8e95a08"; + sha512 = "9e284c5bce5f2b232c4acb84e34d01418edb66cfc0290d5b48e67a412451f5520f845c9a0e70089cd89828ae9cdbf4fcb791fe5de17439372144e1b3133db149"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/cs/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/cs/firefox-71.0b6.tar.bz2"; locale = "cs"; arch = "linux-x86_64"; - sha512 = "09cafbad6acc6db507d5589f4f89f3914cb80c826de9e55d8f02b42c29f6e46d24f49729efd8c67b5b575fc4dd240d8b32f0ed69992ac992b02c8f2639c2b613"; + sha512 = "b4e23db7f7dfceec6fdb0a48d74a376e165ef3efd38f03990d19ab9cab67d51a2a0f3a0b3d18b57f9cc0f26d84454ee6b573c7f5444c2e4e20e9b18ca44dd480"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/cy/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/cy/firefox-71.0b6.tar.bz2"; locale = "cy"; arch = "linux-x86_64"; - sha512 = "18de3618d1b1fd350a8c826e57898f019e9c792e5f97521ab52ee940956e8e49a9191e361e0426412ca27e63c1e502f350c11a68574f2be37b29e43a9a63b25b"; + sha512 = "506cbc0261c90b0b20382dd7f204e826e666915b6624c1490089ebb8e613fcdef368eac4b7de5b2167d406130c3435b0f0367d23667816a562ab0576a2be9458"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/da/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/da/firefox-71.0b6.tar.bz2"; locale = "da"; arch = "linux-x86_64"; - sha512 = "7fd40f49390d1ca844f31eaad74a419a28aab6f74cbad1f040e01ecc5b6691ff516a4d2c41c906e241aab54573580eee3b6b01531468cc3e35c4fa61f7b60931"; + sha512 = "60e25765159560242af62d60a8c8a4f6f607a3f153277b013e70bd5f0abc9132801c122f5ef374e3de8710eaa49f059658fd325a66b076417b5ab34e9d156c2a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/de/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/de/firefox-71.0b6.tar.bz2"; locale = "de"; arch = "linux-x86_64"; - sha512 = "85347a3419e55984769031850ec30f757238801cf8483551ddba35abfd0e2638c75fa358ec09705d28dcc647fa47ad37c4f545522d5f8aa54067fbcc232a47c6"; + sha512 = "a99c8a9604e2a83e6bd085ce5a30f6fac79482ffb6360e23b1678c1531ca14f05394a91401ba57dc37a5006553944a8c96821c9cc58a4a3fd5aff685c51bdc4d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/dsb/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/dsb/firefox-71.0b6.tar.bz2"; locale = "dsb"; arch = "linux-x86_64"; - sha512 = "a8f24207ea3b763a3295c1feb43c22f0e502561224a4d3d342cdd7321bd4e93fca83293834163d9a6160e0fc4c6aedb60b4f72e172e99eb98e6b8c0cfef665e4"; + sha512 = "5dcfa216878aa733afe9fdb0d11c873c753a93cfe3aedbb3b4e5ff62f6578f86c6ac4e3a408012a00dcfad31d7de9dded903c6d5d0d351b108f718cb7c226310"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/el/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/el/firefox-71.0b6.tar.bz2"; locale = "el"; arch = "linux-x86_64"; - sha512 = "ca8a37134a897631e398448683e4805ea9fd10a30629c09f760b6b90b9e8fb6505adf3143031e88b7a189791f487aa0ed852c0a4911b93fdedb34cd0cec7b7b6"; + sha512 = "ac596fdd1bd4ca09bb127f5d964318e0496e4d9c2f060c982a62c8cdf71af5e35f7d96c37ad0543550af4b4741a08b7de10b2206d1ac90f8ff27ed733a346d86"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/en-CA/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/en-CA/firefox-71.0b6.tar.bz2"; locale = "en-CA"; arch = "linux-x86_64"; - sha512 = "b2c154bf92cf4ac6a4021b199e9e8438b59e4aeaa5ca7f72df41bdf64dcbdb196d384775b759b867a717e48e7a31f457cdec2c20e3c4dbd93d3c440ce277d396"; + sha512 = "8dd71d997a6676f6ef28d09a90f67b7858bc313beea4312124a498208b9b8e36ce7306901abe5bad4dcdaa5b1cd23010aa65eb8bb41f5f4ae2e400608dce2cfc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/en-GB/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/en-GB/firefox-71.0b6.tar.bz2"; locale = "en-GB"; arch = "linux-x86_64"; - sha512 = "73c0b07840bf816f093c90b9103a25d2ff00cadcf13341ff228e09bf939c131db3ade9d3be472a4eec3ca5b4131245ea4c788171e6ee42beba7dc1c7881da0b3"; + sha512 = "a442336f7a2dd1865052f06664b7b52ebac33be84c1cfc55b9b6ad3d2e9fd548a5cad65b9733f57ff432a7d0d8a4e034610a2f4ccbde836290d9a2ecc9ca8548"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/en-US/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/en-US/firefox-71.0b6.tar.bz2"; locale = "en-US"; arch = "linux-x86_64"; - sha512 = "c63d7358887ba0d8af897063c5431c2bd404fb9708e6b59d73c14dd8cfa1a2137af72eb01dfe25b9e6d92b84d5b966693cc89f5446ed3410f910e2df3f92b6cc"; + sha512 = "fcf3bdffb8f2742101b8dc215e489ea54778d7e2f05aeec7229bebb532fa972aa56257264a0fdd3d37ec19d427d782f3d0cd45534f977d1b0b6e19399d004f75"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/eo/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/eo/firefox-71.0b6.tar.bz2"; locale = "eo"; arch = "linux-x86_64"; - sha512 = "0e4a373bac78d80e2849c41c93196782ef41a74f91c6319da690916138a78c20c9d26d8c96e5efe67a835185c8df77354b3fed5a62500e791634eb2f15909031"; + sha512 = "228dcd7d4bfde4d99172f895502033271765898fb7221d359c55277de9b04d070e362a64c6327e774bf6ec7a23983765c21c77a1d210d4f238d0846d2f6ebc6b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-AR/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-AR/firefox-71.0b6.tar.bz2"; locale = "es-AR"; arch = "linux-x86_64"; - sha512 = "ff07382bcc926272bc69c10aa7f35eee7806d94a18ddebfa3599451d002afdda739461aad90d8df094f56b9b8840cedef659757245d4fd1a8603ac25d2a3100b"; + sha512 = "bfc15c3bf2a8e8d980410d81ea94b99c92037779ed87fc4bc6a8035970067e98d181ec35d88e576dc08b86485a90a7fdca450a55deebfbeaf651247ea1dfafbd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-CL/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-CL/firefox-71.0b6.tar.bz2"; locale = "es-CL"; arch = "linux-x86_64"; - sha512 = "201f631a6682c9aa13c511a0d6da256e2f207362264f6e1ea060568a9e597216407ace99508ebe820a348859eb72c6df7581276eca5040b3ee2e99e048c67062"; + sha512 = "9638f8cb3fa6fd71dabdc88974e0498d7bedb09448e2544356d990ef641aceb3668214c0d54e7baf65ac196501697ddff216901d00d946962a43f0a09f3c8126"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-ES/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-ES/firefox-71.0b6.tar.bz2"; locale = "es-ES"; arch = "linux-x86_64"; - sha512 = "76573a05de730de4c6bc76dcf98a21764c78baec4eb0ead45adae2658e9173b33c97132d0a2e5c95807a60a22c9ab2e1dce09e5b73ae2dfd905ced82ba105333"; + sha512 = "1b17dce1c7b1d3965a71a7972777af91f8a88e2f5371db888e00d658390bd3aee7de034d0433f90bf93796425a80fba51a5a5e1d235095f9c43775895311952d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/es-MX/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/es-MX/firefox-71.0b6.tar.bz2"; locale = "es-MX"; arch = "linux-x86_64"; - sha512 = "b619f5a2392ffa0b36f48503e94adf9cf1719911258e1752507f274078d12f74257677f3e76493fd080a0be08ca94964dc55129a59e292b1e2573676dc59e5c9"; + sha512 = "4c4491775007dd5d2ef89d4245c8f84e79d4e27251a96b5f538c2e0c540b5097683a6072d94a85620e1f5b13143e1bf1062ce5f691000de3f9c168e44cd3b03a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/et/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/et/firefox-71.0b6.tar.bz2"; locale = "et"; arch = "linux-x86_64"; - sha512 = "951288cf8a5745e433332798b87ceb54e35d408ca9f4e9d9fb288192de430eb45065fe88f0858f1a71e0cbeaf87c85c240a6d350bf8ce2f50c8ae548cff71f90"; + sha512 = "24734e0ab55249a95117c39ea26f7bd173d8d90ff5e69833d6f3c335ef1ee895fa474458b2f6d1d545cca26c295cbacdf74098806a62e6742d03ece28a9fd426"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/eu/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/eu/firefox-71.0b6.tar.bz2"; locale = "eu"; arch = "linux-x86_64"; - sha512 = "78c856affa639c531d70e20b1de6f0eba59b33e403a1d24c3508fab03624b5c90db636d39b0c199f2fd0b5fab10fa3ecb2fced6cc3b1e8a06b9be11e8ec917b1"; + sha512 = "ddeb8b1dcbe414905fba9175ad4c09b981a9f2277d335d851320beace94d55ce2d1e10ae96972c6da28d8008db377fa4470f4fb8f7a1ead8a4c26bd01d2bd0e9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fa/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fa/firefox-71.0b6.tar.bz2"; locale = "fa"; arch = "linux-x86_64"; - sha512 = "a835fa37f804055dc117f694d85ae8b750c82f7ba92976def927f187ee91330a3d0616c0915917d1d0ec3c295f803c0bd2bdc9ecae0230f9a6642e42cab0e066"; + sha512 = "cc6daff1ce0cedde5a9a2c3189039fe59ba01ee20449610a340816dd316d104bc64f6496389aba5f4e843fb70fe9d9b18edc0dee59357d64e916969a3c38853e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ff/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ff/firefox-71.0b6.tar.bz2"; locale = "ff"; arch = "linux-x86_64"; - sha512 = "ed3664cd4418ed5af133e00c30b3a9d23a82bb681c5d965fe00b4e2bf6ce4c777b00c352dca4cfcfcf5a895d7001dcc6de67b4ef0abb3967014c483437f9b1f8"; + sha512 = "ca11dd6f3862c42b1bb76050d347d97f27e6f415c9c5bf9565281c4bd11411b940f1f8ff69940e1201e008ba7ae5de653a64570b4f7175c2264bceeb696bb2e3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fi/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fi/firefox-71.0b6.tar.bz2"; locale = "fi"; arch = "linux-x86_64"; - sha512 = "3edf6cc3dec21a48f914a754718a57cd495ed8bd9b807a9c4aae412a117ad1068abf0daf6cced6da74bd4887fe51746f1bb57dbc5858917ad17d8912cc9c4cb1"; + sha512 = "49110d54b09331a0d91b1e2fe2aa67a80e46b93bec3e449e55ce4b600334ce506344022ca7523b498b444e8bef25b358d18709ce83e6465254c0e27bcd9e8cd6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fr/firefox-71.0b6.tar.bz2"; locale = "fr"; arch = "linux-x86_64"; - sha512 = "9f92a2dbaf834f13f0f0fe2cff0ac433c01b7e8155a381d21324fc1e7224f7d5c0a8374a7e5e43f679232f565958ef946e3cbdacd3e711e34ae97eb27176321d"; + sha512 = "14a3ff081668a5003e4d129256975e0c8eebab78ff96a7d63f6eeca45c9331ba1250df09a8d529cdbc199133a8ff61ed170f91f0f366f12e7f8f0486a563046d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/fy-NL/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/fy-NL/firefox-71.0b6.tar.bz2"; locale = "fy-NL"; arch = "linux-x86_64"; - sha512 = "f98eb4bdb595db2f688c25644dacddb2049fe8f8b21e83f8cd7031cd23587713f1fa53f39a0b444f6ee979901806811c16599224c6a1a7d17cda84b544ee1848"; + sha512 = "4b78417383fe474407f55353f148429047635988c7407a7dafa9aa894e3df9bed9363181b3201a66caf11f20c10ecaf5cf9cf630181bc043ac5f8ba9525bedad"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ga-IE/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ga-IE/firefox-71.0b6.tar.bz2"; locale = "ga-IE"; arch = "linux-x86_64"; - sha512 = "eec73de53bce5c18ff0491d6f4018e3fb39471d3d63c6cf9527cff8f4b6b6e0a7e24e3b7fed58094409efee29df7dc35f2410ea05d5e916efa1d778926ab23f1"; + sha512 = "7bbd19ce0063746b66b5016b00cc3c0b62aad4424c26fcdf895c485217525e4d601c22d417c9faecfa8da6344f8edab28a3e0536b785f2215b8e5f67d4d860b0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gd/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gd/firefox-71.0b6.tar.bz2"; locale = "gd"; arch = "linux-x86_64"; - sha512 = "1d10666f6c563dfa07f708b058fe867b9618974394a5eb4733926429a76bb6ea59e7ecf6a2a89740cf2f04692186bcfcafd2eb6775c5b59421bab0a92a24fe41"; + sha512 = "a3444d8d13038203760ba3e04f6aee6097b5140a1f0faa247dec6916221c1c7cd5f9bca091f84f8a778cf3433a74671c4a9e9a4c114738309873a3bf14b860a6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gl/firefox-71.0b6.tar.bz2"; locale = "gl"; arch = "linux-x86_64"; - sha512 = "b56d98f5a1e558aa73ec385c03b18dc9bc615670dc5a539eaf6c925f4af3915362d2d072f29ae3bde3f9ba266a321d704c6bfcb959d47858a650ffe7fab5767a"; + sha512 = "9d0441b7391aa2a7adcd24946d36ce197b6aa107133f0e83120c8caacb02a5580e2e786a7c36bf03003698d473a39dd3e9d7d57553f601dbe1b45a23bcddf12d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gn/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gn/firefox-71.0b6.tar.bz2"; locale = "gn"; arch = "linux-x86_64"; - sha512 = "50a9d482efe2c22002419f4559d1b90fd5f368a23deddd78227b7d20b6a051870a997506a1de931ac8c45bd5d33ff9152f3a8ad41c735912b48dc0fe9c073360"; + sha512 = "41fcece059ff48ad3d23ad3826dcbff2fd356ab5567abdd757ff66739f09ad962a2026cc5b5217ecfa1d035356f77fe8563ff2f78be925b88ea903d8ccc63641"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/gu-IN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/gu-IN/firefox-71.0b6.tar.bz2"; locale = "gu-IN"; arch = "linux-x86_64"; - sha512 = "8ce423880bb405240a78773c3f81aa08bf42b39c68068d3cc604486a96b44e7509c577b2c8f2285cce62181b7f11565ea6910c8871b798d0b6856765b16e1899"; + sha512 = "d09dbcd2222245218902e2e7d921239a2e96481ba6312c3601e33c0a9f5c21c27a505ade880ff36560dc2634562a58dbfef574bc693941ecb9f6fef9461cb004"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/he/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/he/firefox-71.0b6.tar.bz2"; locale = "he"; arch = "linux-x86_64"; - sha512 = "6a0722861c63a414690e9eeb2456ee492a92b8b20f8fd9973c1580b2e3ef1bdb87bb7ca0d17603c429a76805076e2a7c4cf986d643e790b2b04c58b69aeb8758"; + sha512 = "9d7cf14280fa265f1f8a06cd21e174098347199b389b66613713af722f500461dd394b2b56bc635168c3266bbc9e98676bbeac45a647ad9c7c0187e49e41218d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hi-IN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hi-IN/firefox-71.0b6.tar.bz2"; locale = "hi-IN"; arch = "linux-x86_64"; - sha512 = "4e9ba72349a3e58ee2b584b5d3ed5f601a1af7714104139e7dfa997921e6b7954a5cb7b78b9b8b7bcb7eb09da990116f844dbd96cab901ca408c2fd49303c35d"; + sha512 = "295cc80fcdfcbc523d676147f403e828f1f09642a5fcea0d371504f6ed2892556a058f7097e923a7d5bb13b812efa858f39161efba557d8a5d38562beb091646"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hr/firefox-71.0b6.tar.bz2"; locale = "hr"; arch = "linux-x86_64"; - sha512 = "f53f4177603c41008d06f16bf9e102855273f53856e57f79967f59af64bd38f745c4d71583db50917a45a7c3bd64940f69ecdb864dd957798c2ce5b65f5a75d9"; + sha512 = "e5dd6596a62da991d33589e7ed5f2834d10125e9ba3d05670cbab35f2a7addba065d36e881b3cf7aae3a31932a4e7e197cdcbae42e9ffbd352ca60513fe35931"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hsb/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hsb/firefox-71.0b6.tar.bz2"; locale = "hsb"; arch = "linux-x86_64"; - sha512 = "f6044e9f09cf4fb64dd9d3935332bec46ddd783f6335206a51e68a411be57169d4a6388224da462d65090cd2ebfee64946626fc41ac3d779f53391c1765fa290"; + sha512 = "a07459b299630d6db0b18b045547fa65533de02e6684e696ff4979575455ad8bfa42802ab93c4b3adb38046ca5856b7b2af470524cb54efbc7752fa42d9e77c1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hu/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hu/firefox-71.0b6.tar.bz2"; locale = "hu"; arch = "linux-x86_64"; - sha512 = "0178b084718079f1e6117f723e2931275a28944deb5bff48c3fc9d2548ceec7a6f019253cb7fb014b04e6800bdc62eded02b1ad26efc2eaccbbd2d0ca359faa1"; + sha512 = "01ddb0a1333ed2b9dc3ee1f0b2ec069c1d606abdb918798f64ba420774dab33356ef7c97d0c403bc5052b0834a852b02ac17d187f53c509e13f4d2de5bcc66ed"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/hy-AM/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/hy-AM/firefox-71.0b6.tar.bz2"; locale = "hy-AM"; arch = "linux-x86_64"; - sha512 = "0f069f14ab5895b1242b0b583e2a952c9a794e363973f68d119a791d5777048849dad23badeef6f155e1539b06468a4b7b0555e0e76f137edc523d09b6a51b36"; + sha512 = "648240e7ca906619d2e396069c0b2be29e962d9e2f96e5f5cee0efce7c85f4b6f17fb3589d236a7ae347ffe465d7c7188d68e04454e566b4619ffdcbb21bbcef"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ia/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ia/firefox-71.0b6.tar.bz2"; locale = "ia"; arch = "linux-x86_64"; - sha512 = "fa0beaf3088becebfc5e4f02b884a572fc86b5f89dafd8e79741fcddd331f1d667b1c2af81050b56121ff40a2c9077bc514df9ec2de4d165b536d5b17cf2fa29"; + sha512 = "313b8de952330bfea1a0643821a17331e92bc5ab6a575c77cb14484ef8734662bce804259cbfc0ef2191f0e96aa10d61b6374149563cb4114008e26d9efc3ced"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/id/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/id/firefox-71.0b6.tar.bz2"; locale = "id"; arch = "linux-x86_64"; - sha512 = "10bb29fb1f4a588f8ccde4e087bba1c7b405c44a9a79acb16d189f704bc31ba24e33b1c89b1879deba4d5c5da0a5f94ef69a7987256af6fbb6d7571db85a1bb7"; + sha512 = "39e8a946274245702bac80455cdc84a5416cc25dfdf32b67d9bf97a0f263cda6417799b80a1eb34cf98492929016dc176ad09e140cdb7f57d09daef97aacdc69"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/is/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/is/firefox-71.0b6.tar.bz2"; locale = "is"; arch = "linux-x86_64"; - sha512 = "48229cafe81da44259f0768f1494685afe072558dddac63c6321955d852ddd80a3b8729692dbb9c6b283a302e6d412d7c8d4f48888a0d5a1cae12dc1a025124a"; + sha512 = "2956d0309b81a9c428ebba4698a7b5431e885e55bc71ba3394abfe50fd81e0b7b3c9049aab020a8d9a8caefc04cdebdd4793e56754ba41c88e55aa8d8a3e05f8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/it/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/it/firefox-71.0b6.tar.bz2"; locale = "it"; arch = "linux-x86_64"; - sha512 = "1097ddf7dad776303b942bc80455c8902c0c0fe1667fab972754260da6fe45f383967b8bd2d51e845a66bc0728c7655050858722c1b3b8d2e8d0331c8f612cdd"; + sha512 = "73486caba6b0fa67bd6754ef6d712c244429b8de262c73fe2bcf35afb2d6e1a3061a3ca97fed148397b49230ff1dea0263e1bc404be74f28c88b6e0c540a4163"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ja/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ja/firefox-71.0b6.tar.bz2"; locale = "ja"; arch = "linux-x86_64"; - sha512 = "ca0e8dd301c1e1f76acdfae325445b2ebf45a15be70febeb677d215edbff7df509db7a38409b5039aab1a76cc8cb235d597f5b87f02a96bf842ef6d2e11e6176"; + sha512 = "446fbf643d4fac6f43ef0b7547df542ecd8fd5d319456875a1660ae40a949872c74bd97ae8e49e7c685a1938eb312693ec35c0e107e9bad942584dfba2f934e1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ka/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ka/firefox-71.0b6.tar.bz2"; locale = "ka"; arch = "linux-x86_64"; - sha512 = "99a1ae878c93ddf52c96466bae92259a4e51791ae343574c09f99e5f1878a15d705c84323af6b2871ddbe14c3f4b7fa5cc7a45c27b10b6bdf5bc70ce3a315322"; + sha512 = "1666ac3fe60104b0c3a942f28f4496927fd83baa403c85cd712f11cac1e3a35f794a3fc098e642ea7a20720d3138f021f77935d365ce2ed7606e89284b374476"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/kab/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/kab/firefox-71.0b6.tar.bz2"; locale = "kab"; arch = "linux-x86_64"; - sha512 = "b2b6190978068d2d36baf58efff771dc48cbaa09e53da8d19ebedfec4da5ab6c9c1c212ab0a9fb6cf7a264565b1815bcd2a2e0283f912c9ae3ab5fc6dd0427be"; + sha512 = "9335419c9b7b93075e12dc1b4f96c260b7e045b7598f60dd9c6ccd3ff4c3fab808666a7b13ef8a7906f31afd5a720499aa6abbdd5c4259d23aa8b1317146c805"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/kk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/kk/firefox-71.0b6.tar.bz2"; locale = "kk"; arch = "linux-x86_64"; - sha512 = "3c56bffab7e32ba9e0a572df36c473e94a3ef7b84207f204b5fa4df1473e4f64fe11a0b7bf8dee4cc26db56e99cf21eeb17b598dc211a5d9f5b3ab3fc5d625b0"; + sha512 = "c5107685611e21b0d12357aabd3111a05cc635d69553510220f928485c3a78124aa86afc44c26147b282c158e94d448df14a4ce1e43763b78c5a9e3de6348942"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/km/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/km/firefox-71.0b6.tar.bz2"; locale = "km"; arch = "linux-x86_64"; - sha512 = "6a33560d83232074445c0cb31949f0e8ed4ffb18ce9407f4f9b8f5bb9460e949eb5d302b7f58a4ebcee5d27de0bc588e7d047ff8a17aa3edadc0ab595a175362"; + sha512 = "d26f924db4954eb1dd9c2cb2d333a954925c53ac4a48a0f82a5ec340a3bcc6934a00666e9398c407e5594e191d5789bee2ded4af57d5f76aa4d27a3f00b4ae89"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/kn/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/kn/firefox-71.0b6.tar.bz2"; locale = "kn"; arch = "linux-x86_64"; - sha512 = "d67b40cb99923acd769bb10d824903dc01379c9a5245f6d9fe0747b58525773b2724329c64760ec1c18726056bd1f7d74d9e292b3173555011bf7e66d6169828"; + sha512 = "d8ac76dad99060c2900d063b9e037b8b4bbee96066521f41353f77c82536bad8a637e38302b9b5cf1f643284792be730a2441bca2d604d05ffc77600a162d3d2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ko/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ko/firefox-71.0b6.tar.bz2"; locale = "ko"; arch = "linux-x86_64"; - sha512 = "e932cf78de717646837ef432179a0b9cd41875b60ed5ec0c082f9b285c9899006844a61073689670449206a82c6a0bd72e076a51be1551ab3f757c6f0a060bb3"; + sha512 = "ee289f66819bcb680ef74c90de2e025617eb12ef69c4134c17768f0f0644d215f6220db5cdcf0190b63284782ca7125aa0cb2016c9dcb25e7db91a4200608059"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/lij/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/lij/firefox-71.0b6.tar.bz2"; locale = "lij"; arch = "linux-x86_64"; - sha512 = "d52ee5886f86e511f947366caaf2769c4b3fca87254091c395077dab4b665b35de7b66cf90849958bbbdd61316d5df43014a8c9f9bc9006641a40aa2e8d79f98"; + sha512 = "8fb5707baec621e20bddd33f7ef61669d3694f3687e797cae9851876ef1976413ff60f3c3409a9a3e1b63f9c6e1028e9cf1b5a82d97960f1c3d92fb81af1003d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/lt/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/lt/firefox-71.0b6.tar.bz2"; locale = "lt"; arch = "linux-x86_64"; - sha512 = "ea57e8db294d8b293a48d61257097caca093c9a2ed0b14b2d5c486de44b542cc546b751c2cca73ff6ae4945c210018a35ec61583f5b338628894117c04dbd135"; + sha512 = "53db71d1798f963b53fd3695319276ce3ccf42b9b29b9678cf5eb149d6b79390d0a2712967486f05fe3c6d8cf25b123f5f8d6ccffa4f138f03dec611bbe2bdaa"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/lv/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/lv/firefox-71.0b6.tar.bz2"; locale = "lv"; arch = "linux-x86_64"; - sha512 = "66054fe532331c73b0718791d83f389ad369fc77ecb0904c6fe3f97310ffb4d88e316d9dc618a07dfd4569b3c746ac882d8b353484c580af63c59f44e8257c11"; + sha512 = "7cece5926ddc73a817ca894167ceb264865e284dacf66c4cf98c89cec8287268af6088da9cd3451a358e26ed591d2b6ff146f567116f8ab8a80cdda36aa781c5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/mk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/mk/firefox-71.0b6.tar.bz2"; locale = "mk"; arch = "linux-x86_64"; - sha512 = "0f67149117eef961fad9355fe61353a3a2ee15f19e92a592d6fad69e46ac488c26f2b0269f6c229df51690bfead9e85c1ae0489230ba32fb27609900a9725f57"; + sha512 = "492739c5c7b25696ba02f8f0c41127689de8b65cdcee43981dbb1d1243d6490ed7f034ca0e8d5e50763390e85bafb134c190fd86a6d2bf2a9c715ff1837e53f5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/mr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/mr/firefox-71.0b6.tar.bz2"; locale = "mr"; arch = "linux-x86_64"; - sha512 = "740667d86641c92ac299fd63700ad74dc4ec2fabb261bff9abfbb704e7181863556aec952b420f5883ab6a18e66d237d15636e2d9eb7bcfbece6227190b4b6fb"; + sha512 = "cdc685a2435afbdf33324d7d93c5af9f1fa1b7a817c70f34607280084345d3e69c7eb1c0189db8c16c288e31ad0c982ea7271bce6b0a9a71f0596a9ababc32ae"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ms/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ms/firefox-71.0b6.tar.bz2"; locale = "ms"; arch = "linux-x86_64"; - sha512 = "21ed058002c2c57c0e0e43658b12a7b257009814d13566d2d8a5164d0d3acb131a8c90f99b1e577b6d002f7e5019e296010e61b1df2c5d2e9443e8f55f20a4ca"; + sha512 = "37379786db0f326add87e8796b5bd2b9a7365e2a740095a5ae0affd1f15bd08642aa44ae5aeac4e2b0198f4fa590b5fdc05ea2ccf51049908540c39fea059f1e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/my/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/my/firefox-71.0b6.tar.bz2"; locale = "my"; arch = "linux-x86_64"; - sha512 = "8273c4d0df0fda727465d5bd4b50aa09dda1c81b4e78e291479efcceadd87ad24f50e2dec1accc2783fd0bf2e30a2d9e775d44ba599384f0e8e4ad0b6fe08e25"; + sha512 = "c6ef471af337726207344d7eea3d03f412facc0fb26ba45a9134fec7f7a8857dec1484a40625fee9eee1a840dc1ba50f6d959cf58b79f77713d996fdaa5fb616"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/nb-NO/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/nb-NO/firefox-71.0b6.tar.bz2"; locale = "nb-NO"; arch = "linux-x86_64"; - sha512 = "492842b037b018bc07827902e76a117f9ee4620342af102f2753e0d898ec9b070412debc6f72dad2d899c3869c27d2d969bbd9a8cbfe4d0c10d85428d9c7f3e4"; + sha512 = "8cb1f23fa23ee164c172cac43bb7e26ec42bd20b811922fa09c0945d9727d5cc545edc1e47f040084165de4eb0fc217c5fa9b54eb915703add563df83cabf7fb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ne-NP/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ne-NP/firefox-71.0b6.tar.bz2"; locale = "ne-NP"; arch = "linux-x86_64"; - sha512 = "5e31871031f4745af8e050e18b1d2f2a16bfd18596358b189c7940a8ff11e999e44cf2e96b62404e481d0d8712f151a10290ec36e5903ab72e26986a03f93e12"; + sha512 = "b620f2dc18fec008aa668255a3a5b2de987f9c1b3dd27ae93f9cd9f2c02287e105516568cfdb631a9f60dd08e03ccc89fc9d7f6c7d682fc7f8cf8644965b9419"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/nl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/nl/firefox-71.0b6.tar.bz2"; locale = "nl"; arch = "linux-x86_64"; - sha512 = "8ca6f3842359e5a97445692747ffe0d65bead4222d0b2f90f86dc637a6e02a1cc75909ea03acb0c232185ad626cdcf2a5dafd27d578420385b7a4df353847323"; + sha512 = "51298d8ef95f9d76cbf6d410a85d277ded0463db6b85a05007cb11fbd9490fa385d9700bdf0dd333ba61aafe3690bd31604b1dabdfeeb5d8351c678eafa7a558"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/nn-NO/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/nn-NO/firefox-71.0b6.tar.bz2"; locale = "nn-NO"; arch = "linux-x86_64"; - sha512 = "a64d50c1625f4da5cde3aad78b04a4e3278ef3aabcb19cc9a9542e45f0c82f09a63fb464c0b2d842e107f22ad12226655617023afad112292ddc22d735a25d54"; + sha512 = "61deac483f285167a9ed3f12548735b484bdf2e361ec7e9ed62abd44084bf2ecf037990b946255e1d086a746139f3d24f1ed428dba150161cd5fbf9db420ea9e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/oc/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/oc/firefox-71.0b6.tar.bz2"; locale = "oc"; arch = "linux-x86_64"; - sha512 = "1b873b5a90c8130be2a782f8c0459f853d3fbd340d7500550fc7628282b1e575d92a1d0af263665f7fac7192c22910e8338b66abda828ffecddfec79dab62fe7"; + sha512 = "8421017b5aec9c5998aeb255a47b8e34b189667a9b9a576f087613c4721ba7feeed5b053d7c4fe24c32ce17589b5fed8603695242e6acb25d5236414012a9563"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pa-IN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pa-IN/firefox-71.0b6.tar.bz2"; locale = "pa-IN"; arch = "linux-x86_64"; - sha512 = "6aadc5b934136d99161d4f52df74653ebe0ba2d5fd1e2468c103b34862a331ea269c23956ad27c7883811a474b6f915f6076d9673ab4767e5a3b0ba44bd32ec0"; + sha512 = "3b8de8911a3249727bf1642214c5affe0555a6f91fa60a7b7709b3d9324403c9c5203557e6c4c0f8fdeb770fe73cc577f4a053064f09549049a9bcebeb4a359b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pl/firefox-71.0b6.tar.bz2"; locale = "pl"; arch = "linux-x86_64"; - sha512 = "b3caa21e7ebf3083be1ea13da68a83775a0713f6046994991328a293cef558abc523c43572ee98587c777aa779498cc5d7e671aac622142b4801386e2e1532b3"; + sha512 = "7c7b9ff6387e9252bfc8c9cf9540cdf05e2d041c0a172cbb95de67cc91bfb4991d554e3a1616be8e8bfdcf0243095e91f06aca50d01b8ccf2316becea23de54b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pt-BR/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pt-BR/firefox-71.0b6.tar.bz2"; locale = "pt-BR"; arch = "linux-x86_64"; - sha512 = "f8b591901004a08c74a79cc4a9beb5139adaa2ba15261680c20c215ece1f1f115f0a71c4a2af2665c2c35bc3c5d3b5016159dfea5f603a981d5ccdc6b28c3b98"; + sha512 = "d6918ebbd92548be667c2fdc1bd53a21d5de473fdb73f82c81da89e95d2fc3d9cac5b8938f74d1b32a5e3163a5010b2cb03f19dd6d858130118c592a573ff461"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/pt-PT/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/pt-PT/firefox-71.0b6.tar.bz2"; locale = "pt-PT"; arch = "linux-x86_64"; - sha512 = "ba910b1e9e77a938f4208679141b24bae1dea6bf83a2f3a2778aeac59da1e8ab22ffe9333188316e170bff75bfae57258f3ff53c08774d00ee060de2d6871f21"; + sha512 = "46fccd1f9f521b37ae4810535da84ec26f1de3a454f1e76d7652ed735fb91df043109597b3ec2d155ab5e47a2bc48ee1b2f54289514fd81503910f6a97eda8cb"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/rm/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/rm/firefox-71.0b6.tar.bz2"; locale = "rm"; arch = "linux-x86_64"; - sha512 = "0272ede3149ece3f87192f8cdcfd74313fca17fee53c3c86dedfe702c8157257f29931c14168ac11095f0b0def077f267f222919cd7f4b5ce020797c36c3c603"; + sha512 = "7c8e478956cbd25f249f8ae61bf1749d0b6f40a18d35d7a2e0427cb9f7575f32ea2ba69e8b1240eed0ee382914aea93b15184fd7d0a3aa0af2530e0b3da948cf"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ro/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ro/firefox-71.0b6.tar.bz2"; locale = "ro"; arch = "linux-x86_64"; - sha512 = "b58e3742fa43d52f737285c60e8b1237fea5158cd096450bb6187ee10471af0a77025fc526805c0ae8ddfceef7b7505dc637c8f72ab4188db31d0ffdf11ba606"; + sha512 = "b42acf347fc1606ed4fe53b054b6c662aa909a734d6b9ccbd7f6d0fe42588504ae2a36e292db6229638b71228032189735ec318e745d187ffa5ab7087458749b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ru/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ru/firefox-71.0b6.tar.bz2"; locale = "ru"; arch = "linux-x86_64"; - sha512 = "f0086698a2deea24dd1510da377ed9094273a7867a920b0d05c6aa47d4f4c5042519d02c5977747df05a416a4bf94aad0a52a0b03869e693f621959a0f980a26"; + sha512 = "f3f9a1501ba4a3ed69c0bec569d5fd585bca4bbc34d5d7b92a9b6c7c299e05201b4fd5b45c9a3d8c09d16d6804ab2a76c22a973e2b730ff33c03e325dd4ee4b3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/si/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/si/firefox-71.0b6.tar.bz2"; locale = "si"; arch = "linux-x86_64"; - sha512 = "4b0018c753aacadac60961b1e4a793b6a0f36d2f8844ada2515ad8081822cbb869ba23f7a69143af860ad060d86e7ad157a41609c1fff0cf481b45bc55a23c0c"; + sha512 = "99afc39d22bf30818da8156648face1eecaa8413f923fe4fb14623226c50afb437e39d908caf43e7a7c78b4ab4c66860a03832f33b012a5c1fa6c26e936e99e6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sk/firefox-71.0b6.tar.bz2"; locale = "sk"; arch = "linux-x86_64"; - sha512 = "f19ddd306e48cf04bd70b008fbbd6827045d332839458126ea16393b04e6b76dc8397ade3bc28f5798ef24f27c9dafb578808f3ede8808609c24a8bc20935448"; + sha512 = "3c574962db7e38169b01179bc67af5d57296918adf009512ab494b6672ce95bda10dc9a6ff88f5ab17d414335bdd97fca5b75bcf0f4408a26a9eba83c052f3c6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sl/firefox-71.0b6.tar.bz2"; locale = "sl"; arch = "linux-x86_64"; - sha512 = "104f68ebf03ca5165ad9fd049beee70658156ae80b62e88e2342e845ddaf5603199d3ad66423a08766fac2ea2db07766e66b9e09b9e480af4cfb08e680d5dfae"; + sha512 = "c266949cec012d11e13659e60edf9af6fd24434b0bc71bc7c1b50fb3e18de984ca34d074113949d95e7ce1dd759c7b081e8a336c73e7a84b146eec747413b222"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/son/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/son/firefox-71.0b6.tar.bz2"; locale = "son"; arch = "linux-x86_64"; - sha512 = "4ba381efa38f56c60a7c9afd625514c2b93cd89dfbd3e99968b89b8ae57bc8344f5686f6e7c87d8b21136d8f72e4c61af617152d534b749fe0ee731220b60716"; + sha512 = "7b9f060acf3b4aae96a79d7fc712803cbc51a6b38e5624371523f9e45169f838f26f1848f8c39f644cbb7409e76c835bafe02152e981034202c50222fa1fa87a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sq/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sq/firefox-71.0b6.tar.bz2"; locale = "sq"; arch = "linux-x86_64"; - sha512 = "8a3a3b1a8a48e8e681ae7765d8a0e9fce8f87f3e12f4af3fa4fce3dac0ef74524d4a14c1f802233362969237f893e02d22fd44d7e032ce2f45e69abf8a18c738"; + sha512 = "3e555168da6e7ce386c7a577bd773879d0cdc725ee2c79151554628212fb4b16a95a88169bbde512ca63f51920e035a27b863b2e2d2a5a636c6e8b1427cce20f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sr/firefox-71.0b6.tar.bz2"; locale = "sr"; arch = "linux-x86_64"; - sha512 = "6ee469e7a091662d62250f17c7d45810f9db853571185364fd7e9f561dbe6e6582c13c5faad081769a8fd715fcb0230347cf88e642531a1d7e941072a2003990"; + sha512 = "b453c4ee3138061c1b5b955639672eaff4b5702aa067f1316f7b42922e4c9ab9a00b8fe60f3bd47c25d300ae048277ac5830fde6898e2cd4e3c7eb9d4ecd34db"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/sv-SE/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/sv-SE/firefox-71.0b6.tar.bz2"; locale = "sv-SE"; arch = "linux-x86_64"; - sha512 = "5ba63456a302baf31a03f129fbbb820a1142a83b41a44829947ecb1878c1b7723035313844b7ac5e950440ba1feac7f14ca1473b1acc75f4899fb2abe259057a"; + sha512 = "7f859fa052096bf5cbb63716cb0b57c2edcc13f0e79fbcd59cc179f7fa91fb70a99d94f44a5005e3e6d38e88dd58843acf6e5c9b097b5d592ada7d19aa8b7b94"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ta/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ta/firefox-71.0b6.tar.bz2"; locale = "ta"; arch = "linux-x86_64"; - sha512 = "b9f59f57c74ce57b80268a139bad81014494e9b2fd173be997c5aab61aaccf28f84d0eb1089c3abcf21fb62dff02b1b8e0176e0f4e3adaddbebc5452d9f9a07c"; + sha512 = "4cd7b5be580a70aee1259a39ccd37e947c8da8be408aaaa9210e76f4744c2d2075525331e0441d14be4a6aa5f3eb8c7e0f78220bbde0db3e521baa3a9696e1a9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/te/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/te/firefox-71.0b6.tar.bz2"; locale = "te"; arch = "linux-x86_64"; - sha512 = "84130d585c0b0e80007c9c1fec4011c44bd087576d1e351bb899893797d4ee8c9f856dbe4b9f8ad37a2aca98dc46c9eb81aef1cc236947b672f7c6a978f28bf3"; + sha512 = "685bc8f8ec7274dc402a6f27be13a254ca28b67ee28f151cd0e146db6857d8f54729fb76c3266ad08c47b108e84bccaf8dd561dafc7996f9678a83c4a01d4fa2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/th/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/th/firefox-71.0b6.tar.bz2"; locale = "th"; arch = "linux-x86_64"; - sha512 = "2a731a0294dd73b113983d70e4c5a779fdfd92a855e635655aec5e2316a32c97812dced18c04820c4332ffca63805af816df5e7a180d9c8108eb63f4339d8578"; + sha512 = "d5167cdf3d67638772d474634c690bda4c3ea136baa3ac28d5113c9eb7673dcf9f38abf6e2fd54b55e5e487ff60f7e33036b7939b6c1add860dd48d9cfccb0b3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/tr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/tl/firefox-71.0b6.tar.bz2"; + locale = "tl"; + arch = "linux-x86_64"; + sha512 = "bf49bd41ca1bb1cf03f8b06ce80e518f487359fe5bb93b90cfbc17ecb05aab74f4b68a8ad76c10acffa934a5a9fd5e257a52b9705e3f09e81343d142afc773a1"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/tr/firefox-71.0b6.tar.bz2"; locale = "tr"; arch = "linux-x86_64"; - sha512 = "5e1f639a0807cb403bab8157b3ccc0806d3704e27d2e682ab56bdbfbfa488b71d454dd983f4c9cd1754cd1173ff6e14f097cd2c8db5cc7075a63b94871dfe94c"; + sha512 = "f67ad1441541b02d77eed6ec0e205e36aa585d70a85d74c3704e9fc95126ca4ede76807c62df2eb0659ae24ad8a79bb6857299a52dba432d0cade8b3091b6db4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/uk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/trs/firefox-71.0b6.tar.bz2"; + locale = "trs"; + arch = "linux-x86_64"; + sha512 = "151772f684075ca2b24c98e35405b8cc54d878062a3d5bfe5b49561a0328a2d9064780fbc8aa1368bcb53957c208a102859accd35ff3e09d23a0623886ed24d8"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/uk/firefox-71.0b6.tar.bz2"; locale = "uk"; arch = "linux-x86_64"; - sha512 = "33ec6d4c9ecfeaeaf5659b809faaaf60f24382f2c8918eb4bba81231c12f0c8049bbf766fa3a41a8947e6c745932b4e908f158f6a532c473cbea3c6a833e8d29"; + sha512 = "f27019219dfa6b1af09971aabeeabfad7343a6e9e034433a366bf0b85dae2a070c4236115a645bcce433e8a1ddcc74aa33c06f3e1526a665d7339c730e2d8b6b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/ur/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/ur/firefox-71.0b6.tar.bz2"; locale = "ur"; arch = "linux-x86_64"; - sha512 = "2b06b2b145593f6c3cb74b16553aff15b8d453b3ddfe6a8ccaf2cbfa0beec3274a2b04b10373c5420dc67062c246d484f099ca3dbf1fa94ce0dd6ab6533dc066"; + sha512 = "4b6b3c96dabeeb3ce6b814ac28f8842fb8a991586f8d9e24d8f04c4771e1e930903fd486429b028177fda3194a40f2d68ae89fb55ba632f3d778635bdfb61f10"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/uz/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/uz/firefox-71.0b6.tar.bz2"; locale = "uz"; arch = "linux-x86_64"; - sha512 = "86b5066b07f8b80dc86873f2f418a4526e386f65711199008538ae192d9af06cfbcca1132cc95007b44a9ae1afb5a76de7a2c4d971b59177e097b4266e075fdc"; + sha512 = "c236ecb253b724715b66b60ed15870c7190bf53beb8c0aa3eab7b8f9770a35d07c4b07d7e947e548274ab636fa4acabc89f8ed9db81b347d6d01c3741547773e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/vi/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/vi/firefox-71.0b6.tar.bz2"; locale = "vi"; arch = "linux-x86_64"; - sha512 = "c474e765f85a145d4fd0c9410305e56fc8f32c6eb9c0ae139aef48e1b35ed4eda941c92d3030266d38738ea559088ba799db1c937a0fbe3867583beb4825a93c"; + sha512 = "34716693e977408908c303e69a72fb9a3001ec4683e848bae2a22b050f446ed82509cd8bfbbc560bc4fc14d13da673cc56ac70b0dde8e719266697e043ae90b3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/xh/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/xh/firefox-71.0b6.tar.bz2"; locale = "xh"; arch = "linux-x86_64"; - sha512 = "2fd1fac92f3bd260949c0851849424fce5ff56989e7c9486ff11702c85514929c49952568ea45d0e2889e806f6ea1556748b475646c90647a92e50716b1250fb"; + sha512 = "634514944739f748afb01379e9b0b7d902cd367ab3dd72eb08442b0700c145e3239f0fe8a4598bf123231b5430cb4cf17e33dfb56aa6aceff1d833efd836ce52"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/zh-CN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/zh-CN/firefox-71.0b6.tar.bz2"; locale = "zh-CN"; arch = "linux-x86_64"; - sha512 = "b3d7786d3883a99ca1833905ab971aba5a4ed42fec451bd7d5664c329a4deb495afbf00975a7c9935bff42b42c828d830984d389a6b0b728586dec9017e37fe1"; + sha512 = "5f57467a2b3bc1346c503d7ac7452a063daa5656c8193495046f80296140d648f50539c5f0c9af23155498593da54f66e16f4ae2ab72637f394859e74ce3c990"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-x86_64/zh-TW/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-x86_64/zh-TW/firefox-71.0b6.tar.bz2"; locale = "zh-TW"; arch = "linux-x86_64"; - sha512 = "67d506a05c404911c3b937dfef3c696ae6d3739b3113ad288b46b9a995028d48ab7c7dfbfa7a735f453698dc1b58864aed7b718f3b81bf42d3e8114180743692"; + sha512 = "fe5808270355da0a3f6bc8b1522f8c2afd79f6f68842f09ff7db9d67ab21c1c683ab65dff9be7a666da9b25add657f6ebf8b080e898e8b2822612ba7b1a53dca"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ach/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ach/firefox-71.0b6.tar.bz2"; locale = "ach"; arch = "linux-i686"; - sha512 = "8115dc00b12319c89463a0c97c3117df8109d68372ce91287bc382238d0f0a6d2795d8540bef5ad5c5215f237bc1b23e4e9f11a63ec8aa32b80e0a501c27f534"; + sha512 = "f4ca9cbf830c34b0287f92ec7683872b93cfc29a559c56e29fac686a50833e31bbcd2e22eb5ae5fe345fe8110d50d6be2c8ce32968aa74a65543e701ec2af6b7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/af/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/af/firefox-71.0b6.tar.bz2"; locale = "af"; arch = "linux-i686"; - sha512 = "1bc5809edf99dea1ecbd942e92879139056e1d5bc83512c84fd110b227c37f76997e1f2d00f4471f03cc00cecfe4e3e2e62af858641539c08c4685a6986baaf8"; + sha512 = "31de89d33fce172551a3a7cc1047b06d9fbd199d0e9a7ca94434ca1f050d0cebe0f3c06b1703b2e6ad7bab37fbaffefde5ec661bb23b1b470b82360f4f08d471"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/an/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/an/firefox-71.0b6.tar.bz2"; locale = "an"; arch = "linux-i686"; - sha512 = "7a1abe0ba440d50362ec550da3061df3d2e498f94587591cbed920c7348e2da6f8fbd087bd3fcda2462e18722db0b0c2ec129aee8562670af44ecb333b2a912a"; + sha512 = "a5f1346cd8e74bae67b3a7b0ff7350b4376b4fbb7305932c333767e5625fb1a451daf3004619fe737d7d479aed09cfabb9323e32ccf1d980f369f7763520c515"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ar/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ar/firefox-71.0b6.tar.bz2"; locale = "ar"; arch = "linux-i686"; - sha512 = "89adee7c9ce7e74ef7890f3b8ddabea3d6e06c90db695f3d19af64b7c6602f9d80cc2c2c6d2958ffe4909d734507074f658cf4f04701e5ddfa9a9a9d4062e21c"; + sha512 = "87eeaf4d620a643bbfbe8f710612aa12bbaf2162f5e762263714f9ecc4a6fc75896c4d8145089775c24018491a9604d9b67273d43e96ec206518c42b978d8037"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ast/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ast/firefox-71.0b6.tar.bz2"; locale = "ast"; arch = "linux-i686"; - sha512 = "e20bf6a66f67713cb3225b8f8109c4d44943102d2a37571c3489b02d88d5b677d2465e2bd51783e720e5f31b59ad51a1ba7ba0cde723e942059080e840c63253"; + sha512 = "b3b169892ec8646abbb22ab31d24337f4203c8257a0827dbef0ff396fb5219af47e68e69f90fb874f4f09bb2144cdf5c8d5cf7d0f484b755e5ecb40c19c3a839"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/az/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/az/firefox-71.0b6.tar.bz2"; locale = "az"; arch = "linux-i686"; - sha512 = "30a25fdb3280a740c11f9b3f53f871fcb294e83377fa1f6cfebdf939a73df583d8806470eb62d3174603a29eba599ea5c6d5dcb4106f4afed18a899dc30c1170"; + sha512 = "569a81642a725f184cc0abbf573bc92ae21efec93dce73572f46fdbc0319caa3da6a9f7e5066c7abe74d7636f27628ec5a87d243ff41a483e8f2f9eab6fbbf0d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/be/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/be/firefox-71.0b6.tar.bz2"; locale = "be"; arch = "linux-i686"; - sha512 = "485be4d97719bb771e25ec80f84ee94b7ac5741baf4a08a06a02ca54fc915d7c2a54ead25a0abc9d40145cdb7c1a34ccf6a727eab710a29407ab5587f6a0e778"; + sha512 = "9bb66208dc81e314fffe537fa229abc401e5d55fc6070e773d6cd167cc719019886b96625796bb20590e4313ea422d814ce4e2c6ddda8064ecf2d42bfdc2ac71"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/bg/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/bg/firefox-71.0b6.tar.bz2"; locale = "bg"; arch = "linux-i686"; - sha512 = "14b2380a52cfce2dddc48a8c0cd52ed31d01f3c46728aa866e0d05360f9d078aa7f59ca7bcc33d0ca7beb60c81780d5def46e1b05786164a0123d95b80aa100c"; + sha512 = "04f7a77b716d77e56d1f4997c6fff775a16e2bee5cb7a33e3aa87677b08dc5e62587be072d639bf383454a3e4d5cdb656589c8db1b42a79244e2103cd54be4f3"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/bn/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/bn/firefox-71.0b6.tar.bz2"; locale = "bn"; arch = "linux-i686"; - sha512 = "1ca9adfd64c8194fcb7014cf48a87e171d5fd667515a972259e9bbd5ae436470a64c2c03a7d672c411bb0644bd962e41f60dd5385a5c04aee1ff7a2f5b847eb8"; + sha512 = "c3a03115b7f7599d2e6d1bdcee8fba27a967c05809bb29826dbac670b092cb6e290f1f9bd955b880fa87b99884530802644b1d32107ddc1704cc31a42452a570"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/br/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/br/firefox-71.0b6.tar.bz2"; locale = "br"; arch = "linux-i686"; - sha512 = "e80b7a6ea23d381b416af92502b74de117eaf406f139705390b756c604b58fb874eab389da7d4adab4a14925b53dec66b768892a12324f2f57979ddf9b3fdff7"; + sha512 = "2a556badf0e1a64b1dd1e47ceac5e3e8be24998eb4373e0fc03b63518200d41ddc5ccad4ee679993c80a63b63c38e3c4cd28b2a3c96d344210bde628e0d6dc27"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/bs/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/bs/firefox-71.0b6.tar.bz2"; locale = "bs"; arch = "linux-i686"; - sha512 = "72b3c206cbf559784bd2adccf3a24f85f840e26b4975b3b0a2796ebd5c1ecb2bb00ccf6c1cfd7fedca191fae33f6abbb71d742e00e74aefb7b4314c91c0bf0a1"; + sha512 = "909a21a318738fddf063f70489ac47648a16f666ce7ff93b152305fd3f932db939b71ee75e27131451ef14e3e0d5deb0c33cf4e9f0a174e1b369192261e28624"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ca/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ca-valencia/firefox-71.0b6.tar.bz2"; + locale = "ca-valencia"; + arch = "linux-i686"; + sha512 = "e7414535d0a0c0291de4076242dcf3e44405408d885adb551c951600f2565d524080064c8ad7d475d8e3e884667b99f99fd55df7266e9bd453c907216fb1af75"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ca/firefox-71.0b6.tar.bz2"; locale = "ca"; arch = "linux-i686"; - sha512 = "450f99474c8f86c5af4bdd210be09a6c05d9638aa9efdcabc8a0d636d7965033f4b885fe6a48d22fd50b6144fe461fb0f5aa7870fecbafa9f1b8cc769465099c"; + sha512 = "cbb1fc6cbe4a051afffb4c67d4bed4b97dd4511da4ee283bfc27400550a1a4cae2984f847892dd271472e6f09970fe5229f137220544785deca837dfe6f241e9"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/cak/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/cak/firefox-71.0b6.tar.bz2"; locale = "cak"; arch = "linux-i686"; - sha512 = "dd9396d37038bef1a0dc8b052afce384c83c7aa9ab9992fe6eae879b6721b251bed5c12f7b1599de86658e16829bcee15b411ff8dd40bd8afda29ae5996bb041"; + sha512 = "79cb0c91bc2d6567bdf0ef38672f35f1c5a484b8decf9efff8d9f907b26b5cad5bfc71c171185da0561abcc92889cfd7a8fd974a532cd9acfd6cc8e6bdd68ad1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/cs/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/cs/firefox-71.0b6.tar.bz2"; locale = "cs"; arch = "linux-i686"; - sha512 = "bb722cbf74437cf3ac9f870fcdfdba191334c3f6970e1ab0b4d0da8257e60cce09d65177a4f81dbbf225e73b03a8616aef4289a27f25440e2526d96a501443b1"; + sha512 = "b1a5d5619eece10b1d7e70e14857a0965175294808253238e3ab432585662d3c16c56bb6bb989225efbf271f1d4eecb3d20fd4561b0e8994538516d54fc9386b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/cy/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/cy/firefox-71.0b6.tar.bz2"; locale = "cy"; arch = "linux-i686"; - sha512 = "e6c0f84a810005f2081ef8cd88b94e689caf07c5aa08b4c2f9ca5d5cd071a8e37d1f572c82b262f3e26381a6097c54ab80bfc4a0d09924693937751c7a1d79d8"; + sha512 = "3e06fc68797f371f918ed10b93f6984780e81344dfb014e790e02351d8afe72974c8234533683ec87d9cecb6e0ab49f5f1b7f61c9058c4ac275a5f79627c5827"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/da/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/da/firefox-71.0b6.tar.bz2"; locale = "da"; arch = "linux-i686"; - sha512 = "d209f91aac27c9cc0a075cb51ed4f9d41aaa74a7407892ec45ab2ce8c09e77a725fa6e8287988cd53b0b681be785c04babe13e19e63c25351cc6cedd84156a24"; + sha512 = "ee90213314fa0ad3267c97eb00cd81205cef1df09a8cfaf162d707d8d3dfcd95e2ada11cd1458c988a7ab95df7a1eac55f7e2b3107c26690c39dcd5d441417ee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/de/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/de/firefox-71.0b6.tar.bz2"; locale = "de"; arch = "linux-i686"; - sha512 = "64b843eed8012fdb91fb6573e2e7e8900e3d3ce2c476a509e1171746261ddd1c15874d539e416d5c0607b34e19b01d56f2d497e4d09c595d29febdf3461094e9"; + sha512 = "9f1aee93429060eb0fd60a19b7622a4bead16b8c3609a00afacf7e41f437f6e2e75cc2b4bf7785e77d6e1bf1e51899a176c5fda3b3b88ca549da903ebb3ddfea"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/dsb/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/dsb/firefox-71.0b6.tar.bz2"; locale = "dsb"; arch = "linux-i686"; - sha512 = "27801c40f75cd6824af2f6e583b99396c07baaa66c1aed6bbd7382fa85b7969ebedb6877dc0a979775ae153c4274dcb970401cf5686bf681b3858009eb8059f9"; + sha512 = "80d3b7edac9accbf47cacf8cd3e31b0568423b7e133a347508ed1ec6862d1f4a6558f975fe0bbb762888a25c37dc10e9b20a60ae9c4d313918bfb7f85cd0328d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/el/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/el/firefox-71.0b6.tar.bz2"; locale = "el"; arch = "linux-i686"; - sha512 = "7c4452fc29cd4a2c6516445fcca6c470f9f8ee81ffd600dae225eab8857ec43593f85b182b2e252cd04f3a6279a86dbad71ba0c2e0b723cd6d8c4a354b3cc582"; + sha512 = "46f7b8931354ab171d60e5871091a0c214f0f9a7f4689ad8a59bebf48343cc390c4ab38840d21536a3c32c1cce59307402e542cac5ed056efc5f33009f6ead17"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/en-CA/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/en-CA/firefox-71.0b6.tar.bz2"; locale = "en-CA"; arch = "linux-i686"; - sha512 = "53e7855ab3575799e96569115cf5882233a31e4af1e15009b85593c7fc086e85b7bdf0148694789b816e8a469665f82cb5f1448aa4cdf160a5f8abc97f92253a"; + sha512 = "74ee6da165e6e35d511b9d0a715d4bbc85541014728b1bf8bd526a3ffcbd5794afd9f00d8298ed194713a9053ad514434cbed7d4e34a342149de9f2ee2e0f126"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/en-GB/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/en-GB/firefox-71.0b6.tar.bz2"; locale = "en-GB"; arch = "linux-i686"; - sha512 = "db512b8a4a6a46021e2a24ce0ead90d8f56b9eff756b9b1a6c8cc1290a96eb51d763d96c0475c7636b9ee9a88adde7f3c81eb9366e3eab3448afc60e2a060108"; + sha512 = "1c84689bd6861752b2bc4530b4eeed8809b37f02dcb57d01716cbc347e6e161615046e81680db751acadd4f8d46e83b0d5c00b0702c7ba522148e89313a47b31"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/en-US/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/en-US/firefox-71.0b6.tar.bz2"; locale = "en-US"; arch = "linux-i686"; - sha512 = "eb6ed30b684c016b947e3354da57b5886b29524b57f4bff4e071fab5d5ae978b94adf0572e74e9e31e15e493098aaba03344b632d0ff71145f90a8e5c7e367d0"; + sha512 = "1750ea484b386b845e299b4ae7f7d3e6942ba3c765d09c6b94dc0d1d7da011e17ae05f84f379a0fceeb6df54a3e81f61f5c334886feed094bb630d62371ccc1f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/eo/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/eo/firefox-71.0b6.tar.bz2"; locale = "eo"; arch = "linux-i686"; - sha512 = "b2b343ec5448978d9ecefbe1c73c94e8d578d875dffa09fa3739c396c3a09ddef4bebb7bf2f5c12b1bc39fdd3b8e89185c2a514422883d0e8856af854369a501"; + sha512 = "b67e3423ac2801dfd80423b5faad2b1a216148fd5149fd787827f03745061d808e77ed352e21081f033129de2fec94b0951a16435357ced8dab23a8594e766ee"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-AR/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-AR/firefox-71.0b6.tar.bz2"; locale = "es-AR"; arch = "linux-i686"; - sha512 = "fbcc4138161f11c0c61eadfef889a72aa691bc5b9db961a52cda092b638ad5d2313fb5934bcf2dd035f225971bfe1561acab549da61a7aa885191ca2c3112d7e"; + sha512 = "222aa7f906ddb829d6d95ad0ff64f080c26766f4ce83ba971e0e2a8996e471398882de24cae3f3fb51206c67ee7e1022d8a7d3d86ba70fc3147a2b914e4186bd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-CL/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-CL/firefox-71.0b6.tar.bz2"; locale = "es-CL"; arch = "linux-i686"; - sha512 = "ff8908b2c09877a2c7cbb0842e826c51069234656efc9b7964c2432e3d61154596cd63864a3a6b331fec68ece3118e5cacf9014389806dff8897933d584c537a"; + sha512 = "9cec91d7c17c7c2fdf2a2507e71cb25c10b997de98f2a4e33a4fdf8aadf39c2ad9a539b15413a76dd86f8a0c370e8fd7ec1822cb3eab9917fe4395b57a8123ff"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-ES/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-ES/firefox-71.0b6.tar.bz2"; locale = "es-ES"; arch = "linux-i686"; - sha512 = "1546d5d67b1b4c778d137b35189470c1aec01e617c2ea8b52bbd58c636b5e2a262db5a8f02bcfaa45ad1fef499d9c9e135eade38f3daaeab6c456e52458927e7"; + sha512 = "f609a5a48417746b5c64f9765c067648581566b8ef3aa6935a9de9f08df12034f4e2f0af839d76e2adc1646244ffa58b1d50e4b4f8970ef043985c3e60ba9e6c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/es-MX/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/es-MX/firefox-71.0b6.tar.bz2"; locale = "es-MX"; arch = "linux-i686"; - sha512 = "da8809ae2d281547be55b0d3db4c779758ecd5c2b8204f54f732708816fa1d653f593e9e0bb24136213f3d1e94dee6394e47326b74be2401ba59732ff4f8dff9"; + sha512 = "34743906e3f6f7add3727c876f44aa21af08c178614940363cdf788fe54dc20a582c7d36eaf242355cdf31664aed7d807c8acf361aaf535d97e4ee06e4f4b219"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/et/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/et/firefox-71.0b6.tar.bz2"; locale = "et"; arch = "linux-i686"; - sha512 = "7d9cdace25276f868e853d7b964d1fcd18b7109d4072db49984d5d00628c9910c99cf494304fc962245f8d551ca9f95a603dbb1cc48f655b724353e869237218"; + sha512 = "ffab3566060d248bd7c113f9ab462d6226893269eda244dc1e4c609456a987cbd0f66bfcd5478f097d9748eb0499e9d666d147cb989a3084a74a97dab5193afe"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/eu/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/eu/firefox-71.0b6.tar.bz2"; locale = "eu"; arch = "linux-i686"; - sha512 = "e3f8db0d5be3fbec65d27c3cd4f2272fc5dec401ca19a0fd5bcb7b48a196e81752d2b1c6b72bc94b3294ee09eed58b765790663185973ab34fb7816c38570ce5"; + sha512 = "3ebbf87b65150cd8450287341f2357c8e8c102a80b91b61defd7800153e3b53f44d93825504dd1f818b82548835faa1324643bb7e484506f0b193043994c957d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fa/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fa/firefox-71.0b6.tar.bz2"; locale = "fa"; arch = "linux-i686"; - sha512 = "5be17588077f86e6766e1c257b73e8b81b2213f3f9079c01539578a6480fd07a90d4129af77f81418b4dca8278c44bdf997b3e0686ed1c2e8e4a5269644d21ec"; + sha512 = "4ca347f377339c31f75c5dae713589a834f4f50d594a060cf3e2c07d1da8318013302f23f43973e0db8cb3f3cf42abfdba0357a085b8bb74fe9851c5c798933b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ff/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ff/firefox-71.0b6.tar.bz2"; locale = "ff"; arch = "linux-i686"; - sha512 = "57f543f448b8a4abc99201eeae76b0574841a5c7815d7303844b5cdcb4a5668fa03483d9a2953f9a56bbe175f8f82e94b4aa58d77174e5ca26c8755c25cc6c63"; + sha512 = "595763867baa20475057a576171d6ef3c1399a29c7a80a1e61822ddc71670a3ffbc4aa8b99dd857d91fda1e00ad1aa129bc79bb0cfc9f53f1147bb6c0c9114f0"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fi/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fi/firefox-71.0b6.tar.bz2"; locale = "fi"; arch = "linux-i686"; - sha512 = "bfb0d7c4a4e4d0633879f79d8ad5a406e7e3d57f80ab1f1eed671ef85ff7065afa826769b868c90b8e90b87dc012016b419eb0a57de344ce51f49bbf61094931"; + sha512 = "92dc11a2e77b7286932067f3ac45f4bad752fbbb2649dd6ad9b5e5dde2838e4881aa26143b77775964149e2ee877dc5f38da2d203e1c04db1b1e2f24cb879768"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fr/firefox-71.0b6.tar.bz2"; locale = "fr"; arch = "linux-i686"; - sha512 = "b944d8473f8c7a859b738d78140fc6b840ae7798a3a0e8c237bd81f411f87129528ddf68f33da6578547fa768fa1465625dbc4a94f265491722bd4f23a614ce7"; + sha512 = "37e23c8386568b68603e499153e3e258a56af45eb334255023b48c32b8dae32145460b849701def48ddb812314bb0c881766d68219408cebfa2e518eab2900f4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/fy-NL/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/fy-NL/firefox-71.0b6.tar.bz2"; locale = "fy-NL"; arch = "linux-i686"; - sha512 = "445018db73c97ffa87377bc78162cbe2f31dae2ffbf47ec9e0bb42001e5a15787fadf4ce2d4027693eaca4edbfcee72a7e3874594d3409384df62c91b118d388"; + sha512 = "dee303e4b71814940f8910c6ed2686cb388e4c63d18fb88cda4437161f9fe60f65cb5c6bdcefeac4f56c321dc60a38ad77c2b1e2f83edfc54d8a87ec1f85abec"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ga-IE/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ga-IE/firefox-71.0b6.tar.bz2"; locale = "ga-IE"; arch = "linux-i686"; - sha512 = "2a6b8f3ecfacea21415daa0dfc8e3797b5c3567e7e7bb9ec933525d2a2e9e51dfd94fa81477878e2bca68f8127e32e387f43ac8ceb0c02622813baa5b17fcf08"; + sha512 = "408bbb2f7cb351505330132974267ceaa90a86aef27d6194338810c40770bbe54d72945b1cf54a2b59d87331480d5bcf5ed6c327c65e890126ae0003840e4f18"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gd/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gd/firefox-71.0b6.tar.bz2"; locale = "gd"; arch = "linux-i686"; - sha512 = "474d524fdab0d83bad98e0f05348d8db0f49c11f2e50e7b5221137359e268e37e662440961bb206cb2ee44aee9d07b4565bb8b27a696ae0df89ceff76309820b"; + sha512 = "0ab9ef7d43cde2ae8042ccc16b1f82552e5ec09d9ccf23291bc19b2d53524cca34bd61c090c317b0c5d53cd93d5a994b38a3abbe636338a7a508966f7404da2d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gl/firefox-71.0b6.tar.bz2"; locale = "gl"; arch = "linux-i686"; - sha512 = "ba2dfaa33b47ce1106496783bde98b1ff7cdb0171262feb8890a6ada29a67c34165b8b7ab58aabb89029d0571a6ff8cc83b14c310270e0e7a725ffb9fd7dccc9"; + sha512 = "71711dc42fc674efe4df9bc1eb3b3f51a6df9eeaa919d21b65585e62fc6fb33f357da9708f25b7ae2d111353302b06230fd5279749788d8c06d802fbbb6b38d6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gn/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gn/firefox-71.0b6.tar.bz2"; locale = "gn"; arch = "linux-i686"; - sha512 = "e5f5bf7d20eccc3d860ae2b8c6aed372944f23ed6d7a41774141cf1d67ab40c8bb2cf7e8e5931d37b9951668f03c6ab1271bb57ca7ead9aac52045244fbce93e"; + sha512 = "dd810f573d203220c588f1daf82628a62e771a8a5186d467675839fe94774f9c7a5741a8066b273d62f79ddcd9ac628248e651ffa379f7c7b13ec52375315573"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/gu-IN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/gu-IN/firefox-71.0b6.tar.bz2"; locale = "gu-IN"; arch = "linux-i686"; - sha512 = "9ca06aafebb4ae5a65af94c7fd4dc30bb0fb37d6f50a8a8d0b5d3a92cdbfb7a6a5fc609f5f9d93c47cbfd811198e19ab554d47cb7a03db5a9848135660b17f43"; + sha512 = "c63b5ace09a07075cd274bcc9487cc8c8f2ee738b42b5206354d997d1b29ec8c2c83f3dca89902e90c5bd7c5f96b2e4ae707bf6ef519d8f6d7a1d979523c5bb2"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/he/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/he/firefox-71.0b6.tar.bz2"; locale = "he"; arch = "linux-i686"; - sha512 = "ff9331af69d497b9886b7fbfe3954c0149e170973c96d0bd23252e0d9f97964f88f60e8258785337c8143a5abddfaa4da5d1222b27c42e38686ec44c738521a3"; + sha512 = "c46460435482c73884d62ef77c8f92d3b09a2bd4b4485b1ce4f48d80e9695615df42869f1b5cacebd7b9062022cd7868bf25ea0995457490057667144608a4d1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hi-IN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hi-IN/firefox-71.0b6.tar.bz2"; locale = "hi-IN"; arch = "linux-i686"; - sha512 = "d50d6887657b6dd61db4d53c0008e42850000d56a56b53532900cd6384c64d029a7a276386a5b46aa74b05c5597a4782f586b27cb01d34058c124c5bb58faec9"; + sha512 = "22e6d02c3934c6ebd7bee848672ab28d8363bc178646d33254e9fcbbd6790c92b121b36c429b6aae422e4cbdeec26158f0a1533dfa601ed465659c706f7b934f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hr/firefox-71.0b6.tar.bz2"; locale = "hr"; arch = "linux-i686"; - sha512 = "d5c5a069cc845544cdc905c9ed3083329b75e367c99accf1986a799a6f69f081565ed0c9e5bfcc6ea9e5c4b606262e60a62be6d4271267094c5aa701f090cdfe"; + sha512 = "f07d9a3e06a4957a0d614bc45578c497a9ef2f21e39132943840d6bd6d51aafb5a88925fb9b6348f1de55ef831f14a20939685fd79a7dacf0cec42e6281483ef"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hsb/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hsb/firefox-71.0b6.tar.bz2"; locale = "hsb"; arch = "linux-i686"; - sha512 = "9b2b8198bfad4f9f1bd5808c2d696abb1473230afa20e42e216c6616821a98cdb6bea6b92efdc8280892e04a0c1b6a967adb9c69fdee9f9c1bfb4f6fd4d17da4"; + sha512 = "5efb205a729e7ed3d16ec3459f544b138fddfd70cf7494b12e31c9879cde18ba0c2f1ebaf2b9085a9af5e17aa066b48a4e52c959627eeddac8d025bce7924934"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hu/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hu/firefox-71.0b6.tar.bz2"; locale = "hu"; arch = "linux-i686"; - sha512 = "bb189556077d8490596acf9433146923ac6a68e26d804fd6946a0af1b247342f5140693d777b9dcda41972ad2ca6773b362381ffb9fecb58826c0353511065e2"; + sha512 = "4cc9d7c92e285d9100df3ff3e9ce0f8dcf803b540dd8c87835179544dc9f252eab68135d0f67f0626829c918e8ade6826a4ad87da69efcb23e36a85390009217"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/hy-AM/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/hy-AM/firefox-71.0b6.tar.bz2"; locale = "hy-AM"; arch = "linux-i686"; - sha512 = "a295c182fb7bb80d21e551156e8e1d77327311274e22eca16f4640e833a4db21597e3e4b5f64e2d39dc40bca387497ea78e2fa198b760062a33b1cae86c6405a"; + sha512 = "11c6a61219789b23791461f6f4ebba4e726e5dfc53b7fb1ae2f23b602b75d770edc8399f55bf2dadb863fee5953cb118ee2ec931c3b9a5d4df3b307526a89619"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ia/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ia/firefox-71.0b6.tar.bz2"; locale = "ia"; arch = "linux-i686"; - sha512 = "9a5f01f6164751f0ed8cd34e9d792fa889a5a7ea9eefcc3e8afba20ed419da984db0983126122c8cc7770f0b34bdf1c39695632f737aa83281b01f8f713b43df"; + sha512 = "feebcec542b539c41b592116c5dfba3b88179d87d0a83090641079a1705b7c275c1fa8c7bb8dc31ed0a06ec62acf42dd2e39700f6b71b408182870f8c2d971d7"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/id/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/id/firefox-71.0b6.tar.bz2"; locale = "id"; arch = "linux-i686"; - sha512 = "3073f0b719b1b4d71eb07b9f1a62f51176377579cdd8cdb1c8ec0876fc820289db29cb13f049058d0efcb955c15a3c377c4496c458b4b3fe438dcbdaa9d6fc07"; + sha512 = "dba5e3ee99597d7bb615473b9715b1862bde5e45a631320e6a4c50f1b497a0c42f585ecff67d6728075821f19c83d9497788f7e4cf34573b4139eb2a164de004"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/is/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/is/firefox-71.0b6.tar.bz2"; locale = "is"; arch = "linux-i686"; - sha512 = "15a8593945e4cafbbd4a1b274c652fb121cdbf567031f6919e84767df65eb4f4e42d411b4799b8e5299d6215dd3f1cfef5104c9197c1ff1feb68f89e0bcfa2b2"; + sha512 = "d2078a7faa0edd5f5210bc5e4c7ee53a303aa6420b8ca8dc1ab764e17e141acb8412bb732457946380c4cbb0199b672a0841cdba3097bfd6e69bff6947bbbb97"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/it/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/it/firefox-71.0b6.tar.bz2"; locale = "it"; arch = "linux-i686"; - sha512 = "55c688602fb41d39cf4e33f96b57ff98d466623ca80281564ea6a4384b1985d29436f7288f56e969151d9873cece10422abf753b262b5ac6e283731397e53e91"; + sha512 = "55787b6d2cd8013414897da4b279e0937d54488bcef35c63753633ec0f56c8dc0c10508f06e90146e3c4ebe1f381229801a994cb497f2fc1bcbf78f8abab1ac1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ja/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ja/firefox-71.0b6.tar.bz2"; locale = "ja"; arch = "linux-i686"; - sha512 = "f350eca93c6110e8a258802be4ff1cb8b07e819f2fe3b24e912f296c4e18cafed279ad5ad8eb093f3bd7945b0c9cf5466d673e5b4ae342a3b2d0e418e5e6c86c"; + sha512 = "02a316992254fef959a1618dba98730270cd751074330e6719fa45ac1a8b2c32cda90ce11b453b950ba4e1c679035c582aa472119676c5ea1bf623fe70367bc6"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ka/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ka/firefox-71.0b6.tar.bz2"; locale = "ka"; arch = "linux-i686"; - sha512 = "ce392f476b5eb00620c2170cda585e4cf73416a5d564446e65e39e0deea538825f3d91e91e5624c353b163983efd0bf844baa9a52e3e308d9e232d83f9167d0a"; + sha512 = "f5d93a5c47ba9eb7b1deb7a590a9fdf3d3567cfadae779c44c6360245f371f1feb14d64eb70d1538426a9a6005885d115826c11f673006028eb1b484bf0568ff"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/kab/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/kab/firefox-71.0b6.tar.bz2"; locale = "kab"; arch = "linux-i686"; - sha512 = "ffab6510cd2b68b0b4b57ae1ec727e391a0330cf44c9c1f9fb8bd1385c8dc86f1de5dcc5712b0f0dfa5e25920eadd6561501579ee5d15ade22fce747ba88b988"; + sha512 = "718cce9a90139abd0027c7c730ac5e5db95922d0960744481e05a4557926b62683df71052b5162ac614648def658909880de1ba5fb71b5b30975b0f97fb7013d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/kk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/kk/firefox-71.0b6.tar.bz2"; locale = "kk"; arch = "linux-i686"; - sha512 = "f9aa18138713b9b704c8d0d3fd8a5d2c5f802d3b23b7ad89d7f18eb885b9efeee53b94117bf7492a4fe83be19b5052d5ec6fd8f203d96f7988e5cb1eb524f496"; + sha512 = "1ec72e2a607b302878c30d78135ec7339d2e4a88f1e1f638aad0d21818c638bc6980fcf9b2319d6c1b4a32814a51ace010fc4ec1795415275ea0c6f7782755fc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/km/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/km/firefox-71.0b6.tar.bz2"; locale = "km"; arch = "linux-i686"; - sha512 = "1f0a4ba8942210a0ffbee2ec09f79d628638f58e26bc83d175d0b95ccb43636c976fba556720b39b42c37ac2fe67bd52c28f0a2f672706d967d09a26c3e446f0"; + sha512 = "bc378c99b85df9c63e03824f3462ebbd84ece0b10eb4676d4e4c7deecdcb73945c63087628605a3370df4bad9b978c39728a157cfb96eb038faf9a3c65c49dda"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/kn/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/kn/firefox-71.0b6.tar.bz2"; locale = "kn"; arch = "linux-i686"; - sha512 = "c23fc4fc298f88f4aee69680156d95fc98fc311630586d5a2a964c8fb74f2b56483e0b4267b90b1a3f37815ecb379e6583e7c801e57a94236d35e0e68f68bcda"; + sha512 = "d7c902977156686b23b29c02386a743974e9d903cdd8b15b6761397e0fcaa94b83052603d9c807fa6914aad2101cb26fea6e767dfa101ff7b610751403786c4d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ko/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ko/firefox-71.0b6.tar.bz2"; locale = "ko"; arch = "linux-i686"; - sha512 = "4dc91ea327d7c69b68bb065eae6ef812ca01c32dcc22048867e43130b15a15edeac505bbf859d96185f90fb3958c74fb0c3e8bbb58c4a0d7856837f864163d7a"; + sha512 = "a7424b79e8d1ab631dac6dea38bf999cc7c998fc8dc96ac4955c00205d0ca397a57c37cafd74fa431f29e88feb0fa5abc1b8e46dc11d36c932ad1a0c4637ade8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/lij/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/lij/firefox-71.0b6.tar.bz2"; locale = "lij"; arch = "linux-i686"; - sha512 = "3588c1b35428dde09cc0262d3730407ed4bcf821b28556f7b05fb60250eac006e12ef8a929327a80429bab195632f9f40771467e572dd6821c646338d3c7d862"; + sha512 = "d80efe8613a1f9d0ed95a71df8245b29e078a3d7eb1ef574953a35018a3198a2f30cacf17467857ec7a943b174538a528cb19b3f787ae5411fdc845a9ace085b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/lt/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/lt/firefox-71.0b6.tar.bz2"; locale = "lt"; arch = "linux-i686"; - sha512 = "972bfbd93200dc87a6f9cb246b30f301c8db216dc9067bf40f42cbd73ee5795cbb276ade5ba44a6e3df2239d481ea305f4499fe88f42a0f7d0071f84dc2fc9f9"; + sha512 = "b4b93a59ea67315a623136629d66baa46e389fe01d1a6eb2cceafbc8e25570dd91d830fb3a7120c7c59e42d7ce24c23109aeb6a289756797214d6ca80a1661ba"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/lv/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/lv/firefox-71.0b6.tar.bz2"; locale = "lv"; arch = "linux-i686"; - sha512 = "c7a0a65c0649059cf35b394b033b965b3d708531f6a8414d5fead08f2b5e5fd907c903c23e22e9bf5cdc78255e0215dfe34ce45ee96fc619fbca87fe086ed32b"; + sha512 = "f4e2d4cb15586b96f66818f21b35ee368acbdb5dc546b1df5aa20fb59ca5d4a2dc6ec2b08427af1622756369d67997e9bf8130a6370696219dc6f44e3a2ac557"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/mk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/mk/firefox-71.0b6.tar.bz2"; locale = "mk"; arch = "linux-i686"; - sha512 = "677e6238580a561fa86dbe1ba8d293aec4d51ee96adea11871e169e1d6ed0c1de29a6a44c374c87aaf93b00178719f142b44821d3f2f866cd43308f7ddc95784"; + sha512 = "ef1f17ccde55e097ac1eb8a522749d1b8c4f10a45920fd9771676758f59b396372e38b420c11614cbadcf26f1d109a9051ce8266d567c7064d9fdc771153446e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/mr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/mr/firefox-71.0b6.tar.bz2"; locale = "mr"; arch = "linux-i686"; - sha512 = "1457c464363505e787367bad9b90e6396da7e5d0840618cbd02c1996985fc42af4279ad9f53b6f0014c9f0296f1912ca5bf7832794048e69cf5a7d5b89ffe811"; + sha512 = "c3a8924dc813d9b34f55e87f984cc735156dfc1b1f840f5867e0539297ab3ec09c008bf44978411d7fc821d5671a49a0a53acde10eea847d2855fff80d40ec29"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ms/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ms/firefox-71.0b6.tar.bz2"; locale = "ms"; arch = "linux-i686"; - sha512 = "54d0c0a9a17534891267a3dd89682a1ca24dfa42e13c0a68ca67ac800c210f77a1b504d2ea0e16293df31ac716dac2e646fddd6eb4a5996e6cfc9fb578391cf2"; + sha512 = "1186bd1679a713d2e79d11422332fa9f3e600c1a9ce1e8e26338e06d5ca97e2ee1d2f0dc657a78fa9590dd0421545cab3b08f4cb000af37033cb06c1b75adeae"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/my/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/my/firefox-71.0b6.tar.bz2"; locale = "my"; arch = "linux-i686"; - sha512 = "21a851362356c568d93a24e7038ff30c376d712d0ba52d9eb51ad325d43e6a36f3565b48385b54bd90f846d03b626e96e002264d10741005403ab6d30364feb1"; + sha512 = "fd99f7e218ebf570ee1dd8473fe9896fce2855b591aa25cbe03f5f78b0e36bc4587efe5630efe95023a16fd87dc5c221916bcaf0a5423e2a7d3f1fbf015c3c07"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/nb-NO/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/nb-NO/firefox-71.0b6.tar.bz2"; locale = "nb-NO"; arch = "linux-i686"; - sha512 = "d625f65dfe643608689b2d7858f06b3e1b06636249be516a76798bfa728827592a543e5e61279c7b8a5e8a0c07a17510232bccc98fa8fdac3f98806b94582db3"; + sha512 = "fcf0e084f20ae15c820193180a541576968cacb0bba58821547811c761cbe4949f0e8e93bf0713e0d21fce885c5414ed3ff84925cca51e1ed4f5d8df520ae53c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ne-NP/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ne-NP/firefox-71.0b6.tar.bz2"; locale = "ne-NP"; arch = "linux-i686"; - sha512 = "5d85049a3d8f11b164d091cd7925d456e54db63fb93883e42306b1bde48c502e3ffab120c4f9d05de688086ab94470d4eed827f24689cb1872cdaeca6bef7233"; + sha512 = "6037ec1a95694c099850629d0048612984e9248622bf7527ffe4fa143644dce7c009d849b46e1ec55d4d33b306fdf9fe3d3ccd78071f63fa2cd7f6038705c033"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/nl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/nl/firefox-71.0b6.tar.bz2"; locale = "nl"; arch = "linux-i686"; - sha512 = "9716bbc5c5faa1ae284b7182f0473823d265993dc43c4ee59d6c6c17ada6cf7d898dda64cc7647ff65f46984aaf1658a5a3e2c50361d5a731ba6b82844d7b432"; + sha512 = "ad3ad9dd0df03c5e702f33e67810c32eff250f951970ece9517f1869fc95335d65e50547b45073051b0113b5bcd071052b4a3ebfe1cfa5167ebce4835a976c7e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/nn-NO/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/nn-NO/firefox-71.0b6.tar.bz2"; locale = "nn-NO"; arch = "linux-i686"; - sha512 = "f227cb22ea4d15bdd4b20f2096f70d985cb3d9e174e464462c718a0bc6f533bc0c5bb098dacdb1a8ecc6fb07acd22f5dcd365e266208f75423677eb2bdf4ad65"; + sha512 = "efdcbf3b646ab11d0671ae09f15060e3f88462d869aafafdd7b2833e841753e1abbd5c115a94a1c9214b277e2d12a85600a425be3b913d1a66b49278b4c762b1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/oc/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/oc/firefox-71.0b6.tar.bz2"; locale = "oc"; arch = "linux-i686"; - sha512 = "0e116e00a58d1086093e321a188c2c060f9dce3374cb7152d753064e170eca302c0698cda110ed12a4e41b669c242e3865165bfafc4463d1ce583d0854e16075"; + sha512 = "3806bd7ea0343a74fa4d66d6ed30090f9bf33ef3e2bb1c40a55a3ed38be0ad24bfe6d35a4c0bdadaa9100404d7d704e0dffb6f6887210523394fd18c09c6cb4b"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pa-IN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pa-IN/firefox-71.0b6.tar.bz2"; locale = "pa-IN"; arch = "linux-i686"; - sha512 = "9966030d3fdb5da3e2f943078294615d64fb019ca67e8fb335693580bd100f6f10ad760b50f7d26c68098a3080e87359dcb1c22ab657c43c23fc2cef3738eb26"; + sha512 = "09a4b17b01ad77898499b17a3e8c174d1f35097def6d807cd602a5539edcda49c10db27fe98e738a78bbc5932f4bc0d956e3ad296dba79ff4ccce6fa50ae2f4a"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pl/firefox-71.0b6.tar.bz2"; locale = "pl"; arch = "linux-i686"; - sha512 = "ffb5a5cffab404ca1685f925580c47eba975d7a26af1ef31f05cf8f1e0ea72d130042f9b11e69427a2ab8b86fe47e279040af95a18869bad0465869c43a988bc"; + sha512 = "33996f6536932629f0d55c17f93f79d81e9bf2a83246fa5587ab8304ce4ce5b2c7e7151d447701abf3c359171cb45855b28ea3b5fd5c64f65dadcdca80ab060e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pt-BR/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pt-BR/firefox-71.0b6.tar.bz2"; locale = "pt-BR"; arch = "linux-i686"; - sha512 = "14956079e61152b99696ab29a92b57a3671519c4f58111999587ab796dd8e7d6805828e8d14a59bad28218c136f282ef052e56daf024ca3923ead95d7eab0af9"; + sha512 = "6e579f3e70bd30174422aeadd39fb0be373cc5d0f1e34fa75209177466c75710f90a0a3165980f794f4d7a2f701a59b2ea4fdc3cd8e39ddc09630442e09b44d8"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/pt-PT/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/pt-PT/firefox-71.0b6.tar.bz2"; locale = "pt-PT"; arch = "linux-i686"; - sha512 = "cd5fef4336203fdfbd8af89a3cc17a01e88ddd4fd670c3b778b1fe228325dd35fc64ea6d0c85681cc1bbb51c588b53972c85746d9ac0c860b3143ec93a344361"; + sha512 = "0ca174389788cf9bbdff7b3193c13cb2f1aa83d1d7f967efbda3855d8606d2318b840f65f25d0b7abb5e1466b8b8f7bdf1f4d3a0b33379343510838f447de3ad"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/rm/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/rm/firefox-71.0b6.tar.bz2"; locale = "rm"; arch = "linux-i686"; - sha512 = "33d608066859460da6a50012fad5a76eb78bc4a3f8565dac1753b80b86755432340c6e9b5e13c319c24d89547fd32567ad99853ef7f954aebda9b15e2eddd064"; + sha512 = "9c2c762724c503fb81e9e55fc3e333caabb81e6d063a756385b51658866c58dc07190f5bebec27e317731145c763ac7aed7fb53692de15c68c78260e3f518193"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ro/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ro/firefox-71.0b6.tar.bz2"; locale = "ro"; arch = "linux-i686"; - sha512 = "18bb7599738aff68f75dac1a6cd87e6a3a4a326ab64e9bf36f28d3e4890340c07e93b938d77ee4432548c5880b79862d9c472e283f638aa9e2d977ba8f54f686"; + sha512 = "80b5f9e7d1a9ffaefcf28f7c5ff4dc2f5d8ebfc9274d674c396bd2569e5309ba7e224da176c84a943749a605ca6634f7441c8f81225f6f8ed4912ca48409bc5c"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ru/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ru/firefox-71.0b6.tar.bz2"; locale = "ru"; arch = "linux-i686"; - sha512 = "c1a0c7b717740167f9906a2bec1d81dca2754c7a10f2139bee269bcad6b9d563f5ddd25d05bcc7a0621b910366853aa43663bc6d711fc1fc3b53e407dcbf9805"; + sha512 = "63910164184c3c81d22c1d6b4450502eca4dafcbe62b015b3bcd3f47772ab482d979f2e34f050e219b5a87466bf3ebeff896cf27055669a2ffcde313e1948701"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/si/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/si/firefox-71.0b6.tar.bz2"; locale = "si"; arch = "linux-i686"; - sha512 = "e807ae18343102df9030189f6e067062421a64f1fbfa9dd0d9e5590e727c049ae849dff2fb581a2f4de892fed21144a792535df188dd08c190c24dd1a58dfbe1"; + sha512 = "79dd2082a8de6ff7ae9f3f47d5372b0a234441dadd428cafec544dc527b43d01434c49f5cb47da2c689b4b9cf8a45aff7f73064aba470bee84bd2b13af8f1aa5"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sk/firefox-71.0b6.tar.bz2"; locale = "sk"; arch = "linux-i686"; - sha512 = "35f1206c717f5475f4af6ac74bab0b691b21789457496c1226d6ace5d4d0f8f88e2c3467c6a01eae49c013b972e07f12b577be6543219b1a274340639799b2a9"; + sha512 = "bb2cf2e3546f5d2b5a1c163165ff37461d4aae87db6b7f2b9e340f56dc60c29d806e2b699ebca6b00c1cf1bc8d74db2f72fd3dff9c4a7aeec0a03d93a23af73d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sl/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sl/firefox-71.0b6.tar.bz2"; locale = "sl"; arch = "linux-i686"; - sha512 = "d665b46a8e6569e8e0e41411e647d3a27b172cbde22e3d9157a5610dfe559d6648adcd65418c45256d8fb9f56022ebf8d3eabadd9b8414f32565c421bd74e371"; + sha512 = "25f0f66b27f03c5b2e69f40da350db53a78b756a1ad7dc47453c33a2f6c62d558572f47c8159701805513baaa5b598d31101b7fee98f87f37366f85703033927"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/son/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/son/firefox-71.0b6.tar.bz2"; locale = "son"; arch = "linux-i686"; - sha512 = "e0b22c18364e4394cf982f2cac370bff79c5440a949d5e69ef753bdcab05688b591f3d54e2721507c502f05a094436fcb219c8fa4be33462ffc7fd5090506944"; + sha512 = "2dd69052b1ea296e9c49a72a4c2f6a00c35f168ad162a86f101a0c6201a19aacca3ec8f98f2fdb13571359a2d6380d9ea9e33be9ebf74271f117becc72b09152"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sq/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sq/firefox-71.0b6.tar.bz2"; locale = "sq"; arch = "linux-i686"; - sha512 = "75050296533af930bc1fa4602246b9d6db0aa48d1fce9a53212fc11041a331236fa88f70d8179c9961f09810d06df297d9dcfce791357e8c7db956c160019f67"; + sha512 = "bbb9241e921837d7393ac562078be01085ede14e73f1179c6e07f59360026f6d5c2220a0067fed096526bb39660dfcc66100c8ecedc42dfa89b93499536720cc"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sr/firefox-71.0b6.tar.bz2"; locale = "sr"; arch = "linux-i686"; - sha512 = "ceb21bac8b36872c7ec47053846e20376884678e7017632164026f0b6a8cc56416cfc4c693229964e287381739d5018836da20f8e5d636aa9607c80567a0c36a"; + sha512 = "1cea129186274ba3491829882bf51eb4199446b3c894b4c1e5bd010252564d9e0724401e700692bf9c2939074b69751bc7fc988fc63da5f4726a0e4d62837c38"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/sv-SE/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/sv-SE/firefox-71.0b6.tar.bz2"; locale = "sv-SE"; arch = "linux-i686"; - sha512 = "a92b5d28645dd601dd5f8d4892d210bdc284ca5ef6023f3e6660d6519fd8fdf1212e757f31048522009021f00716a1faa3da6e818b3f39ac4b96d68564aabe8a"; + sha512 = "6e7adbfb820f093fae4c2f2ea9f74e5d1ed91cd5a0f84ef3d53a2efe966af82fa5eeca32c3045ac1e575504e4322ed2aeaa5175d7ded1241d59fd7cafe42231d"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ta/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ta/firefox-71.0b6.tar.bz2"; locale = "ta"; arch = "linux-i686"; - sha512 = "4935baa87058d2c2f87bc4e320d7fb1329c2380c93a72834783d5884e3e374a5b9f80b66fe1824b9d7003ba41b2f10648d8d257c34f71314de0ae9959233637e"; + sha512 = "9fbe15bc81d2c7ea84c50f77e209b07df049d740ce0985fe3bd3457aee87bb59ec60bd61700909986253d022332e536139e6c637d4cf7ff67248397fd13ec76f"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/te/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/te/firefox-71.0b6.tar.bz2"; locale = "te"; arch = "linux-i686"; - sha512 = "5aef655c7d736d5c4cb91a6ba7c0fff7c9adee6dfd96b57f5c1f968d258fd7707a1b1ef0fabc049f2902085afd55455d016d9a786e94ef836e6a6379f33bb577"; + sha512 = "5ec78316c5f940dad34b8a847bb7057196dedd28235dda8d25f9155b2e6a660eb3639a95699cb8d8dbf90ccb2cb8d840f96d6f6821317fbe5cd92773a745dee1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/th/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/th/firefox-71.0b6.tar.bz2"; locale = "th"; arch = "linux-i686"; - sha512 = "1bec6b20ae731e982a4be6aac81bbfad2d27add2fc1339401807fb41af36a27391499677355f0737a9230466e27f34bd5e97f4b3697decd56ffe854b932900a5"; + sha512 = "98caad307d4e72c3c1225249055b9039582a90c0a68b95c6ab4781c3e676833111de3dd88f4bf6280569e32ad8a8413cc7943a0e4b1c22abd1e59fd8463225de"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/tr/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/tl/firefox-71.0b6.tar.bz2"; + locale = "tl"; + arch = "linux-i686"; + sha512 = "908a3bdce2d2b803ae50adf856671f2f1a2af2c4b7c603e6be166adc13028fccf2f8b6cee2dbafc20050d6cc1cad52ac76135200da32a859657a7f6ad175fdf3"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/tr/firefox-71.0b6.tar.bz2"; locale = "tr"; arch = "linux-i686"; - sha512 = "ccb0537f3cc85331037070761e4b450bdb07215d024052d3b946b96deb89ae30333c3b90e25100bca6cc58efc2f0f5b864daf6b353dbe7655e71106b7d5c0784"; + sha512 = "c5cd41468c8a41b711301b05716840df7b9f536f435bb5938f46a6d7affc722b8c12bb6d9840d6c47e07b4dbd52d94f8c189b728780086114f8e07037282773e"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/uk/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/trs/firefox-71.0b6.tar.bz2"; + locale = "trs"; + arch = "linux-i686"; + sha512 = "f83946fa8d121f8dd3a51707cf1fe25e4731fa9ee43d6889ac36319d4df8c9339eabe95db2ea5c01064fdeed8331ceecb3e13678b012e25a215519b0bab91f6d"; + } + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/uk/firefox-71.0b6.tar.bz2"; locale = "uk"; arch = "linux-i686"; - sha512 = "a3490dd08645d2bc21a0a7176b1e9ba2da47b4d2a5ef45472715dd6905eb1cb1956849fdd006a4d370c0e58744e126fb1902d4997c7280fff256885becb39877"; + sha512 = "2692fe4c88ca6d23e8d4aacaeb939b753393543bb1da2265c58fea5c587232c2b63043dbd6f7eb853c3617d30e707b99782fa683fd7ec4de8ed18fa748760347"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/ur/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/ur/firefox-71.0b6.tar.bz2"; locale = "ur"; arch = "linux-i686"; - sha512 = "a021c72eb298bce45097ed0d2c9aa2ade86b06668bb0d22e1832b600ef15691680b9836598467ae40d20203bf07246ed85485d0f2b3d145452725544d62b033b"; + sha512 = "a8865d0c69a3f72e1b9adc7cf63a6987c4e1e46cdfc4ac31f26c48d14c175c0c1784933458eba132be6e1f580764846107df905eec51b071492b823c5d312db4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/uz/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/uz/firefox-71.0b6.tar.bz2"; locale = "uz"; arch = "linux-i686"; - sha512 = "ee54245bbc0845e680f5b02a2b217f2e253daa99e531fbf721a0f9dc03e68fe77371665bf2db7aad94748ad5c641bb93c7e3bf43f6e3f4e53b7ec91306d69f7b"; + sha512 = "4cabb95e02a86579f95937b149dceab678b6bc117c8684d9204efc5d9d05fa4b04372d38da0a17e66b7e69c9d5165b1adfa43d45a2e7bb6189e135ddf95fe3b1"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/vi/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/vi/firefox-71.0b6.tar.bz2"; locale = "vi"; arch = "linux-i686"; - sha512 = "e14901e594346298a43cf9b7cf70be1cd26e6f19415fd11c09e5ac8eca7a43fb07d7b4f4e238f4b13e986e1a9e37f23d73e456990403f2983a9939b8bec455b5"; + sha512 = "0ddebe6d31fec59f2c18541082d0a0ab0dcd0ee3ccec2e895aa026781297676c31f0a58aa2bc395c6764a0b3b911a940e00cbee159d4c40f45554a6f07e12ea4"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/xh/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/xh/firefox-71.0b6.tar.bz2"; locale = "xh"; arch = "linux-i686"; - sha512 = "a256c23d0c478dec86c5a3413c7e64c61e7e4a519c5e1a343b457481543529354d588b07f1b0ea37450c2d3d317145796401c05988ed6d35f545612d6c5f87f6"; + sha512 = "178c1fe904c66c226c7e2ccbe1142d101ad9e8ae59aed276535d7dd9afdaea17e23460c27a656322bd23a72b9764c3359af63ac16d3d11fc495712f70179aafe"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/zh-CN/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/zh-CN/firefox-71.0b6.tar.bz2"; locale = "zh-CN"; arch = "linux-i686"; - sha512 = "a10aa5ef7b4fb6e4e3ac64a7d25c2d329eb42a0e5e0f680d786c9215d1f536a9daecbe5df31fb8484eed1471ccf89a596a5d2f97ae9875686b6f394f2a3c25ae"; + sha512 = "a648144767874c9dd0a6c66deeb4397b48a047a7c72168bc4597b2a0e30c557d60f8729400715b1cb003027f727eacd8161b0b19d7d2ae5176442de0e220bbfd"; } - { url = "http://archive.mozilla.org/pub/firefox/releases/69.0b16/linux-i686/zh-TW/firefox-69.0b16.tar.bz2"; + { url = "http://archive.mozilla.org/pub/firefox/releases/71.0b6/linux-i686/zh-TW/firefox-71.0b6.tar.bz2"; locale = "zh-TW"; arch = "linux-i686"; - sha512 = "790725d0674be5ee347dbef3c2f0ac0d017cd972ae32dd318767535a4006432c5d56ef2e13a602f705fb177476ee120a5327dfa3625b6966a9fed8bb04f50c04"; + sha512 = "c401b4fa658e8a0ae045bcc3488695cb619d8db7fb2ac74d7365e9f2c7b2fe7be1e2eaa63ce8c426f3c3e5d5a77f4ae019e6982879cca6d4aa6b54264d414078"; } ]; } diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix index 66b947946cd..07234f59a8e 100644 --- a/pkgs/applications/networking/browsers/palemoon/default.nix +++ b/pkgs/applications/networking/browsers/palemoon/default.nix @@ -13,13 +13,13 @@ let in stdenv.mkDerivation rec { pname = "palemoon"; - version = "28.7.0"; + version = "28.7.2"; src = fetchFromGitHub { owner = "MoonchildProductions"; repo = "UXP"; rev = "PM${version}_Release"; - sha256 = "0i6fy1mvjy6vpqnvhh516mxbv4d2z73yghk3frln4ql8zavba7qq"; + sha256 = "08w90269mwcqsdhx4vvp18c5iccvzqhaaw6aw7w0nppf2f2k8lri"; }; desktopItem = makeDesktopItem { diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index c8d8d411f2d..f3228b11eb9 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -17,11 +17,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "2.9.1705.31-1"; + version = "2.9.1705.38-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "113bycfygyx09bc5bgsmdniffp3282004yrl7gr16dssxrw52al2"; + sha256 = "0jj2kfdl4788l132ncz3jf1pnjig7dc9gaxjmgv51n1ahmmx8shi"; }; unpackPhase = '' diff --git a/pkgs/applications/networking/feedreaders/rss2email/default.nix b/pkgs/applications/networking/feedreaders/rss2email/default.nix index 89eef9cae4c..07f3f3fde0a 100644 --- a/pkgs/applications/networking/feedreaders/rss2email/default.nix +++ b/pkgs/applications/networking/feedreaders/rss2email/default.nix @@ -4,13 +4,13 @@ with pythonPackages; buildPythonApplication rec { pname = "rss2email"; - version = "3.10"; + version = "3.11"; propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ]; src = fetchurl { url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz"; - sha256 = "1yjgbgpq9jjmpywwk6n4lzb2k7mqgdgfgm4jckv4zy0fn595pih1"; + sha256 = "1vk5slp2mhmc1qj30igqkyq3z5h2bl1ayhafqrjapa6cg6rbvhrn"; }; outputs = [ "out" "man" "doc" ]; diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix index 3375bfd04d6..6bc2554d8c9 100644 --- a/pkgs/applications/networking/gns3/default.nix +++ b/pkgs/applications/networking/gns3/default.nix @@ -1,16 +1,16 @@ { callPackage }: let - stableVersion = "2.2.0"; - previewVersion = "2.2.0"; + stableVersion = "2.2.2"; + previewVersion = "2.2.2"; addVersion = args: let version = if args.stable then stableVersion else previewVersion; branch = if args.stable then "stable" else "preview"; in args // { inherit version branch; }; mkGui = args: callPackage (import ./gui.nix (addVersion args)) { }; mkServer = args: callPackage (import ./server.nix (addVersion args)) { }; - guiSrcHash = "0xghldzk126ly49y7drp241w7c0h9fb0ags9blk0rlq99i72as78"; - serverSrcHash = "0iphs0w6r9s85cgd95bh6jd0224ywilrzb7a4jjwi38z7a7id4gk"; + guiSrcHash = "0i335fjbadixp39l75w0fl5iwz2cb8rcdj2xvx1my3vzhg8lijfl"; + serverSrcHash = "1g6km8jc53y8ph14ifjxscbimdxma6bw5ir9gqzvkjn39k9fy1w6"; in { guiStable = mkGui { stable = true; diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix index 9af0f1a6bc6..7c155181c50 100644 --- a/pkgs/applications/networking/gns3/gui.nix +++ b/pkgs/applications/networking/gns3/gui.nix @@ -1,11 +1,20 @@ { stable, branch, version, sha256Hash }: -{ stdenv, python3Packages, fetchFromGitHub }: +{ stdenv, python3, fetchFromGitHub }: let - pythonPackages = python3Packages; - -in pythonPackages.buildPythonPackage rec { + python = python3.override { + packageOverrides = self: super: { + jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec { + version = "2.6.0"; + src = oldAttrs.src.override { + inherit version; + sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg"; + }; + }); + }; + }; +in python.pkgs.buildPythonPackage rec { name = "${pname}-${version}"; pname = "gns3-gui"; @@ -16,7 +25,7 @@ in pythonPackages.buildPythonPackage rec { sha256 = sha256Hash; }; - propagatedBuildInputs = with pythonPackages; [ + propagatedBuildInputs = with python.pkgs; [ raven psutil jsonschema # tox for check # Runtime dependencies sip (pyqt5.override { withWebSockets = true; }) distro setuptools diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix index 71223c6f512..db2e085c180 100644 --- a/pkgs/applications/networking/gns3/server.nix +++ b/pkgs/applications/networking/gns3/server.nix @@ -3,8 +3,17 @@ { stdenv, python3, fetchFromGitHub }: let - python = python3; - + python = python3.override { + packageOverrides = self: super: { + jsonschema = super.jsonschema.overridePythonAttrs (oldAttrs: rec { + version = "2.6.0"; + src = oldAttrs.src.override { + inherit version; + sha256 = "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg"; + }; + }); + }; + }; in python.pkgs.buildPythonPackage { pname = "gns3-server"; inherit version; diff --git a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix index 03bf3b3bbdd..983b8509dc2 100644 --- a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix +++ b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix @@ -1,19 +1,19 @@ { stdenv, fetchurl, rpmextract, autoPatchelfHook -, xorg, gtk2, gnome2, nss, alsaLib, udev, libnotify }: +, xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify }: let - version = "4.0.1"; + version = "4.5.2"; in stdenv.mkDerivation { pname = "vk-messenger"; inherit version; src = { i686-linux = fetchurl { url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm"; - sha256 = "0mgppa9qnhix64zp40dc05yc9klsc7qiwcgw7pwq2wm7m3fz3nm8"; + sha256 = "11xsdmvd2diq3m61si87x2c08nap0vakcypm90wjmdjwayg3fdlw"; }; x86_64-linux = fetchurl { url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm"; - sha256 = "0ra0y4dfx4gfa1r3lm6v42j7c9pf7a8vh12kxv3wkg3pvijwgdsm"; + sha256 = "0j65d6mwj6rxczi0p9fsr6jh37jxw3a3h6w67xwgdvibb7lf3gbb"; }; }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}"); @@ -21,7 +21,7 @@ in stdenv.mkDerivation { buildInputs = (with xorg; [ libXdamage libXtst libXScrnSaver libxkbfile ]) ++ [ - gtk2 gnome2.GConf nss alsaLib + gtk3 nss alsaLib ]; runtimeDependencies = [ udev.lib libnotify ]; @@ -49,6 +49,5 @@ in stdenv.mkDerivation { license = licenses.unfree; maintainers = [ maintainers.gnidorah ]; platforms = ["i686-linux" "x86_64-linux"]; - hydraPlatforms = []; }; } diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix index d79a24ea1c2..13ac4ceb138 100644 --- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix @@ -18,12 +18,12 @@ let pname = "wire-desktop"; version = { - x86_64-linux = "3.10.2904"; + x86_64-linux = "3.11.2912"; x86_64-darwin = "3.10.3215"; }.${system} or throwSystem; sha256 = { - x86_64-linux = "1vrz4568mlhylx17jw4z452f0vrd8yd8qkbpkcvnsbhs6k066xcn"; + x86_64-linux = "1d2wa13d750dd2vslnvzf0ibwjmf5s299pxq0rs2x98y2sabw3sl"; x86_64-darwin = "0ygm3fgy9k1dp2kjfwsrrwq1i88wgxc6k8y80yz61ivdawgph9wa"; }.${system} or throwSystem; diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix index b94ce269566..98ab5f56352 100644 --- a/pkgs/applications/networking/mailreaders/aerc/default.nix +++ b/pkgs/applications/networking/mailreaders/aerc/default.nix @@ -18,6 +18,10 @@ buildGoModule rec { python3.pkgs.wrapPython ]; + patches = [ + ./runtime-sharedir.patch + ]; + pythonPath = [ python3.pkgs.colorama ]; diff --git a/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch new file mode 100644 index 00000000000..4ff1283b5e3 --- /dev/null +++ b/pkgs/applications/networking/mailreaders/aerc/runtime-sharedir.patch @@ -0,0 +1,43 @@ +From 7ea68a2eef026723903d72f54ca54b629881ec06 Mon Sep 17 00:00:00 2001 +From: Tadeo Kondrak +Date: Mon, 28 Oct 2019 08:36:36 -0600 +Subject: [PATCH] Fix aerc breaking every time the package is rebuilt. + +On NixOS, the SHAREDIR changes on every rebuild to the package, but aerc +fills it in as part of the default config. Fix this by not substituting +@SHAREDIR@ in the default config until runtime. +--- + Makefile | 2 +- + config/config.go | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index d3072d3..17ca0be 100644 +--- a/Makefile ++++ b/Makefile +@@ -24,7 +24,7 @@ aerc: $(GOSRC) + -o $@ + + aerc.conf: config/aerc.conf.in +- sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/aerc.conf.in ++ cat config/aerc.conf.in > $@ + + DOCS := \ + aerc.1 \ +diff --git a/config/config.go b/config/config.go +index bfcbecf..2f4e703 100644 +--- a/config/config.go ++++ b/config/config.go +@@ -377,6 +377,9 @@ func LoadConfigFromFile(root *string, sharedir string) (*AercConfig, error) { + if err = config.LoadConfig(file); err != nil { + return nil, err + } ++ for i, filter := range config.Filters { ++ config.Filters[i].Command = strings.ReplaceAll(filter.Command, "@SHAREDIR@", sharedir) ++ } + if ui, err := file.GetSection("general"); err == nil { + if err := ui.MapTo(&config.General); err != nil { + return nil, err +-- +2.23.0 + diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix index f9b1039149c..5f8844969b2 100644 --- a/pkgs/applications/networking/mullvad-vpn/default.nix +++ b/pkgs/applications/networking/mullvad-vpn/default.nix @@ -40,11 +40,11 @@ in stdenv.mkDerivation rec { pname = "mullvad-vpn"; - version = "2019.7"; + version = "2019.8"; src = fetchurl { url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb"; - sha256 = "1hjndcdkin98l6jv39r98zfw33qg0gnvlv8q80qsj5x36a19d4v9"; + sha256 = "0cjc8j8pqgdhnax4mvwmvnxfcygjsp805hxalfaj8wa5adph96hz"; }; nativeBuildInputs = [ @@ -72,7 +72,7 @@ stdenv.mkDerivation rec { sed -i 's|\/opt\/Mullvad.*VPN|'$out'/bin|g' $out/share/applications/mullvad-vpn.desktop - ln -s $out/share/mullvad/mullvad-vpn $out/bin/mullvad-vpn + ln -s $out/share/mullvad/mullvad-{gui,vpn} $out/bin/ ln -s $out/share/mullvad/resources/mullvad-daemon $out/bin/mullvad-daemon runHook postInstall diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix index 27ccbf6d88a..974d1e5a077 100644 --- a/pkgs/applications/networking/nextcloud-client/default.nix +++ b/pkgs/applications/networking/nextcloud-client/default.nix @@ -18,13 +18,13 @@ mkDerivation rec { pname = "nextcloud-client"; - version = "2.6.0"; + version = "2.6.1"; src = fetchFromGitHub { owner = "nextcloud"; repo = "desktop"; rev = "v${version}"; - sha256 = "1cggk8yfy6lak48nfh691ad5y3bap49cfa2krp7vak108krgvkxi"; + sha256 = "18318j488pxksf4zc6zag8pdpyaks55yivn91nx3x458ax6albkz"; }; patches = [ diff --git a/pkgs/applications/networking/p2p/qbittorrent/default.nix b/pkgs/applications/networking/p2p/qbittorrent/default.nix index c5142c2f9e2..aebdeda6108 100644 --- a/pkgs/applications/networking/p2p/qbittorrent/default.nix +++ b/pkgs/applications/networking/p2p/qbittorrent/default.nix @@ -10,13 +10,13 @@ with lib; mkDerivation rec { pname = "qbittorrent"; - version = "4.1.8"; + version = "4.1.9.1"; src = fetchFromGitHub { owner = "qbittorrent"; repo = "qbittorrent"; rev = "release-${version}"; - sha256 = "1mx59mazfmd5yaqdgb6cm8hr5sbp2xgzz3y3yipq1fwq85dj3r5w"; + sha256 = "19zgqlby7i1kr20wa4zd99qzd062a879xxxbmlf40rnqiqy4bhyi"; }; # NOTE: 2018-05-31: CMake is working but it is not officially supported diff --git a/pkgs/applications/office/paperwork/default.nix b/pkgs/applications/office/paperwork/default.nix index df5e495f936..3506ea8b551 100644 --- a/pkgs/applications/office/paperwork/default.nix +++ b/pkgs/applications/office/paperwork/default.nix @@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec { ''; propagatedBuildInputs = with python3Packages; [ - paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil setuptools + paperwork-backend pypillowfight gtk3 cairo pyxdg dateutil setuptools pandas ]; makeWrapperArgs = [ diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix index 346c6aeed8e..7cb64f92f3f 100644 --- a/pkgs/applications/radio/sdrangel/default.nix +++ b/pkgs/applications/radio/sdrangel/default.nix @@ -39,7 +39,7 @@ let in mkDerivation rec { pname = "sdrangel"; - version = "4.11.7"; + version = "4.11.12"; src = fetchFromGitHub { owner = "f4exb"; diff --git a/pkgs/applications/science/biology/deeptools/default.nix b/pkgs/applications/science/biology/deeptools/default.nix new file mode 100644 index 00000000000..78a6f483337 --- /dev/null +++ b/pkgs/applications/science/biology/deeptools/default.nix @@ -0,0 +1,42 @@ +{ lib +, python +}: +with python.pkgs; +buildPythonApplication rec { + pname = "deepTools"; + version = "3.3.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "08p36p9ncj5s8qf1r7h83x4rnmi63l3yk6mnr3wgpg2qgvwl0hji"; + }; + + propagatedBuildInputs = [ + numpy + numpydoc + scipy + py2bit + pybigwig + pysam + matplotlib + plotly + deeptoolsintervals + ]; + + checkInputs = [ pytest ]; + + meta = with lib; { + homepage = "https://deeptools.readthedocs.io/en/develop"; + description = "Tools for exploring deep DNA sequencing data"; + longDescription = '' + deepTools contains useful modules to process the mapped reads data for multiple + quality checks, creating normalized coverage files in standard bedGraph and bigWig + file formats, that allow comparison between different files (for example, treatment and control). + Finally, using such normalized and standardized files, deepTools can create many + publication-ready visualizations to identify enrichments and for functional + annotations of the genome. + ''; + license = licenses.gpl3; + maintainers = with maintainers; [ scalavision ]; + }; +} diff --git a/pkgs/applications/science/biology/star/default.nix b/pkgs/applications/science/biology/star/default.nix index 8cd23fe06ed..6f4211d0c0d 100644 --- a/pkgs/applications/science/biology/star/default.nix +++ b/pkgs/applications/science/biology/star/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "star"; - version = "2.7.2b"; + version = "2.7.3a"; src = fetchFromGitHub { repo = "STAR"; owner = "alexdobin"; rev = version; - sha256 = "1fb63n3jm1l8k60wdjbq9asv4l1kf7algxxs1aqzvvidx3a8fvzq"; + sha256 = "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq"; }; sourceRoot = "source/source"; diff --git a/pkgs/applications/science/math/yacas/default.nix b/pkgs/applications/science/math/yacas/default.nix index bae0d9a18c6..ed680b1b4cd 100644 --- a/pkgs/applications/science/math/yacas/default.nix +++ b/pkgs/applications/science/math/yacas/default.nix @@ -5,13 +5,13 @@ stdenv.mkDerivation rec { pname = "yacas"; - version = "1.6.1"; + version = "1.8.0"; src = fetchFromGitHub { owner = "grzegorzmazur"; repo = "yacas"; rev = "v${version}"; - sha256 = "0awvlvf607r4hwl1vkhs6jq2s6ig46c66pmr4vspj2cdnypx99cc"; + sha256 = "0fwd98dwq6g0md3yhgyl30i377593b8rw6gsvffzvs11g3aqf1ga"; }; hardeningDisable = [ "format" ]; diff --git a/pkgs/applications/science/medicine/dcmtk/default.nix b/pkgs/applications/science/medicine/dcmtk/default.nix index 7c269063b91..817ab578a82 100644 --- a/pkgs/applications/science/medicine/dcmtk/default.nix +++ b/pkgs/applications/science/medicine/dcmtk/default.nix @@ -3,12 +3,12 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "dcmtk"; - version = "3.6.4"; + version = "3.6.5"; src = fetchFromGitHub { owner = "DCMTK"; repo = pname; rev = "DCMTK-${version}"; - sha256 = "0fbx35zax8n4gayaac5bankqwzg2y2adggykbbf8lpd773jfxsp6"; + sha256 = "0i38k1s0wdpbxxpiwsx490mszhxi45wp0z67iksvh60wfkaw54na"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix index 1f8ed744935..660c391c0d5 100644 --- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix +++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix @@ -2,7 +2,7 @@ let name = "stgit-${version}"; - version = "0.20"; + version = "0.21"; in stdenv.mkDerivation { inherit name; @@ -11,7 +11,7 @@ stdenv.mkDerivation { owner = "ctmarinas"; repo = "stgit"; rev = "v${version}"; - sha256 = "0zfrs9f6a84z5gr3k6y81h8jyar7h3q3z9p13cbrq9slljg5r6iw"; + sha256 = "16gwdad18rc9bivyzrjccp83iccmqr45fp2zawycmrfp2ancffc7"; }; buildInputs = [ python2 git ]; diff --git a/pkgs/applications/version-management/p4v/default.nix b/pkgs/applications/version-management/p4v/default.nix index 0020c8c2189..317cbfde85b 100644 --- a/pkgs/applications/version-management/p4v/default.nix +++ b/pkgs/applications/version-management/p4v/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl, xkeyboard_config, wrapQtAppsHook }: +{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl_1_0_2, xkeyboard_config, wrapQtAppsHook }: stdenv.mkDerivation rec { pname = "p4v"; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { qtscript qtsensors qtwebkit - openssl + openssl_1_0_2 ]; dontWrapQtApps = true; @@ -43,6 +43,6 @@ stdenv.mkDerivation rec { homepage = https://www.perforce.com; license = stdenv.lib.licenses.unfreeRedistributable; platforms = [ "x86_64-linux" ]; - maintainers = [ stdenv.lib.maintainers.nioncode ]; + maintainers = with stdenv.lib.maintainers; [ nathyong nioncode ]; }; } diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix index 9b6583d6cb8..76edc1b3e64 100644 --- a/pkgs/applications/version-management/sourcehut/builds.nix +++ b/pkgs/applications/version-management/sourcehut/builds.nix @@ -4,7 +4,7 @@ , srht, redis, celery, pyyaml, markdown }: let - version = "0.47.9"; + version = "0.48.0"; buildWorker = src: buildGoModule { inherit src version; @@ -20,7 +20,7 @@ in buildPythonPackage rec { src = fetchgit { url = "https://git.sr.ht/~sircmpwn/builds.sr.ht"; rev = version; - sha256 = "1zgaba58svhksxb1pzz8bym9p0pm7fnxsj5k6jz86095xmfijp34"; + sha256 = "1z5bxsn67cqffixqsrnska86mw0a6494650wbi6dbp10z03870bs"; }; patches = [ diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix index a284873f003..67486bd28f3 100644 --- a/pkgs/applications/version-management/sourcehut/core.nix +++ b/pkgs/applications/version-management/sourcehut/core.nix @@ -1,17 +1,18 @@ { stdenv, fetchgit, fetchNodeModules, buildPythonPackage , pgpy, flask, bleach, misaka, humanize, markdown, psycopg2, pygments, requests , sqlalchemy, flask_login, beautifulsoup4, sqlalchemy-utils, celery, alembic +, importlib-metadata , sassc, nodejs , writeText }: buildPythonPackage rec { pname = "srht"; - version = "0.54.3"; + version = "0.54.4"; src = fetchgit { url = "https://git.sr.ht/~sircmpwn/core.sr.ht"; rev = version; - sha256 = "1f4srhp5g6652anifs1vyijzi2v23l2rnfpf3x96j9r8rdap42rq"; + sha256 = "0flxvn178hqd8ljz89ddis80zfnmzgimv4506w4dg2flbwzywy7z"; }; node_modules = fetchNodeModules { @@ -47,6 +48,7 @@ buildPythonPackage rec { # Unofficial runtime dependencies? celery alembic + importlib-metadata ]; PKGVER = version; diff --git a/pkgs/applications/version-management/sourcehut/dispatch.nix b/pkgs/applications/version-management/sourcehut/dispatch.nix index 7172cdab402..a61f35b9ee1 100644 --- a/pkgs/applications/version-management/sourcehut/dispatch.nix +++ b/pkgs/applications/version-management/sourcehut/dispatch.nix @@ -4,12 +4,12 @@ buildPythonPackage rec { pname = "dispatchsrht"; - version = "0.11.1"; + version = "0.12.3"; src = fetchgit { url = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht"; rev = version; - sha256 = "1bi7vn0yr326mf2c63f2fahdlrx2c6a8d6p6bzy2ym2835qfcc0v"; + sha256 = "0lpc8jpyz1rg3g98546wlhr27b15g32lds77hl42aixv5f5b8lc9"; }; patches = [ diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix index 9b0b5e2c8e4..b580e89c747 100644 --- a/pkgs/applications/version-management/sourcehut/git.nix +++ b/pkgs/applications/version-management/sourcehut/git.nix @@ -4,11 +4,19 @@ , srht, pygit2, scmsrht }: let - version = "0.34.2"; + version = "0.35.6"; + + buildShell = src: buildGoModule { + inherit src version; + pname = "git-srht-shell"; + goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-shell"; + + modSha256 = "1v4npijqgv09ssrxf1y1b3syb2fs7smy7k9rcj3ynsfrn9xgfd9y"; + }; buildDispatcher = src: buildGoModule { inherit src version; - pname = "git-sr-ht-dispatcher"; + pname = "git-srht-dispatcher"; goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-dispatch"; modSha256 = "1lmgmlin460g09dph2hw6yz25d4agqwjhrjv0qqsis7df9qpf3i1"; @@ -20,7 +28,7 @@ in buildPythonPackage rec { src = fetchgit { url = "https://git.sr.ht/~sircmpwn/git.sr.ht"; rev = version; - sha256 = "1z10r2d9x71n1n36g55j4cswh0dqnzmgj2qiy1h92wwgq8azpiyy"; + sha256 = "0j8caqbzdqkgc1bdhzz4k5hgh8lhsghfgwf46d19ryf83d8ggxqc"; }; patches = [ @@ -42,6 +50,7 @@ in buildPythonPackage rec { postInstall = '' mkdir -p $out/bin + cp ${buildShell "${src}/gitsrht-shell"}/bin/gitsrht-shell $out/bin/gitsrht-shell cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch ''; diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix index dc9ced49cea..fd5c3145db0 100644 --- a/pkgs/applications/version-management/sourcehut/hg.nix +++ b/pkgs/applications/version-management/sourcehut/hg.nix @@ -4,12 +4,12 @@ buildPythonPackage rec { pname = "hgsrht"; - version = "0.16.0"; + version = "0.16.2"; src = fetchhg { url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht"; rev = version; - sha256 = "0ncrj1cbls9ix2ig3qqwbzs6q6cmpqy3zs21p9fw3idfw703j3g0"; + sha256 = "02bzy31zplnlqg8rcls5n65q1h920lhy6f51w89w1kskdw7r2mhy"; }; patches = [ diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix index bac369088a6..a5458b0b864 100644 --- a/pkgs/applications/version-management/sourcehut/meta.nix +++ b/pkgs/applications/version-management/sourcehut/meta.nix @@ -5,12 +5,12 @@ buildPythonPackage rec { pname = "metasrht"; - version = "0.35.3"; + version = "0.37.0"; src = fetchgit { url = "https://git.sr.ht/~sircmpwn/meta.sr.ht"; rev = version; - sha256 = "1kcmlmdk9v59fr3r0g2q2gfkb735xza0wni9s942wh418dr66x2f"; + sha256 = "1jf3h2v27cbam8bwiw3x35319pzp0r651p8mfhw150jvskyvmkmr"; }; nativeBuildInputs = srht.nativeBuildInputs; diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix index 4a86285f50d..4e397c649f9 100644 --- a/pkgs/applications/version-management/sourcehut/paste.nix +++ b/pkgs/applications/version-management/sourcehut/paste.nix @@ -4,12 +4,12 @@ buildPythonPackage rec { pname = "pastesrht"; - version = "0.7.1"; + version = "0.7.3"; src = fetchgit { url = "https://git.sr.ht/~sircmpwn/paste.sr.ht"; rev = version; - sha256 = "19y9ghhi4llyg7kd3a888gbjc698vdamin4hb8dk1j6pd2f0qmjp"; + sha256 = "15689gk37djcwdjb636d97k0il2zpdpksb95l9l4d43wipd7x5qi"; }; patches = [ diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix index baccfb1b94b..c5209cee46b 100644 --- a/pkgs/applications/version-management/sourcehut/scm.nix +++ b/pkgs/applications/version-management/sourcehut/scm.nix @@ -4,12 +4,12 @@ buildPythonPackage rec { pname = "scmsrht"; - version = "0.15.3"; + version = "0.16.0"; src = fetchgit { url = "https://git.sr.ht/~sircmpwn/scm.sr.ht"; rev = version; - sha256 = "1rzm3r280211w51sjngm5a3pdlzg07c64324k99bqs1fkc2yrfy6"; + sha256 = "0jny8ihn49n7bpw5nhdrfha78yzpxp277l50y1lj142r59kwmh22"; }; nativeBuildInputs = srht.nativeBuildInputs; diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix index aaee9b54477..a7703bd0729 100644 --- a/pkgs/applications/version-management/sourcehut/todo.nix +++ b/pkgs/applications/version-management/sourcehut/todo.nix @@ -5,12 +5,12 @@ buildPythonPackage rec { pname = "todosrht"; - version = "0.51.11"; + version = "0.51.13"; src = fetchgit { url = "https://git.sr.ht/~sircmpwn/todo.sr.ht"; rev = version; - sha256 = "0x4aray1dappalmn2f4wqrhpa5k1idccnafbfhsnfi6nj718i33a"; + sha256 = "19gywq5j7wlpk7j2whm2ivz0z0i3j50n7k7bx29pghndl7l43c18"; }; patches = [ diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/applications/video/smplayer/default.nix index 495fc6f6745..facb8fabe26 100644 --- a/pkgs/applications/video/smplayer/default.nix +++ b/pkgs/applications/video/smplayer/default.nix @@ -1,11 +1,12 @@ { lib, mkDerivation, fetchurl, qmake, qtscript }: mkDerivation rec { - name = "smplayer-19.5.0"; + pname = "smplayer"; + version = "19.10.0"; src = fetchurl { - url = "mirror://sourceforge/smplayer/${name}.tar.bz2"; - sha256 = "1xda9pbrc3dfbs71n5l8yszlcywz9456mwkv52vmn8lszhvjpjxm"; + url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "0sq7hr10b4pbbi0y1q4mxs24h2lb042nv4rqr03r72bp57353xsl"; }; buildInputs = [ qtscript ]; @@ -13,13 +14,12 @@ mkDerivation rec { dontUseQmakeConfigure = true; - preConfigure = '' - makeFlags="PREFIX=$out" - ''; + makeFlags = [ "PREFIX=${placeholder "out"}" ]; meta = { description = "A complete front-end for MPlayer"; - homepage = http://smplayer.sourceforge.net/; + longDescription = "Either mplayer or mpv should also be installed for smplayer to play medias"; + homepage = https://www.smplayer.info; license = lib.licenses.gpl3Plus; platforms = lib.platforms.linux; }; diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix index fa48c8b5e5e..9d94ced0bf2 100644 --- a/pkgs/applications/virtualization/podman/default.nix +++ b/pkgs/applications/virtualization/podman/default.nix @@ -5,13 +5,13 @@ buildGoPackage rec { pname = "podman"; - version = "1.6.2"; + version = "1.6.3"; src = fetchFromGitHub { owner = "containers"; repo = "libpod"; rev = "v${version}"; - sha256 = "0cwyrzjjgxclnzc1yx6vm2bvq73mldwxfwalkprzlg8vpqbxji8y"; + sha256 = "0y87pylpff2xl796n5s2vrm90pspzqfw8h4a5gndn1mx18s09s69"; }; goPackagePath = "github.com/containers/libpod"; diff --git a/pkgs/applications/virtualization/x11docker/default.nix b/pkgs/applications/virtualization/x11docker/default.nix index 1d18e4d14e8..c57a7f6e771 100644 --- a/pkgs/applications/virtualization/x11docker/default.nix +++ b/pkgs/applications/virtualization/x11docker/default.nix @@ -1,26 +1,22 @@ -{ stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg }: +{ stdenv, fetchFromGitHub, makeWrapper, nx-libs, xorg, getopt, gnugrep, gawk, ps, mount, iproute }: stdenv.mkDerivation rec { pname = "x11docker"; - version = "6.2.0"; + version = "6.3.0"; src = fetchFromGitHub { owner = "mviereck"; repo = "x11docker"; rev = "v${version}"; - sha256 = "19q5vrhspxpjkdhhlgya2sa2fgjg8gyd3kmnb83nlfs46p8jx4f4"; + sha256 = "0x2sx41y3ylzg511x52k3wh8mfbzp4ialpas6sn4ccagqxh2hc4y"; }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ nx-libs xorg.xhost xorg.xinit ]; dontBuild = true; - PATH_PREFIX = "${nx-libs}/bin:${xorg.xdpyinfo}/bin:${xorg.xhost}/bin:${xorg.xinit}/bin"; - + # Don't install `x11docker-gui`, because requires `kaptain` dependency installPhase = '' install -D x11docker "$out/bin/x11docker"; - #install -D x11docker-gui "$out/bin/x11docker-gui"; - wrapProgram "$out/bin/x11docker" --prefix PATH : "${PATH_PREFIX}" - #wrapProgram "$out/bin/x11docker-gui" --prefix PATH : "${PATH_PREFIX}" - # GUI disabled because of missing `kaptain` dependency + wrapProgram "$out/bin/x11docker" \ + --prefix PATH : "${stdenv.lib.makeBinPath [ getopt gnugrep gawk ps mount iproute nx-libs xorg.xdpyinfo xorg.xhost xorg.xinit ]}" ''; meta = { @@ -28,5 +24,6 @@ stdenv.mkDerivation rec { homepage = https://github.com/mviereck/x11docker; license = stdenv.lib.licenses.mit; maintainers = with stdenv.lib.maintainers; [ jD91mZM2 ]; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/build-support/nix-prefetch-github/default.nix b/pkgs/build-support/nix-prefetch-github/default.nix deleted file mode 100644 index 10a6daaf53f..00000000000 --- a/pkgs/build-support/nix-prefetch-github/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ python3 -, fetchFromGitHub -, stdenv -}: - -python3.pkgs.buildPythonApplication rec { - pname = "nix-prefetch-github"; - version = "2.3.1"; - - src = fetchFromGitHub { - owner = "seppeljordan"; - repo = "nix-prefetch-github"; - rev = "v${version}"; - sha256 = "13wvq13iiva97a16kahfpxar5ppb015nnbn7d4v9s9jyxdickc2c"; - }; - - propagatedBuildInputs = with python3.pkgs; [ - attrs - click - effect - jinja2 - ]; - meta = with stdenv.lib; { - description = "Prefetch sources from github"; - homepage = https://github.com/seppeljordan/nix-prefetch-github; - license = licenses.gpl3; - maintainers = [ maintainers.seppeljordan ]; - }; -} diff --git a/pkgs/data/fonts/comic-neue/default.nix b/pkgs/data/fonts/comic-neue/default.nix index 2615d0260f0..6dcefe90055 100644 --- a/pkgs/data/fonts/comic-neue/default.nix +++ b/pkgs/data/fonts/comic-neue/default.nix @@ -1,7 +1,7 @@ { lib, fetchzip }: let - version = "2.2"; + version = "2.3"; in fetchzip rec { name = "comic-neue-${version}"; @@ -9,15 +9,15 @@ in fetchzip rec { postFetch = '' mkdir -vp $out/share/{doc,fonts} - unzip -j $downloadedFile comic-neue-2.2/\*.otf -d $out/share/fonts/opentype - unzip -j $downloadedFile comic-neue-2.2/\*.ttf -d $out/share/fonts/truetype - unzip -j $downloadedFile comic-neue-2.2/\*.eot -d $out/share/fonts/EOT - unzip -j $downloadedFile comic-neue-2.2/\*.woff -d $out/share/fonts/WOFF - unzip -j $downloadedFile comic-neue-2.2/\*.woff2 -d $out/share/fonts/WOFF2 - unzip -j $downloadedFile comic-neue-2.2/\*.pdf comic-neue-2.2/FONTLOG.txt comic-neue-2.2/OFL-FAQ.txt comic-neue-2.2/SIL-License.txt -d $out/share/doc/${name} + unzip -j $downloadedFile OTF/\*.otf -d $out/share/fonts/opentype + unzip -j $downloadedFile Web/\*.ttf -d $out/share/fonts/truetype + unzip -j $downloadedFile Web/\*.eot -d $out/share/fonts/EOT + unzip -j $downloadedFile Web/\*.woff -d $out/share/fonts/WOFF + unzip -j $downloadedFile Web/\*.woff2 -d $out/share/fonts/WOFF2 + unzip -j $downloadedFile \*.pdf FONTLOG.txt OFL-FAQ.txt SIL-License.txt -d $out/share/doc/${name} ''; - sha256 = "1yypq5aqqzv3q1c6vx5130mi2iwihzzvrawhwqpwsfjl0p25sq9q"; + sha256 = "1gs4vhys0m3qsw06qaxzyi81f06w5v66kbyl64yw3pq2rb656779"; meta = with lib; { homepage = http://comicneue.com/; diff --git a/pkgs/data/fonts/liberation-sans-narrow/default.nix b/pkgs/data/fonts/liberation-sans-narrow/default.nix index 4a14e095cf0..51af6a20bae 100644 --- a/pkgs/data/fonts/liberation-sans-narrow/default.nix +++ b/pkgs/data/fonts/liberation-sans-narrow/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, fontforge, pythonPackages, python }: +{ stdenv, fetchFromGitHub, fontforge, python3Packages, python3 }: stdenv.mkDerivation rec { pname = "liberation-sans-narrow"; @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { sha256 = "1qw554jbdnqkg6pjjl4cqkgsalq3398kzvww2naw30vykcz752bm"; }; - buildInputs = [ fontforge pythonPackages.fonttools python ]; + buildInputs = [ fontforge python3Packages.fonttools python3 ]; installPhase = '' find . -name '*Narrow*.ttf' -exec install -m444 -Dt $out/share/fonts/truetype {} \; diff --git a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix index 2e83d5b12d4..8b6c3749962 100644 --- a/pkgs/data/fonts/rictydiminished-with-firacode/default.nix +++ b/pkgs/data/fonts/rictydiminished-with-firacode/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, fontforge, pythonFull }: +{ stdenv, fetchgit, fontforge, python3 }: stdenv.mkDerivation rec { pname = "rictydiminished-with-firacode"; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ fontforge - (pythonFull.withPackages (ps: [ + (python3.withPackages (ps: [ ps.jinja2 ps.py3to2 ps.fonttools diff --git a/pkgs/data/icons/iconpack-obsidian/default.nix b/pkgs/data/icons/iconpack-obsidian/default.nix index f48c3cbf3f7..64a982f6037 100644 --- a/pkgs/data/icons/iconpack-obsidian/default.nix +++ b/pkgs/data/icons/iconpack-obsidian/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "iconpack-obsidian"; - version = "4.3"; + version = "4.9"; src = fetchFromGitHub { owner = "madmaxms"; - repo = "iconpack-obsidian"; + repo = pname; rev = "v${version}"; - sha256 = "0np2s4mbaykwwv516959r5d9gfdmqb5hadsx18x2if4751a9qz49"; + sha256 = "1w0lnr08gd0cnzv3n5094jqb7dpbpwwizfhvifdir0xsls1sf129"; }; nativeBuildInputs = [ gtk3 ]; diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix index dbe3ee201f4..88611faa308 100644 --- a/pkgs/data/icons/papirus-icon-theme/default.nix +++ b/pkgs/data/icons/papirus-icon-theme/default.nix @@ -2,20 +2,18 @@ stdenv.mkDerivation rec { pname = "papirus-icon-theme"; - version = "20191009"; + version = "20191101"; src = fetchFromGitHub { owner = "PapirusDevelopmentTeam"; repo = pname; rev = version; - sha256 = "1ljbaq0c6rhvfwj5q2kvd6rxbjykb0sbgcpjrxrzpdy08zr1kdvd"; + sha256 = "17as9i5b9wqzvj08hwxqk9dlv6hrvkylns85s8gzhv6b5x2q5ma3"; }; nativeBuildInputs = [ gtk3 ]; - propagatedBuildInputs = [ - hicolor-icon-theme - ]; + propagatedBuildInputs = [ hicolor-icon-theme ]; dontDropIconThemeCache = true; diff --git a/pkgs/misc/themes/jade1/default.nix b/pkgs/data/themes/jade1/default.nix similarity index 72% rename from pkgs/misc/themes/jade1/default.nix rename to pkgs/data/themes/jade1/default.nix index ebeb7f2d866..01221d45014 100644 --- a/pkgs/misc/themes/jade1/default.nix +++ b/pkgs/data/themes/jade1/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "theme-jade1"; - version = "3.3"; + version = "1.5"; src = fetchFromGitHub { owner = "madmaxms"; repo = "theme-jade-1"; rev = "v${version}"; - sha256 = "06w06dvzs1llmzpyz3c5yycsw3gslsgikalfcq5l92d72z4kzfw7"; + sha256 = "1m3150iyk8421mkwj4x2pv29wjzqdcnvvnp3bsg11k5kszsm27a8"; }; propagatedUserEnvPkgs = [ gtk-engine-murrine ]; @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - description = "A fork of the original Linux Mint theme with dark menus, more intensive green and some other modifications"; + description = "Fork of the original Linux Mint theme with dark menus, more intensive green and some other modifications"; homepage = https://github.com/madmaxms/theme-jade-1; license = with licenses; [ gpl3 ]; platforms = platforms.linux; diff --git a/pkgs/data/themes/lounge/default.nix b/pkgs/data/themes/lounge/default.nix new file mode 100644 index 00000000000..15ec68b0757 --- /dev/null +++ b/pkgs/data/themes/lounge/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, meson, ninja, sassc, gtk3, gnome3, gdk-pixbuf, librsvg, gtk-engine-murrine }: + +stdenv.mkDerivation rec { + pname = "lounge-gtk-theme"; + version = "1.22"; + + src = fetchFromGitHub { + owner = "monday15"; + repo = pname; + rev = version; + sha256 = "1y1wkfsv2zrxqcqr53lmr9743mvzcy4swi5j6sxmk1aykx6ccs1p"; + }; + + nativeBuildInputs = [ meson ninja sassc gtk3 ]; + + buildInputs = [ gdk-pixbuf librsvg ]; + + propagatedUserEnvPkgs = [ gtk-engine-murrine ]; + + mesonFlags = [ + "-D gnome_version=${stdenv.lib.versions.majorMinor gnome3.gnome-shell.version}" + ]; + + postFixup = '' + gtk-update-icon-cache "$out"/share/icons/Lounge-aux; + ''; + + meta = with stdenv.lib; { + description = "Simple and clean GTK theme with vintage scrollbars, inspired by Absolute, based on Adwaita"; + homepage = https://github.com/monday15/lounge-gtk-theme; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix index 0c92eb110d2..8ab868891b5 100644 --- a/pkgs/data/themes/matcha/default.nix +++ b/pkgs/data/themes/matcha/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "matcha"; - version = "2019-10-03"; + version = "2019-11-02"; src = fetchFromGitHub { owner = "vinceliuice"; repo = pname; rev = version; - sha256 = "1fxlpq3hgp6brgjkhv0g8k4gsdg6jw2z467awqgfr8a1p3ksmxpw"; + sha256 = "0wci9ahap8kynq8cbyxr7aba9ndb1d4kiq42xvzr34vw1rhcahrr"; }; buildInputs = [ gdk-pixbuf librsvg ]; diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix index d026e06e39d..d1d7228183c 100644 --- a/pkgs/data/themes/plata/default.nix +++ b/pkgs/data/themes/plata/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "plata-theme"; - version = "0.8.9"; + version = "0.9.0"; src = fetchFromGitLab { owner = "tista500"; repo = "plata-theme"; rev = version; - sha256 = "0a2wczxxfd2nfr7biawbs3rwy2sivcl2sv43y2638gmfp0w6zh9r"; + sha256 = "1bcjrnh6bm7pxyqrr39yx5zykf3yzxrsydd5xcawjfihnph3yrlg"; }; preferLocalBuild = true; diff --git a/pkgs/data/themes/yaru/default.nix b/pkgs/data/themes/yaru/default.nix index 2302aa301e3..f83dbc3ebcc 100644 --- a/pkgs/data/themes/yaru/default.nix +++ b/pkgs/data/themes/yaru/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "yaru"; - version = "19.10.2"; + version = "19.10.4"; src = fetchFromGitHub { owner = "ubuntu"; repo = "yaru"; rev = version; - sha256 = "1azyn8pr0kpbq4wlz91f5amqyxqq0x2mxkglzl488sf39fl0gnbj"; + sha256 = "1dj6awlz13787783ds9mdid75rd4vvgpg52h6x19pxdga3k17s9b"; }; nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ]; diff --git a/pkgs/desktops/enlightenment/efl.nix b/pkgs/desktops/enlightenment/efl.nix index 153616a3bc8..976c6b1f32b 100644 --- a/pkgs/desktops/enlightenment/efl.nix +++ b/pkgs/desktops/enlightenment/efl.nix @@ -1,19 +1,20 @@ -{ stdenv, fetchurl, meson, ninja, pkgconfig, SDL, SDL2, alsaLib, avahi, bullet, check, curl, dbus, - doxygen, expat, fontconfig, freetype, fribidi, ghostscript, giflib, - glib, gst_all_1, gtk3, harfbuzz, ibus, jbig2dec, libGL, libdrm, libinput, - libjpeg, libpng, libpulseaudio, libraw, librsvg, libsndfile, - libspectre, libtiff, libwebp, libxkbcommon, luajit, lz4, mesa, - openjpeg, openssl, poppler, python27Packages, systemd, udev, - utillinux, writeText, xorg, zlib +{ stdenv, fetchurl, meson, ninja, pkgconfig, SDL, SDL2, alsaLib, + avahi, bullet, check, curl, dbus, doxygen, expat, fontconfig, + freetype, fribidi, ghostscript, giflib, glib, gst_all_1, gtk3, + harfbuzz, ibus, jbig2dec, libGL, libdrm, libinput, libjpeg, libpng, + libpulseaudio, libraw, librsvg, libsndfile, libspectre, libtiff, + libwebp, libxkbcommon, luajit, lz4, mesa, openjpeg, openssl, + poppler, python27Packages, systemd, udev, utillinux, writeText, + xorg, zlib }: stdenv.mkDerivation rec { pname = "efl"; - version = "1.23.1"; + version = "1.23.2"; src = fetchurl { url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz"; - sha256 = "0q9g4j7k10s1a8rv2ca9v9lydh7ml3zsrqvgncc4qhvdl76208nn"; + sha256 = "14yljnnmb89s8j6ip08ip5d01zkgzbzr1h4fr4bwk9lh8r59x3ds"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index aa50aa18c40..6d2ae92ac80 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -24,7 +24,6 @@ lib.makeScope pkgs.newScope (self: with self; { libsoup = pkgs.libsoup.override { gnomeSupport = true; }; libchamplain = pkgs.libchamplain.override { libsoup = libsoup; }; gnome3 = self // { recurseForDerivations = false; }; - gegl_0_4 = pkgs.gegl_0_4.override { gtk = pkgs.gtk3; }; # ISO installer # installerIso = callPackage ./installer.nix {}; @@ -50,8 +49,6 @@ lib.makeScope pkgs.newScope (self: with self; { gdm = callPackage ./core/gdm { }; - gjs = callPackage ./core/gjs { }; - gnome-backgrounds = callPackage ./core/gnome-backgrounds { }; gnome-bluetooth = callPackage ./core/gnome-bluetooth { }; @@ -359,4 +356,8 @@ lib.makeScope pkgs.newScope (self: with self; { nautilus-sendto = throw "deprecated 2019-09-17: abandoned"; inherit (pkgs) vala; # added 2019-10-10 + + inherit (pkgs) gegl_0_4; # added 2019-10-31 + + inherit (pkgs) gjs; # added 2019-01-05 }) diff --git a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix index 4df3ed10a69..4f5562bbffa 100644 --- a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix +++ b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, flex, bison, libxml2, intltool, +{ stdenv, fetchurl, pkgconfig, gnome3, gtk3, gjs, flex, bison, libxml2, intltool, gdl, libgda, gtksourceview, gsettings-desktop-schemas, itstool, python3, ncurses, makeWrapper }: @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { ncurses ]; buildInputs = [ - flex bison gtk3 libxml2 gnome3.gjs gdl + flex bison gtk3 libxml2 gjs gdl libgda gtksourceview gsettings-desktop-schemas ]; diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix index 8d731d829b2..080a332d7df 100644 --- a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix +++ b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix @@ -1,6 +1,22 @@ -{ stdenv, fetchurl, meson, ninja, pkgconfig, gnome3, gtk3, wrapGAppsHook -, glib, amtk, appstream-glib, gobject-introspection, python3 -, webkitgtk, gettext, itstool, gsettings-desktop-schemas }: +{ stdenv +, fetchurl +, meson +, ninja +, pkgconfig +, gnome3 +, gtk3 +, wrapGAppsHook +, glib +, amtk +, appstream-glib +, gobject-introspection +, python3 +, webkitgtk +, gettext +, itstool +, gsettings-desktop-schemas +, shared-mime-info +}: stdenv.mkDerivation rec { pname = "devhelp"; @@ -11,10 +27,25 @@ stdenv.mkDerivation rec { sha256 = "0zpmn6fgkgiayvn4diia5df0s6s7dqrdnp3nrvpavsmgn0vhb4pg"; }; - nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook appstream-glib gobject-introspection python3 ]; + nativeBuildInputs = [ + meson + ninja + pkgconfig + gettext + itstool + wrapGAppsHook + appstream-glib + gobject-introspection + python3 + ]; + buildInputs = [ - glib gtk3 webkitgtk amtk - gnome3.adwaita-icon-theme gsettings-desktop-schemas + glib + gtk3 + webkitgtk + amtk + gnome3.adwaita-icon-theme + gsettings-desktop-schemas ]; doCheck = true; @@ -24,6 +55,14 @@ stdenv.mkDerivation rec { patchShebangs meson_post_install.py ''; + preFixup = '' + gappsWrapperArgs+=( + # Fix pages being blank + # https://gitlab.gnome.org/GNOME/devhelp/issues/14 + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; + passthru = { updateScript = gnome3.updateScript { packageName = "devhelp"; @@ -33,8 +72,8 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "API documentation browser for GNOME"; - homepage = https://wiki.gnome.org/Apps/Devhelp; - license = licenses.gpl2; + homepage = "https://wiki.gnome.org/Apps/Devhelp"; + license = licenses.gpl3Plus; maintainers = gnome3.maintainers; platforms = platforms.linux; }; diff --git a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix index c0ecfc29e2c..4e7fa17d495 100644 --- a/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix +++ b/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, substituteAll, gnome3, vte }: +{ stdenv, fetchFromGitHub, substituteAll, gjs, vte }: stdenv.mkDerivation rec { pname = "gnome-shell-extension-drop-down-terminal"; @@ -16,8 +16,7 @@ stdenv.mkDerivation rec { patches = [ (substituteAll { src = ./fix_vte_and_gjs.patch; - inherit vte; - gjs = gnome3.gjs; + inherit gjs vte; }) ]; diff --git a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix index cb1dd5ceaa8..ca232d090a8 100644 --- a/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix +++ b/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, substituteAll, python3, openssl, folks, gsound , meson, ninja, libxml2, pkgconfig, gobject-introspection, wrapGAppsHook -, glib, gtk3, at-spi2-core, upower, openssh, gnome3 }: +, glib, gtk3, at-spi2-core, upower, openssh, gnome3, gjs }: stdenv.mkDerivation rec { pname = "gnome-shell-gsconnect"; @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { gsound upower gnome3.caribou - gnome3.gjs # for running daemon + gjs # for running daemon gnome3.evolution-data-server # for libebook-contacts typelib ]; diff --git a/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix new file mode 100644 index 00000000000..8d3a775e949 --- /dev/null +++ b/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix @@ -0,0 +1,21 @@ +{ stdenv, fetchgit }: + +stdenv.mkDerivation rec { + pname = "gnome-shell-extension-night-theme-switcher"; + version = "2.1"; + + src = fetchgit { + url = "https://git.romainvigier.fr/Romain/nightthemeswitcher-gnome-shell-extension"; + rev = "v${version}"; + sha256 = "1md44vmc83cp35riszhdvysnvl8pmkcpf5j6n4i2b3wwcjwxqwfy"; + }; + + makeFlags = [ "GSEXT_DIR_LOCAL=${placeholder "out"}/share/gnome-shell/extensions" ]; + + meta = with stdenv.lib; { + description = "Automatically change the GTK theme to dark variant when Night Light activates"; + license = licenses.gpl3; + maintainers = with maintainers; [ jonafato ]; + homepage = https://git.romainvigier.fr/Romain/nightthemeswitcher-gnome-shell-extension; + }; +} diff --git a/pkgs/desktops/gnome-3/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/games/swell-foop/default.nix index 6de5eaa96c3..02a61d46c73 100644 --- a/pkgs/desktops/gnome-3/games/swell-foop/default.nix +++ b/pkgs/desktops/gnome-3/games/swell-foop/default.nix @@ -3,13 +3,13 @@ let pname = "swell-foop"; - version = "3.34.0"; + version = "3.34.1"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; - sha256 = "1vbclb1jcn2s9rb7whk02v6hfr6fnwx2ppa55bsa7595f3ki79v5"; + sha256 = "1032psxm59nissi268bh3j964m4a0n0ah4dy1pf0ph27j3zvdik1"; }; passthru = { diff --git a/pkgs/desktops/lxqt/liblxqt/default.nix b/pkgs/desktops/lxqt/liblxqt/default.nix index d94b1ac0d03..f5ab9c9ae8e 100644 --- a/pkgs/desktops/lxqt/liblxqt/default.nix +++ b/pkgs/desktops/lxqt/liblxqt/default.nix @@ -35,7 +35,7 @@ mkDerivation rec { description = "Core utility library for all LXQt components"; homepage = https://github.com/lxqt/liblxqt; license = licenses.lgpl21Plus; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/libqtxdg/default.nix b/pkgs/desktops/lxqt/libqtxdg/default.nix index 799e4286803..5f7485fc63b 100644 --- a/pkgs/desktops/lxqt/libqtxdg/default.nix +++ b/pkgs/desktops/lxqt/libqtxdg/default.nix @@ -2,13 +2,13 @@ mkDerivation rec { pname = "libqtxdg"; - version = "3.3.1"; + version = "3.4.0"; src = fetchFromGitHub { owner = "lxqt"; repo = pname; rev = version; - sha256 = "0y3s0hva64m64j9lqgnja1li8zhlywqzv8xwjg8pyd2nr9h918db"; + sha256 = "16jqnpc740a6phq7vcgy85hl7253yzyw4m5h71r0vijk79ir73b5"; }; nativeBuildInputs = [ cmake lxqt-build-tools ]; @@ -27,7 +27,7 @@ mkDerivation rec { description = "Qt implementation of freedesktop.org xdg specs"; homepage = https://github.com/lxqt/libqtxdg; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-about/default.nix b/pkgs/desktops/lxqt/lxqt-about/default.nix index 595141daffc..5fa074120ff 100644 --- a/pkgs/desktops/lxqt/lxqt-about/default.nix +++ b/pkgs/desktops/lxqt/lxqt-about/default.nix @@ -29,7 +29,7 @@ mkDerivation rec { description = "Dialogue window providing information about LXQt and the system it's running on"; homepage = https://github.com/lxqt/lxqt-about; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-admin/default.nix b/pkgs/desktops/lxqt/lxqt-admin/default.nix index a49bb120791..9f0b22bf6cc 100644 --- a/pkgs/desktops/lxqt/lxqt-admin/default.nix +++ b/pkgs/desktops/lxqt/lxqt-admin/default.nix @@ -35,7 +35,7 @@ mkDerivation rec { description = "LXQt system administration tool"; homepage = https://github.com/lxqt/lxqt-admin; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-config/default.nix b/pkgs/desktops/lxqt/lxqt-config/default.nix index d775a93fff4..d34c419ae66 100644 --- a/pkgs/desktops/lxqt/lxqt-config/default.nix +++ b/pkgs/desktops/lxqt/lxqt-config/default.nix @@ -45,7 +45,7 @@ mkDerivation rec { description = "Tools to configure LXQt and the underlying operating system"; homepage = https://github.com/lxqt/lxqt-config; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; diff --git a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix index 43db6b39c67..9f844b4676b 100644 --- a/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix +++ b/pkgs/desktops/lxqt/lxqt-globalkeys/default.nix @@ -30,7 +30,7 @@ mkDerivation rec { description = "LXQt service for global keyboard shortcuts registration"; homepage = https://github.com/lxqt/lxqt-globalkeys; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix index 81a6a423a21..af64f523d48 100644 --- a/pkgs/desktops/lxqt/lxqt-notificationd/default.nix +++ b/pkgs/desktops/lxqt/lxqt-notificationd/default.nix @@ -30,7 +30,7 @@ mkDerivation rec { description = "The LXQt notification daemon"; homepage = https://github.com/lxqt/lxqt-notificationd; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix index 83048ed7d57..5f270b8efc9 100644 --- a/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix +++ b/pkgs/desktops/lxqt/lxqt-openssh-askpass/default.nix @@ -30,7 +30,7 @@ mkDerivation rec { description = "GUI to query passwords on behalf of SSH agents"; homepage = https://github.com/lxqt/lxqt-openssh-askpass; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-panel/default.nix b/pkgs/desktops/lxqt/lxqt-panel/default.nix index 4558d36e554..8310ae95f09 100644 --- a/pkgs/desktops/lxqt/lxqt-panel/default.nix +++ b/pkgs/desktops/lxqt/lxqt-panel/default.nix @@ -53,7 +53,7 @@ mkDerivation rec { description = "The LXQt desktop panel"; homepage = https://github.com/lxqt/lxqt-panel; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-policykit/default.nix b/pkgs/desktops/lxqt/lxqt-policykit/default.nix index d501d83947e..a64d682bf1c 100644 --- a/pkgs/desktops/lxqt/lxqt-policykit/default.nix +++ b/pkgs/desktops/lxqt/lxqt-policykit/default.nix @@ -37,7 +37,7 @@ mkDerivation rec { description = "The LXQt PolicyKit agent"; homepage = https://github.com/lxqt/lxqt-policykit; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix index 9f8c66d826c..d415cb618cc 100644 --- a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix +++ b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix @@ -32,7 +32,7 @@ mkDerivation rec { description = "Power management module for LXQt"; homepage = https://github.com/lxqt/lxqt-powermanagement; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix index 604fc570e1f..a67efaee37a 100644 --- a/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix +++ b/pkgs/desktops/lxqt/lxqt-qtplugin/default.nix @@ -39,7 +39,7 @@ mkDerivation rec { description = "LXQt Qt platform integration plugin"; homepage = https://github.com/lxqt/lxqt-qtplugin; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-runner/default.nix b/pkgs/desktops/lxqt/lxqt-runner/default.nix index d737bd91c91..db05d803891 100644 --- a/pkgs/desktops/lxqt/lxqt-runner/default.nix +++ b/pkgs/desktops/lxqt/lxqt-runner/default.nix @@ -36,7 +36,7 @@ mkDerivation rec { description = "Tool used to launch programs quickly by typing their names"; homepage = https://github.com/lxqt/lxqt-runner; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-session/default.nix b/pkgs/desktops/lxqt/lxqt-session/default.nix index fbf2c7ddde7..458a5080bcf 100644 --- a/pkgs/desktops/lxqt/lxqt-session/default.nix +++ b/pkgs/desktops/lxqt/lxqt-session/default.nix @@ -34,7 +34,7 @@ mkDerivation rec { description = "An alternative session manager ported from the original razor-session"; homepage = https://github.com/lxqt/lxqt-session; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-sudo/default.nix b/pkgs/desktops/lxqt/lxqt-sudo/default.nix index 91159398b8f..c0e7443d3dd 100644 --- a/pkgs/desktops/lxqt/lxqt-sudo/default.nix +++ b/pkgs/desktops/lxqt/lxqt-sudo/default.nix @@ -31,7 +31,7 @@ mkDerivation rec { description = "GUI frontend for sudo/su"; homepage = https://github.com/lxqt/lxqt-sudo; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/lxqt-themes/default.nix b/pkgs/desktops/lxqt/lxqt-themes/default.nix index 9d8da87fd5d..f4648188140 100644 --- a/pkgs/desktops/lxqt/lxqt-themes/default.nix +++ b/pkgs/desktops/lxqt/lxqt-themes/default.nix @@ -20,7 +20,7 @@ mkDerivation rec { description = "Themes, graphics and icons for LXQt"; homepage = https://github.com/lxqt/lxqt-themes; license = licenses.lgpl21; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/lxqt/screengrab/default.nix b/pkgs/desktops/lxqt/screengrab/default.nix index bac68f7166c..380e50e827e 100644 --- a/pkgs/desktops/lxqt/screengrab/default.nix +++ b/pkgs/desktops/lxqt/screengrab/default.nix @@ -32,7 +32,7 @@ mkDerivation rec { description = "Crossplatform tool for fast making screenshots"; homepage = https://github.com/lxqt/screengrab; license = licenses.gpl2; - platforms = with platforms; unix; + platforms = platforms.linux; maintainers = with maintainers; [ romildo ]; }; } diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix new file mode 100644 index 00000000000..db674f4fb7e --- /dev/null +++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix @@ -0,0 +1,92 @@ +{ stdenv +, appstream +, appstream-glib +, dbus +, desktop-file-utils +, elementary-gtk-theme +, elementary-icon-theme +, fetchFromGitHub +, fetchpatch +, flatpak +, gettext +, glib +, granite +, gtk3 +, json-glib +, libgee +, libsoup +, libxml2 +, meson +, ninja +, packagekit +, pantheon +, pkgconfig +, python3 +, vala +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "appcenter"; + version = "3.2.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "0xsxm0qgmnljd4s8m6xajzsjp9skpsa8wwlwqmc5yx34diad7zag"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + appstream-glib + dbus # for pkgconfig + desktop-file-utils + gettext + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + appstream + elementary-icon-theme + elementary-gtk-theme + flatpak + glib + granite + gtk3 + json-glib + libgee + libsoup + libxml2 + packagekit + ]; + + mesonFlags = [ + "-Dhomepage=false" + "-Dpayments=false" + "-Dcurated=false" + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/elementary/appcenter; + description = "An open, pay-what-you-want app store for indie developers, designed for elementary OS"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix index 72983c8479c..4e5f69fc9e6 100644 --- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix @@ -25,15 +25,15 @@ stdenv.mkDerivation rec { pname = "elementary-calendar"; - version = "unstable-2019-09-17"; + version = "unstable-2019-10-29"; repoName = "calendar"; src = fetchFromGitHub { owner = "elementary"; repo = repoName; - rev = "46346e48b53e9d3d59d9f567b622532338f50f32"; # needed for libical 2.0 compat - sha256 = "04xzczcj5rbzqlhmf175d8p0wzw01s4658v5jllrp8nchmndb986"; + rev = "7d201fc5ea9e8dc25c46427397594fcab2016ed6"; # needed for libical 2.0 compat + sha256 = "11bqf3nxrj1sfd0qq5h0jsmimc6mwkd2g7q9ycizn9x5ak2gb8xi"; }; passthru = { diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix index 279e9eff87a..aedc445b05f 100644 --- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation rec { pname = "elementary-camera"; - version = "1.0.4"; + version = "1.0.5"; repoName = "camera"; @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "1p532f961cjdg7szmxw7hw3av9v342hv5rx7in3bbhlc7adxflyc"; + sha256 = "05amcljvc3w77a1b0c76y6rha8g0zm6lqflvg1g7jzz00jchx9d4"; }; passthru = { diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix new file mode 100644 index 00000000000..70d8f63c13c --- /dev/null +++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix @@ -0,0 +1,70 @@ +{ stdenv +, fetchFromGitHub +, pantheon +, pkgconfig +, meson +, ninja +, vala +, python3 +, gtk3 +, glib +, granite +, libgee +, elementary-icon-theme +, elementary-gtk-theme +, gettext +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "elementary-feedback"; + version = "1.0"; + + repoName = "feedback"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = repoName; + rev = version; + sha256 = "0rc4ifs4hd4cj0v028bzc45v64pwx21xylwrhb20jpw61ainfi8s"; + }; + + passthru = { + updateScript = pantheon.updateScript { + inherit repoName; + attrPath = pname; + }; + }; + + nativeBuildInputs = [ + gettext + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + elementary-gtk-theme + libgee + glib + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "GitHub Issue Reporter designed for elementary OS"; + homepage = https://github.com/elementary/feedback; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix index 0bb2824b3d3..1b5de7c168e 100644 --- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix @@ -23,13 +23,14 @@ , zeitgeist , glib-networking , elementary-icon-theme +, libcloudproviders , fetchpatch , wrapGAppsHook }: stdenv.mkDerivation rec { pname = "elementary-files"; - version = "4.1.9"; + version = "4.2.0"; repoName = "files"; @@ -39,7 +40,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "12p1li9a7kqdlgkq20svaly5kr661ww93qngaiic6zv1bdw2bpmv"; + sha256 = "12f0hzb62nchksyqd2gwj3cv001rph24ggd9wywh9i1qwppx4b5k"; }; passthru = { @@ -67,6 +68,7 @@ stdenv.mkDerivation rec { granite gtk3 libcanberra + libcloudproviders libdbusmenu-gtk3 libgee libnotify diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix new file mode 100644 index 00000000000..1fcd486263b --- /dev/null +++ b/pkgs/desktops/pantheon/apps/sideload/default.nix @@ -0,0 +1,73 @@ +{ stdenv +, desktop-file-utils +, elementary-gtk-theme +, elementary-icon-theme +, fetchFromGitHub +, flatpak +, gettext +, glib +, granite +, gtk3 +, libgee +, meson +, ninja +, pantheon +, pkgconfig +, python3 +, vala +, libxml2 +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "sideload"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1qi4wm773bf1szi5a77g9lxjn305v1m85j4nb6il9q4qlh9b1cs5"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-gtk-theme + elementary-icon-theme + flatpak + glib + granite + gtk3 + libgee + libxml2 + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/elementary/sideload; + description = "Flatpak installer, designed for elementary OS"; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix index 3247aed4993..c179160ddab 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix @@ -11,17 +11,18 @@ , gtk3 , switchboard , pciutils +, elementary-feedback }: stdenv.mkDerivation rec { pname = "switchboard-plug-about"; - version = "2.5.2"; + version = "2.6.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "11diwz2aj45yqkxdija8ny0sgm0wl2905gl3799cdl12ss9ffndp"; + sha256 = "12ysymk5y2k49yh3rzmra7jmimxrd54gz2f4ssc9i8w06xj5djp7"; }; passthru = { @@ -46,17 +47,15 @@ stdenv.mkDerivation rec { patches = [ (substituteAll { - src = ./lspci-path.patch; + src = ./fix-paths.patch; inherit pciutils; + elementary_feedback = elementary-feedback; }) - ./remove-update-button.patch ]; - PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; - meta = with stdenv.lib; { description = "Switchboard About Plug"; - homepage = https://github.com/elementary/witchboard-plug-about; + homepage = https://github.com/elementary/switchboard-plug-about; license = licenses.gpl3Plus; platforms = platforms.linux; maintainers = pantheon.maintainers; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch new file mode 100644 index 00000000000..d458689a325 --- /dev/null +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/fix-paths.patch @@ -0,0 +1,26 @@ +diff --git a/src/Plug.vala b/src/Plug.vala +index c32efcbe..0cdaeaca 100644 +--- a/src/Plug.vala ++++ b/src/Plug.vala +@@ -178,7 +178,7 @@ public class About.Plug : Switchboard.Plug { + + var bug_button = new Gtk.Button.with_label (_("Report a Problem")); + bug_button.clicked.connect (() => { +- var appinfo = new GLib.DesktopAppInfo ("io.elementary.feedback.desktop"); ++ var appinfo = new GLib.DesktopAppInfo ("@elementary_feedback@/bin/io.elementary.feedback.desktop"); + if (appinfo != null) { + try { + appinfo.launch (null, null); +diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala +index f8113634..3794bad8 100644 +--- a/src/Views/HardwareView.vala ++++ b/src/Views/HardwareView.vala +@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid { + + // Graphics + try { +- Process.spawn_command_line_sync ("lspci", out graphics); ++ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics); + + if ("VGA" in graphics) { //VGA-keyword indicates graphics-line + string[] lines = graphics.split("\n"); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch deleted file mode 100644 index 352d84c4262..00000000000 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/lspci-path.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/Views/HardwareView.vala b/src/Views/HardwareView.vala -index a3e449c..a95fe93 100644 ---- a/src/Views/HardwareView.vala -+++ b/src/Views/HardwareView.vala -@@ -179,7 +179,7 @@ public class About.HardwareView : Gtk.Grid { - - // Graphics - try { -- Process.spawn_command_line_sync ("lspci", out graphics); -+ Process.spawn_command_line_sync ("@pciutils@/bin/lspci", out graphics); - - if ("VGA" in graphics) { //VGA-keyword indicates graphics-line - string[] lines = graphics.split("\n"); diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch deleted file mode 100644 index 41433f9a76b..00000000000 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/remove-update-button.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/src/Plug.vala b/src/Plug.vala -index 76fca34..3e79c1f 100644 ---- a/src/Plug.vala -+++ b/src/Plug.vala -@@ -65,7 +65,6 @@ public class About.Plug : Switchboard.Plug { - search_results.set ("%s → %s".printf (display_name, _("Restore Default Settings")), ""); - search_results.set ("%s → %s".printf (display_name, _("Suggest Translation")), ""); - search_results.set ("%s → %s".printf (display_name, _("Report Problems")), ""); -- search_results.set ("%s → %s".printf (display_name, _("Updates")), ""); - return search_results; - } - -@@ -161,7 +160,7 @@ public class About.Plug : Switchboard.Plug { - var kernel_version_label = new Gtk.Label (kernel_version); - kernel_version_label.set_selectable (true); - -- var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version)); -+ var gtk_version_label = new Gtk.Label (_("GTK+ %s").printf (gtk_version)); - gtk_version_label.set_selectable (true); - - var website_label = new Gtk.LinkButton.with_label (website_url, _("Website")); -@@ -202,16 +201,6 @@ public class About.Plug : Switchboard.Plug { - issue_dialog.run (); - }); - -- // Update button -- var update_button = new Gtk.Button.with_label (_("Check for Updates")); -- update_button.clicked.connect (() => { -- try { -- Process.spawn_command_line_async ("io.elementary.appcenter --show-updates"); -- } catch (Error e) { -- warning (e.message); -- } -- }); -- - // Restore settings button - var settings_restore_button = new Gtk.Button.with_label (_("Restore Default Settings")); - settings_restore_button.clicked.connect (settings_restore_clicked); -@@ -224,7 +213,6 @@ public class About.Plug : Switchboard.Plug { - button_grid.add (settings_restore_button); - button_grid.add (translate_button); - button_grid.add (bug_button); -- button_grid.add (update_button); - button_grid.set_child_non_homogeneous (help_button, true); - - var software_grid = new Gtk.Grid (); -@@ -238,7 +226,7 @@ public class About.Plug : Switchboard.Plug { - software_grid.attach (based_off, 0, 2, 2, 1); - } - -- software_grid.attach (kernel_version_label, 0, 3, 2, 1); -+ software_grid.attach (kernel_version_label, 0, 3, 2, 1); - software_grid.attach (gtk_version_label, 0, 4, 2, 1); - software_grid.attach (website_label, 0, 5, 2, 1); - diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix index 9f1c75b7b43..ca29ab65afc 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-bluetooth"; - version = "2.2.2"; + version = "2.3.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "0rp9wa0yilc3wgwnybc6cryxphja7imixn45zhj475a4nb3afd0q"; + sha256 = "1m8nzav976xs3sash2nbyrfn2sk7aah352ypihbp7bacid5wnhr7"; }; passthru = { @@ -44,8 +44,6 @@ stdenv.mkDerivation rec { switchboard ]; - PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; - meta = with stdenv.lib; { description = "Switchboard Bluetooth Plug"; homepage = https://github.com/elementary/switchboard-plug-bluetooth; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch deleted file mode 100644 index 0fe0ac8b10c..00000000000 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/clock-format.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/DateTime1.vala b/src/DateTime1.vala -index 5a80fbd..2e1f948 100644 ---- a/src/DateTime1.vala -+++ b/src/DateTime1.vala -@@ -38,6 +38,6 @@ public class DateTime.Settings : Granite.Services.Settings { - public string clock_format { get; set; } - - public Settings () { -- base ("io.elementary.desktop.wingpanel.datetime"); -+ base ("io.elementary.granite"); - } - } diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix index c0c7bbdec2e..cafb4014407 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-datetime"; - version = "2.1.5"; + version = "2.1.6"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1iz8skf5dw76a07ljc8v8lw2x2nrmq8j6sggm227cmxy60gadsdv"; + sha256 = "09734c3qc0296zf14rdhl4p6ppga015rz9hhsvlcc3nvyw7kdqkc"; }; passthru = { @@ -51,8 +51,6 @@ stdenv.mkDerivation rec { src = ./timezone.patch; tzdata = "${tzdata}/share/zoneinfo/zone.tab"; }) - # Use "clock-format" GSettings key that's been moved to granite - ./clock-format.patch ]; PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix index 76cfe61fc77..00524786f4b 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-display"; - version = "2.1.8"; + version = "2.1.9"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1xpgkvcv3bylpaj7c80727vr55vilkgjvnlbw7d5pr56v6mv7n9j"; + sha256 = "0g9apywxgkan82h933rjjdm9fhd8vak8mziwsbqlprdz310b2jb2"; }; passthru = { @@ -42,8 +42,6 @@ stdenv.mkDerivation rec { switchboard ]; - PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; - meta = with stdenv.lib; { description = "Switchboard Displays Plug"; homepage = https://github.com/elementary/switchboard-plug-display; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix index fd67440a43c..5c72af92397 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation rec { pname = "switchboard-plug-security-privacy"; - version = "2.2.1"; + version = "2.2.2"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "0k2bq7l0m7qfpy1mkb3qvsinqd8n4lp0vwz3x64wlgfn2qipm1fn"; + sha256 = "1dwq9rqswgnnglhrgcpvrp6shn3pb4x8f8f23x84sqakb430idp7"; }; passthru = { @@ -51,8 +51,6 @@ stdenv.mkDerivation rec { zeitgeist ]; - PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder "out"}/lib/switchboard"; - patches = [ ./hardcode-gsettings.patch ]; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch index ffaf1ecf5db..24a104248f8 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/hardcode-gsettings.patch @@ -1,25 +1,22 @@ diff --git a/src/Views/FirewallPanel.vala b/src/Views/FirewallPanel.vala -index 994c4d1..5702de2 100644 +index 0335c29..481b1c8 100644 --- a/src/Views/FirewallPanel.vala +++ b/src/Views/FirewallPanel.vala -@@ -49,10 +49,13 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage { +@@ -49,7 +49,11 @@ public class SecurityPrivacy.FirewallPanel : Granite.SimpleSettingsPage { } construct { - settings = new Settings ("io.elementary.switchboard.security-privacy"); + SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@SWITCHBOARD_SEC_PRIV_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true); + SettingsSchema security_privacy_schema = sss.lookup ("io.elementary.switchboard.security-privacy", false); ++ + settings = new Settings.full (security_privacy_schema, null, null); + disabled_rules = new Gee.HashMap (); load_disabled_rules (); -- -+ - status_switch.notify["active"].connect (() => { - if (loading == false) { - view.sensitive = status_switch.active; + diff --git a/src/Views/LockPanel.vala b/src/Views/LockPanel.vala -index 081cf10..42f6118 100644 +index 4f523f9..7135a83 100644 --- a/src/Views/LockPanel.vala +++ b/src/Views/LockPanel.vala @@ -30,7 +30,10 @@ public class SecurityPrivacy.LockPanel : Granite.SimpleSettingsPage { @@ -32,5 +29,5 @@ index 081cf10..42f6118 100644 + + locker = new Settings.full (locker_schema, null, null); - var lock_suspend_label = new Gtk.Label (_("Lock on sleep:")); + var lock_suspend_label = new Gtk.Label (_("Lock on suspend:")); var lock_suspend_switch = new Gtk.Switch (); diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix index fe9db999bb6..34a87a6cb16 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix @@ -3,11 +3,12 @@ , pantheon , meson , ninja +, gettext }: stdenv.mkDerivation rec { pname = "elementary-gtk-theme"; - version = "5.2.5"; + version = "5.3.0"; repoName = "stylesheet"; @@ -15,7 +16,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "0934rfdwkn4315mhayzba8a3b6i1xczp66gl6n45hh5c81gb2p65"; + sha256 = "0kxzgqgzbkwi0h4r7zc5yl57k8cm165d1ki1nzmb442wp42q438y"; }; passthru = { @@ -26,6 +27,7 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ + gettext meson ninja ]; diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix index 7467bd124ac..1fba6a949d6 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { pname = "elementary-icon-theme"; - version = "5.0.4"; + version = "5.1.0"; repoName = "icons"; @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "0ha7biqvmkv68x1gi9bfcn5z0ld067pa5czx0pyf053pa86lg3hx"; + sha256 = "1yrf92ysjh1yfm42wznlw0lh9zsm5whghwzx3b3wcdkwdhkdg24z"; }; passthru = { diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index 11193fe872d..9e5391243bd 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, gnome3 }: +{ config, pkgs, lib, gnome3 }: lib.makeScope pkgs.newScope (self: with self; { @@ -66,6 +66,8 @@ lib.makeScope pkgs.newScope (self: with self; { #### APPS + appcenter = callPackage ./apps/appcenter { }; + elementary-calculator = callPackage ./apps/elementary-calculator { }; elementary-calendar = callPackage ./apps/elementary-calendar { }; @@ -76,6 +78,8 @@ lib.makeScope pkgs.newScope (self: with self; { elementary-files = callPackage ./apps/elementary-files { }; + elementary-feedback = callPackage ./apps/elementary-feedback { }; + elementary-music = callPackage ./apps/elementary-music { }; elementary-photos = callPackage ./apps/elementary-photos { }; @@ -86,12 +90,16 @@ lib.makeScope pkgs.newScope (self: with self; { elementary-videos = callPackage ./apps/elementary-videos { }; + sideload = callPackage ./apps/sideload { }; + #### DESKTOP elementary-default-settings = callPackage ./desktop/elementary-default-settings { }; elementary-greeter = callPackage ./desktop/elementary-greeter { }; + elementary-onboarding = callPackage ./desktop/elementary-onboarding { }; + elementary-print-shim = callPackage ./desktop/elementary-print-shim { }; elementary-session-settings = callPackage ./desktop/elementary-session-settings { @@ -219,8 +227,10 @@ lib.makeScope pkgs.newScope (self: with self; { elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { }; +} // lib.optionalAttrs (config.allowAliases or true) { + ### ALIASES - vala = pkgs.vala; # added 2019-10-10 + inherit (pkgs) vala; # added 2019-10-10 }) diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix index 5241aded066..440893935f8 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { pname = "elementary-greeter"; - version = "5.0"; + version = "5.0.1"; repoName = "greeter"; @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "01c8acarxwpakyq69xm4bjwppjf8v3ijmns8masd8raxligb2v8b"; + sha256 = "0qy6iw71p8hv6fpcr7p3hqbzlcpxrz18qdm1inannq68d0pxfx76"; }; passthru = { diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch index 556a0fc82a1..7d2afe7b16c 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/hardcode-fallback-background.patch @@ -1,7 +1,7 @@ -diff --git a/src/Cards/BackgroundImage.vala b/src/Cards/BackgroundImage.vala -index b57fb4d..ddfd56c 100644 ---- a/src/Cards/BackgroundImage.vala -+++ b/src/Cards/BackgroundImage.vala +diff --git a/src/Widgets/BackgroundImage.vala b/src/Widgets/BackgroundImage.vala +index ae9431c..f0f2a49 100644 +--- a/src/Widgets/BackgroundImage.vala ++++ b/src/Widgets/BackgroundImage.vala @@ -9,7 +9,7 @@ public class Greeter.BackgroundImage : Gtk.EventBox { public BackgroundImage (string? path) { @@ -16,7 +16,7 @@ index b57fb4d..ddfd56c 100644 try { - full_pixbuf = new Gdk.Pixbuf.from_file ("/usr/share/backgrounds/elementaryos-default"); -+ full_pixbuf = new Gdk.Pixbuf.from_file ("@default_wallpaper"); ++ full_pixbuf = new Gdk.Pixbuf.from_file ("@default_wallpaper@"); } catch (GLib.Error e) { critical (e.message); } diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix new file mode 100644 index 00000000000..3ee55a141b8 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix @@ -0,0 +1,79 @@ +{ stdenv +, fetchFromGitHub +, pantheon +, fetchpatch +, pkgconfig +, meson +, ninja +, vala +, python3 +, gtk3 +, glib +, granite +, libgee +, elementary-icon-theme +, elementary-gtk-theme +, gettext +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "elementary-onboarding"; + version = "1.0.1"; + + repoName = "onboarding"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = repoName; + rev = version; + sha256 = "025i9av4waqwp1gn8d6sjp8qdwg2j3jskxhmyf9qxbzwfc5msysg"; + }; + + passthru = { + updateScript = pantheon.updateScript { + inherit repoName; + attrPath = pname; + }; + }; + + nativeBuildInputs = [ + gettext + meson + ninja + pkgconfig + python3 + vala + wrapGAppsHook + ]; + + buildInputs = [ + elementary-icon-theme + granite + gtk3 + elementary-gtk-theme + libgee + glib + ]; + + patches = [ + # Make sure we use our logo from /etc/os-release + (fetchpatch { + url = "https://github.com/elementary/onboarding/commit/03975bacb75741d3dd391a126217e415f43c6059.patch"; + sha256 = "1yw7dysav90abxnmkv86bc60dyl8nvi0sgaiz8v39cc2x00rqsg1"; + }) + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "Onboarding app for new users designed for elementary OS"; + homepage = https://github.com/elementary/onboarding; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix index b80e93279c8..4b75b3bff56 100644 --- a/pkgs/desktops/pantheon/desktop/gala/default.nix +++ b/pkgs/desktops/pantheon/desktop/gala/default.nix @@ -26,13 +26,13 @@ stdenv.mkDerivation rec { pname = "gala"; - version = "unstable-2019-07-21"; # Is tracking https://github.com/elementary/gala/commits/stable/juno + version = "unstable-2019-10-31"; # Is tracking https://github.com/elementary/gala/commits/stable/juno src = fetchFromGitHub { owner = "elementary"; repo = pname; - rev = "50694796d4c8f0ca92517d5a628b0efdf748279c"; - sha256 = "17d0hd2145mrf8y5ws3xypdbwj72qv7hrrp6p6lm4k16xd96yznr"; + rev = "0f0724c97ad49f470f41c4a25c63103f51122997"; + sha256 = "09cl3k2am878iiy76bijb0ykrcafh944kz027jgi1y5yk4bwfjc4"; }; passthru = { diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix index ae138c9215c..a266223eced 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { pname = "wingpanel-applications-menu"; - version = "2.4.3"; + version = "2.4.4"; repoName = "applications-menu"; @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { owner = "elementary"; repo = repoName; rev = version; - sha256 = "15mwfynaa57jii43x77iaz5gqjlylh5zxc70am8zgp8vhgzflvyd"; + sha256 = "09ssxn264v6nzrxgk529kpdxq5j3b14z8mbwq0gni1bgjcla773d"; }; passthru = { diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix index 36d1cf0e77a..3a462219f1e 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix @@ -12,8 +12,6 @@ , wingpanel , libgee , libxml2 -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -40,11 +38,9 @@ stdenv.mkDerivation rec { pkgconfig python3 vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix index 74542b5c4c4..91549342052 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix @@ -16,8 +16,6 @@ , libxml2 , libsoup , elementary-calendar -, elementary-icon-theme -, wrapGAppsHook , fetchurl }: @@ -37,13 +35,13 @@ in stdenv.mkDerivation rec { pname = "wingpanel-indicator-datetime"; - version = "2.1.3"; + version = "2.2.0"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "1y7a4xjwl3bpls56ys6g3s6mh5b3qbjm2vw7b6n2i4x7a63c4cbh"; + sha256 = "1whdx0vgm0qbbzsw8dg2liz3cbh3ad5ybkriy4lmx5ynyhpbz0sx"; }; passthru = { @@ -59,11 +57,9 @@ stdenv.mkDerivation rec { pkgconfig python3 vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme old-evolution-data-server granite gtk3 @@ -73,31 +69,11 @@ stdenv.mkDerivation rec { wingpanel ]; - patches = [ - # Use "clock-format" GSettings key that's been moved to granite - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/wingpanel-indicator-datetime/raw/c8d515b76aa812c141212d5515621a6febd781a3/f/00-move-clock-format-settings-to-granite.patch"; - sha256 = "1sq3aw9ckkm057rnrclnw9lyrxbpl37fyzfnbixi2q3ypr70n880"; - }) - # See: https://github.com/elementary/wingpanel-indicator-datetime/pull/117 - (fetchpatch { - url = "https://github.com/elementary/wingpanel-indicator-datetime/commit/4859e72a52d8dac5cad87b192fc912fb013b0ecd.patch"; - sha256 = "0jfhb5sax4sivdfx7il1rc1dvhy0yfv27qhvwbdy0hza9wf8q9k0"; - }) - ]; - - PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder "out"}/lib/wingpanel"; - postPatch = '' chmod +x meson/post_install.py patchShebangs meson/post_install.py ''; - # launches elementary-calendar on selection - preFixup = '' - gappsWrapperArgs+=( --prefix PATH : "${elementary-calendar}/bin" ) - ''; - meta = with stdenv.lib; { description = "Date & Time Indicator for Wingpanel"; homepage = https://github.com/elementary/wingpanel-indicator-datetime; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix index 5431b982f54..2f917b19f11 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix @@ -13,8 +13,6 @@ , libgee , xorg , libgnomekbd -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -40,11 +38,9 @@ stdenv.mkDerivation rec { libxml2 pkgconfig vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix index 6ba19ebf77e..01a815404a6 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix @@ -11,8 +11,6 @@ , networkmanagerapplet , wingpanel , libgee -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -37,11 +35,9 @@ stdenv.mkDerivation rec { ninja pkgconfig vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix index 0327d5e78e2..3b50866c0ed 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix @@ -10,8 +10,6 @@ , wingpanel , libgee , libxml2 -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -37,11 +35,9 @@ stdenv.mkDerivation rec { ninja pkgconfig vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix index a4266a6f459..4dbf6528c70 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix @@ -10,8 +10,6 @@ , wingpanel , libgee , libwnck3 -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -36,11 +34,9 @@ stdenv.mkDerivation rec { ninja pkgconfig vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix index 9f9d4703060..b989bada571 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix @@ -13,8 +13,6 @@ , udev , wingpanel , libgee -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -40,12 +38,10 @@ stdenv.mkDerivation rec { pkgconfig python3 vala - wrapGAppsHook ]; buildInputs = [ bamf - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix index f48638ff2b1..7efb03f9d66 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix @@ -10,8 +10,6 @@ , wingpanel , accountsservice , libgee -, elementary-icon-theme -, wrapGAppsHook }: stdenv.mkDerivation rec { @@ -36,12 +34,10 @@ stdenv.mkDerivation rec { ninja pkgconfig vala - wrapGAppsHook ]; buildInputs = [ accountsservice - elementary-icon-theme granite gtk3 libgee diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix index 038ab75094c..fa89cca68c0 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix @@ -14,8 +14,6 @@ , libcanberra-gtk3 , libgee , libxml2 -, wrapGAppsHook -, elementary-icon-theme }: stdenv.mkDerivation rec { @@ -42,11 +40,9 @@ stdenv.mkDerivation rec { pkgconfig python3 vala - wrapGAppsHook ]; buildInputs = [ - elementary-icon-theme granite gtk3 libcanberra-gtk3 diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix index 06f0fc23a39..1fc7304feb2 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation rec { pname = "wingpanel"; - version = "2.2.5"; + version = "2.2.6"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "15pl3km8jfmlgrrb2fcabdd0rkc849arz6sc3vz6azzpln7gxbq7"; + sha256 = "0q5jhg3gpcjfzfi7g33fv8pb916cqsgk6543b82yy97c20902ap9"; }; passthru = { diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix index b93eb2f3f9b..ab673832857 100644 --- a/pkgs/desktops/pantheon/granite/default.nix +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -1,6 +1,5 @@ { stdenv , fetchFromGitHub -, fetchpatch , python3 , meson , ninja @@ -17,30 +16,15 @@ stdenv.mkDerivation rec { pname = "granite"; - version = "5.2.3"; + version = "5.2.5"; src = fetchFromGitHub { owner = "elementary"; repo = pname; rev = version; - sha256 = "10ddq1s2w4jvpzq813cylmqhh8pggzaz890fy3kzg07275i98gah"; + sha256 = "0z40vhcp2w8s8rnc56pzvjc4s77bln8k84rwwypivjmk3lhpw1vi"; }; - patches = [ - # Resolve the circular dependency between granite and the datetime wingpanel indicator - # See: https://github.com/elementary/granite/pull/242 - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/granite/raw/0550b44ed6400c9b1ff7e70871913747df2ff323/f/00-datetime-clock-format-gsettings.patch"; - sha256 = "0i9yvdmn77x5fjdwd1raw6ym8js8yxa7w6ydc7syx7hcyls00dmq"; - }) - - # Fix build latest vala. - (fetchpatch { - url = "https://github.com/elementary/granite/commit/fd26013c84afdeb6300ae2f4a574856753fc2b58.patch"; - sha256 = "01nxqhj8gr61n6wx6ccrqdn25nmbrhhk437k21g4mxqx0gnih265"; - }) - ]; - passthru = { updateScript = pantheon.updateScript { repoName = pname; diff --git a/pkgs/desktops/pantheon/update.sh b/pkgs/desktops/pantheon/update.sh index 9bbbe260034..8d002fe47c2 100755 --- a/pkgs/desktops/pantheon/update.sh +++ b/pkgs/desktops/pantheon/update.sh @@ -114,13 +114,7 @@ EOF function get_latest_tag ( ) { repo_name="$1" - # Using github release api because sorting this repo just doesn't work because of old git sillyness - # Also too lazy to care to adapt `git ls-remote` command to work with it - if [ $repo_name == "switchboard-plug-pantheon-shell" ]; then - curl --silent --show-error --fail -X GET "https://api.github.com/repos/elementary/$repo_name/releases/latest" | jq -r '.tag_name' - else - git ls-remote --tags --sort="v:refname" "https://github.com/elementary/$repo_name" | tail -n1 | sed 's/.*\///; s/\^{}//' - fi + curl --silent --show-error --fail -X GET "https://api.github.com/repos/elementary/$repo_name/releases/latest" | jq -r '.tag_name' } # diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index 68c05d28978..39b3e4734fe 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -6,6 +6,7 @@ , profiledCompiler ? false , staticCompiler ? false , enableShared ? true +, enableLTO ? true , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) , gmp, mpfr, libmpc, gettext, which @@ -257,7 +258,7 @@ stdenv.mkDerivation ({ # Basic configuration [ - "--enable-lto" + (if enableLTO then "--enable-lto" else "--disable-lto") "--disable-libstdcxx-pch" "--without-included-gettext" "--with-system-zlib" diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index b84b8958325..52f568b2ed9 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -6,6 +6,7 @@ , profiledCompiler ? false , staticCompiler ? false , enableShared ? true +, enableLTO ? true , texinfo ? null , perl ? null # optional, for texi2pod (then pod2man) , gmp, mpfr, libmpc, gettext, which @@ -247,7 +248,7 @@ stdenv.mkDerivation ({ # Basic configuration [ - "--enable-lto" + (if enableLTO then "--enable-lto" else "--disable-lto") "--disable-libstdcxx-pch" "--without-included-gettext" "--with-system-zlib" diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix index 762d1233bb6..0c44595b24b 100644 --- a/pkgs/development/compilers/ispc/default.nix +++ b/pkgs/development/compilers/ispc/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { # there are missing dependencies in the Makefile, causing sporadic build failures enableParallelBuilding = false; - doCheck = true; + doCheck = stdenv.isLinux; buildInputs = with llvmPackages; [ which @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { homepage = https://ispc.github.io/ ; description = "Intel 'Single Program, Multiple Data' Compiler, a vectorised language"; license = licenses.bsd3; - platforms = ["x86_64-linux"]; # TODO: buildable on more platforms? + platforms = ["x86_64-linux" "x86_64-darwin"]; # TODO: buildable on more platforms? maintainers = [ maintainers.aristid ]; }; } diff --git a/pkgs/development/compilers/pakcs/curry-base.nix b/pkgs/development/compilers/pakcs/curry-base.nix index 2d98699d283..b34a2146383 100644 --- a/pkgs/development/compilers/pakcs/curry-base.nix +++ b/pkgs/development/compilers/pakcs/curry-base.nix @@ -3,7 +3,7 @@ }: mkDerivation { pname = "curry-base"; - version = "1.0.0"; + version = "1.1.0"; src = ./.; libraryHaskellDepends = [ base containers directory extra filepath mtl parsec pretty time diff --git a/pkgs/development/compilers/pakcs/curry-frontend.nix b/pkgs/development/compilers/pakcs/curry-frontend.nix index d94bef9ec7f..b169578c7c3 100644 --- a/pkgs/development/compilers/pakcs/curry-frontend.nix +++ b/pkgs/development/compilers/pakcs/curry-frontend.nix @@ -1,21 +1,23 @@ -{ mkDerivation, base, Cabal, containers, curry-base, directory -, extra, filepath, mtl, network-uri, pretty, process, set-extra -, stdenv, transformers +{ mkDerivation, base, bytestring, Cabal, containers, curry-base +, directory, extra, file-embed, filepath, mtl, network-uri, pretty +, process, set-extra, stdenv, template-haskell, transformers }: mkDerivation { pname = "curry-frontend"; - version = "1.0.2"; + version = "1.0.4"; src = ./.; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; libraryHaskellDepends = [ - base containers curry-base directory extra filepath mtl network-uri - pretty process set-extra transformers + base bytestring containers curry-base directory extra file-embed + filepath mtl network-uri pretty process set-extra template-haskell + transformers ]; executableHaskellDepends = [ - base containers curry-base directory extra filepath mtl network-uri - pretty process set-extra transformers + base bytestring containers curry-base directory extra file-embed + filepath mtl network-uri pretty process set-extra template-haskell + transformers ]; testHaskellDepends = [ base Cabal curry-base filepath ]; homepage = "http://curry-language.org"; diff --git a/pkgs/development/compilers/pakcs/default.nix b/pkgs/development/compilers/pakcs/default.nix index 0b46bd1f24d..94b6daa888e 100644 --- a/pkgs/development/compilers/pakcs/default.nix +++ b/pkgs/development/compilers/pakcs/default.nix @@ -4,13 +4,13 @@ , curl, git, unzip, gnutar, coreutils, sqlite }: let - name = "pakcs-2.1.2"; + name = "pakcs-2.2.0"; # Don't switch to development release without a reason, because its # source updates without version bump. Prefer current release instead. src = fetchurl { url = "https://www.informatik.uni-kiel.de/~pakcs/download/${name}-src.tar.gz"; - sha256 = "0i0nprli3knc7zlp5qkqkpiq3ny36v52hnvgph376l3ajjds7wf6"; + sha256 = "0c0a6cp9lwha5i90kv9ya2zi1ggnvkf4gwjfzbffgwwa77s2wz2l"; }; curry-frontend = (haskellPackages.override { diff --git a/pkgs/development/interpreters/love/11.1.nix b/pkgs/development/interpreters/love/11.1.nix index 478b147d1f3..6f3f7161a0b 100644 --- a/pkgs/development/interpreters/love/11.1.nix +++ b/pkgs/development/interpreters/love/11.1.nix @@ -5,7 +5,7 @@ let pname = "love"; - version = "11.2"; + version = "11.3"; in stdenv.mkDerivation { @@ -14,7 +14,7 @@ stdenv.mkDerivation { owner = "rude"; repo = "love"; rev = version; - sha256 = "0q1lsgc1621czrg49nmabq6am9sgxa9syxrwzlksqqr4dyzw4nmf"; + sha256 = "18gfp65ngb8k8g7hgbw2bhrwk2i7m56m21d39pk4484q9z8p4vm7"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index ebf5ef3e66d..ddfa9557582 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -65,10 +65,10 @@ in { sourceVersion = { major = "3"; minor = "5"; - patch = "8"; + patch = "9"; suffix = ""; }; - sha256 = "0hgzn8l4ps93f3h4b47vczsbhy2kihvzdisjjx6mrn85rndk3c8v"; + sha256 = "0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2"; inherit (darwin) CF configd; inherit passthruFun; }; diff --git a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py index e4a79d0c428..82b2aac39a9 100755 --- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py +++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py @@ -6,9 +6,9 @@ You can pass in multiple files or paths. You'll likely want to use `` - $ ./update-python-libraries ../../pkgs/development/python-modules/* + $ ./update-python-libraries ../../pkgs/development/python-modules/**/default.nix `` -to update all libraries in that folder. +to update all non-pinned libraries in that folder. """ import argparse diff --git a/pkgs/development/libraries/SDL/find-headers.patch b/pkgs/development/libraries/SDL/find-headers.patch index 5f75ae9e830..fd498117fd6 100644 --- a/pkgs/development/libraries/SDL/find-headers.patch +++ b/pkgs/development/libraries/SDL/find-headers.patch @@ -1,7 +1,8 @@ -diff -ru3 SDL-1.2.15/sdl-config.in SDL-1.2.15-new/sdl-config.in ---- SDL-1.2.15/sdl-config.in 2012-01-19 10:30:06.000000000 +0400 -+++ SDL-1.2.15-new/sdl-config.in 2016-08-22 05:32:52.716397920 +0300 -@@ -42,7 +42,11 @@ +diff --git a/sdl-config.in b/sdl-config.in +index e0fcc0c..bf7928a 100644 +--- a/sdl-config.in ++++ b/sdl-config.in +@@ -42,14 +42,18 @@ while test $# -gt 0; do echo @SDL_VERSION@ ;; --cflags) @@ -13,4 +14,13 @@ diff -ru3 SDL-1.2.15/sdl-config.in SDL-1.2.15-new/sdl-config.in + echo $SDL_CFLAGS @SDL_CFLAGS@ ;; @ENABLE_SHARED_TRUE@ --libs) - @ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ +-@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ ++@ENABLE_SHARED_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@ $SDL_LIB_PATH + @ENABLE_SHARED_TRUE@ ;; + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@ --static-libs) + @ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@ --libs|--static-libs) +-@ENABLE_STATIC_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_STATIC_LIBS@ ++@ENABLE_STATIC_TRUE@ echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_STATIC_LIBS@ $SDL_LIB_PATH + @ENABLE_STATIC_TRUE@ ;; + *) + echo "${usage}" 1>&2 diff --git a/pkgs/development/libraries/SDL/setup-hook.sh b/pkgs/development/libraries/SDL/setup-hook.sh index 20382f18f52..e8f96fdd1ac 100644 --- a/pkgs/development/libraries/SDL/setup-hook.sh +++ b/pkgs/development/libraries/SDL/setup-hook.sh @@ -1,6 +1,7 @@ addSDLPath () { if [ -e "$1/include/SDL" ]; then export SDL_PATH="$SDL_PATH $1/include/SDL" + export SDL_LIB_PATH="$SDL_LIB_PATH -L$1/lib" fi } diff --git a/pkgs/development/libraries/SDL_Pango/default.nix b/pkgs/development/libraries/SDL_Pango/default.nix new file mode 100644 index 00000000000..e330ccef611 --- /dev/null +++ b/pkgs/development/libraries/SDL_Pango/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchpatch, fetchurl, SDL, autoreconfHook, pango, pkgconfig }: + +stdenv.mkDerivation rec { + pname = "SDL_Pango"; + version = "0.1.2"; + + src = fetchurl { + url = "mirror://sourceforge/sdlpango/${pname}-${version}.tar.gz"; + sha256 = "197baw1dsg0p4pljs5k0fshbyki00r4l49m1drlpqw6ggawx6xbz"; + }; + + patches = [ + (fetchpatch { + url = https://sources.debian.org/data/main/s/sdlpango/0.1.2-6/debian/patches/api_additions.patch; + sha256 = "00p5ry5gd3ixm257p9i2c4jg0qj8ipk8nf56l7c9fma8id3zxyld"; + }) + ./fixes.patch + ]; + + preConfigure = "autoreconf -i -f"; + + nativeBuildInputs = [ pkgconfig autoreconfHook ]; + buildInputs = [ SDL pango ]; + + meta = with stdenv.lib; { + description = "Connects the Pango rendering engine to SDL"; + license = licenses.lgpl21Plus; + platforms = platforms.all; + homepage = http://sdlpango.sourceforge.net/; + maintainers = with maintainers; [ puckipedia ]; + }; +} diff --git a/pkgs/development/libraries/SDL_Pango/fixes.patch b/pkgs/development/libraries/SDL_Pango/fixes.patch new file mode 100644 index 00000000000..9703c0d4918 --- /dev/null +++ b/pkgs/development/libraries/SDL_Pango/fixes.patch @@ -0,0 +1,148 @@ +diff --git a/SDL_Pango.pc.in b/SDL_Pango.pc.in +index 750d091..3af38ff 100644 +--- a/SDL_Pango.pc.in ++++ b/SDL_Pango.pc.in +@@ -6,6 +6,6 @@ includedir=@includedir@ + Name: SDL_Pango + Description: SDL library for internationalized text rendering + Version: @VERSION@ +-Requires: pango ++Requires: pango pangoft2 + Libs: -L${libdir} -lSDL_Pango + Cflags: -I${includedir} +\ No newline at end of file +diff --git a/src/SDL_Pango.c b/src/SDL_Pango.c +index b969bc1..cc2c3f5 100644 +--- a/src/SDL_Pango.c ++++ b/src/SDL_Pango.c +@@ -231,6 +231,41 @@ + + #include "SDL_Pango.h" + ++const SDLPango_Matrix _MATRIX_WHITE_BACK ++ = {255, 0, 0, 0, ++ 255, 0, 0, 0, ++ 255, 0, 0, 0, ++ 255, 255, 0, 0,}; ++const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK; ++ ++const SDLPango_Matrix _MATRIX_BLACK_BACK ++ = {0, 255, 0, 0, ++ 0, 255, 0, 0, ++ 0, 255, 0, 0, ++ 255, 255, 0, 0,}; ++const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK; ++ ++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER ++ = {0, 0, 0, 0, ++ 0, 0, 0, 0, ++ 0, 0, 0, 0, ++ 0, 255, 0, 0,}; ++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER; ++ ++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER ++ = {255, 255, 0, 0, ++ 255, 255, 0, 0, ++ 255, 255, 0, 0, ++ 0, 255, 0, 0,}; ++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER; ++ ++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER ++ = {255, 255, 0, 0, ++ 255, 255, 0, 0, ++ 255, 255, 0, 0, ++ 0, 0, 0, 0,}; ++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER; ++ + //! non-zero if initialized + static int IS_INITIALIZED = 0; + +diff --git a/src/SDL_Pango.h b/src/SDL_Pango.h +index 6ebdf78..b7e5e58 100644 +--- a/src/SDL_Pango.h ++++ b/src/SDL_Pango.h +@@ -47,57 +47,32 @@ typedef struct _SDLPango_Matrix { + Uint8 m[4][4]; /*! Matrix variables */ + } SDLPango_Matrix; + +-const SDLPango_Matrix _MATRIX_WHITE_BACK +- = {255, 0, 0, 0, +- 255, 0, 0, 0, +- 255, 0, 0, 0, +- 255, 255, 0, 0,}; + + /*! + Specifies white back and black letter. + */ +-const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK; ++extern const SDLPango_Matrix *MATRIX_WHITE_BACK; + +-const SDLPango_Matrix _MATRIX_BLACK_BACK +- = {0, 255, 0, 0, +- 0, 255, 0, 0, +- 0, 255, 0, 0, +- 255, 255, 0, 0,}; + /*! + Specifies black back and white letter. + */ +-const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK; ++extern const SDLPango_Matrix *MATRIX_BLACK_BACK; + +-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER +- = {0, 0, 0, 0, +- 0, 0, 0, 0, +- 0, 0, 0, 0, +- 0, 255, 0, 0,}; + /*! + Specifies transparent back and black letter. + */ +-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER; ++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER; + +-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER +- = {255, 255, 0, 0, +- 255, 255, 0, 0, +- 255, 255, 0, 0, +- 0, 255, 0, 0,}; + /*! + Specifies transparent back and white letter. + */ +-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER; ++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER; + +-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER +- = {255, 255, 0, 0, +- 255, 255, 0, 0, +- 255, 255, 0, 0, +- 0, 0, 0, 0,}; + /*! + Specifies transparent back and transparent letter. + This is useful for KARAOKE like rendering. + */ +-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER; ++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER; + + /*! + Specifies direction of text. See Pango reference for detail +@@ -186,7 +161,8 @@ extern DECLSPEC void SDLCALL SDLPango_SetBaseDirection( + SDLPango_Direction direction); + + +-#ifdef __FT2_BUILD_UNIX_H__ ++ ++#ifdef __PANGO_H__ + + extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface( + const FT_Bitmap *bitmap, +@@ -194,11 +170,8 @@ extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface( + const SDLPango_Matrix *matrix, + SDL_Rect *rect); + +-#endif /* __FT2_BUILD_UNIX_H__ */ + + +-#ifdef __PANGO_H__ +- + extern DECLSPEC PangoFontMap* SDLCALL SDLPango_GetPangoFontMap( + SDLPango_Context *context); + diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix index 263acfed63a..0c3ba0abaa9 100644 --- a/pkgs/development/libraries/alembic/default.nix +++ b/pkgs/development/libraries/alembic/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "alembic"; - version = "1.7.11"; + version = "1.7.12"; src = fetchFromGitHub { owner = "alembic"; repo = "alembic"; rev = version; - sha256 = "1lalbqn4cwf0vp4hiq72gwpd7kq501j21rnjb380mv26pk7r2ivz"; + sha256 = "0a9icrv6pwh2b73lywq1aj7i19pmzpg59iy3ngal8vq4zdciylqc"; }; outputs = [ "bin" "dev" "out" "lib" ]; diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix index 42e331f6574..19768d77a8d 100644 --- a/pkgs/development/libraries/catch2/default.nix +++ b/pkgs/development/libraries/catch2/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "catch2"; - version = "2.10.0"; + version = "2.10.2"; src = fetchFromGitHub { owner = "catchorg"; repo = "Catch2"; rev = "v${version}"; - sha256="1mc6zix3hk3ggpihmdd4y0xvq3qvdw9c1arwnmi4nf3g4693k97r"; + sha256="01ldfv4337s3vdhsx415d49jchpvqy61c77dhnri30ip5af0ipjs"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix index e0f72f13df9..591dea24b57 100644 --- a/pkgs/development/libraries/cimg/default.nix +++ b/pkgs/development/libraries/cimg/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "cimg"; - version = "2.7.4"; + version = "2.7.5"; src = fetchurl { url = "http://cimg.eu/files/CImg_${version}.zip"; - sha256 = "1csqac8z2q8dp95sdjn4am8icnxclz28yx3ih5izxxp4s5dpjbjb"; + sha256 = "1xhs0j7mfiln9apfcc9cd3cmjj1prm211vih2zn2qi87ialv36cg"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix index 557c9aaa239..2dfb5e9e248 100644 --- a/pkgs/development/libraries/folly/default.nix +++ b/pkgs/development/libraries/folly/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "folly"; - version = "2019.10.14.00"; + version = "2019.10.21.00"; src = fetchFromGitHub { owner = "facebook"; repo = "folly"; rev = "v${version}"; - sha256 = "0d32cwwza3hqsr0z4kcrk1cj26ipbwkqm6nz5335rw4k9y5kyz16"; + sha256 = "1jy0yxqzcxxs6sq8161zbdzj4ngwjs0h2aca6n9qkaj1v5jd27c7"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/gegl/4.0.nix b/pkgs/development/libraries/gegl/4.0.nix index 0e3f79b1814..2edb47cb9bb 100644 --- a/pkgs/development/libraries/gegl/4.0.nix +++ b/pkgs/development/libraries/gegl/4.0.nix @@ -1,31 +1,123 @@ -{ stdenv, fetchurl, pkgconfig, glib, babl, libpng, cairo, libjpeg, which -, librsvg, pango, gtk, bzip2, json-glib, gettext, autoreconfHook, libraw -, gexiv2, libwebp, libintl }: +{ stdenv +, fetchurl +, fetchpatch +, pkgconfig +, vala +, gobject-introspection +, gtk-doc +, docbook_xsl +, docbook_xml_dtd_43 +, glib +, babl +, libpng +, cairo +, libjpeg +, librsvg +, lensfun +, libspiro +, netsurf +, pango +, poly2tri-c +, bzip2 +, json-glib +, gettext +, meson +, ninja +, libraw +, gexiv2 +, libwebp +, luajit +, openexr +, OpenCL +}: stdenv.mkDerivation rec { pname = "gegl"; - version = "0.4.16"; + version = "0.4.18"; outputs = [ "out" "dev" "devdoc" ]; outputBin = "dev"; src = fetchurl { - url = "https://download.gimp.org/pub/gegl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; - sha256 = "0njydcr6qdmfzh4fxx544681qxdpf7y6b2f47jcypn810dlxy4h1"; + url = "https://download.gimp.org/pub/gegl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0r6akqnrkvxizyhyi8sv40mxm7j4bcwjb6mqjpxy0zzbbfsdyin9"; }; - enableParallelBuilding = true; + patches = [ + # Fix arch detection. + # https://gitlab.gnome.org/GNOME/gegl/merge_requests/53 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gegl/commit/6bcf95fd0f32cf5e8b1ddbe17b14d9ad049bded8.patch"; + sha256 = "0aqdr3y5mr47wq44jnhp97188bvpjlf56zrlmn8aazdf07r2apma"; + }) - doCheck = true; - - buildInputs = [ - libpng cairo libjpeg librsvg pango gtk bzip2 - libraw libwebp gexiv2 + # Fix Darwin build. + # https://gitlab.gnome.org/GNOME/gegl/merge_requests/54 + (fetchpatch { + url = "https://gitlab.gnome.org/GNOME/gegl/commit/2bc06bfedee4fb25f6a966c8235b75292e24e55f.patch"; + sha256 = "1psls61wsrdq5pzpvj22mrm46lpzrw3wkx6li7dv6fyb65wz2n4d"; + }) ]; - propagatedBuildInputs = [ glib json-glib babl ]; # for gegl-4.0.pc + nativeBuildInputs = [ + pkgconfig + gettext + meson + ninja + vala + gobject-introspection + gtk-doc + docbook_xsl + docbook_xml_dtd_43 + ]; - nativeBuildInputs = [ pkgconfig gettext which autoreconfHook libintl ]; + buildInputs = [ + libpng + cairo + libjpeg + librsvg + lensfun + libspiro + netsurf.libnsgif + pango + poly2tri-c + bzip2 + libraw + libwebp + gexiv2 + luajit + openexr + ] ++ stdenv.lib.optional stdenv.isDarwin OpenCL; + + # for gegl-4.0.pc + propagatedBuildInputs = [ + glib + json-glib + babl + ]; + + mesonFlags = [ + "-Ddocs=true" + "-Dmrg=disabled" # not sure what that is + "-Dsdl2=disabled" + "-Dpygobject=disabled" + "-Dlibav=disabled" + "-Dlibv4l=disabled" + "-Dlibv4l2=disabled" + "-Dumfpack=disabled" + ]; + + # TODO: Fix missing math symbols in gegl seamless clone. + # It only appears when we use packaged poly2tri-c instead of vendored one. + NIX_CFLAGS_COMPILE = [ "-lm" ]; + + postPatch = '' + chmod +x tests/opencl/opencl_test.sh tests/buffer/buffer-tests-run.sh + patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tests/buffer/buffer-tests-run.sh tools/xml_insert.sh + ''; + + # tests fail to connect to the com.apple.fonts daemon in sandboxed mode + doCheck = !stdenv.isDarwin; meta = with stdenv.lib; { description = "Graph-based image processing framework"; diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/development/libraries/gjs/default.nix similarity index 67% rename from pkgs/desktops/gnome-3/core/gjs/default.nix rename to pkgs/development/libraries/gjs/default.nix index b0c1e2d3077..6430be0b57f 100644 --- a/pkgs/desktops/gnome-3/core/gjs/default.nix +++ b/pkgs/development/libraries/gjs/default.nix @@ -1,6 +1,19 @@ -{ fetchurl, stdenv, pkgconfig, gnome3, gtk3, atk, gobject-introspection -, spidermonkey_60, pango, readline, glib, libxml2, dbus, gdk-pixbuf -, makeWrapper }: +{ fetchurl +, stdenv +, pkgconfig +, gnome3 +, gtk3 +, atk +, gobject-introspection +, spidermonkey_60 +, pango +, readline +, glib +, libxml2 +, dbus +, gdk-pixbuf +, makeWrapper +}: stdenv.mkDerivation rec { pname = "gjs"; @@ -11,16 +24,25 @@ stdenv.mkDerivation rec { sha256 = "1xf68rbagkflb9yi3visfw8cbxqlzd717y8jakgw0y6whzm1dpxl"; }; - passthru = { - updateScript = gnome3.updateScript { packageName = "gjs"; attrPath = "gnome3.gjs"; }; - }; - outputs = [ "out" "installedTests" ]; - nativeBuildInputs = [ pkgconfig makeWrapper ]; - buildInputs = [ libxml2 gobject-introspection glib pango readline dbus ]; + nativeBuildInputs = [ + pkgconfig + makeWrapper + ]; - propagatedBuildInputs = [ spidermonkey_60 ]; + buildInputs = [ + libxml2 + gobject-introspection + glib + pango + readline + dbus + ]; + + propagatedBuildInputs = [ + spidermonkey_60 + ]; configureFlags = [ "--enable-installed-tests" @@ -42,10 +64,19 @@ stdenv.mkDerivation rec { --prefix GI_TYPELIB_PATH : "${stdenv.lib.makeSearchPath "lib/girepository-1.0" [ gtk3 atk pango.out gdk-pixbuf ]}:$installedTests/libexec/gjs/installed-tests" ''; + separateDebugInfo = stdenv.isLinux; + + passthru = { + updateScript = gnome3.updateScript { + packageName = "gjs"; + }; + }; + meta = with stdenv.lib; { description = "JavaScript bindings for GNOME"; + homepage = "https://gitlab.gnome.org/GNOME/gjs/blob/master/doc/Home.md"; + license = licenses.lgpl2Plus; maintainers = gnome3.maintainers; platforms = platforms.linux; - license = licenses.lgpl2Plus; }; } diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix index 7c7d0aca75c..68bc169bb89 100644 --- a/pkgs/development/libraries/glib/default.nix +++ b/pkgs/development/libraries/glib/default.nix @@ -188,6 +188,8 @@ stdenv.mkDerivation rec { inherit doCheck; + separateDebugInfo = stdenv.isLinux; + passthru = rec { gioModuleDir = "lib/gio/modules"; makeSchemaPath = dir: name: "${dir}/share/gsettings-schemas/${name}/glib-2.0/schemas"; diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix index af225cc50f2..6ae1f47e38c 100644 --- a/pkgs/development/libraries/gnu-efi/default.nix +++ b/pkgs/development/libraries/gnu-efi/default.nix @@ -1,4 +1,6 @@ -{ stdenv, fetchurl, pciutils }: with stdenv.lib; +{ stdenv, buildPackages, fetchurl, pciutils }: + +with stdenv.lib; stdenv.mkDerivation rec { pname = "gnu-efi"; @@ -15,14 +17,9 @@ stdenv.mkDerivation rec { makeFlags = [ "PREFIX=\${out}" - "CC=${stdenv.cc.targetPrefix}gcc" - "AS=${stdenv.cc.targetPrefix}as" - "LD=${stdenv.cc.targetPrefix}ld" - "AR=${stdenv.cc.targetPrefix}ar" - "RANLIB=${stdenv.cc.targetPrefix}ranlib" - "OBJCOPY=${stdenv.cc.targetPrefix}objcopy" - ] ++ stdenv.lib.optional stdenv.isAarch32 "ARCH=arm" - ++ stdenv.lib.optional stdenv.isAarch64 "ARCH=aarch64"; + "HOSTCC=${buildPackages.stdenv.cc.targetPrefix}cc" + "CROSS_COMPILE=${stdenv.cc.targetPrefix}" + ]; meta = with stdenv.lib; { description = "GNU EFI development toolchain"; diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix index 15c3ab2daf8..7f09b52d51f 100644 --- a/pkgs/development/libraries/gtk/3.x.nix +++ b/pkgs/development/libraries/gtk/3.x.nix @@ -3,6 +3,9 @@ , fetchpatch , pkgconfig , gettext +, docbook_xsl +, docbook_xml_dtd_43 +, gtk-doc , meson , ninja , python3 @@ -33,6 +36,7 @@ , wayland-protocols , xineramaSupport ? stdenv.isLinux , cupsSupport ? stdenv.isLinux +, withGtkDoc ? stdenv.isLinux , cups ? null , AppKit , Cocoa @@ -46,7 +50,7 @@ stdenv.mkDerivation rec { pname = "gtk+3"; version = "3.24.12"; - outputs = [ "out" "dev" ]; + outputs = [ "out" "dev" ] ++ optional withGtkDoc "devdoc"; outputBin = "dev"; setupHooks = [ @@ -78,6 +82,7 @@ stdenv.mkDerivation rec { separateDebugInfo = stdenv.isLinux; mesonFlags = [ + "-Dgtk_doc=${boolToString withGtkDoc}" "-Dtests=false" ]; @@ -114,6 +119,10 @@ stdenv.mkDerivation rec { python3 sassc setupHooks + ] ++ optionals withGtkDoc [ + docbook_xml_dtd_43 + docbook_xsl + gtk-doc ]; buildInputs = [ diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix index 3e1799d82cd..fb64aa81d1a 100644 --- a/pkgs/development/libraries/hunspell/dictionaries.nix +++ b/pkgs/development/libraries/hunspell/dictionaries.nix @@ -722,4 +722,14 @@ in rec { platforms = platforms.all; }; }; + + /* RUSSIAN */ + + ru_RU = ru-ru; + ru-ru = mkDictFromLibreOffice { + shortName = "ru-ru"; + dictFileName = "ru_RU"; + shortDescription = "Russian (Russian)"; + license = with stdenv.lib.licenses; [ mpl20 lgpl3 ]; + }; } diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix index a411d06ab8f..731289d6f9c 100644 --- a/pkgs/development/libraries/intel-media-sdk/default.nix +++ b/pkgs/development/libraries/intel-media-sdk/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "intel-media-sdk"; - version = "19.2.1"; + version = "19.3.0"; src = fetchurl { url = "https://github.com/Intel-Media-SDK/MediaSDK/archive/intel-mediasdk-${version}.tar.gz"; - sha256 = "0w3r6lr2q3kch0vz9sxld1nz6iff129xr8wzg0p2j7mng41imh83"; + sha256 = "0pgg16a4gsh8yjyz64r28bmkg9xxcy8m0dkvrdz03svkll9v7v3n"; }; # patchelf is needed for binaries in $out/share/samples diff --git a/pkgs/development/libraries/kmsxx/default.nix b/pkgs/development/libraries/kmsxx/default.nix index 71e88559dee..70058db4c0a 100644 --- a/pkgs/development/libraries/kmsxx/default.nix +++ b/pkgs/development/libraries/kmsxx/default.nix @@ -1,25 +1,25 @@ -{ stdenv, fetchFromGitHub, cmake, pkgconfig, libdrm, python }: +{ stdenv, fetchFromGitHub, cmake, pkgconfig, libdrm +, withPython ? false, python }: stdenv.mkDerivation { pname = "kmsxx"; - version = "2018-10-23"; + version = "2019-10-28"; src = fetchFromGitHub { owner = "tomba"; repo = "kmsxx"; fetchSubmodules = true; - rev = "c0093c91f0fa2fd6a5b9d1b206a6f44dcd55bfb5"; - sha256 = "03rv92r938nxb4k4gwcvxy76jnhxdx6x60b58jws83285hd9rgkf"; + rev = "d29da28c7f2a0212d834136fe64fb8ca96a0a235"; + sha256 = "0r94qjyy3s36s32s1xkzij0g2pfwigmyrshw8ni2xli7mg87g1zm"; }; enableParallelBuilding = true; + cmakeFlags = stdenv.lib.optional (!withPython) "-DKMSXX_ENABLE_PYTHON=OFF"; + nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ libdrm python ]; - pythonPath = [ ]; - passthru.python = python; - meta = with stdenv.lib; { description = "C++11 library, utilities and python bindings for Linux kernel mode setting"; homepage = https://github.com/tomba/kmsxx; diff --git a/pkgs/development/libraries/libburn/default.nix b/pkgs/development/libraries/libburn/default.nix index 01588187936..b6cadf9df18 100644 --- a/pkgs/development/libraries/libburn/default.nix +++ b/pkgs/development/libraries/libburn/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libburn"; - version = "1.5.0"; + version = "1.5.2"; src = fetchurl { url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz"; - sha256 = "1gg2kgnqvaa2fwghai62prxz6slpak1f6bvgjh8m4dn16v114asq"; + sha256 = "09sjrvq8xsj1gnl2wwyv4lbmicyzzl6x1ac2rrn53xnp34bxnckv"; }; meta = with stdenv.lib; { diff --git a/pkgs/development/libraries/libgdiplus/default.nix b/pkgs/development/libraries/libgdiplus/default.nix index cdaf972911d..1a690ca7aa1 100644 --- a/pkgs/development/libraries/libgdiplus/default.nix +++ b/pkgs/development/libraries/libgdiplus/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "libgdiplus"; - version = "6.0.2"; + version = "6.0.4"; src = fetchFromGitHub { owner = "mono"; repo = "libgdiplus"; rev = version; - sha256 = "07a3n7i35mn5j2djah64by785b1hzy8ckk1pz0xwvk716yzb7sxg"; + sha256 = "1pf3yhwq9qk0w3yv9bb8qlwwqkffg7xb4sgc8yqdnn6pa56i3vmn"; }; NIX_LDFLAGS = "-lgif"; @@ -21,6 +21,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook pkgconfig ]; + configureFlags = stdenv.lib.optionalString stdenv.cc.isClang "--host=${stdenv.hostPlatform.system}"; + buildInputs = [ glib cairo fontconfig libtiff giflib libjpeg libpng libXrender libexif diff --git a/pkgs/development/libraries/libisofs/default.nix b/pkgs/development/libraries/libisofs/default.nix index 59726094c4a..2c1bb3b3b8e 100644 --- a/pkgs/development/libraries/libisofs/default.nix +++ b/pkgs/development/libraries/libisofs/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libisofs"; - version = "1.5.0"; + version = "1.5.2"; src = fetchurl { url = "http://files.libburnia-project.org/releases/${pname}-${version}.tar.gz"; - sha256 = "001l3akf3wb6msl9man776w560iqyvsbwwzs7d7y7msx13irspys"; + sha256 = "002mcyqwg625a8hqvsrmgm26mhhfwj0j7rahfhsqirmk02b16npg"; }; buildInputs = [ attr zlib ]; diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix index cb32b22f45e..f05ac6d521b 100644 --- a/pkgs/development/libraries/libjpeg-turbo/default.nix +++ b/pkgs/development/libraries/libjpeg-turbo/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, cmake, nasm }: +{ stdenv, fetchurl, cmake, nasm, enableStatic ? false }: stdenv.mkDerivation rec { @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake nasm ]; cmakeFlags = [ - "-DENABLE_STATIC=0" + "-DENABLE_STATIC=${if enableStatic then "1" else "0"}" ]; doInstallCheck = true; diff --git a/pkgs/development/libraries/libksi/default.nix b/pkgs/development/libraries/libksi/default.nix index b4e9f2bdf88..f155c0d8506 100644 --- a/pkgs/development/libraries/libksi/default.nix +++ b/pkgs/development/libraries/libksi/default.nix @@ -1,13 +1,14 @@ { stdenv, fetchFromGitHub, autoreconfHook, openssl, curl }: -stdenv.mkDerivation { - name = "libksi-2015-07-03"; +stdenv.mkDerivation rec { + pname = "libksi"; + version = "3.20.3025"; src = fetchFromGitHub { owner = "Guardtime"; - repo = "libksi"; - rev = "b82dd65bd693722db92397cbe0920170e0d2ae1c"; - sha256 = "1sqd31l55kx6knl0sg26ail1k5rgmamq8760p6aj7bpb4jwb8r1n"; + repo = pname; + rev = "v${version}"; + sha256 = "0cagysr8j92r6g7f0mwrlkpn9xz9ncz2v3jymh47j3ljxmfbagpz"; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/development/libraries/libpwquality/default.nix b/pkgs/development/libraries/libpwquality/default.nix index df3595adc01..b0d5513ca0f 100644 --- a/pkgs/development/libraries/libpwquality/default.nix +++ b/pkgs/development/libraries/libpwquality/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "libpwquality"; - version = "1.4.1"; + version = "1.4.2"; src = fetchFromGitHub { owner = "libpwquality"; repo = "libpwquality"; rev = "${pname}-${version}"; - sha256 = "150gk1d0gq9cig3ylyns7fgihgm3qb1basncahgyh1kzxplrdqm7"; + sha256 = "0n4pjhm7wfivk0wizggaxq4y4mcxic876wcarjabkp5z9k14y36h"; }; nativeBuildInputs = [ autoreconfHook perl ]; diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix index 0a3c110bbbd..ca2449adefd 100644 --- a/pkgs/development/libraries/libsecret/default.nix +++ b/pkgs/development/libraries/libsecret/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, glib, pkgconfig, gettext, libxslt, python3, docbook_xsl, docbook_xml_dtd_42 -, libgcrypt, gobject-introspection, vala, gtk-doc, gnome3, libintl, dbus, xvfb_run }: +, libgcrypt, gobject-introspection, vala, gtk-doc, gnome3, gjs, libintl, dbus, xvfb_run }: stdenv.mkDerivation rec { pname = "libsecret"; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - installCheckInputs = [ python3 python3.pkgs.dbus-python python3.pkgs.pygobject3 xvfb_run dbus gnome3.gjs ]; + installCheckInputs = [ python3 python3.pkgs.dbus-python python3.pkgs.pygobject3 xvfb_run dbus gjs ]; # needs to run after install because typelibs point to absolute paths doInstallCheck = false; # Failed to load shared library '/force/shared/libmock_service.so.0' referenced by the typelib diff --git a/pkgs/development/libraries/libwhereami/default.nix b/pkgs/development/libraries/libwhereami/default.nix index a6715bdc18d..84bd1847faa 100644 --- a/pkgs/development/libraries/libwhereami/default.nix +++ b/pkgs/development/libraries/libwhereami/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { pname = "libwhereami"; - version = "0.3.0"; + version = "0.3.1"; src = fetchFromGitHub { - sha256 = "0yq6m4kh06idp3l8cp7kswn5k8vcaip1zqhypbhszybqa0afb5az"; + sha256 = "16xjb6zp60ma76aa3kq3q8i8zn0n61gf39fny12cny8nggwjpbww"; rev = version; repo = "libwhereami"; owner = "puppetlabs"; diff --git a/pkgs/development/libraries/libxls/default.nix b/pkgs/development/libraries/libxls/default.nix index 12658996646..c111a13d298 100644 --- a/pkgs/development/libraries/libxls/default.nix +++ b/pkgs/development/libraries/libxls/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "libxls"; - version = "1.5.1"; + version = "1.5.2"; src = fetchurl { url = "https://github.com/libxls/libxls/releases/download/v${version}/libxls-${version}.tar.gz"; - sha256 = "0dam8qgbc5ykzaxmrjhpmfm8lnlcdk6cbpzyaya91qwwa80qbj1v"; + sha256 = "1akadsyl10rp101ccjmrxr7933c3v641k377bn74jv6cdkcm4zld"; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/development/libraries/mm-common/default.nix b/pkgs/development/libraries/mm-common/default.nix index f590653df6b..9a789a58cca 100644 --- a/pkgs/development/libraries/mm-common/default.nix +++ b/pkgs/development/libraries/mm-common/default.nix @@ -1,14 +1,26 @@ -{ stdenv, fetchurl, gnome3 }: +{ stdenv +, fetchurl +, gnome3 +, meson +, python3 +, ninja +}: stdenv.mkDerivation rec { pname = "mm-common"; - version = "0.9.12"; + version = "1.0.0"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "02vwgv404b56wxy0gnm9xq9fvzgn9dhfqcy2hhl78ljv3v7drzyf"; + sha256 = "1m4w33da9f4rx2d6kdj3ix3kl0gn16ml82v2mdn4hljr3q29nzdr"; }; + nativeBuildInputs = [ + meson + python3 + ninja + ]; + passthru = { updateScript = gnome3.updateScript { packageName = pname; @@ -25,7 +37,7 @@ stdenv.mkDerivation rec { control repository. An installation of mm-common is not required for building tarball releases, unless configured to use maintainer-mode. ''; - homepage = https://www.gtkmm.org; + homepage = "https://www.gtkmm.org"; license = licenses.gpl2Plus; maintainers = gnome3.maintainers; platforms = platforms.linux; diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix index b5549c6735f..33bc4c6e82c 100644 --- a/pkgs/development/libraries/onnxruntime/default.nix +++ b/pkgs/development/libraries/onnxruntime/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "onnxruntime"; - version = "0.5.0"; + version = "1.0.0"; src = fetchFromGitHub { owner = "microsoft"; repo = "onnxruntime"; rev = "v${version}"; - sha256 = "0s8ylc5xr55490hbz7zn3hnp9dnyp92d320ln8xw5hqkw3mgyr3p"; + sha256 = "1d28lzrjnq69yl8j9ncxlsxl0bniacn3hnsr9van10zgp527436v"; # TODO: use nix-versions of grpc, onnx, eigen, googletest, etc. # submodules increase src size and compile times significantly # not currently feasible due to how integrated cmake build is with git @@ -43,6 +43,8 @@ stdenv.mkDerivation rec { rm -r $out/bin # ctest runner ''; + enableParallelBuilding = true; + meta = with stdenv.lib; { description = "Cross-platform, high performance scoring engine for ML models"; longDescription = '' @@ -55,6 +57,9 @@ stdenv.mkDerivation rec { compatibility. ''; homepage = "https://github.com/microsoft/onnxruntime"; + changelog = "https://github.com/microsoft/onnxruntime/releases"; + # https://github.com/microsoft/onnxruntime/blob/master/BUILD.md#architectures + platforms = platforms.unix; license = licenses.mit; maintainers = with maintainers; [ jonringer ]; }; diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix index aa4c7afa4db..a5eb1029ad9 100644 --- a/pkgs/development/libraries/opencv/4.x.nix +++ b/pkgs/development/libraries/opencv/4.x.nix @@ -36,20 +36,20 @@ }: let - version = "4.1.0"; + version = "4.1.2"; src = fetchFromGitHub { owner = "opencv"; repo = "opencv"; rev = version; - sha256 = "0m1f51m11iz4vxfrmnhawksd669ld247rlfdq5fhkvfk3r7aidw6"; + sha256 = "0c98ziwvfrzdzwn52a36d37n5rac8zmxq2jn479bzfaii1bib8xx"; }; contribSrc = fetchFromGitHub { owner = "opencv"; repo = "opencv_contrib"; rev = version; - sha256 = "1phmmba96m5znjf3wxwhxavgzgp3bs5qqsjk9ay1i63rdacz4vlf"; + sha256 = "10ryyxhggin5dk5glf4ycyrfryqf50f4bs10biv6nxlrrinm2di4"; }; # Contrib must be built in order to enable Tesseract support: @@ -130,10 +130,10 @@ let ade = rec { src = fetchurl { url = "https://github.com/opencv/ade/archive/${name}"; - sha256 = "1r85vdkvcka7bcxk69pd0ai4hld4iakpj4xl0xbinx3p9pv5a4l8"; + sha256 = "04n9na2bph706bdxnnqfcbga4cyj8kd9s9ni7qyvnpj5v98jwvlm"; }; - name = "v0.1.1d.zip"; - md5 = "37479d90e3a5d47f132f512b22cbe206"; + name = "v0.1.1f.zip"; + md5 = "b624b995ec9c439cbc2e9e6ee940d3a2"; dst = ".cache/ade"; }; @@ -161,14 +161,6 @@ stdenv.mkDerivation { cp --no-preserve=mode -r "${contribSrc}/modules" "$NIX_BUILD_TOP/source/opencv_contrib" ''; - patches = [ - (fetchpatch { - url = "https://github.com/opencv/opencv/commit/5691d998ead1d9b0542bcfced36c2dceb3a59023.patch"; - name = "CVE-2019-14493.patch"; - sha256 = "14qva9f5z10apz5q0skdyiclr9sgkhab4fzksy1w3b6j6hg4wm7m"; - }) - ]; - # This prevents cmake from using libraries in impure paths (which # causes build failure on non NixOS) # Also, work around https://github.com/NixOS/nixpkgs/issues/26304 with diff --git a/pkgs/development/libraries/openfst/default.nix b/pkgs/development/libraries/openfst/default.nix index 6554d025311..51ed495a995 100644 --- a/pkgs/development/libraries/openfst/default.nix +++ b/pkgs/development/libraries/openfst/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "openfst"; - version = "1.7.2"; + version = "1.7.4"; src = fetchurl { url = "http://www.openfst.org/twiki/pub/FST/FstDownload/${pname}-${version}.tar.gz"; - sha256 = "0fqgk8195kz21is09gwzwnrg7fr9526bi9mh4apyskapz27pbhr1"; + sha256 = "0drhq5348vbaccpa0z3jvd5hyv5bm2i9xrak1wb4yvl2mx77dbmh"; }; meta = { description = "Library for working with finite-state transducers"; diff --git a/pkgs/development/libraries/poly2tri-c/default.nix b/pkgs/development/libraries/poly2tri-c/default.nix new file mode 100644 index 00000000000..a3e42b3ae4b --- /dev/null +++ b/pkgs/development/libraries/poly2tri-c/default.nix @@ -0,0 +1,42 @@ +{ stdenv +, fetchFromGitHub +, autoreconfHook +, pkgconfig +, glib +}: + +stdenv.mkDerivation rec { + pname = "poly2tri-c"; + version = "0.1.0"; + + outputs = [ "bin" "out" "dev" ]; + + src = fetchFromGitHub { + owner = "Paul-Browne"; + repo = "poly2tri-c"; + rev = "p2tc-${version}"; + sha256 = "158vm3wqfxs22b74kqc4prlvjny38qqm3kz5wrgasmx0qciwh0g8"; + }; + + nativeBuildInputs = [ + autoreconfHook + pkgconfig + ]; + + buildInputs = [ + glib + ]; + + NIX_CFLAGS_COMPILE = [ + "--std=gnu99" + "-Wno-error" + ]; + + meta = with stdenv.lib; { + description = "Library for generating, refining and rendering 2-Dimensional Constrained Delaunay Triangulations"; + homepage = "https://code.google.com/archive/p/poly2tri-c/"; + license = licenses.bsd3; + maintainers = with stdenv.lib.maintainers; [ jtojnar ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/libraries/protobuf/3.10.nix b/pkgs/development/libraries/protobuf/3.10.nix index 3549d7af75e..5ecb8e67f84 100644 --- a/pkgs/development/libraries/protobuf/3.10.nix +++ b/pkgs/development/libraries/protobuf/3.10.nix @@ -1,6 +1,6 @@ { callPackage, ... }: callPackage ./generic-v3.nix { - version = "3.10.0"; - sha256 = "0cjwfm9v2gv6skzrq4m7w28810p2h3m1jj4kw6df3x8vvg7q842c"; + version = "3.10.1"; + sha256 = "1kbi2i1m5c7ss02ip8h0bdzvns4dgxx30a5c0iiph8g2ns02lr33"; } diff --git a/pkgs/development/libraries/protobuf/3.9.nix b/pkgs/development/libraries/protobuf/3.9.nix index a2f3e0e0164..e74d5c527b1 100644 --- a/pkgs/development/libraries/protobuf/3.9.nix +++ b/pkgs/development/libraries/protobuf/3.9.nix @@ -1,6 +1,6 @@ { callPackage, ... }: callPackage ./generic-v3.nix { - version = "3.9.1"; - sha256 = "0vv85xb65dx6fa76fsnyps13kaamvwfzd8hr6ii1payr73x4zy2h"; + version = "3.9.2"; + sha256 = "080zxa9w1pxp5y05aiwc0c8mlqkkh98wmid4l7m99cliphsd4qnn"; } diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix index ab2d7778051..d2ea22b85a1 100644 --- a/pkgs/development/libraries/rocksdb/default.nix +++ b/pkgs/development/libraries/rocksdb/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "rocksdb"; - version = "6.3.6"; + version = "6.4.6"; src = fetchFromGitHub { owner = "facebook"; repo = pname; rev = "v${version}"; - sha256 = "0i993z7xxsbs595y7wxfhgm69mg5893lfkpidcbaqnzj8j0kn0ab"; + sha256 = "0s0n4p1b4jzmslz9d2xd4ajra0m6l9x26mjwlbgw0klxjggmy8qn"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/serialdv/default.nix b/pkgs/development/libraries/serialdv/default.nix index b57d90eb21c..178cee5e69a 100644 --- a/pkgs/development/libraries/serialdv/default.nix +++ b/pkgs/development/libraries/serialdv/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "serialdv"; - version ="1.1.2"; + version ="1.1.4"; src = fetchFromGitHub { owner = "f4exb"; repo = "serialdv"; rev = "v${version}"; - sha256 = "0d2lnvfzf31i3f2klm46s87gby3yz3hc46cap0yqifzml0ff1qbm"; + sha256 = "0d88h2wjhf79nisiv96bq522hkbknzm88wsv0q9k33mzmrwnrx93"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/simpleitk/default.nix b/pkgs/development/libraries/simpleitk/default.nix index 1cf40c92db6..2afd7650618 100644 --- a/pkgs/development/libraries/simpleitk/default.nix +++ b/pkgs/development/libraries/simpleitk/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "simpleitk"; - version = "1.2.2"; + version = "1.2.3"; src = fetchFromGitHub { owner = "SimpleITK"; repo = "SimpleITK"; rev = "v${version}"; - sha256 = "1cgq9cxxplv6bkm2zfvcc0lgyh5zw1hbry30k1429n9737wnadaw"; + sha256 = "0nmsq0qx4jmrrhrc6bfm11wwvyszvfgl45xizw69yra3cv9pgmm6"; }; nativeBuildInputs = [ cmake git swig ]; diff --git a/pkgs/development/libraries/template-glib/default.nix b/pkgs/development/libraries/template-glib/default.nix index 4314abd2548..070953d0bbc 100644 --- a/pkgs/development/libraries/template-glib/default.nix +++ b/pkgs/development/libraries/template-glib/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, meson, ninja, pkgconfig, glib, gobject-introspection, flex, bison, vala, gettext, gnome3, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }: let - version = "3.32.0"; + version = "3.34.0"; pname = "template-glib"; in stdenv.mkDerivation { @@ -10,7 +10,7 @@ stdenv.mkDerivation { src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1g0zx0sxpw8kqp7p3sgl9kngaqrg9xl6cir24nrahks0vgsk98rr"; + sha256 = "1z9xkin5fyfh071ma9y045jcw83hgx33dfbjraw6cxk0qdmfysr1"; }; buildInputs = [ meson ninja pkgconfig gettext flex bison vala glib gtk-doc docbook_xsl docbook_xml_dtd_43 ]; diff --git a/pkgs/development/libraries/trompeloeil/default.nix b/pkgs/development/libraries/trompeloeil/default.nix index af2fc6c879a..0ab115daeef 100644 --- a/pkgs/development/libraries/trompeloeil/default.nix +++ b/pkgs/development/libraries/trompeloeil/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "trompeloeil"; - version = "34"; + version = "35"; src = fetchFromGitHub { owner = "rollbear"; repo = "trompeloeil"; rev = "v${version}"; - sha256 = "0mj3zni18kfm04jrqjaa1p6ii5q0dz6qdm3hi57z9lzygaxbdc97"; + sha256 = "07jxvssasgmi2dk4wl6qzspx88g9cnz597flsapdzp0qd5j7xixd"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/v8/3.14.nix b/pkgs/development/libraries/v8/3.14.nix index 3d36245631b..febadc2d6ac 100644 --- a/pkgs/development/libraries/v8/3.14.nix +++ b/pkgs/development/libraries/v8/3.14.nix @@ -80,7 +80,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "Google's open source JavaScript engine"; - platforms = platforms.linux; + platforms = [ "x86_64-linux" "i686-linux" ]; license = licenses.bsd3; }; } diff --git a/pkgs/development/libraries/v8/3.16.14.nix b/pkgs/development/libraries/v8/3.16.14.nix deleted file mode 100644 index e134c9ea60f..00000000000 --- a/pkgs/development/libraries/v8/3.16.14.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ stdenv, lib, fetchurl, gyp, readline, python, which, icu, utillinux, cctools }: - -assert readline != null; - -let - arch = if stdenv.isAarch32 - then (if stdenv.is64bit then "arm64" else "arm") - else (if stdenv.is64bit then "x64" else "ia32"); - armHardFloat = stdenv.isAarch32 && (stdenv.hostPlatform.platform.gcc.float or null) == "hard"; -in - -stdenv.mkDerivation rec { - pname = "v8"; - version = "3.16.14.11"; - - src = fetchurl { - url = "https://commondatastorage.googleapis.com/chromium-browser-official/" - + "${pname}-${version}.tar.bz2"; - sha256 = "1gpf2xvhxfs5ll3m2jlslsx9jfjbmrbz55iq362plflrvf8mbxhj"; - }; - - postPatch = '' - sed -i 's/-Werror//' build/standalone.gypi build/common.gypi - ''; - - configurePhase = stdenv.lib.optionalString stdenv.isDarwin '' - export GYP_DEFINES="mac_deployment_target=$MACOSX_DEPLOYMENT_TARGET" - '' + '' - PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \ - ${gyp}/bin/gyp \ - -f make \ - --generator-output="out" \ - -Dflock_index=0 \ - -Dv8_enable_i18n_support=1 \ - -Duse_system_icu=1 \ - -Dconsole=readline \ - -Dcomponent=shared_library \ - -Dv8_target_arch=${arch} \ - ${lib.optionalString armHardFloat "-Dv8_use_arm_eabi_hardfloat=true"} \ - --depth=. -Ibuild/standalone.gypi \ - build/all.gyp - '' + stdenv.lib.optionalString stdenv.isDarwin '' - sed -i 's@/usr/bin/env python@${python}/bin/python@g' out/gyp-mac-tool - ''; - - nativeBuildInputs = [ which ]; - buildInputs = [ readline python icu ] - ++ lib.optional stdenv.isLinux utillinux - ++ lib.optional stdenv.isDarwin cctools; - - NIX_CFLAGS_COMPILE = "-Wno-error -w"; - - buildFlags = [ - "-C out" - "builddir=$(CURDIR)/Release" - "BUILDTYPE=Release" - ]; - - enableParallelBuilding = true; - - installPhase = '' - install -vD out/Release/d8 "$out/bin/d8" - ${if stdenv.isDarwin then '' - install -vD out/Release/libv8.dylib "$out/lib/libv8.dylib" - '' else '' - install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so" - ''} - cp -vr include "$out/" - ''; - - postFixup = if stdenv.isDarwin then '' - install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib $out/bin/d8 - install_name_tool -id $out/lib/libv8.dylib $out/lib/libv8.dylib - '' else null; - - meta = with stdenv.lib; { - description = "V8 is Google's open source JavaScript engine"; - platforms = platforms.linux ++ platforms.darwin; - license = licenses.bsd3; - }; -} diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix index 0d96829b6ba..0cdbe396a10 100644 --- a/pkgs/development/libraries/vapoursynth/default.nix +++ b/pkgs/development/libraries/vapoursynth/default.nix @@ -12,13 +12,13 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "vapoursynth"; - version = "R47.2"; + version = "R48"; src = fetchFromGitHub { owner = "vapoursynth"; repo = "vapoursynth"; rev = version; - sha256 = "004h0vvih7dlhkcz6l2786pf7s04qhiv0bii4gjx23cxyklglh9i"; + sha256 = "1i6163bidlp0p9zcnxpsphr44ayfzd51fig4ri7vbrbl9lw9jaih"; }; nativeBuildInputs = [ pkgconfig autoreconfHook nasm makeWrapper ]; diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix index 780d7df47cb..1bad9c5eb2a 100644 --- a/pkgs/development/libraries/wolfssl/default.nix +++ b/pkgs/development/libraries/wolfssl/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "wolfssl"; - version = "4.1.0"; + version = "4.2.0"; src = fetchFromGitHub { owner = "wolfSSL"; repo = "wolfssl"; rev = "v${version}-stable"; - sha256 = "16d1dzbdx6x7czbxf6i1rlb5mv59yzzpnha7qgwab3yq62rlsgw3"; + sha256 = "16s7jx2brgii6jbpmr30ggkc7rrf388jl26g357sm7ggwliiwask"; }; configureFlags = [ "--enable-all" ]; diff --git a/pkgs/development/ocaml-modules/checkseum/default.nix b/pkgs/development/ocaml-modules/checkseum/default.nix index 18e06d260f4..731dd476c5d 100644 --- a/pkgs/development/ocaml-modules/checkseum/default.nix +++ b/pkgs/development/ocaml-modules/checkseum/default.nix @@ -1,41 +1,28 @@ -{ stdenv, fetchurl, ocaml, findlib, dune, alcotest, cmdliner, fmt, optint, rresult }: +{ lib, fetchurl, buildDunePackage +, bigarray-compat, optint +, cmdliner, fmt, rresult +, alcotest +}: -if !stdenv.lib.versionAtLeast ocaml.version "4.03" -then throw "checkseum is not available for OCaml ${ocaml.version}" -else +buildDunePackage rec { + version = "0.1.1"; + pname = "checkseum"; -# The C implementation is not portable: x86 only -let hasC = stdenv.isi686 || stdenv.isx86_64; in - -stdenv.mkDerivation rec { - version = "0.0.3"; - name = "ocaml${ocaml.version}-checkseum-${version}"; src = fetchurl { - url = "https://github.com/mirage/checkseum/releases/download/v0.0.3/checkseum-v0.0.3.tbz"; - sha256 = "12j45zsvil1ynwx1x8fbddhqacc8r1zf7f6h576y3f3yvbg7l1fm"; + url = "https://github.com/mirage/checkseum/releases/download/v${version}/checkseum-v${version}.tbz"; + sha256 = "0aa2r1l65a5hcgciw6n8r5ij4gpgg0cf9k24isybxiaiz63k94d3"; }; - postPatch = stdenv.lib.optionalString (!hasC) '' - rm -r bin src-c - ''; + buildInputs = [ cmdliner fmt rresult ]; + propagatedBuildInputs = [ bigarray-compat optint ]; + checkInputs = lib.optionals doCheck [ alcotest ]; - buildInputs = [ ocaml findlib dune alcotest cmdliner fmt rresult ]; - propagatedBuildInputs = [ optint ]; - - buildPhase = "dune build"; - - doCheck = hasC; - checkPhase = "dune runtest"; - - inherit (dune) installPhase; - - passthru = { inherit hasC; }; + doCheck = true; meta = { homepage = "https://github.com/mirage/checkseum"; description = "ADLER-32 and CRC32C Cyclic Redundancy Check"; - license = stdenv.lib.licenses.mit; - maintainers = [ stdenv.lib.maintainers.vbgl ]; - inherit (ocaml.meta) platforms; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.vbgl ]; }; } diff --git a/pkgs/development/ocaml-modules/decompress/default.nix b/pkgs/development/ocaml-modules/decompress/default.nix index 828d3a98f9d..753f894e085 100644 --- a/pkgs/development/ocaml-modules/decompress/default.nix +++ b/pkgs/development/ocaml-modules/decompress/default.nix @@ -22,6 +22,5 @@ buildDunePackage rec { license = lib.licenses.mit; maintainers = [ lib.maintainers.vbgl ]; homepage = "https://github.com/mirage/decompress"; - broken = !checkseum.hasC; }; } diff --git a/pkgs/development/ocaml-modules/mlgmpidl/default.nix b/pkgs/development/ocaml-modules/mlgmpidl/default.nix index d25a5f4ce06..2733ad2b0fb 100644 --- a/pkgs/development/ocaml-modules/mlgmpidl/default.nix +++ b/pkgs/development/ocaml-modules/mlgmpidl/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "ocaml${ocaml.version}-mlgmpidl-${version}"; - version = "1.2.10"; + version = "1.2.11"; src = fetchFromGitHub { owner = "nberth"; repo = "mlgmpidl"; rev = version; - sha256 = "181vpqx8zdairq645b8qpkzj4fnkb508iavk7sqzskag1s8613qn"; + sha256 = "1rycl84sdvgb5avdsya9iz8brx92y2zcb6cn4w1j0164j6q2ril9"; }; buildInputs = [ perl gmp mpfr ocaml findlib camlidl ]; diff --git a/pkgs/development/perl-modules/alien-sdl.patch b/pkgs/development/perl-modules/alien-sdl.patch new file mode 100644 index 00000000000..b00f7dcce81 --- /dev/null +++ b/pkgs/development/perl-modules/alien-sdl.patch @@ -0,0 +1,30 @@ +diff --git a/inc/My/Builder/Unix.pm b/inc/My/Builder/Unix.pm +index 15291d5..5c5ab24 100644 +--- a/inc/My/Builder/Unix.pm ++++ b/inc/My/Builder/Unix.pm +@@ -48,7 +48,7 @@ sub get_additional_libs { + + sub can_build_binaries_from_sources { + my $self = shift; +- return 1; # yes we can ++ return 0; # no we can't + } + + sub build_binaries { +diff --git a/t/004_get_header_version.t b/t/004_get_header_version.t +index d4146ff..27f53ea 100644 +--- a/t/004_get_header_version.t ++++ b/t/004_get_header_version.t +@@ -1,8 +1,11 @@ + # t/004_config.t + +-use Test::More tests => 1; ++use Test::More; + use Alien::SDL; + ++Test::More::plan( skip_all => 'NixOS doesn\'t have SDL headers in this location' ); ++ ++ + like( Alien::SDL->get_header_version('SDL_version.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_version.h" ); + #like( Alien::SDL->get_header_version('SDL_net.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_net.h" ); + #like( Alien::SDL->get_header_version('SDL_image.h'), qr/([0-9]+\.)*[0-9]+/, "Testing SDL_image.h" ); diff --git a/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/pkgs/development/python-modules/azure-mgmt-storage/default.nix index 09641bb2056..c2b172e6c49 100644 --- a/pkgs/development/python-modules/azure-mgmt-storage/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-storage/default.nix @@ -7,13 +7,13 @@ }: buildPythonPackage rec { - version = "5.0.0"; + version = "6.0.0"; pname = "azure-mgmt-storage"; src = fetchPypi { inherit pname version; extension = "zip"; - sha256 = "dd27ffc8c763932100dff1cda3d5a72dc2348686093732747f68396b1dd3fabf"; + sha256 = "0pgmxr8shz6rmgbacfy1xb99y9ja38ck1lap0n58m6jjy1mgxk2w"; }; postInstall = if isPy3k then "" else '' diff --git a/pkgs/development/python-modules/boolean-py/default.nix b/pkgs/development/python-modules/boolean-py/default.nix index cf35243f2b0..8f5ef73c7e2 100644 --- a/pkgs/development/python-modules/boolean-py/default.nix +++ b/pkgs/development/python-modules/boolean-py/default.nix @@ -3,13 +3,13 @@ buildPythonPackage rec { pname = "boolean.py"; - version = "3.6"; + version = "3.7"; src = fetchFromGitHub { owner = "bastikr"; repo = "boolean.py"; rev = "v${version}"; - sha256 = "1wc89y73va58cj7dsx6c199zpxsy9q53dsffsdj6zmc90inqz6qs"; + sha256 = "1q9ji2jq07qr6vgp9yv6y8lx6h0zyi07fqjga3yi3vpfk46h2jn1"; }; meta = with lib; { diff --git a/pkgs/development/python-modules/cerberus/default.nix b/pkgs/development/python-modules/cerberus/default.nix index 3773e6a834c..5218a55078d 100644 --- a/pkgs/development/python-modules/cerberus/default.nix +++ b/pkgs/development/python-modules/cerberus/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "Cerberus"; - version = "1.3.1"; + version = "1.3.2"; src = fetchPypi { inherit pname version; - sha256 = "0be48fc0dc84f83202a5309c0aa17cd5393e70731a1698a50d118b762fbe6875"; + sha256 = "12cm547hpypqd7bwcl4wr4w6varibc1dagzicg5qbp86yaa6cbih"; }; checkInputs = [ pytestrunner pytest ]; diff --git a/pkgs/development/python-modules/check-manifest/default.nix b/pkgs/development/python-modules/check-manifest/default.nix index ad5b6522533..eaae8f3d099 100644 --- a/pkgs/development/python-modules/check-manifest/default.nix +++ b/pkgs/development/python-modules/check-manifest/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi }: +{ stdenv, buildPythonPackage, fetchPypi, toml }: buildPythonPackage rec { pname = "check-manifest"; @@ -9,6 +9,8 @@ buildPythonPackage rec { sha256 = "42de6eaab4ed149e60c9b367ada54f01a3b1e4d6846784f9b9710e770ff5572c"; }; + propagatedBuildInputs = [ toml ]; + doCheck = false; meta = with stdenv.lib; { diff --git a/pkgs/development/python-modules/cytoolz/default.nix b/pkgs/development/python-modules/cytoolz/default.nix index f95da9b75b2..1a142cae0f0 100644 --- a/pkgs/development/python-modules/cytoolz/default.nix +++ b/pkgs/development/python-modules/cytoolz/default.nix @@ -10,11 +10,11 @@ buildPythonPackage rec { pname = "cytoolz"; - version = "0.10.0"; + version = "0.10.1"; src = fetchPypi { inherit pname version; - sha256 = "ed9f6a07c2bac70d6c597df360d0666d11d2adc90141d54c5c2db08b380a4fac"; + sha256 = "0p4a9nadsy1337gy2cnb5yanbn03j3zm6d9adyqad9bk3nlbpxc2"; }; # Extension types diff --git a/pkgs/development/python-modules/deeptoolsintervals/default.nix b/pkgs/development/python-modules/deeptoolsintervals/default.nix new file mode 100644 index 00000000000..eef8d51ae91 --- /dev/null +++ b/pkgs/development/python-modules/deeptoolsintervals/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytest +, zlib +, lzma +}: + +buildPythonPackage rec { + pname = "deeptoolsintervals"; + version = "0.1.9"; + + src = fetchPypi { + inherit pname version; + sha256 = "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x"; + }; + + buildInputs = [ zlib lzma ]; + + checkInputs = [ pytest ]; + + meta = with lib; { + homepage = "https://deeptools.readthedocs.io/en/develop"; + description = "Helper library for deeptools"; + license = licenses.mit; + maintainers = with maintainers; [ scalavision ]; + }; +} diff --git a/pkgs/development/python-modules/django-extensions/default.nix b/pkgs/development/python-modules/django-extensions/default.nix index 911a313aefd..7f755010b73 100644 --- a/pkgs/development/python-modules/django-extensions/default.nix +++ b/pkgs/development/python-modules/django-extensions/default.nix @@ -7,13 +7,13 @@ buildPythonPackage rec { pname = "django-extensions"; - version = "2.2.3"; + version = "2.2.5"; src = fetchFromGitHub { owner = pname; repo = pname; rev = version; - sha256 = "19bln9z25dmz1waqcxivlwg20dlm033c7f4z3h3mkhzkbk928y71"; + sha256 = "0053yqq4vq3mwy7zkfs5vfm3g8j9sfy3vrc6xby83qlj9wz43ipi"; }; postPatch = '' diff --git a/pkgs/development/python-modules/dogpile.cache/default.nix b/pkgs/development/python-modules/dogpile.cache/default.nix index 86180a609bb..414e9b065c7 100644 --- a/pkgs/development/python-modules/dogpile.cache/default.nix +++ b/pkgs/development/python-modules/dogpile.cache/default.nix @@ -4,11 +4,11 @@ buildPythonPackage rec { pname = "dogpile.cache"; - version = "0.8.0"; + version = "0.9.0"; src = fetchPypi { inherit pname version; - sha256 = "70f5eae4aec908f76188a2c287e07105f60c05d879bb9a4efcc5ba44563d8de6"; + sha256 = "0sr1fn6b4k5bh0cscd9yi8csqxvj4ngzildav58x5p694mc86j5k"; }; # Disable concurrency tests that often fail, diff --git a/pkgs/development/python-modules/easysnmp/default.nix b/pkgs/development/python-modules/easysnmp/default.nix new file mode 100644 index 00000000000..32659b520ba --- /dev/null +++ b/pkgs/development/python-modules/easysnmp/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, lib +, buildPythonPackage +, pythonAtLeast +, fetchFromGitHub +, net_snmp +, openssl +, pytest +, pytestcov +, pytest-flake8 +, pytest-sugar +, termcolor +}: + +buildPythonPackage rec { + pname = "easysnmp"; + version = "0.2.5"; + + # See https://github.com/kamakazikamikaze/easysnmp/issues/108 + disabled = pythonAtLeast "3.7"; + + src = fetchFromGitHub { + owner = "kamakazikamikaze"; + repo = pname; + rev = version; + sha256 = "1si9iyxqj6z22jzn6m93lwpinsqn20lix2py3jm3g3fmwawkd735"; + }; + + checkInputs = [ + pytest + pytestcov + pytest-flake8 + pytest-sugar + termcolor + ]; + + buildInputs = [ + net_snmp + openssl + ]; + + buildPhase = '' + python setup.py build bdist_wheel --basedir=${net_snmp}/bin + ''; + + # Unable to get tests to pass, even running by hand. The pytest tests have + # become stale. + doCheck = false; + + meta = with lib; { + description = "A blazingly fast and Pythonic SNMP library based on the official Net-SNMP bindings"; + homepage = https://easysnmp.readthedocs.io/en/latest/; + license = licenses.bsd3; + maintainers = with maintainers; [ WhittlesJr ]; + }; +} diff --git a/pkgs/development/python-modules/elementpath/default.nix b/pkgs/development/python-modules/elementpath/default.nix index 697ea742ada..637cca7f608 100644 --- a/pkgs/development/python-modules/elementpath/default.nix +++ b/pkgs/development/python-modules/elementpath/default.nix @@ -1,14 +1,14 @@ { lib, buildPythonPackage, fetchFromGitHub }: buildPythonPackage rec { - version = "1.3.0"; + version = "1.3.1"; pname = "elementpath"; src = fetchFromGitHub { owner = "sissaschool"; repo = "elementpath"; rev = "v${version}"; - sha256 = "0ahqqqpcf3fd6xcdhiwwscincyj6h5xyjaacnqxwph1y1b8mnzyw"; + sha256 = "0060cd49m0q25k7anzyiz76360hag2f9j5hvqhbmscivf1ssckzq"; }; # avoid circular dependency with xmlschema which directly depends on this diff --git a/pkgs/development/python-modules/emcee/default.nix b/pkgs/development/python-modules/emcee/default.nix index 21015980084..8c720dec325 100644 --- a/pkgs/development/python-modules/emcee/default.nix +++ b/pkgs/development/python-modules/emcee/default.nix @@ -3,11 +3,11 @@ buildPythonPackage rec { pname = "emcee"; - version = "3.0.0"; + version = "3.0.1"; src = fetchPypi { inherit pname version; - sha256 = "353c26d8a8b09553532cd93662ddbedcd1a77feecefda5e46ea7e38829dede89"; + sha256 = "01mx1w4a7j5p29a3r7ilh9la9n6gnlgwb46m439vrnfgvbvjjy9c"; }; propagatedBuildInputs = [ numpy ]; diff --git a/pkgs/development/python-modules/flask-jwt-extended/default.nix b/pkgs/development/python-modules/flask-jwt-extended/default.nix index 23c5c5d3a37..1fcb7e3cd87 100644 --- a/pkgs/development/python-modules/flask-jwt-extended/default.nix +++ b/pkgs/development/python-modules/flask-jwt-extended/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "Flask-JWT-Extended"; - version = "3.24.0"; + version = "3.24.1"; src = fetchPypi { inherit pname version; - sha256 = "1znqjp780nrp94hjcrcx0945izzl3zsrqkmdac44d2fmlnbdp2by"; + sha256 = "1p8rwcsscyjw2m7dbybiaflqk4z1r2d1kp9r9qqyjfzblxpyxa0a"; }; propagatedBuildInputs = [ dateutil flask pyjwt werkzeug ]; diff --git a/pkgs/development/python-modules/intreehooks/default.nix b/pkgs/development/python-modules/intreehooks/default.nix new file mode 100644 index 00000000000..be8d3927c9f --- /dev/null +++ b/pkgs/development/python-modules/intreehooks/default.nix @@ -0,0 +1,28 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytoml +, pytest +}: + +buildPythonPackage rec { + pname = "intreehooks"; + version = "1.0"; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + sha256 = "87e600d3b16b97ed219c078681260639e77ef5a17c0e0dbdd5a302f99b4e34e1"; + }; + + propagatedBuildInputs = [ pytoml ]; + + checkInputs = [ pytest ]; + + meta = { + description = "Load a PEP 517 backend from inside the source tree"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.fridh ]; + homepage = https://github.com/takluyver/intreehooks; + }; +} \ No newline at end of file diff --git a/pkgs/development/python-modules/koji/default.nix b/pkgs/development/python-modules/koji/default.nix index 033ab821135..47c42a1df45 100644 --- a/pkgs/development/python-modules/koji/default.nix +++ b/pkgs/development/python-modules/koji/default.nix @@ -1,19 +1,19 @@ -{ stdenv, fetchurl, buildPythonPackage, pycurl, six, rpm, dateutil }: +{ stdenv, fetchurl, buildPythonPackage, isPy3k, pycurl, six, rpm, dateutil }: buildPythonPackage rec { pname = "koji"; - version = "1.13.0"; + version = "1.14.3"; format = "other"; src = fetchurl { url = "https://releases.pagure.org/koji/${pname}-${version}.tar.bz2"; - sha256 = "18b18rcbdqqw33g7h20hf5bpbci2ixdi05yda1fvpv30c1kkzd8w"; + sha256 = "0a3kn3qvspvx15imgzzzjsbvw6bqmbk29apbliqwifa9cj7pvb40"; }; propagatedBuildInputs = [ pycurl six rpm dateutil ]; # Judging from SyntaxError - #disabled = isPy3k; + disabled = isPy3k; makeFlags = "DESTDIR=$(out)"; @@ -24,7 +24,9 @@ buildPythonPackage rec { ''; meta = { - maintainers = [ ]; + description = "An RPM-based build system"; + homepage = https://pagure.io/koji; + license = stdenv.lib.licenses.lgpl21; platforms = stdenv.lib.platforms.unix; }; } diff --git a/pkgs/development/python-modules/license-expression/default.nix b/pkgs/development/python-modules/license-expression/default.nix index 2bf204a9a62..177949fbd51 100644 --- a/pkgs/development/python-modules/license-expression/default.nix +++ b/pkgs/development/python-modules/license-expression/default.nix @@ -4,13 +4,13 @@ buildPythonPackage rec { pname = "license-expression"; - version = "0.999"; + version = "1.0"; src = fetchFromGitHub { owner = "nexB"; repo = "license-expression"; rev = "v${version}"; - sha256 = "0q8sha38w7ajg7ar0rmbqrwv0n58l8yzyl96cqwcbvp578fn3ir0"; + sha256 = "15dk3j5sr8iypzqqa8wa12b2a84f6ssbfvam1c1vzz00y2y5v3ic"; }; postPatch = "patchShebangs ./configure"; diff --git a/pkgs/development/python-modules/mesonpep517/default.nix b/pkgs/development/python-modules/mesonpep517/default.nix new file mode 100644 index 00000000000..ec63526070a --- /dev/null +++ b/pkgs/development/python-modules/mesonpep517/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchPypi +, meson +, ninja +, intreehooks +, pytoml +, pythonOlder +}: + +# TODO: offer meson as a Python package so we have dist-info folder. + +buildPythonPackage rec { + pname = "mesonpep517"; + version = "0.1.9999994"; + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + sha256 = "b5bcca61024164c4a51d29e6921ea1f756d54197c8f052e4c66a2b8399aa9349"; + }; + + nativeBuildInputs = [ intreehooks ]; + + propagatedBuildInputs = [ pytoml ]; + + # postPatch = '' + # # Meson tries to detect ninja as well, so we should patch meson as well. + # substituteInPlace mesonpep517/buildapi.py \ + # --replace "'meson'" "'${meson}/bin/meson'" \ + # --replace "'ninja'" "'${ninja}/bin/ninja'" + # ''; + + propagatedNativeBuildInputs = [ meson ninja ]; + + meta = { + description = "Create pep517 compliant packages from the meson build system"; + homepage = https://gitlab.com/thiblahute/mesonpep517; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.fridh ]; + }; +} \ No newline at end of file diff --git a/pkgs/development/python-modules/moderngl_window/default.nix b/pkgs/development/python-modules/moderngl_window/default.nix new file mode 100644 index 00000000000..a3c93978ff6 --- /dev/null +++ b/pkgs/development/python-modules/moderngl_window/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, isPy3k +, numpy +, moderngl +, pyglet +, pillow +, pyrr +, pytest +}: + +buildPythonPackage rec { + pname = "moderngl_window"; + version = "1.2.0"; + + src = fetchFromGitHub { + owner = "moderngl"; + repo = pname; + rev = version; + sha256 = "054w77lyc2nc0dyx76zsrbq2b3xbywdijhb62b2qqm99ldr1k1x5"; + }; + + propagatedBuildInputs = [ numpy moderngl pyglet pillow pyrr ]; + + disabled = !isPy3k; + + # Tests need a display to run. + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/moderngl/moderngl_window"; + description = "Cross platform helper library for ModernGL making window creation and resource loading simple"; + license = licenses.mit; + platforms = platforms.linux; # should be mesaPlatforms, darwin build breaks. + maintainers = with maintainers; [ c0deaddict ]; + }; +} diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix index 71a7701c019..f73fb6dac33 100644 --- a/pkgs/development/python-modules/nix-prefetch-github/default.nix +++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix @@ -9,11 +9,11 @@ buildPythonPackage rec { pname = "nix-prefetch-github"; - version = "2.3.1"; + version = "2.3.2"; src = fetchPypi { inherit pname version; - sha256 = "1jkvmj33xinff0sb47yg33n131yi93pyq86skqc78xd38j6c8q9s"; + sha256 = "18xj618zjs13ib7f996fnl0xiqig0w48yns45nvy3xab55wximdx"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/nvchecker/default.nix b/pkgs/development/python-modules/nvchecker/default.nix index f21624acf14..641db7008f8 100644 --- a/pkgs/development/python-modules/nvchecker/default.nix +++ b/pkgs/development/python-modules/nvchecker/default.nix @@ -1,22 +1,20 @@ -{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytest, setuptools, structlog, pytest-asyncio, flaky, tornado, pycurl }: +{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytest, setuptools, structlog, pytest-asyncio, flaky, tornado, pycurl, pytest-httpbin }: buildPythonPackage rec { pname = "nvchecker"; - version = "1.4.4"; + version = "1.5"; src = fetchPypi { inherit pname version; - sha256 = "6276ed2a897a30ccd71bfd7cf9e6b7842f37f3d5a86d7a70fe46f437c62b1875"; + sha256 = "0973f7c3ea5ad65fb19837e8915882a9f2c2f21f5c2589005478697391fea2fd"; }; propagatedBuildInputs = [ setuptools structlog tornado pycurl ]; - checkInputs = [ pytest pytest-asyncio flaky ]; - - # requires network access - doCheck = false; + checkInputs = [ pytest pytest-asyncio flaky pytest-httpbin ]; + # disable `test_ubuntupkg` because it requires network checkPhase = '' - py.test + py.test -m "not needs_net" --ignore=tests/test_ubuntupkg.py ''; disabled = pythonOlder "3.5"; diff --git a/pkgs/development/python-modules/paho-mqtt/default.nix b/pkgs/development/python-modules/paho-mqtt/default.nix index bf7ebee5657..886307b7104 100644 --- a/pkgs/development/python-modules/paho-mqtt/default.nix +++ b/pkgs/development/python-modules/paho-mqtt/default.nix @@ -3,14 +3,14 @@ buildPythonPackage rec { pname = "paho-mqtt"; - version = "1.4.0"; + version = "1.5.0"; # No tests in PyPI tarball src = fetchFromGitHub { owner = "eclipse"; repo = "paho.mqtt.python"; rev = "v${version}"; - sha256 = "1xg9ppz2lqacd9prsrx93q2wfkjjyla03xlfw74aj1alz9ki5hrs"; + sha256 = "1fq5z53g2k18iiqnz5qq87vzjpppfza072nx0dwllmhimm2dskh5"; }; postPatch = '' diff --git a/pkgs/development/python-modules/pg8000/1_12.nix b/pkgs/development/python-modules/pg8000/1_12.nix index 444da7adc23..efeee5e077f 100644 --- a/pkgs/development/python-modules/pg8000/1_12.nix +++ b/pkgs/development/python-modules/pg8000/1_12.nix @@ -7,11 +7,11 @@ buildPythonPackage rec { pname = "pg8000"; - version = "1.13.2"; + version = "1.12.5"; src = fetchPypi { inherit pname version; - sha256 = "eebcb4176a7e407987e525a07454882f611985e0becb2b73f76efb93bbdc0aab"; + sha256 = "1yc3knh28cx3rjb2ifg5kmqqa78yyyw2gzzslbm9fj0mzh5aq1sx"; }; propagatedBuildInputs = [ pytz six ]; diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix index 13afce05ef7..d24b2dcafda 100644 --- a/pkgs/development/python-modules/plumbum/default.nix +++ b/pkgs/development/python-modules/plumbum/default.nix @@ -5,7 +5,7 @@ buildPythonPackage rec { pname = "plumbum"; - version = "1.6.7"; + version = "1.6.8"; checkInputs = [ pytest ]; @@ -14,6 +14,6 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; - sha256 = "d143f079bfb60b11e9bec09a49695ce2e55ce5ca0246877bdb0818ab7c7fc312"; + sha256 = "14mbyvc1y25lr72n1zh9ym5ngify7zdr57lxahidq03ycpwz4wc5"; }; } \ No newline at end of file diff --git a/pkgs/development/python-modules/poster3/default.nix b/pkgs/development/python-modules/poster3/default.nix new file mode 100644 index 00000000000..175faa343ca --- /dev/null +++ b/pkgs/development/python-modules/poster3/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchPypi +, isPy3k +, paste +, webob +, pyopenssl +}: + +buildPythonPackage rec { + pname = "poster3"; + version = "0.8.1"; + format = "wheel"; # only redistributable available + + disabled = !isPy3k; + + src = fetchPypi { + inherit pname version; + format = "wheel"; + python = "py3"; + sha256 = "1b27d7d63e3191e5d7238631fc828e4493590e94dcea034e386c079d853cce14"; + }; + + checkInputs = [ + paste + webob + pyopenssl + ]; + + meta = with lib; { + description = "Streaming HTTP uploads and multipart/form-data encoding"; + homepage = https://atlee.ca/software/poster/; + license = licenses.mit; + maintainers = with maintainers; [ WhittlesJr ]; + }; +} diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix index 18b548faf21..27d56bab06e 100644 --- a/pkgs/development/python-modules/pre-commit/default.nix +++ b/pkgs/development/python-modules/pre-commit/default.nix @@ -14,12 +14,12 @@ buildPythonApplication rec { pname = "pre-commit"; - version = "1.18.3"; + version = "1.20.0"; src = fetchPypi { inherit version; pname = "pre_commit"; - sha256 = "0gqzx5n5kps7z45rgydciz0sq1m09b4g49vclhvybi57pn3hag0x"; + sha256 = "0vmv3hrivm0sm81cn59n2pmw8h323sg4sgncl910djby2a3jc5cz"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/py2bit/default.nix b/pkgs/development/python-modules/py2bit/default.nix new file mode 100644 index 00000000000..7699ccab3a2 --- /dev/null +++ b/pkgs/development/python-modules/py2bit/default.nix @@ -0,0 +1,27 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytest +}: + +buildPythonPackage rec { + pname = "py2bit"; + version = "0.3.0"; + + checkInput = [ pytest ]; + + src = fetchPypi { + inherit pname version; + sha256 = "1vw2nvw1yrl7ikkqsqs1pg239yr5nspvd969r1x9arms1k25a1a5"; + }; + + meta = with lib; { + homepage = "https://github.com/deeptools/py2bit"; + description = "File access to 2bit files"; + longDescription = '' + A python extension, written in C, for quick access to 2bit files. The extension uses lib2bit for file access. + ''; + license = licenses.mit; + maintainers = with maintainers; [ scalavision ]; + }; +} diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix index bd1caba1d27..56467d1e4a5 100644 --- a/pkgs/development/python-modules/pyatmo/default.nix +++ b/pkgs/development/python-modules/pyatmo/default.nix @@ -1,6 +1,7 @@ { lib , buildPythonPackage , fetchPypi +, requests }: buildPythonPackage rec { @@ -12,6 +13,8 @@ buildPythonPackage rec { sha256 = "2c76740e5adbf8b14d8f41d4f84ce23c0e8e738b18b926dc60858c35bf2fa8f2"; }; + propagatedBuildInputs = [ requests ]; + # Upstream provides no unit tests. doCheck = false; diff --git a/pkgs/development/python-modules/pybigwig/default.nix b/pkgs/development/python-modules/pybigwig/default.nix new file mode 100644 index 00000000000..be54a38cd99 --- /dev/null +++ b/pkgs/development/python-modules/pybigwig/default.nix @@ -0,0 +1,33 @@ +{ lib +, buildPythonPackage +, fetchPypi +, pytest +, numpy +, zlib +}: + +buildPythonPackage rec { + pname = "pyBigWig"; + version = "0.3.17"; + + src = fetchPypi { + inherit pname version; + sha256 = "157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1"; + }; + + buildInputs = [ zlib ]; + + checkInputs = [ numpy pytest ]; + + meta = with lib; { + homepage = "https://github.com/deeptools/pyBigWig"; + description = "File access to bigBed files, and read and write access to bigWig files"; + longDescription = '' + A python extension, written in C, for quick access to bigBed files + and access to and creation of bigWig files. This extension uses + libBigWig for local and remote file access. + ''; + license = licenses.mit; + maintainers = with maintainers; [ scalavision ]; + }; +} diff --git a/pkgs/development/python-modules/pyglet/default.nix b/pkgs/development/python-modules/pyglet/default.nix index e303f3415d7..16484cb1211 100644 --- a/pkgs/development/python-modules/pyglet/default.nix +++ b/pkgs/development/python-modules/pyglet/default.nix @@ -8,6 +8,8 @@ , glibc , gtk2-x11 , gdk-pixbuf +, fontconfig +, freetype }: buildPythonPackage rec { @@ -43,6 +45,12 @@ buildPythonPackage rec { path = '${gtk2-x11}/lib/libgdk-x11-2.0${ext}' elif name == 'gdk_pixbuf-2.0': path = '${gdk-pixbuf}/lib/libgdk_pixbuf-2.0${ext}' + elif name == 'Xext': + path = '${xorg.libXext}/lib/libXext${ext}' + elif name == 'fontconfig': + path = '${fontconfig.lib}/lib/libfontconfig${ext}' + elif name == 'freetype': + path = '${freetype}/lib/libfreetype${ext}' if path is not None: return ctypes.cdll.LoadLibrary(path) raise Exception("Could not load library {}".format(names)) diff --git a/pkgs/development/python-modules/pykde4/default.nix b/pkgs/development/python-modules/pykde4/default.nix index d2c66c8cd2c..5be43a412e5 100644 --- a/pkgs/development/python-modules/pykde4/default.nix +++ b/pkgs/development/python-modules/pykde4/default.nix @@ -19,7 +19,7 @@ in stdenv.mkDerivation rec { pname = "pykde4"; src = fetchurl { - url = "mirror://kde/stable/${version}/src/${pname}-${version}-${version}.tar.xz"; + url = "mirror://kde/stable/${version}/src/${pname}-${version}.tar.xz"; sha256 = "1z40gnkyjlv6ds3cmpzvv99394rhmydr6rxx7qj33m83xnsxgfbz"; }; diff --git a/pkgs/development/python-modules/pypillowfight/default.nix b/pkgs/development/python-modules/pypillowfight/default.nix index 0313632e6fd..feb1f9451bc 100644 --- a/pkgs/development/python-modules/pypillowfight/default.nix +++ b/pkgs/development/python-modules/pypillowfight/default.nix @@ -3,7 +3,7 @@ }: buildPythonPackage rec { pname = "pypillowfight"; - version = "0.2.4"; + version = "0.3.0"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; @@ -11,7 +11,7 @@ buildPythonPackage rec { owner = "OpenPaperwork"; repo = "libpillowfight"; rev = version; - sha256 = "0wbzfhbzim61fmkm7p7f2rwslacla1x00a6xp50haawjh9zfwc4y"; + sha256 = "096242v425mlqqj5g1giy59p7grxp05g78w6bk37vzph98jrgv3w"; }; prePatch = '' diff --git a/pkgs/development/python-modules/schema/default.nix b/pkgs/development/python-modules/schema/default.nix index 6afa5944372..2c1173ce68f 100644 --- a/pkgs/development/python-modules/schema/default.nix +++ b/pkgs/development/python-modules/schema/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi, pytest }: +{ stdenv, buildPythonPackage, fetchPypi, contextlib2, pytest, mock }: buildPythonPackage rec { @@ -10,11 +10,19 @@ buildPythonPackage rec { sha256 = "c9dc8f4624e287c7d1435f8fd758f6a0aabbb7eff442db9192cd46f0e2b6d959"; }; - checkInputs = [ pytest ]; + preConfigure = '' + substituteInPlace requirements.txt --replace '==' '>=' + ''; + + propagatedBuildInputs = [ contextlib2 ]; + + checkInputs = [ pytest mock ]; + checkPhase = "pytest ./test_schema.py"; meta = with stdenv.lib; { description = "Library for validating Python data structures"; homepage = https://github.com/keleshev/schema; license = licenses.mit; + maintainers = [ maintainers.tobim ]; }; } diff --git a/pkgs/development/python-modules/scikitlearn/default.nix b/pkgs/development/python-modules/scikitlearn/default.nix index 939782722c6..4830e3fb2ab 100644 --- a/pkgs/development/python-modules/scikitlearn/default.nix +++ b/pkgs/development/python-modules/scikitlearn/default.nix @@ -12,13 +12,13 @@ buildPythonPackage rec { pname = "scikit-learn"; - version = "0.21.2"; + version = "0.21.3"; # UnboundLocalError: local variable 'message' referenced before assignment disabled = stdenv.isi686; # https://github.com/scikit-learn/scikit-learn/issues/5534 src = fetchPypi { inherit pname version; - sha256 = "1nvj9j16y1hz9gm0qwzpnx2zmz55c63k1fai643migsyll9c7bqa"; + sha256 = "eb9b8ebf59eddd8b96366428238ab27d05a19e89c5516ce294abc35cea75d003"; }; buildInputs = [ diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix index d8cf4d36a41..0705ed4bc83 100644 --- a/pkgs/development/python-modules/sentry-sdk/default.nix +++ b/pkgs/development/python-modules/sentry-sdk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi, urllib3, certifi, django, flask, tornado, sanic, aiohttp, bottle, rq, falcon, pyramid, celery }: +{ stdenv, buildPythonPackage, fetchPypi, isPy3k, urllib3, certifi, django, flask, tornado, bottle, rq, falcon, celery, pyramid, sanic, aiohttp }: buildPythonPackage rec { pname = "sentry-sdk"; @@ -9,7 +9,8 @@ buildPythonPackage rec { sha256 = "ff14935cc3053de0650128f124c36f34a4be120b8cc522c149f5cba342c1fd05"; }; - checkInputs = [ django flask tornado sanic aiohttp bottle rq falcon pyramid celery ]; + checkInputs = [ django flask tornado bottle rq falcon ] + ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ]; propagatedBuildInputs = [ urllib3 certifi ]; diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix index 7b2b578eed8..829874f25ad 100644 --- a/pkgs/development/python-modules/solo-python/default.nix +++ b/pkgs/development/python-modules/solo-python/default.nix @@ -1,21 +1,22 @@ -{ lib, buildPythonPackage, fetchFromGitHub +{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder , click, ecdsa, fido2, intelhex, pyserial, pyusb, requests}: buildPythonPackage rec { pname = "solo-python"; - version = "0.0.15"; + version = "0.0.18"; format = "flit"; + disabled = pythonOlder "3.6"; # only python>=3.6 is supported src = fetchFromGitHub { owner = "solokeys"; repo = pname; rev = version; - sha256 = "14na9s65hxzx141bdv0j7rx1wi3cv85jzpdivsq1rwp6hdhiazr1"; + sha256 = "01mgppjvxlr93vrgz7bzisghpg1vqyaj4cg5wngk0h499iyx4d9q"; }; - # TODO: remove ASAP + # replaced pinned fido, with unrestricted fido version patchPhase = '' - substituteInPlace pyproject.toml --replace "fido2 == 0.7.0" "fido2 >= 0.7.0" + sed -i '/fido2/c\"fido2",' pyproject.toml ''; propagatedBuildInputs = [ @@ -28,6 +29,20 @@ requests ]; + # allow for writable directory for darwin + preBuild = '' + export HOME=$TMPDIR + ''; + + # repo doesn't contain tests, ensure imports aren't broken + pythonImportsCheck = [ + "solo" + "solo.cli" + "solo.commands" + "solo.fido2" + "solo.operations" + ]; + meta = with lib; { description = "Python tool and library for SoloKeys"; homepage = "https://github.com/solokeys/solo-python"; diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix index 89e720482e7..23f2a6967da 100644 --- a/pkgs/development/python-modules/spacy/default.nix +++ b/pkgs/development/python-modules/spacy/default.nix @@ -26,19 +26,13 @@ buildPythonPackage rec { pname = "spacy"; - version = "2.2.1"; + version = "2.2.2"; src = fetchPypi { inherit pname version; - sha256 = "1a833dx8i4s106fk42x4dnayaq5p3qxaxnc012xij991i09v2pxn"; + sha256 = "193r7rrqxfj4jqzk4aqgbycficzmc606vkc4ffc46zs3myhlf6sa"; }; - prePatch = '' - substituteInPlace setup.cfg \ - --replace "plac<1.0.0,>=0.9.6" "plac>=0.9.6" \ - --replace "thinc>=7.1.1,<7.2.0" "thinc~=7.0" - ''; - propagatedBuildInputs = [ numpy murmurhash diff --git a/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/pkgs/development/python-modules/sqlalchemy-utils/default.nix index ef30b6917a3..3db00057c90 100644 --- a/pkgs/development/python-modules/sqlalchemy-utils/default.nix +++ b/pkgs/development/python-modules/sqlalchemy-utils/default.nix @@ -5,12 +5,12 @@ buildPythonPackage rec { pname = "sqlalchemy-utils"; - version = "0.34.2"; + version = "0.35.0"; src = fetchPypi { inherit version; pname = "SQLAlchemy-Utils"; - sha256 = "126c9p8rnnb043w57ah7idqfryczbz4vi9lzsz2cgiaig6fv52b6"; + sha256 = "0phsdcnm21qvxd00zmjd6yxbm1s0i7b1q8zrgfy8cqv9xpmz1w01"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/srsly/default.nix b/pkgs/development/python-modules/srsly/default.nix index 17cd3e8c503..2b87c38b085 100644 --- a/pkgs/development/python-modules/srsly/default.nix +++ b/pkgs/development/python-modules/srsly/default.nix @@ -12,11 +12,11 @@ buildPythonPackage rec { pname = "srsly"; - version = "0.1.0"; + version = "0.2.0"; src = fetchPypi { inherit pname version; - sha256 = "1l9yjp1w2vrkrynxrlrc0v47i2iq9059k4ni44nz23573xbdrh2w"; + sha256 = "0gha1xfh64mapvgn0sghnjsvmjdrh5rywhs3j3bhkvwk42kf40ma"; }; propagatedBuildInputs = lib.optional (pythonOlder "3.4") pathlib; diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix index 334163114a1..375667e91dc 100644 --- a/pkgs/development/python-modules/telethon/default.nix +++ b/pkgs/development/python-modules/telethon/default.nix @@ -2,12 +2,12 @@ buildPythonPackage rec { pname = "telethon"; - version = "1.9.0"; + version = "1.10.8"; src = fetchPypi { inherit version; pname = "Telethon"; - sha256 = "a8797ad5bfee2b350cfc9b73cbb30fc19c8f73c0db42471e0df1371b1a269edc"; + sha256 = "1v0zq6kdvcff6pygi8syylqndamz884gaby4v16p5brg5rz6k25g"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/thinc/default.nix b/pkgs/development/python-modules/thinc/default.nix index a841001ca72..c8a6b5efe84 100644 --- a/pkgs/development/python-modules/thinc/default.nix +++ b/pkgs/development/python-modules/thinc/default.nix @@ -28,11 +28,11 @@ buildPythonPackage rec { pname = "thinc"; - version = "7.2.0"; + version = "7.3.1"; src = fetchPypi { inherit pname version; - sha256 = "808caccafab95aa74c21695248b26279792cd7d07d94fd97f181020f318f024a"; + sha256 = "1f9bg7iyhwnk8jfras8d4wzq0ypn5na0bdbwkl7y2mr06yrdd0ff"; }; buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ @@ -65,11 +65,6 @@ buildPythonPackage rec { pytest ]; - prePatch = '' - substituteInPlace setup.py \ - --replace "plac>=0.9.6,<1.0.0" "plac>=0.9.6" - ''; - # Cannot find cython modules. doCheck = false; diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix index 657d98722a2..95c58e20d91 100644 --- a/pkgs/development/python-modules/twilio/default.nix +++ b/pkgs/development/python-modules/twilio/default.nix @@ -3,13 +3,13 @@ buildPythonPackage rec { pname = "twilio"; - version = "6.29.3"; + version = "6.32.0"; # tests not included in PyPi, so fetch from github instead src = fetchFromGitHub { owner = "twilio"; repo = "twilio-python"; rev = version; - sha256 = "0xc0lw6js8icshjh65rvgbnxrscqsd7ls3h0ni4xqg0kin9wyz42"; + sha256 = "0by2qjzxv13k4lvy4mas0hf468xf98qbc2arc8fcy6aj7h8jaam8"; }; buildInputs = [ nose mock ]; diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix index 01a9a4034d5..6cbb2aa48db 100644 --- a/pkgs/development/python-modules/wasabi/default.nix +++ b/pkgs/development/python-modules/wasabi/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "wasabi"; - version = "0.2.2"; + version = "0.3.0"; src = fetchPypi { inherit pname version; - sha256 = "0xxjc9bvvcaz1qq1jyhcxyl2v39jz8d8dz4zhpfbc7dz53kq6b7r"; + sha256 = "0f18x27qrr29rgxyiy1k9b469i37n80h0x9vd9i22pyg8wxx67q5"; }; checkInputs = [ diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix index fb9182ab179..138facad701 100644 --- a/pkgs/development/python-modules/willow/default.nix +++ b/pkgs/development/python-modules/willow/default.nix @@ -8,13 +8,13 @@ buildPythonPackage rec { pname = "willow"; - version = "1.1"; + version = "1.3"; disabled = pythonOlder "2.7"; src = fetchPypi { pname = "Willow"; inherit version; - sha256 = "818ee11803c90a0a6d49c94b0453d6266be1ef83ae00de72731c45fae4d3e78c"; + sha256 = "0dzc3cjkwp0h3v1n94c33zr5yw5fdd6dkm6vccp9i8dncmpw912g"; }; propagatedBuildInputs = [ six pillow ]; diff --git a/pkgs/development/python-modules/wurlitzer/default.nix b/pkgs/development/python-modules/wurlitzer/default.nix index d1797acb7d2..8a4d96515d7 100644 --- a/pkgs/development/python-modules/wurlitzer/default.nix +++ b/pkgs/development/python-modules/wurlitzer/default.nix @@ -7,11 +7,11 @@ buildPythonPackage rec { pname = "wurlitzer"; - version = "1.0.3"; + version = "2.0.0"; src = fetchPypi { inherit pname version; - sha256 = "0nab45pfgqdxhhyshf717xfzniss2h3bx19zdaq9gqr6v8lw6wpr"; + sha256 = "0xndv47iwc9k8cp5r9r1z3r0xww0r5x5b7qsmn39gk2gsg0119c6"; }; checkInputs = [ mock pytest ]; diff --git a/pkgs/development/python-modules/wxPython/4.0.nix b/pkgs/development/python-modules/wxPython/4.0.nix index 9f6e9866cef..f03d1fb1e87 100644 --- a/pkgs/development/python-modules/wxPython/4.0.nix +++ b/pkgs/development/python-modules/wxPython/4.0.nix @@ -28,11 +28,11 @@ buildPythonPackage rec { pname = "wxPython"; - version = "4.0.6"; + version = "4.0.7"; src = fetchPypi { inherit pname version; - sha256 = "35cc8ae9dd5246e2c9861bb796026bbcb9fb083e4d49650f776622171ecdab37"; + sha256 = "0cq2iyqm08ihazh5xzdsha5h22mba0w4a0y7iikn6c6yvszhiriv"; }; doCheck = false; diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix index cec21c44657..d120f17780b 100644 --- a/pkgs/development/python-modules/xdis/default.nix +++ b/pkgs/development/python-modules/xdis/default.nix @@ -6,14 +6,14 @@ buildPythonPackage rec { pname = "xdis"; - version = "4.0.4"; + version = "4.1.2"; disabled = isPy27; src = fetchFromGitHub { owner = "rocky"; repo = "python-xdis"; rev = version; - sha256 = "1m54d61ka9wgq0iqlzmsikzxa6qmwvnwsgm2kxb3vw5ic1psv4pv"; + sha256 = "0icqhafsnmcs6628cg3jjgq0d3x835nqmhljcz93yi457hfqd2lp"; }; checkInputs = [ pytest ]; diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix index 157e15e375f..d8c3d484f43 100644 --- a/pkgs/development/ruby-modules/gem-config/default.nix +++ b/pkgs/development/ruby-modules/gem-config/default.nix @@ -18,7 +18,7 @@ # (to make gems behave if necessary). { lib, fetchurl, writeScript, ruby, kerberos, libxml2, libxslt, python, stdenv, which -, libiconv, postgresql, v8_3_16_14, clang, sqlite, zlib, imagemagick +, libiconv, postgresql, v8, clang, sqlite, zlib, imagemagick , pkgconfig , ncurses, xapian, gpgme, utillinux, tzdata, icu, libffi , cmake, libssh2, openssl, libmysqlclient, darwin, git, perl, pcre, gecode_3, curl , msgpack, qt59, libsodium, snappy, libossp_uuid, lxc, libpcap, xorg, gtk2, buildRubyGem @@ -29,8 +29,6 @@ }@args: let - v8 = v8_3_16_14; - rainbow_rake = buildRubyGem { pname = "rake"; gemName = "rake"; @@ -567,14 +565,6 @@ in buildInputs = [ freetds ]; }; - therubyracer = attrs: { - buildFlags = [ - "--with-v8-dir=${v8}" - "--with-v8-include=${v8}/include" - "--with-v8-lib=${v8}/lib" - ]; - }; - typhoeus = attrs: { buildInputs = [ curl ]; }; diff --git a/pkgs/development/ruby-modules/with-packages/Gemfile b/pkgs/development/ruby-modules/with-packages/Gemfile index 0cd04f07b94..3454ce3df74 100644 --- a/pkgs/development/ruby-modules/with-packages/Gemfile +++ b/pkgs/development/ruby-modules/with-packages/Gemfile @@ -144,7 +144,6 @@ source 'https://rubygems.org' do gem 'snappy' gem 'sqlite3' gem 'taglib-ruby' - gem 'therubyracer' gem 'thrift' gem 'tilt' gem 'tiny_tds' diff --git a/pkgs/development/ruby-modules/with-packages/default.nix b/pkgs/development/ruby-modules/with-packages/default.nix index ac0a33f4561..7d49b0e0134 100644 --- a/pkgs/development/ruby-modules/with-packages/default.nix +++ b/pkgs/development/ruby-modules/with-packages/default.nix @@ -64,6 +64,8 @@ let rm -f $out/bin/$(basename "$i") makeWrapper "$i" $out/bin/$(basename "$i") --set GEM_PATH ${gemEnv}/${ruby.gemPath} done + + ln -s ${ruby}/nix-support $out/nix-support ''; passthru = { diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix index 8f55bf95127..2ecb660ff84 100644 --- a/pkgs/development/tools/analysis/checkstyle/default.nix +++ b/pkgs/development/tools/analysis/checkstyle/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, makeWrapper, jre }: stdenv.mkDerivation rec { - version = "8.25"; + version = "8.26"; pname = "checkstyle"; src = fetchurl { url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar"; - sha256 = "04asn3cqh0f78c4b0968ic2fxgijf47paw3zgh9dh96x1165yhkf"; + sha256 = "0q0jb0ip78vai2qcig51lgp9pbb4bsg9wlwjxq0gm61icbxw6vy3"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix index 919061c6d96..f821ac32fc4 100644 --- a/pkgs/development/tools/clj-kondo/default.nix +++ b/pkgs/development/tools/clj-kondo/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec{ pname = "clj-kondo"; - version = "2019.07.31-alpha"; + version = "2019.11.03"; reflectionJson = fetchurl { name = "reflection.json"; @@ -12,7 +12,7 @@ stdenv.mkDerivation rec{ src = fetchurl { url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar"; - sha256 = "03ipl7br9pgx2hdbiaxv9ip0ibafkyzkc8qlx8xyi528bcfi54bf"; + sha256 = "1chvdfczlxyy1jspyf4yv1kmgz6fq4fih5qvfarvcyw7nlxlj2np"; }; dontUnpack = true; @@ -46,6 +46,6 @@ stdenv.mkDerivation rec{ homepage = https://github.com/borkdude/clj-kondo; license = licenses.epl10; platforms = graalvm8.meta.platforms; - maintainers = with maintainers; [ jlesquembre ]; + maintainers = with maintainers; [ jlesquembre bandresen ]; }; } diff --git a/pkgs/development/tools/cmake-format/default.nix b/pkgs/development/tools/cmake-format/default.nix new file mode 100644 index 00000000000..5726b067e67 --- /dev/null +++ b/pkgs/development/tools/cmake-format/default.nix @@ -0,0 +1,32 @@ +{ lib +, buildPythonApplication +, fetchPypi +, autopep8 +, flake8 +, jinja2 +, pylint +, pyyaml +}: + +buildPythonApplication rec { + pname = "cmake-format"; + version = "0.6.0"; + + src = fetchPypi { + inherit version; + pname = "cmake_format"; + sha256 = "0sip832bxsvnm7fhqhx49d53g2s7swdk3fhyhlglm2shgj89b5zw"; + }; + + propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml ]; + + doCheck = false; + + meta = with lib; { + description = "Source code formatter for cmake listfiles"; + homepage = "https://github.com/cheshirekow/cmake_format"; + license = licenses.gpl3; + maintainers = [ maintainers.tobim ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/tools/devpi-server/default.nix index d4215288267..0408c8ed01b 100644 --- a/pkgs/development/tools/devpi-server/default.nix +++ b/pkgs/development/tools/devpi-server/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "devpi-server"; - version = "5.1.0"; + version = "5.2.0"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "254fceee846532a5fec4e6bf52a59eb8f236efc657678a542b5200da4bb3abbc"; + sha256 = "1dapd0bis7pb4fzq5yva7spby5amcsgl1970z5nq1rlprf6qbydg"; }; propagatedBuildInputs = with python3Packages; [ diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix index 8a7bb005a8c..1d928292cd5 100644 --- a/pkgs/development/tools/java/cfr/default.nix +++ b/pkgs/development/tools/java/cfr/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "cfr"; - version = "0.147"; + version = "0.148"; src = fetchurl { url = "http://www.benf.org/other/cfr/cfr_${version}.jar"; - sha256 = "1xafxvxil0k7rwvfia2a67sh18pk8xb2y6qz6cpr31i2i0pwl8ls"; + sha256 = "04nhbzcb0n5xckkbl1rz4xa2bz53hrlm938wrh0gfkzrwwgzj1ql"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix index 447cc51ac39..7628bd9558a 100644 --- a/pkgs/development/tools/just/default.nix +++ b/pkgs/development/tools/just/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "just"; - version = "0.4.4"; + version = "0.4.5"; src = fetchFromGitHub { owner = "casey"; repo = pname; rev = "v${version}"; - sha256 = "06k1pl2qmmr9q0ffw6l0dzqqfgpckmrdzjpzn9cw23shhihv99a8"; + sha256 = "0a4bml9nxvyh110a60l4lc11yr2ds5r8d3iplslccrkq1ka96av9"; }; - cargoSha256 = "1blsdl9dsq24vhm8cg1ja9m4b3h343lndibq6wz2kcwdq4i8jhd0"; + cargoSha256 = "0dbgjc21q0zaadsjvq3s6y6f4dmsybxb6g2sg8w2d3phkm9j921z"; checkInputs = [ coreutils bash dash ]; diff --git a/pkgs/development/tools/misc/sysbench/default.nix b/pkgs/development/tools/misc/sysbench/default.nix index 8076925f29b..8feeb13db95 100644 --- a/pkgs/development/tools/misc/sysbench/default.nix +++ b/pkgs/development/tools/misc/sysbench/default.nix @@ -1,21 +1,26 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, vim, libmysqlclient -, libaio }: +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig +, libmysqlclient, libaio +}: -stdenv.mkDerivation { - name = "sysbench-1.0.17"; +stdenv.mkDerivation rec { + pname = "sysbench"; + version = "1.0.18"; nativeBuildInputs = [ autoreconfHook pkgconfig ]; - buildInputs = [ vim libmysqlclient libaio ]; + buildInputs = [ libmysqlclient libaio ]; src = fetchFromGitHub { owner = "akopytov"; - repo = "sysbench"; - rev = "1.0.17"; - sha256 = "02i9knvp0bjw6ri848xxiy2dbww2xv70nah9yn67a6zgw617hwa6"; + repo = pname; + rev = version; + sha256 = "1r6lkyfp65xqklj1rdfw551srqqyak144agi8x3wjz3wmsbqls19"; }; + enableParallelBuilding = true; + meta = { description = "Modular, cross-platform and multi-threaded benchmark tool"; + homepage = https://github.com/akopytov/sysbench; license = stdenv.lib.licenses.gpl2; platforms = stdenv.lib.platforms.linux; }; diff --git a/pkgs/development/tools/ocaml/ocp-indent/default.nix b/pkgs/development/tools/ocaml/ocp-indent/default.nix index 7ecc15da2b5..6f8d80df564 100644 --- a/pkgs/development/tools/ocaml/ocp-indent/default.nix +++ b/pkgs/development/tools/ocaml/ocp-indent/default.nix @@ -1,12 +1,12 @@ { lib, fetchzip, buildDunePackage, cmdliner }: buildDunePackage rec { - version = "1.7.0"; + version = "1.8.1"; pname = "ocp-indent"; src = fetchzip { url = "https://github.com/OCamlPro/ocp-indent/archive/${version}.tar.gz"; - sha256 = "006x3fsd61vxnxj4chlakyk3b2s10pb0bdl46g0ghf3j8h33x7hc"; + sha256 = "0h4ysh36q1fxc40inhsdq2swqpfm15lpilqqcafs5ska42pn7s68"; }; minimumOCamlVersion = "4.02"; diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix index d01785a8fc0..b7538a2b388 100644 --- a/pkgs/development/tools/profiling/sysprof/default.nix +++ b/pkgs/development/tools/profiling/sysprof/default.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "sysprof"; - version = "3.34.0"; + version = "3.34.1"; outputs = [ "out" "lib" "dev" ]; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0b7rpwvs5wckiy418vs0d4i62wafpcx1zlspw39ag50d1sjcbv58"; + sha256 = "1l4kr1av7933vb4zql9c5lgzivlw64hyky4nr8xin1v5if6vnjw4"; }; nativeBuildInputs = [ diff --git a/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch b/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch index 8744b753a6e..39c5c06a285 100644 --- a/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch +++ b/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch @@ -1,8 +1,8 @@ diff --git a/src/plugins/cpptools/headerpathfilter.cpp b/src/plugins/cpptools/headerpathfilter.cpp -index b514c46..5f96358 100644 +index e2d1e6a..1a1d839 100644 --- a/src/plugins/cpptools/headerpathfilter.cpp +++ b/src/plugins/cpptools/headerpathfilter.cpp -@@ -92,8 +92,8 @@ HeaderPaths::iterator resourceIterator(HeaderPaths &headerPaths, bool isMacOs) +@@ -96,8 +96,8 @@ HeaderPaths::iterator resourceIterator(HeaderPaths &headerPaths, bool isMacOs) { // include/c++, include/g++, libc++\include and libc++abi\include static const QString cppIncludes = R"((.*\/include\/.*(g\+\+|c\+\+).*))" diff --git a/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch b/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch new file mode 100644 index 00000000000..5cd34991c39 --- /dev/null +++ b/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch @@ -0,0 +1,13 @@ +diff --git a/src/plugins/cpptools/headerpathfilter.cpp b/src/plugins/cpptools/headerpathfilter.cpp +index e2d1e6a..1a1d839 100644 +--- a/src/plugins/cpptools/headerpathfilter.cpp ++++ b/src/plugins/cpptools/headerpathfilter.cpp +@@ -134,8 +134,6 @@ void removeClangSystemHeaderPaths(HeaderPaths &headerPaths) + + void HeaderPathFilter::tweakHeaderPaths() + { +- removeClangSystemHeaderPaths(builtInHeaderPaths); +- + auto split = resourceIterator(builtInHeaderPaths, + projectPart.toolChainTargetTriple.contains("darwin")); + diff --git a/pkgs/development/tools/qtcreator/default.nix b/pkgs/development/tools/qtcreator/default.nix index 7e592bf060a..55eb30ab370 100644 --- a/pkgs/development/tools/qtcreator/default.nix +++ b/pkgs/development/tools/qtcreator/default.nix @@ -1,14 +1,11 @@ { mkDerivation, lib, fetchurl, fetchgit, fetchpatch , qtbase, qtquickcontrols, qtscript, qtdeclarative, qmake, llvmPackages_8 -, withDocumentation ? false +, withDocumentation ? false, withClangPlugins ? true }: with lib; let - baseVersion = "4.9"; - revision = "1"; - # Fetch clang from qt vendor, this contains submodules like this: # clang<-clang-tools-extra<-clazy. clang_qt_vendor = llvmPackages_8.clang-unwrapped.overrideAttrs (oldAttrs: { @@ -23,35 +20,28 @@ in mkDerivation rec { pname = "qtcreator"; - version = "${baseVersion}.${revision}"; + version = "4.10.0"; + baseVersion = builtins.concatStringsSep "." (lib.take 2 (builtins.splitVersion version)); src = fetchurl { url = "http://download.qt-project.org/official_releases/${pname}/${baseVersion}/${version}/qt-creator-opensource-src-${version}.tar.xz"; - sha256 = "10ddp1365rf0z4bs7yzc9hajisp3j6mzjshyd0vpi4ki126j5f3r"; + sha256 = "12hgxdghz05ms4zl8prz2w8l66vmgw1qw2gsmmwqi2rdaay3lpcg"; }; - buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative llvmPackages_8.libclang clang_qt_vendor llvmPackages_8.llvm ]; + buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative ] ++ + optionals withClangPlugins [ llvmPackages_8.libclang + clang_qt_vendor + llvmPackages_8.llvm ]; nativeBuildInputs = [ qmake ]; # 0001-Fix-clang-libcpp-regexp.patch is for fixing regexp that is used to # find clang libc++ library include paths. By default it's not covering paths # like libc++-version, which is default name for libc++ folder in nixos. + # ./0002-Dont-remove-clang-header-paths.patch is for forcing qtcreator to not + # remove system clang include paths. patches = [ ./0001-Fix-clang-libcpp-regexp.patch - - # Fix clazy plugin name. This plugin was renamed with clang8 - # release, and patch didn't make it into 4.9.1 release. Should be removed - # on qtcreator update, if this problem is fixed. - (fetchpatch { - url = "https://code.qt.io/cgit/qt-creator/qt-creator.git/patch/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp?id=53c407bc0c87e0b65b537bf26836ddd8e00ead82"; - sha256 = "1lanp7jg0x8jffajb852q8p4r34facg41l410xsz6s1k91jskbi9"; - }) - - (fetchpatch { - url = "https://code.qt.io/cgit/qt-creator/qt-creator.git/patch/src/plugins/clangtools/clangtidyclazyrunner.cpp?id=53c407bc0c87e0b65b537bf26836ddd8e00ead82"; - sha256 = "1rl0rc2l297lpfhhawvkkmj77zb081hhp0bbi7nnykf3q9ch0clh"; - }) - ]; + ./0002-Dont-remove-clang-header-paths.patch ]; doCheck = true; @@ -63,8 +53,8 @@ mkDerivation rec { preConfigure = '' substituteInPlace src/plugins/plugins.pro \ - --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls' - + --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls' + '' + optionalString withClangPlugins '' # Fix paths for llvm/clang includes directories. substituteInPlace src/shared/clang/clang_defines.pri \ --replace '$$clean_path($${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/include)' '${clang_qt_vendor}/lib/clang/8.0.0/include' \ @@ -77,7 +67,9 @@ mkDerivation rec { # Fix paths to libclang library. substituteInPlace src/shared/clang/clang_installation.pri \ --replace 'LIBCLANG_LIBS = -L$${LLVM_LIBDIR}' 'LIBCLANG_LIBS = -L${llvmPackages_8.libclang}/lib' \ - --replace 'LIBCLANG_LIBS += $${CLANG_LIB}' 'LIBCLANG_LIBS += -lclang' + --replace 'LIBCLANG_LIBS += $${CLANG_LIB}' 'LIBCLANG_LIBS += -lclang' \ + --replace 'LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}' 'LIBTOOLING_LIBS = -L${clang_qt_vendor}/lib' \ + --replace 'LLVM_CXXFLAGS ~= s,-gsplit-dwarf,' '${lib.concatStringsSep "\n" ["LLVM_CXXFLAGS ~= s,-gsplit-dwarf," " LLVM_CXXFLAGS += -fno-rtti"]}' ''; preBuild = optional withDocumentation '' diff --git a/pkgs/development/tools/rust/cargo-geiger/default.nix b/pkgs/development/tools/rust/cargo-geiger/default.nix new file mode 100644 index 00000000000..2512a9ec4f4 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-geiger/default.nix @@ -0,0 +1,39 @@ +{ stdenv, lib, fetchFromGitHub +, rustPlatform, pkgconfig +, openssl, Security }: + +rustPlatform.buildRustPackage rec { + pname = "cargo-geiger"; + version = "0.7.3"; + + src = fetchFromGitHub { + owner = "anderejd"; + repo = pname; + rev = "${pname}-${version}"; + sha256 = "1lm8dx19svdpg99zbpfcm1272n18y63sq756hf6k99zi51av17xc"; + }; + + cargoSha256 = "16zvm2y0j7ywv6fx0piq99g8q1sayf3qipd6adrwyqyg8rbf4cw6"; + + # Multiple tests require internet connectivity, so they are disabled here. + # If we ever get cargo-insta (https://crates.io/crates/insta) in tree, + # we might be able to run these with something like + # `cargo insta review` in the `preCheck` phase. + checkPhase = '' + cargo test -- \ + --skip test_package::case_2 \ + --skip test_package::case_3 \ + --skip test_package::case_6 + ''; + + buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ]; + nativeBuildInputs = [ pkgconfig ]; + + meta = with lib; { + description = "Detects usage of unsafe Rust in a Rust crate and its dependencies."; + homepage = https://github.com/anderejd/cargo-geiger; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ evanjs ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/tools/spirv-tools/default.nix b/pkgs/development/tools/spirv-tools/default.nix index 550cd9dce27..9958cb197ca 100644 --- a/pkgs/development/tools/spirv-tools/default.nix +++ b/pkgs/development/tools/spirv-tools/default.nix @@ -1,18 +1,15 @@ { stdenv, fetchFromGitHub, cmake, python3, spirv-headers }: -let - # Update spirv-headers rev in lockstep according to DEPs file - version = "2019.3"; -in stdenv.mkDerivation rec { pname = "spirv-tools"; - inherit version; + # Update spirv-headers rev in lockstep according to DEPs file + version = "2019.4"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; rev = "v${version}"; - sha256 = "1wvipjcjsi815ls08s3dz9hwlbb59dbl4syxkskg1k9d5jjph1a8"; + sha256 = "17bbvhk4p42x4jlvcr5p9903xiiryw57c8yyfxmqik10s8601an9"; }; enableParallelBuilding = true; diff --git a/pkgs/development/tools/vala-lint/default.nix b/pkgs/development/tools/vala-lint/default.nix new file mode 100644 index 00000000000..92fb6ebcc68 --- /dev/null +++ b/pkgs/development/tools/vala-lint/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, fetchFromGitHub +, glib +, meson +, ninja +, pantheon +, pkgconfig +, vala +, gettext +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "vala-lint-unstable"; + version = "2019-10-11"; + + src = fetchFromGitHub { + owner = "vala-lang"; + repo = "vala-lint"; + rev = "a077bbec30dea128616a23583ce3f8364ff2ef11"; + sha256 = "0w0rmaj4v42wc4vq2lfjnj6airag5ahv6522xkw3j1nmccxq3s72"; + }; + + nativeBuildInputs = [ + gettext + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + glib + ]; + + # See https://github.com/vala-lang/vala-lint/issues/133 + doCheck = false; + + meta = with stdenv.lib; { + homepage = https://github.com/vala-lang/vala-lint; + description = "Check Vala code files for code-style errors"; + longDescription = '' + Small command line tool and library for checking Vala code files for code-style errors. + Based on the elementary Code-Style guidelines. + ''; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/development/tools/yq/default.nix b/pkgs/development/tools/yq/default.nix index f93a24d56f9..e9b54e67f5e 100644 --- a/pkgs/development/tools/yq/default.nix +++ b/pkgs/development/tools/yq/default.nix @@ -2,7 +2,7 @@ buildPythonApplication rec { pname = "yq"; - version = "2.7.2"; + version = "2.8.1"; propagatedBuildInputs = [ pyyaml xmltodict jq ]; @@ -11,7 +11,7 @@ buildPythonApplication rec { src = fetchPypi { inherit pname version; - sha256 = "1fwvwy75n4rqzh6sxyp2jmjqc7939s0xmrhxw7zhdy6iacggvnpp"; + sha256 = "042p3s011635rbjax9wvwjdrb1kyzw38a6qn59b0j0k7krz6rlr4"; }; meta = with lib; { diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix index 6dc68750075..ea23ad06cd2 100644 --- a/pkgs/development/web/nodejs/nodejs.nix +++ b/pkgs/development/web/nodejs/nodejs.nix @@ -53,12 +53,30 @@ in }; buildInputs = optionals stdenv.isDarwin [ CoreServices ApplicationServices ] - ++ [ python2 zlib libuv openssl http-parser icu ]; + ++ [ zlib libuv openssl http-parser icu ]; - nativeBuildInputs = [ which utillinux pkgconfig ] + nativeBuildInputs = [ which utillinux pkgconfig python2 ] ++ optionals stdenv.isDarwin [ xcbuild ]; - configureFlags = sharedConfigureFlags ++ [ "--without-dtrace" ] ++ extraConfigFlags; + configureFlags = let + isCross = stdenv.hostPlatform != stdenv.buildPlatform; + host = stdenv.hostPlatform.platform; + isArm = stdenv.hostPlatform.isArm; + in sharedConfigureFlags ++ [ + "--without-dtrace" + ] ++ (optionals isCross [ + "--cross-compiling" + "--without-intl" + "--without-snapshot" + ]) ++ (optionals (isCross && isArm && hasAttr "fpu" host.gcc) [ + "--with-arm-fpu=${host.gcc.fpu}" + ]) ++ (optionals (isCross && isArm && hasAttr "float-abi" host.gcc) [ + "--with-arm-float-abi=${host.gcc.float-abi}" + ]) ++ (optionals (isCross && isArm) [ + "--dest-cpu=arm" + ]) ++ extraConfigFlags; + + configurePlatforms = []; dontDisableStatic = true; @@ -96,7 +114,7 @@ in postInstall = '' PATH=$out/bin:$PATH patchShebangs $out - ${optionalString enableNpm '' + ${optionalString (enableNpm && stdenv.hostPlatform == stdenv.buildPlatform) '' mkdir -p $out/share/bash-completion/completions/ $out/bin/npm completion > $out/share/bash-completion/completions/npm for dir in "$out/lib/node_modules/npm/man/"*; do diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix index e0d8fb2337d..440012461b9 100644 --- a/pkgs/development/web/postman/default.nix +++ b/pkgs/development/web/postman/default.nix @@ -7,11 +7,11 @@ stdenv.mkDerivation rec { pname = "postman"; - version = "7.9.0"; + version = "7.10.0"; src = fetchurl { url = "https://dl.pstmn.io/download/version/${version}/linux64"; - sha256 = "0qgw3mvds99ca1gy0zfxzi7n1yxv99xwqgzr9rkx5qm6bw9c1ppw"; + sha256 = "0k8np71p414407hvcw149gspvdgyadnmpvfdxwwkr3pydj70vn6f"; name = "${pname}.tar.gz"; }; diff --git a/pkgs/games/frozen-bubble/default.nix b/pkgs/games/frozen-bubble/default.nix new file mode 100644 index 00000000000..3b562ee44f2 --- /dev/null +++ b/pkgs/games/frozen-bubble/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, perlPackages, pkgconfig, SDL, SDL_mixer, SDL_Pango, glib }: + +perlPackages.buildPerlModule { + pname = "frozen-bubble"; + version = "2.212"; + + src = fetchurl { + url = "mirror://cpan/authors/id/K/KT/KTHAKORE/Games-FrozenBubble-2.212.tar.gz"; + sha256 = "721e04ff69c5233060656bfbf4002aa1aeadd96c95351f0c57bb85b6da35a305"; + }; + patches = [ ./fix-compilation.patch ]; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ glib SDL SDL_mixer SDL_Pango perlPackages.SDL perlPackages.FileSlurp ]; + propagatedBuildInputs = with perlPackages; [ AlienSDL CompressBzip2 FileShareDir FileWhich IPCSystemSimple LocaleMaketextLexicon ]; + + perlPreHook = "export LD=$CC"; + + meta = { + description = "Puzzle with Bubbles"; + license = stdenv.lib.licenses.gpl2; + maintainers = with stdenv.lib.maintainers; [ puckipedia ]; + }; +} diff --git a/pkgs/games/frozen-bubble/fix-compilation.patch b/pkgs/games/frozen-bubble/fix-compilation.patch new file mode 100644 index 00000000000..e87dd0668dc --- /dev/null +++ b/pkgs/games/frozen-bubble/fix-compilation.patch @@ -0,0 +1,33 @@ +diff --git a/Build.PL b/Build.PL +index b029d1e..8737395 100644 +--- a/Build.PL ++++ b/Build.PL +@@ -16,13 +16,14 @@ use Games::FrozenBubble; + my $prefix = Alien::SDL->config('prefix'); + my $cflags = '-I' + . File::Spec->catfile( $prefix, 'include' ) ++ . ' ' . `pkg-config --cflags SDL_mixer` + ; + $cflags .= ' -fnested-functions' if $^O =~ /darwin/; + ###!!! this looks strange, you perhaps meant "$cflags .= ..." + ###!!! I intended Alien::SDL to add -I$prefix/include automatically, please tell me when it does not work (kmx) + my $devnull = File::Spec->devnull(); + my @cflags = ExtUtils::CBuilder->new->split_like_shell( $cflags ); +-my @linkers = ( ExtUtils::CBuilder->new->split_like_shell( Alien::SDL->config('libs', '-lSDL_mixer', '-lSDL_Pango') ) ); ++my @linkers = ( ExtUtils::CBuilder->new->split_like_shell( Alien::SDL->config('libs', '-lSDL_Pango',`pkg-config --libs SDL_mixer`) ) ); + push @linkers, '-liconv' + if $^O =~ /win/i; ###!!! really only Win needs this? ; BEWARE this matches also 'darwin', 'cygwin'!!!! + +diff --git a/inc/My/Builder.pm b/inc/My/Builder.pm +index 2ebaf91..c420b9a 100644 +--- a/inc/My/Builder.pm ++++ b/inc/My/Builder.pm +@@ -123,7 +123,7 @@ sub ACTION_server { + push @ofiles, $cbuilder->compile( + source => catfile($server_directory, $cfile), + extra_compiler_flags => [ +- qw(-g -Wall -Werror -pipe), # verbatim from Makefile ++ qw(-g -pipe), # verbatim from Makefile + '-I' . $server_directory, # does not seem to be necessary + $cbuilder->split_like_shell(`pkg-config glib-2.0 --cflags`), + $cbuilder->split_like_shell(`pkg-config glib-2.0 --libs`), diff --git a/pkgs/games/openjk/default.nix b/pkgs/games/openjk/default.nix index 9109d2667c3..fd12c901583 100644 --- a/pkgs/games/openjk/default.nix +++ b/pkgs/games/openjk/default.nix @@ -21,13 +21,13 @@ let }; in stdenv.mkDerivation { pname = "OpenJK"; - version = "2019-06-24"; + version = "2019-10-25"; src = fetchFromGitHub { owner = "JACoders"; repo = "OpenJK"; - rev = "e8b5c135eccb05ddae67e00ff944001f373fddd4"; - sha256 = "0qkbn59swhnb0anvy9gq945rkb58j6axlcfgb7sff0m4swqw2394"; + rev = "e9116155052ef6a22135a1806a10e959aa9a1e00"; + sha256 = "1f1bz1g2ksw4m3rnbh6fdsawcrpbfjdmq1gs2xj0q450yb840l3z"; }; dontAddPrefix = true; diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix index 2bc34a6ec9d..4bbddfbb1df 100644 --- a/pkgs/games/openmw/tes3mp.nix +++ b/pkgs/games/openmw/tes3mp.nix @@ -24,20 +24,20 @@ let coreScripts = fetchFromGitHub { owner = "TES3MP"; repo = "CoreScripts"; - # usually latest master - rev = "71e15fa3b1d5131b6607ba1589f41c06672ce376"; - sha256 = "1kwii8rpsxjmz4dh06wb0qaix17hq5s1qsvysv6n6209vlclfxjg"; + # usually latest in stable branch (e.g. 0.7.0) + rev = "506146f5b2297242b713a030a589966156df1e8e"; + sha256 = "0p4a4bgigyxfmaczf3jnz6ik4hgvdaafzc4614hbmbm1qbn8wpf9"; }; in openmw.overrideAttrs (oldAttrs: rec { - version = "2019-06-09"; + version = "2019-07-01"; name = "openmw-tes3mp-${version}"; src = fetchFromGitHub { owner = "TES3MP"; repo = "openmw-tes3mp"; # usually latest in stable branch (e.g. 0.7.0) - rev = "01804af100785bc2c162d568258d9662012627a3"; - sha256 = "0j99v9vvmic0bqw3y4550k1dy058lwvs9s9qcjmxh1wkqkvrpdnp"; + rev = "94a9292cc676a037496f98877b62da80cde2ac47"; + sha256 = "0kc45xs33rsxac1aba248slzvljx90ybdk4ag9jwjjmsjmy7w2w5"; }; nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ]; diff --git a/pkgs/games/openxray/default.nix b/pkgs/games/openxray/default.nix index d8ff0dd8d9e..9960d94a247 100644 --- a/pkgs/games/openxray/default.nix +++ b/pkgs/games/openxray/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "OpenXRay"; - version = "510"; + version = "558"; src = fetchFromGitHub { owner = "OpenXRay"; repo = "xray-16"; rev = version; - sha256 = "0q142l6xvgnd6ycncqld69izxclynqrs73aq89pfy1r1nzhd60ay"; + sha256 = "1wnkx9g0ww4f5pljrb0wzs054jzkig1i5hlz1p509rfvnhc50afp"; fetchSubmodules = true; }; diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix index 114f862888d..e8678253b40 100644 --- a/pkgs/games/quakespasm/vulkan.nix +++ b/pkgs/games/quakespasm/vulkan.nix @@ -2,14 +2,13 @@ stdenv.mkDerivation rec { pname = "vkquake"; - majorVersion = "1.01"; - version = "${majorVersion}.0"; + version = "1.02.1"; src = fetchFromGitHub { owner = "Novum"; repo = "vkQuake"; rev = version; - sha256 = "1iwin8j5kbyrknbkhjgpy8nmm7pxqzr0daa9gn7p38qhg2mh0a39"; + sha256 = "0fk9jqql0crnf0s12cxnris392ajciyw1zbz17qgs5hdyivp9vdx"; }; sourceRoot = "source/Quake"; diff --git a/pkgs/games/sdlmame/default.nix b/pkgs/games/sdlmame/default.nix deleted file mode 100644 index 7811b4b7373..00000000000 --- a/pkgs/games/sdlmame/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ stdenv, fetchurl, alsaLib, qt48, SDL, fontconfig, freetype, SDL_ttf, xorg }: - -stdenv.mkDerivation rec { - version = "0.151.u0-1"; - pname = "sdlmame"; - - src = if stdenv.hostPlatform.system == "x86_64-linux" - then fetchurl { - url = "http://seblu.net/a/archive/packages/s/sdlmame/${pname}-${version}-x86_64.pkg.tar.xz"; - sha256 = "1j9vjxhrhsskrlk5wr7al4wk2hh3983kcva42mqal09bmc8qg3m9"; - } - else fetchurl { - url = "http://seblu.net/a/archive/packages/s/sdlmame/${pname}-${version}-i686.pkg.tar.xz"; - sha256 = "1i38j9ml66pyxzm0zzf1fv4lb40f6w47cdgaw846q91pzakkkqn7"; - }; - - buildPhase = '' - sed -i "s|/usr|$out|" bin/sdlmame - ''; - - installPhase = '' - patchelf \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${stdenv.lib.makeLibraryPath [ alsaLib qt48 SDL fontconfig freetype SDL_ttf xorg.libX11 xorg.libXinerama stdenv.cc.cc ]}" \ - share/sdlmame/sdlmame - - mkdir -p "$out/bin" - cp -r bin/sdlmame "$out/bin" - cp -r share "$out" - ''; - - dontPatchELF = true; - dontStrip = true; - - meta = with stdenv.lib; { - homepage = http://sdlmame.lngn.net; - description = "A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support"; - license = "MAME"; - maintainers = with maintainers; [ lovek323 ]; - platforms = [ "x86_64-linux" "i686-linux" ]; - }; -} diff --git a/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix new file mode 100644 index 00000000000..499d7dd6c4a --- /dev/null +++ b/pkgs/misc/emulators/mame/default.nix @@ -0,0 +1,59 @@ +{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem +, python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama }: + +let + majorVersion = "0"; + minorVersion = "215"; + + desktopItem = makeDesktopItem { + name = "MAME"; + exec = "mame${stdenv.lib.optionalString stdenv.is64bit "64"}"; + desktopName = "MAME"; + genericName = "MAME is a multi-purpose emulation framework"; + categories = "System;Emulator;"; + }; +in mkDerivation { + pname = "mame"; + version = "${majorVersion}.${minorVersion}"; + + src = fetchFromGitHub { + owner = "mamedev"; + repo = "mame"; + rev = "mame${majorVersion}${minorVersion}"; + sha256 = "1phz846p3zzgzrbfiq2vn79iqar2dbf7iv6wfkrp32sdkkvp7l3h"; + }; + + hardeningDisable = [ "fortify" ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ]; + + makeFlags = [ "TOOLS=1" ]; + + buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ]; + nativeBuildInputs = [ python pkgconfig which ]; + + installPhase = '' + dest=$out/opt/mame + + make -f dist.mak PTR64=${if stdenv.is64bit then "1" else "0"} + mkdir -p $dest + mv build/release/${if stdenv.is64bit then "x64" else "x32"}/Release/mame/* $dest + + mkdir -p $out/bin + find $dest -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; + + mkdir -p $out/share/man/man{1,6} + mv $dest/docs/man/*.1 $out/share/man/man1 + mv $dest/docs/man/*.6 $out/share/man/man6 + + mkdir -p $out/share + ln -s ${desktopItem}/share/applications $out/share + ''; + + meta = with stdenv.lib; { + description = "Is a multi-purpose emulation framework"; + homepage = https://www.mamedev.org/; + license = with licenses; [ bsd3 gpl2Plus ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ gnidorah ]; + }; +} diff --git a/pkgs/misc/emulators/mess/default.nix b/pkgs/misc/emulators/mess/default.nix deleted file mode 100644 index fc63bf705f4..00000000000 --- a/pkgs/misc/emulators/mess/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ stdenv, fetchurl, unzip, pkgconfig, SDL, gtk2, GConf, libGLU_combined -, expat, zlib }: - -let - - version = "139"; - - mameSrc = fetchurl { - url = "https://github.com/mamedev/mame/releases/download/mame0139/mame0${version}s.zip"; - sha256 = "1mpkwxfz38cgxzvlni2y3fxas3b8qmnzj2ik2zzbd8mr622jdp79"; - }; - - messSrc = fetchurl { - url = "http://www.progettosnaps.net/MESS/src/mess0${version}s.zip"; - name = "mess0139s.zip"; - sha256 = "1v892cg6wn8cdwc8pf1gcqqdb1v1v295r6jw2hf58svwx3h27xyy"; - }; - -in - -stdenv.mkDerivation { - name = "mess-0.${version}"; - - unpackPhase = - '' - unzip ${mameSrc} - # Yes, the MAME distribution is a zip file containing a zip file... - unzip mame.zip - unzip -o ${messSrc} - ''; - - makeFlags = "TARGET=mess BUILD_EXPAT= BUILD_ZLIB= NOWERROR=1"; - - buildInputs = - [ unzip pkgconfig SDL gtk2 GConf libGLU_combined expat zlib ]; - - installPhase = - '' - mkdir -p $out/bin - cp mess* $out/bin/mess - ''; - - meta = { - homepage = https://www.mess.org/; - license = "non-commercial"; - description = "Multi Emulator Super System, an emulator of many game consoles and computer systems"; - broken = true; - }; -} diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix index e55cefdd320..ced26333f4c 100644 --- a/pkgs/misc/emulators/retroarch/cores.nix +++ b/pkgs/misc/emulators/retroarch/cores.nix @@ -1,7 +1,7 @@ -{ stdenv, fetchgit, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, retroarch +{ stdenv, fetchgit, fetchFromGitHub, fetchFromGitLab, cmake, pkgconfig, makeWrapper, python27, python37, retroarch , alsaLib, fluidsynth, curl, hidapi, libGLU_combined, gettext, glib, gtk2, portaudio, SDL , ffmpeg, pcre, libevdev, libpng, libjpeg, udev, libvorbis -, miniupnpc, sfml, xorg, zlib }: +, miniupnpc, sfml, xorg, zlib, nasm, libpcap, boost }: let @@ -11,7 +11,7 @@ let stdenv.lib.makeOverridable stdenv.mkDerivation rec { name = "libretro-${core}-${version}"; - version = "2017-06-04"; + version = "2019-09-29"; inherit src; buildInputs = [ makeWrapper retroarch zlib ] ++ a.extraBuildInputs or []; @@ -38,7 +38,6 @@ let inherit description; homepage = https://www.libretro.com/; inherit license; - inherit broken; maintainers = with maintainers; [ edwtjo hrdinka MP2E ]; platforms = platforms.unix; }; @@ -59,12 +58,83 @@ in with stdenv.lib.licenses; core = "4do"; src = fetchRetro { repo = core + "-libretro"; - rev = "52d881743dd8614d96b4de8bd153cb725b87d474"; - sha256 = "1n42f70vni2zavppayaq8xmsyx5cn40qi4zk4pgq1w3hh2q8mj72"; + rev = "b6ad4bc8548f2f3792cd929ccf26d9078b73a1c0"; + sha256 = "0j2bd9cnnd5k99l9qr4wd5q9b4ciplia6ywp90xg6422s1im2iw0"; }; description = "Port of 4DO/libfreedo to libretro"; license = "Non-commercial"; }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + atari800 = (mkLibRetroCore rec { + core = "atari800"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "efc0bc71e3cb8a4f957d07fe808cc002ed9c13b9"; + sha256 = "150hmazi4p5p18gpjmkrn1k9j719cd9gy7jn0jiy3jbk2cxxsjn6"; + }; + description = "Port of Atari800 to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-snes = (mkLibRetroCore rec { + core = "mednafen-snes"; + src = fetchRetro { + repo = "beetle-bsnes-libretro"; + rev = "6aee84d454570bb17dff5975df28febdbcb72938"; + sha256 = "0nk9xlypg3jhpbwd9z5bjbgzlkz842hy9rq14k1nwn0qz6d88kld"; + }; + description = "Port of Mednafen's SNES core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-gba = (mkLibRetroCore rec { + core = "mednafen-gba"; + src = fetchRetro { + repo = "beetle-gba-libretro"; + rev = "135afdbb9591655a3e016b75abba07e481f6d406"; + sha256 = "0fc0x24qn4y7pz3mp1mm1ain31aj9pznp1irr0k7hvazyklzy9g3"; + }; + description = "Port of Mednafen's GameBoy Advance core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-lynx = (mkLibRetroCore rec { + core = "mednafen-lynx"; + src = fetchRetro { + repo = "beetle-lynx-libretro"; + rev = "928f7cf5b39f0363e55667572ff455e37489998e"; + sha256 = "0f03wzdr6f0fpy889i9a2834jg5lvcriyl98pajp75m7whm9r9cc"; + }; + description = "Port of Mednafen's Lynx core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-ngp = (mkLibRetroCore rec { + core = "mednafen-ngp"; + src = fetchRetro { + repo = "beetle-ngp-libretro"; + rev = "6130e4057c3d8f9172f0c49bb9b6c61bd1a572d5"; + sha256 = "10k7spjrhggjgzb370bwv7fgk0nb6xri9ym6cm4qvnrkcwxm7i9p"; + }; + description = "Port of Mednafen's NeoGeo Pocket core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; buildPhase = "make"; }; @@ -72,26 +142,42 @@ in with stdenv.lib.licenses; core = "mednafen-pce-fast"; src = fetchRetro { repo = "beetle-pce-fast-libretro"; - rev = "2954e645d668ee73d93803dc30da4462fc7a459b"; - sha256 = "0p0k7kqfd6xg1qh6vgzgwp122miprb2bpzljgxd9kvigxihsl6f7"; + rev = "7bbbdf111c1ce52ab4a97e911ebdaa6836ee881a"; + sha256 = "1p0kk5a2yi05yl0hspzv9q0n96yx9riaaacbmnq76li0i3ihkf6l"; }; description = "Port of Mednafen's PC Engine core to libretro"; license = gpl2; }); in der.override { + makefile = "Makefile"; buildPhase = "make"; name = "beetle-pce-fast-${der.version}"; }; + + beetle-pcfx = (mkLibRetroCore rec { + core = "mednafen-pcfx"; + src = fetchRetro { + repo = "beetle-pcfx-libretro"; + rev = "e04f695202a7295e4b6f2122ae947279ac9df007"; + sha256 = "0pdlz05pjqxp19da13dr3wd20hgxw8z5swhflyf7ksjgvz5rxb4r"; + }; + description = "Port of Mednafen's PCFX core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; beetle-psx = let der = (mkLibRetroCore { core = "mednafen-psx"; src = fetchRetro { repo = "beetle-psx-libretro"; - rev = "76862abefdde9097561e2b795e75b49247deff17"; - sha256 = "1k4b7g50ajzchjrm6d3v68hvri4k3hzvacn2l99i5yq3hxp7vs7x"; + rev = "f55db8655408104a6e20af667657423f08566c85"; + sha256 = "17iz8r2wy8zqh63j78ijwxasdnmg8dh9mmqn1qr4hvf4fj53ckk8"; }; description = "Port of Mednafen's PSX Engine core to libretro"; license = gpl2; }); in der.override { + makefile = "Makefile"; buildPhase = "make"; name = "beetle-psx-${der.version}"; }; @@ -100,27 +186,84 @@ in with stdenv.lib.licenses; core = "mednafen-saturn"; src = fetchRetro { repo = "beetle-saturn-libretro"; - rev = "3f1661b39ef249e105e6e2e655854ad0c87cd497"; - sha256 = "1d1brysynwr6inlwfgv7gwkl3i9mf4lsaxd9wm2szw86g4diyn4c"; + rev = "3313cc6760c14cffa9226e0cfd41debc11df8bdd"; + sha256 = "1z2zfn5cpsr3x6bvr562vqvmp4pjjhv5a6jcp09gfsy2gkyispr2"; }; description = "Port of Mednafen's Saturn core to libretro"; license = gpl2; }); in der.override { + makefile = "Makefile"; buildPhase = "make"; name = "beetle-saturn-${der.version}"; - meta.platforms = [ "x86_64-linux" ]; + meta.platforms = [ "x86_64-linux" "aarch64-linux" ]; + }; + + beetle-supergrafx = (mkLibRetroCore rec { + core = "mednafen-supergrafx"; + src = fetchRetro { + repo = "beetle-supergrafx-libretro"; + rev = "857e41146e3b0a51def3baea49d2eec80f18102b"; + sha256 = "0r3v4qy4rx4mnr7w4s779f6f2bjyp69m42blimacl1l9f6hmcv5h"; + }; + description = "Port of Mednafen's SuperGrafx core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-wswan = (mkLibRetroCore rec { + core = "mednafen-wswan"; + src = fetchRetro { + repo = "beetle-wswan-libretro"; + rev = "925cb8c77af1678ceab24f04c2790cb95389def1"; + sha256 = "0kqsqn655z6nnr2s1xdbf37ds99gyhqfd7dx0wmx3sy1fshjg5wm"; + }; + description = "Port of Mednafen's WonderSwan core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + beetle-vb = (mkLibRetroCore rec { + core = "mednafen-vb"; + src = fetchRetro { + repo = "beetle-vb-libretro"; + rev = "9066cdafa29ac054243a679baded49212661f47b"; + sha256 = "0gsniz5kk4xdiprcfyqjcss2vkrphi48wbr29gqvpf7l8gpnwx8p"; + }; + description = "Port of Mednafen's VirtualBoy core to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + bluemsx = (mkLibRetroCore rec { + core = "bluemsx"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "ddd89ff1fa534816e48521bd930b721f2d39975a"; + sha256 = "0hiqhc1ckj3ydy0q1v8hwjkkyh2564f7wlqypmshjcc47n296xyf"; + }; + description = "Port of BlueMSX to libretro"; + license = gpl2; + }).override { + buildPhase = "make"; }; bsnes-mercury = let bname = "bsnes-mercury"; in (mkLibRetroCore { core = bname + "-accuracy"; src = fetchRetro { repo = bname; - rev = "e89c9a2e0a12d588366ee4f5c76b7d75139d938b"; - sha256 = "0vkn1f38vwazpp3kbvvv8c467ghak6yfx00s48wkxwvhmak74a3s"; + rev = "4a382621da58ae6da850f1bb003ace8b5f67968c"; + sha256 = "0z8psz24nx8497vpk2wya9vs451rzzw915lkw3qiq9bzlzg9r2wv"; }; description = "Fork of bsnes with HLE DSP emulation restored"; license = gpl3; }).override { + makefile = "Makefile"; buildPhase = "make && cd out"; }; @@ -128,55 +271,88 @@ in with stdenv.lib.licenses; core = "desmume"; src = fetchRetro { repo = core; - rev = "ce1f93abb4c3aa55099f56298e5438a03a3c2bbd"; - sha256 = "064gzfbr7yizmvi91ry5y6bzikj633kdqhvzycb9f1g6kspf8yyl"; + rev = "e8cf461f83eebb195f09e70090f57b07d1bcdd9f"; + sha256 = "0rc8s5226wn39jqs5yxi30jc1snc0p106sfym7kgi98hy5na8yab"; }; description = "libretro wrapper for desmume NDS emulator"; license = gpl2; + extraBuildInputs = [ libpcap libGLU_combined xorg.libX11 ]; }).override { + makefile = "desmume/src/frontend/libretro/Makefile.libretro"; + configurePhase = "cd desmume/src/frontend/libretro"; + buildPhase = "make"; + }; + + desmume2015 = (mkLibRetroCore rec { + core = "desmume2015"; + src = fetchRetro { + repo = core; + rev = "c27bb71aa28250f6da1576e069b4b8cc61986beb"; + sha256 = "1m7g1wwpnnprmki3rixknggjmxbp7d4hwxgkqr041shmrm0rhafd"; + }; + description = "libretro wrapper for desmume NDS emulator from 2015"; + license = gpl2; + extraBuildInputs = [ libpcap libGLU_combined xorg.libX11 ]; + }).override { + makefile = "desmume/Makefile.libretro"; configurePhase = "cd desmume"; + buildPhase = "make"; }; dolphin = (mkLibRetroCore { core = "dolphin"; src = fetchRetro { repo = "dolphin"; - rev = "a6ad451fdd4ac8753fd1a8e2234ec34674677754"; - sha256 = "1cshlfmhph8dl3vgvn37imvp2b7xs2cx1r1ifp5js5psvhycrbz3"; + rev = "11a7ed402c7178da1d9d57c6e5e5a05a4dc6a2c8"; + sha256 = "11jrcczkbyns01rvxb5rd22fbkbfn2h81f6pfxbhi13fl4ljim9x"; }; description = "Port of Dolphin to libretro"; license = gpl2Plus; broken = true; extraBuildInputs = [ - cmake curl libGLU_combined pcre pkgconfig sfml miniupnpc - gettext glib gtk2 hidapi + cmake curl libGLU_combined pcre pkgconfig sfml + gettext hidapi libevdev udev - ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXinerama libXxf86vm ]); + ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXext libXrandr libXinerama libXxf86vm ]); }).override { cmakeFlags = [ - "-DLINUX_LOCAL_DEV=true" - "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include" - "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include" - "-DGTK2_INCLUDE_DIRS=${gtk2.dev}/include/gtk-2.0" + "-DCMAKE_BUILD_TYPE=Release" + "-DLIBRETRO=ON" + "-DLIBRETRO_STATIC=1" + "-DENABLE_QT=OFF" + "-DENABLE_LTO=OFF" + "-DUSE_UPNP=OFF" + "-DUSE_DISCORD_PRESENCE=OFF" ]; dontUseCmakeBuildDir = "yes"; - buildPhase = '' - cd Source/Core/DolphinLibretro - make - ''; + buildPhase = "make"; + }; + + dosbox = (mkLibRetroCore rec { + core = "dosbox"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "e4ed503b14ed59d5d745396ef1cc7d52cf912328"; + sha256 = "13bx0ln9hwn6hy4sv0ivqmjgjbfq8svx15dsa24hwd8lkf0kakl4"; + }; + description = "Port of DOSBox to libretro"; + license = gpl2; + }).override { + buildPhase = "make"; }; fba = (mkLibRetroCore rec { core = "fba"; src = fetchRetro { repo = core + "-libretro"; - rev = "9146c18ac989c619256d1cb8954d49e728e44ea3"; - sha256 = "159dww8mxi95xz4ypw38vsn1g4k6z8sv415qqf0qriydwhw6mh2m"; + rev = "89245384c7d181e286d6f34995253419f946becb"; + sha256 = "1pg351qhbq5x8qmaq6c30v8ynic8jv3gbxy2kq5iknka80g1lkck"; }; description = "Port of Final Burn Alpha to libretro"; license = "Non-commercial"; }).override { + makefile = "svn-current/trunk/makefile.libretro"; buildPhase = '' cd svn-current/trunk \ && make -f makefile.libretro \ @@ -188,19 +364,34 @@ in with stdenv.lib.licenses; core = "fceumm"; src = fetchRetro { repo = "libretro-" + core; - rev = "45f773a1c221121746bbe2680e3aaaf92776a87e"; - sha256 = "0jnwh1338q710x47bzrx319g5xbq9ipv35kyjlbkrzhqjq1blz0b"; + rev = "0e315e0ca0093ebda06a97835cec6ad4af81db7a"; + sha256 = "12bvvxmvafjvrvwxl5gzr583g48s0isx2fgvjgkrx175vk2amaf4"; }; description = "FCEUmm libretro port"; license = gpl2; }; + flycast = (mkLibRetroCore rec { + core = "flycast"; + src = fetchRetro { + repo = core; + rev = "45a15205dfc05cfc4df2488cad7c2b4988c5aa0f"; + sha256 = "18glxd57kddq6p2bwq0qknyq6bv8dxklqks4w2jy2yccvwxdxy2i"; + }; + description = "Flycast libretro port"; + license = gpl2; + extraBuildInputs = [ libGLU_combined ]; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + gambatte = mkLibRetroCore rec { core = "gambatte"; src = fetchRetro { repo = core + "-libretro"; - rev = "db7af6cf6ea39fd5e39eea137ff752649599a4e4"; - sha256 = "0h7hyj630nk1s32wx02y4q9x2lp6wbnh6nkc9ihf4pygcsignmwr"; + rev = "4d9ad7b29946ec0a914b2d6a735b6c2704ed1f23"; + sha256 = "156pvvlch5izbgbw4ddxhiwgzpp52irr3nqaz813i5f02fiq5wya"; }; description = "Gambatte libretro port"; license = gpl2; @@ -210,13 +401,56 @@ in with stdenv.lib.licenses; core = "genesis-plus-gx"; src = fetchRetro { repo = "Genesis-Plus-GX"; - rev = "365a28c7349b691e6aaa3ad59b055261c42bd130"; - sha256 = "0s11ddpnb44q4xjkl7dylldhi9y5zqywqavpk0bbwyj84r1cbz3c"; + rev = "0e4357bd64533d7fd93b5f01620b92595025fab5"; + sha256 = "1nryy00844h3ra97j40g38lj7036ibm2l8002qid7r5r9kggclqx"; }; description = "Enhanced Genesis Plus libretro port"; license = "Non-commercial"; }; + gpsp = (mkLibRetroCore rec { + core = "gpsp"; + src = fetchRetro { + repo = core; + rev = "24af89596e6484ff5a7a08efecfa8288cfbc02f3"; + sha256 = "1jc5i70cab5f23yc9sfv8iyvmwmc4sb33f413il2vlhsfdxklyk7"; + }; + description = "Port of gpSP to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + handy = (mkLibRetroCore rec { + core = "handy"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "6b19a4fad1b394f6a1351c88f60991d4878ff05b"; + sha256 = "0lhkrwh3rirdidxb8kfcg8wk9gjsc7g6qpkv74h6f09rb4y75w1y"; + }; + description = "Port of Handy to libretro"; + license = "Handy-License"; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + hatari = (mkLibRetroCore rec { + core = "hatari"; + src = fetchRetro { + repo = core; + rev = "ec1b59c4b6c7ca7d0d23d60cfe2cb61911b11173"; + sha256 = "1pm821s2cz93xr7qx7dv0imr44bi4pvdvlnjl486p83vff9yawfg"; + }; + description = "Port of Hatari to libretro"; + license = gpl2; + extraBuildInputs = [ cmake SDL ]; + }).override { + makefile = "Makefile.libretro"; + buildPhase = "make"; + }; + higan-sfc = (mkLibRetroCore { core = "higan-sfc"; src = fetchFromGitLab { @@ -227,6 +461,8 @@ in with stdenv.lib.licenses; }; description = "Accurate SNES / Super Famicom emulator"; license = gpl3; + broken = true; + }).override { makefile = "GNUmakefile"; buildPhase = "cd higan && make compiler=g++ target=libretro binary=library && cd out"; @@ -236,8 +472,8 @@ in with stdenv.lib.licenses; core = "mame"; src = fetchRetro { repo = "mame"; - rev = "9f9e6b6c9bde4d50c72e9a5c80496a1fec6b8aa9"; - sha256 = "0lfj8bjchkcvyb5x0x29cg10fkfklxndk80947k4qfysclijxpkv"; + rev = "f4aac49f3d56fbd653628ac456c23ac9a6b857ae"; + sha256 = "1pjpnwdj73319hgcjhganzrcz2zn4fnjydah989haqh3id5j3zam"; }; description = "Port of MAME to libretro"; license = gpl2Plus; @@ -249,68 +485,205 @@ in with stdenv.lib.licenses; # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src ''; + buildPhase = "make -f Makefile.libretro"; + }; + + mame2000 = (mkLibRetroCore rec { + core = "mame2000"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "0a8a174f5e755cdd476895207003c5d07cfa6af2"; + sha256 = "03k0cfgd4wfl31dv5xb6xjd4h7sh0k0qw6wbspwi0lgswmhz97bb"; + }; + description = "Port of MAME ~2000 to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2003 = (mkLibRetroCore rec { + core = "mame2003"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "170d5b6490953d40edc39defe69945d005f8ec03"; + sha256 = "0slsf59sn5lijr1mrx5ffc9z81ra1wcw7810mb52djqyvm15r9zl"; + }; + description = "Port of MAME ~2003 to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2003-plus = (mkLibRetroCore rec { + core = "mame2003-plus"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "d9a56a3af908ae9100b4c9feebff4b918363f241"; + sha256 = "1c16chfs4b2j1x1bmrklh8ssqki850k787qwq7b95dyxksj2bpx1"; + }; + description = "Port of MAME ~2003+ to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2010 = (mkLibRetroCore rec { + core = "mame2010"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "4ced2c31f1100eefc7f4483b474b8a680a3b3f2b"; + sha256 = "1a8ijj0sixr6xrqfgimna0ipfj2bb2kvj4mb45hb8a18mwn6y0mc"; + }; + description = "Port of MAME ~2010 to libretro"; + license = gpl2Plus; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2015 = (mkLibRetroCore rec { + core = "mame2015"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "e3a28398f54cd6b2c24b7165d215b046b79c10f5"; + sha256 = "1fgwi37zgp2s92bkz03gch3ivgyjgdi3xycrd8z7x87gi20a79x9"; + }; + description = "Port of MAME ~2015 to libretro"; + license = gpl2Plus; + extraBuildInputs = [ python27 alsaLib ]; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + mame2016 = (mkLibRetroCore rec { + core = "mame2016"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "ea4c1ffa75eb3fb0096158b71706b8b84d86d12c"; + sha256 = "1qyvdymmjv5q0k3najgfdxzf1yr6bnysnsl19v753yj29xs4hwzp"; + }; + description = "Port of MAME ~2016 to libretro"; + license = gpl2Plus; + extraBuildInputs = [ python27 alsaLib ]; + }).override { + postPatch = '' + # Prevent the failure during the parallel building of: + # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o + mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src + ''; + buildPhase = "make -f Makefile.libretro"; + }; + + mesen = (mkLibRetroCore rec { + core = "mesen"; + src = fetchFromGitHub { + owner = "SourMesen"; + repo = core; + rev = "942633dd3dbb73cc3abd748f6d5440c78abbea09"; + sha256 = "0a95wd64vnblksacapxwxla9j2iw8a5hbdm111cldrni12q87iq2"; + }; + description = "Port of Mesen to libretro"; + license = gpl3; + }).override { + makefile = "Libretro/Makefile"; + buildPhase = "cd Libretro && make"; }; mgba = mkLibRetroCore rec { core = "mgba"; src = fetchRetro { repo = core; - rev = "fdaaaee661e59f28c94c7cfa4e82e70b71e24a9d"; - sha256 = "1b30sa861r4bhbqkx6vkklh4iy625bpzki2ks4ivvjns1ijczvc7"; + rev = "4865aaabc2a46c635f218f7b51f8fc5cc2c4c8ac"; + sha256 = "1mdzwcsl5bafmgqfh0a1bgfgilisffxsygcby0igsq2bgkal47mm"; }; description = "Port of mGBA to libretro"; license = mpl20; }; mupen64plus = (mkLibRetroCore rec { - core = "mupen64plus"; + core = "mupen64plus-next"; src = fetchRetro { - repo = core + "-libretro"; - rev = "407bcd40b3a42bff6b856a6d6f88a7d5d670bf9e"; - sha256 = "0q5kvjz7rpk7mp75cdywqjgmy10c0h7ky26hh1x90d39y94idcd8"; + repo = "mupen64plus-libretro-nx"; # + "-libretro-nx"; + rev = "f77c16f9f1dd911fd2254becc8a28adcdafe8aa1"; + sha256 = "0j6vrkwch9lwmlhyz7fp1ha0bby54gvbwk91hwbv35f6dvs0aw0d"; }; description = "Libretro port of Mupen64 Plus, GL only"; license = gpl2; - extraBuildInputs = [ libGLU_combined libpng ]; + extraBuildInputs = [ libGLU_combined libpng nasm xorg.libX11 ]; }).override { - buildPhase = "make WITH_DYNAREC=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64" else "x86"}"; + makefile = "Makefile"; + buildPhase = "make"; }; nestopia = (mkLibRetroCore rec { core = "nestopia"; src = fetchRetro { repo = core; - rev = "ecfa170a582e5b8ec11225ca645843fa064955ca"; - sha256 = "17ac7dhasch6f4lpill8c5scsvaix0jvbf1cp797qbll4hk84f2q"; + rev = "7f48c211c281880d122981da119a4455a9bebbde"; + sha256 = "05p3a559633dzw222rs1fh48v657mdyirl1qfqzkhqiar9rxf31g"; }; description = "nestopia undead libretro port"; license = gpl2; }).override { + makefile = "libretro/Makefile"; buildPhase = "cd libretro && make"; }; - + + o2em = (mkLibRetroCore rec { + core = "o2em"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "d6731b9b2592654ce4f1b64c1b1da17b32e7c94c"; + sha256 = "0809qw16y7ablxfayf0lbzvq7wqdmjp0afdb0vcgv193vvhhp58q"; + }; + description = "Port of O2EM to libretro"; + license = artistic1; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + parallel-n64 = (mkLibRetroCore rec { core = "parallel-n64"; src = fetchRetro { repo = core; - rev = "3276db27547bf7ca85896427f0b82d4658694d88"; - sha256 = "19396v50azrb52ifjk298zgcbxn8dvfvp6zwrnzsk6mp8ff7qcqw"; + rev = "30f4fd3c2456145763eb76aead7485a1b86ba6bd"; + sha256 = "0kbyzmscmfi6f842clzaff4k6xcb5410fwhv8n6vv42xk6ljfvgh"; }; description = "Parallel Mupen64plus rewrite for libretro."; license = gpl2; extraBuildInputs = [ libGLU_combined libpng ]; }).override { - buildPhase = "make WITH_DYNAREC=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64" else "x86"}"; + makefile = "Makefile"; + buildPhase = "make"; }; + pcsx_rearmed = (mkLibRetroCore rec { + core = "pcsx_rearmed"; + src = fetchRetro { + repo = core; + rev = "eb6943ee04b0f30a6f1cebfe399a94bacd1dfb45"; + sha256 = "0xikdirvjal4mdr5y9dl9gcxhdilqzq43f909b0z8vc069vj1wjz"; + }; + description = "Port of PCSX ReARMed to libretro"; + license = gpl2; + }).override { + configurePhase = "rm configure"; + buildPhase = "make -f Makefile.libretro"; + }; + picodrive = (mkLibRetroCore rec { core = "picodrive"; src = fetchRetro { repo = core; - rev = "cbc93b68dca1d72882d07b54bbe1ef25b980558a"; - sha256 = "0fl9r6jj2x9231md5zc4scra79j5hfn1n2z67scff1375xg1k64h"; + rev = "28dcfd6f43434e6828ee647223a0576bfe858c24"; + sha256 = "19a1b6q8fhf7wxzyf690va1ixzlxlzyslv1zxm0ll5pfsqf2y3gx"; }; description = "Fast MegaDrive/MegaCD/32X emulator"; license = "MAME"; @@ -321,18 +694,38 @@ in with stdenv.lib.licenses; configurePhase = "./configure"; }; + play = (mkLibRetroCore rec { + core = "play"; + src = fetchRetro { + repo = "play-"; + rev = "fedc1e1c2918a7490a881cdb4ec951a828c19671"; + sha256 = "0hwxx7h61gd29a2gagwjbvxk2hgwdk1wxg4nx90zrizb8nczwnl6"; + }; + description = "Port of Play! to libretro"; + license = bsd2; + extraBuildInputs = [ cmake boost ]; + }).override { + cmakeFlags = [ "-DBUILD_PLAY=OFF -DBUILD_LIBRETRO_CORE=ON" ]; + buildPhase = "make"; + }; + ppsspp = (mkLibRetroCore rec { core = "ppsspp"; - src = fetchRetro { - repo = "libretro-" + core; - rev = "5f7bcf7bfc15f83d405bcecd7a163a55ad1e7573"; - sha256 = "06k1gzmypz61dslynrw4b5i161rhj43y6wnr2nhbzvwcv5bw8w8r"; + src = fetchgit { + url = "https://github.com/hrydgard/ppsspp"; + rev = "bf1777f7d3702e6a0f71c7ec1fc51976e23c2327"; + sha256 = "17sym0vk72lzbh9a1501mhw98c78x1gq7k1fpy69nvvb119j37wa"; }; description = "ppsspp libretro port"; license = gpl2; - extraBuildInputs = [ libGLU_combined ffmpeg ]; + extraBuildInputs = [ cmake libGLU_combined ffmpeg python37 xorg.libX11 ]; }).override { - buildPhase = "cd libretro && make"; + cmakeFlags = "-DLIBRETRO=ON"; + makefile = "Makefile"; + buildPhase = '' + make \ + && mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} + ''; }; prboom = (mkLibRetroCore rec { @@ -348,30 +741,31 @@ in with stdenv.lib.licenses; buildPhase = "make"; }; - quicknes = (mkLibRetroCore { + prosystem = (mkLibRetroCore rec { + core = "prosystem"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "cb4aa3ee72f98b0891a7bac5c9dac458cdba4d34"; + sha256 = "0yvzmks9zz1hf7mv6cd2qin1p3yx00dbrcxlm0yysy5q5jiigblg"; + }; + description = "Port of ProSystem to libretro"; + license = gpl2; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + quicknes = (mkLibRetroCore rec { core = "quicknes"; src = fetchRetro { repo = "QuickNES_Core"; - rev = "8613b48cee97f1472145bbafa76e543854b2bbd5"; - sha256 = "18lizdb9zjlfhh8ibvmcscldlf3mw4aj8nds3pah68cd2lw170w1"; + rev = "cd302d998d102c9461a924b81817e48b9ea1518f"; + sha256 = "1sczs1jqcbhpkb5xpcqqdcnxlz7bqmanm4gdnnc12c19snl7999b"; }; description = "QuickNES libretro port"; license = lgpl21Plus; }).override { - buildPhase = "make"; - }; - - reicast = (mkLibRetroCore rec { - core = "reicast"; - src = fetchRetro { - repo = core + "-emulator"; - rev = "40d4e8af2dd67a3f317c14224873c8ec0e1f9d11"; - sha256 = "0d8wzpv7pcyh437gmvi439vim26wyrjmi5hj97wvyvggywjwrx8m"; - }; - description = "Reicast libretro port"; - license = gpl2; - extraBuildInputs = [ libGLU_combined ]; - }).override { + makefile = "Makefile"; buildPhase = "make"; }; @@ -379,13 +773,14 @@ in with stdenv.lib.licenses; core = "scummvm"; src = fetchRetro { repo = core; - rev = "de8d7e58caa23f071ce9d1bc5133f45d16c3ff1c"; - sha256 = "097i2dq3hw14hicsplrs36j1qa3r45vhzny5v4aw6qw4aj34hksy"; + rev = "e07a6ede61c364fb87630fa7507a4f8482d882e0"; + sha256 = "0i88z53q28lwzmadxincab4m66qbzcbmasgildybj8db0z2z8jm0"; }; description = "Libretro port of ScummVM"; license = gpl2; extraBuildInputs = [ fluidsynth libjpeg libvorbis libGLU_combined SDL ]; }).override { + makefile = "backends/platform/libretro/build/Makefile"; buildPhase = "cd backends/platform/libretro/build && make"; }; @@ -393,50 +788,85 @@ in with stdenv.lib.licenses; core = "snes9x"; src = fetchRetro { repo = core; - rev = "db4bfaba3b0d5a067fe9aea323503656837a8d9a"; - sha256 = "02f04ss45km32lp68diyfkix1gryx89qy8cc80189ipwnx80pgip"; + rev = "29b78df8c9f0f48ed4605d08a187a134b3b316d6"; + sha256 = "004h1pkxvbn4zlh8bqs6z17k04jw5wzbwklpgvmb7hbxshsi4qid"; }; description = "Port of SNES9x git to libretro"; license = "Non-commercial"; }).override { + makefile = "libretro/Makefile"; buildPhase = "cd libretro && make"; }; - snes9x-next = (mkLibRetroCore rec { - core = "snes9x-next"; + snes9x2002 = (mkLibRetroCore rec { + core = "snes9x2002"; src = fetchRetro { repo = core; - rev = "b2a69de0df1eb39ed362806f9c9633f4544272af"; - sha256 = "1vhgsrg9l562nincfvpj2h2dqkkblg1qmh0v47jqlqgmgl2b1zij"; + rev = "354bcb5acea0aa45b56ae553e0b2b4f10792dfeb"; + sha256 = "05gvjjxy6ci5pax3frd9g8k9mkqskab5g6rvfjab7cc4zrxrg23f"; + }; + description = "Optimized port/rewrite of SNES9x 1.39 to Libretro"; + license = "Non-commercial"; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + snes9x2005 = (mkLibRetroCore rec { + core = "snes9x2005"; + src = fetchRetro { + repo = core; + rev = "e5cadd2f21fb64e8c7194ad006b39e6f555c4a5b"; + sha256 = "1q0xrw3f8zm2k19sva8cz28yx815w8a6y1xsl0i6bb3cai3q1hyx"; + }; + description = "Optimized port/rewrite of SNES9x 1.43 to Libretro"; + license = "Non-commercial"; + }).override { + makefile = "Makefile"; + buildPhase = '' + make USE_BLARGG_APU=1 \ + && mv snes9x2005_plus_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x2005_libretro${stdenv.hostPlatform.extensions.sharedLibrary} + ''; + }; + + snes9x2010 = (mkLibRetroCore rec { + core = "snes9x2010"; + src = fetchRetro { + repo = core; + rev = "e945cbae0f8c472e1567a319817c9228b775dd71"; + sha256 = "1pj5p4a2hy7hk90bzy4vnkz3b6nc8n1niqibgwhyfsc22xlxqsfr"; }; description = "Optimized port/rewrite of SNES9x 1.52+ to Libretro"; license = "Non-commercial"; }).override { buildPhase = '' make -f Makefile.libretro - mv snes9x2010_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x_next_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ''; }; stella = (mkLibRetroCore rec { core = "stella"; src = fetchRetro { - repo = core + "-libretro"; - rev = "bbe65db0e344dcb38905586bd853076b65963e5a"; - sha256 = "18r1yyfzvjq2hq04d94y37kzsq6aywh1aim69a3imk8kh46gwrh0"; + repo = core + "2014-libretro"; + rev = "6d74ad9a0fd779145108cf1213229798d409ed37"; + sha256 = "0b1nsk92rr64xxj8jc9vpjqgrmm3554096zl031ymr94j5cc87q9"; }; description = "Port of Stella to libretro"; license = gpl2; }).override { - buildPhase = "make"; + makefile = "Makefile"; + buildPhase = '' + make \ + && mv stella2014_libretro${stdenv.hostPlatform.extensions.sharedLibrary} stella_libretro${stdenv.hostPlatform.extensions.sharedLibrary} + ''; }; vba-next = mkLibRetroCore rec { core = "vba-next"; src = fetchRetro { repo = core; - rev = "e7734756d228ea604f8fa872cea1bba987780791"; - sha256 = "03s4rh7dbbhbfc4pfdvr9jcbxrp4ijg8yp49s1xhr7sxsblj2vpv"; + rev = "3580ae6acb1a90c4e982e57597458da07eca4f41"; + sha256 = "0fz8z04kf9g1i5x5slyvx5kb07garzxvhcqnwmqn5j574xh1lc6d"; }; description = "VBA-M libretro port with modifications for speed"; license = gpl2; @@ -446,13 +876,55 @@ in with stdenv.lib.licenses; core = "vbam"; src = fetchRetro { repo = core + "-libretro"; - rev = "1b82fc2d761f027567632692f787482d1e287ec2"; - sha256 = "043djmqvh2grc25hwjw4b5kfx57b89ryp6fcl8v632sm35l3dd6z"; + rev = "9ccdeac3aa9db00720bb80eff5c9924362144efa"; + sha256 = "0rq89i9f483j93shhp2p3vqsnb2abpwz6wdnsycfwxgblczmi22y"; }; description = "vanilla VBA-M libretro port"; license = gpl2; }).override { + makefile = "src/libretro/Makefile"; buildPhase = "cd src/libretro && make"; }; + vecx = (mkLibRetroCore rec { + core = "vecx"; + src = fetchRetro { + repo = "libretro-" + core; + rev = "26585ee701499550e484c11f005db18e926827d9"; + sha256 = "0vz2aksc8mqnw55f2bvvawj21mxf60fp93r0sr55hdccn9h7355k"; + }; + description = "Port of Vecx to libretro"; + license = gpl3; + }).override { + buildPhase = "make"; + }; + + virtualjaguar = (mkLibRetroCore rec { + core = "virtualjaguar"; + src = fetchRetro { + repo = core + "-libretro"; + rev = "7bdd8658880b53bf2bcbae0741323fe18f9041f5"; + sha256 = "0zbrsfhvx293ijazy1w19qha19hprsi0zv8295sa0gq8kyh0xhyw"; + }; + description = "Port of VirtualJaguar to libretro"; + license = gpl3; + }).override { + makefile = "Makefile"; + buildPhase = "make"; + }; + + yabause = (mkLibRetroCore rec { + core = "yabause"; + src = fetchRetro { + repo = core; + rev = "08d09cb88a69ee4c2986693fb813e0eb58d71481"; + sha256 = "0z55yam1l7m21kbjwn44sp4md9g7p95b27vcxr7i0v08gnkwwvv1"; + }; + description = "Port of Yabause to libretro"; + license = gpl2; + }).override { + makefile = "yabause/src/libretro/Makefile"; + buildPhase = "cd yabause/src/libretro && make"; + }; + } diff --git a/pkgs/misc/vscode-extensions/cpptools/default.nix b/pkgs/misc/vscode-extensions/cpptools/default.nix index 70d08aa18a0..08fee83d8ce 100644 --- a/pkgs/misc/vscode-extensions/cpptools/default.nix +++ b/pkgs/misc/vscode-extensions/cpptools/default.nix @@ -83,8 +83,8 @@ vscode-utils.buildVscodeMarketplaceExtension { mktplcRef = { name = "cpptools"; publisher = "ms-vscode"; - version = "0.26.0"; - sha256 = "1njclj07amj9n187k3rbjvddkhmsc4aljdbsgjxpj58fv7zdy7kq"; + version = "0.26.1"; + sha256 = "09khm0byxa9mv8qbqrikd7akz3p816ra5z8l86xqkmbm6j1k4wpc"; }; buildInputs = [ diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix index f724fd33939..2d51c11f04a 100644 --- a/pkgs/os-specific/bsd/netbsd/default.nix +++ b/pkgs/os-specific/bsd/netbsd/default.nix @@ -127,6 +127,11 @@ let nativeBuildInputs = [ makeMinimal ]; buildInputs = [ zlib ]; + # the build system re-runs `./configure` with `HOST_CC` (which is their + # name for Build CC) as a compiler to make `defs.mk`, which is installed + depsBuildBuild = [ buildPackages.stdenv.cc ] ++ buildInputs; + HOST_CC = "${buildPackages.stdenv.cc.targetPrefix}cc"; + # temporarily use gnuinstall for bootstrapping # bsdinstall will be built later makeFlags = [ @@ -218,9 +223,9 @@ let ]; skipIncludesPhase = true; buildPhase = '' - cc -c -Iinclude -Ilib/libc/include lib/libc/gen/fts.c \ + "$CC" -c -Iinclude -Ilib/libc/include lib/libc/gen/fts.c \ -o lib/libc/gen/fts.o - ar -rsc libfts.a lib/libc/gen/fts.o + "$AR" -rsc libfts.a lib/libc/gen/fts.o ''; installPhase = '' runHook preInstall diff --git a/pkgs/os-specific/linux/android-udev-rules/default.nix b/pkgs/os-specific/linux/android-udev-rules/default.nix index aed0ed374a7..2aa71b92beb 100644 --- a/pkgs/os-specific/linux/android-udev-rules/default.nix +++ b/pkgs/os-specific/linux/android-udev-rules/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "android-udev-rules"; - version = "20190315"; + version = "20191103"; src = fetchFromGitHub { owner = "M0Rf30"; repo = "android-udev-rules"; rev = version; - sha256 = "1w8zkww3cj6yzcsfzwvj1gkf4dfflhp1vd9fixnmlbm43kwkqrdr"; + sha256 = "0x2f2sv0x0ry7kccp47s0hlxps3hbpg37dj3xjjgpdm5hmn2cjq3"; }; installPhase = '' diff --git a/pkgs/os-specific/linux/brillo/default.nix b/pkgs/os-specific/linux/brillo/default.nix new file mode 100644 index 00000000000..3ad4acf127b --- /dev/null +++ b/pkgs/os-specific/linux/brillo/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitLab , go-md2man, coreutils, substituteAll }: + +stdenv.mkDerivation rec { + pname = "brillo"; + version = "1.4.8"; + + src = fetchFromGitLab { + owner= "cameronnemo"; + repo= "brillo"; + rev= "v${version}"; + sha256 = "0wxvg541caiwm3bjwbmk7xcng7jd9xsiga2agxwp7gpkrlp74j9f"; + }; + + patches = [ + (substituteAll { + src = ./udev-rule.patch; + inherit coreutils; + }) + ]; + + nativeBuildInputs = [ go-md2man ]; + + makeFlags = [ "PREFIX=$(out)" "AADIR=$(out)/etc/apparmor.d" ]; + + installTargets = "install-dist"; + + meta = with stdenv.lib; { + description = "Backlight and Keyboard LED control tool"; + homepage = https://gitlab.com/cameronnemo/brillo; + license = [ licenses.gpl3 licenses.bsd0 ]; + platforms = platforms.linux; + maintainers = [ maintainers.alexarice ]; + }; +} diff --git a/pkgs/os-specific/linux/brillo/udev-rule.patch b/pkgs/os-specific/linux/brillo/udev-rule.patch new file mode 100644 index 00000000000..7b1cf484067 --- /dev/null +++ b/pkgs/os-specific/linux/brillo/udev-rule.patch @@ -0,0 +1,13 @@ +diff --git a/contrib/udev.in b/contrib/udev.in +index 0625952..a6c940e 100644 +--- a/contrib/udev.in ++++ b/contrib/udev.in +@@ -1,4 +1,4 @@ +-ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp @group@ /sys/class/backlight/%k/brightness" +-ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness" +-ACTION=="add", SUBSYSTEM=="leds", RUN+="/bin/chgrp @group@ /sys/class/leds/%k/brightness" +-ACTION=="add", SUBSYSTEM=="leds", RUN+="/bin/chmod g+w /sys/class/leds/%k/brightness" ++ACTION=="add", SUBSYSTEM=="backlight", RUN+="@coreutils@/bin/chgrp @group@ /sys/class/backlight/%k/brightness" ++ACTION=="add", SUBSYSTEM=="backlight", RUN+="@coreutils@/bin/chmod g+w /sys/class/backlight/%k/brightness" ++ACTION=="add", SUBSYSTEM=="leds", RUN+="@coreutils@/bin/chgrp @group@ /sys/class/leds/%k/brightness" ++ACTION=="add", SUBSYSTEM=="leds", RUN+="@coreutils@/bin/chmod g+w /sys/class/leds/%k/brightness" diff --git a/pkgs/os-specific/linux/digimend/default.nix b/pkgs/os-specific/linux/digimend/default.nix new file mode 100644 index 00000000000..40f801881fc --- /dev/null +++ b/pkgs/os-specific/linux/digimend/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, kernel }: + +assert stdenv.lib.versionAtLeast kernel.version "3.5"; + +stdenv.mkDerivation rec { + pname = "digimend"; + version = "unstable-2019-06-18"; + + src = fetchFromGitHub { + owner = "digimend"; + repo = "digimend-kernel-drivers"; + rev = "8b228a755e44106c11f9baaadb30ce668eede5d4"; + sha256 = "1l54j85540386a8aypqka7p5hy1b63cwmpsscv9rmmf10f78v8mm"; + }; + + INSTALL_MOD_PATH = "\${out}"; + + postPatch = '' + sed 's/udevadm /true /' -i Makefile + sed 's/depmod /true /' -i Makefile + ''; + + nativeBuildInputs = kernel.moduleBuildDependencies; + + postInstall = '' + # Remove module reload hack. + # The hid-rebind unloads and then reloads the hid-* module to ensure that + # the extra/ module is loaded. + rm -r $out/lib/udev + ''; + + makeFlags = [ + "KVERSION=${kernel.modDirVersion}" + "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "DESTDIR=${placeholder "out"}" + ]; + + meta = with stdenv.lib; { + description = "DIGImend graphics tablet drivers for the Linux kernel"; + homepage = "https://digimend.github.io/"; + license = licenses.gpl2; + maintainers = with maintainers; [ gebner ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/os-specific/linux/evdi/default.nix b/pkgs/os-specific/linux/evdi/default.nix index 2508fb851a8..72f3b1fbd9c 100644 --- a/pkgs/os-specific/linux/evdi/default.nix +++ b/pkgs/os-specific/linux/evdi/default.nix @@ -2,20 +2,23 @@ stdenv.mkDerivation rec { pname = "evdi"; - version = "1.6.2"; + version = "1.6.3"; src = fetchFromGitHub { owner = "DisplayLink"; repo = pname; rev = "v${version}"; - sha256 = "0ajjsh1fw7w0k28r6qq7kh3qcr87gzzjp8s890algbglynlafzfw"; + sha256 = "1gp8xbhd5pmcl95izhpvw9gxfcsbv5f80s6q39l4y3z9j734rb8j"; }; nativeBuildInputs = kernel.moduleBuildDependencies; buildInputs = [ kernel libdrm ]; - makeFlags = [ "KVER=${kernel.modDirVersion}" "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ]; + makeFlags = [ + "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "KVER=${kernel.modDirVersion}" + ]; hardeningDisable = [ "format" "pic" "fortify" ]; @@ -26,9 +29,9 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Extensible Virtual Display Interface"; - platforms = platforms.linux; + homepage = "https://www.displaylink.com/"; license = with licenses; [ lgpl21 gpl2 ]; - homepage = https://www.displaylink.com/; - broken = versionOlder kernel.version "4.9" || versionAtLeast kernel.version "5.3" || stdenv.isAarch64; + platforms = platforms.linux; + broken = versionOlder kernel.version "4.9" || stdenv.isAarch64; }; } diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix index 4a1fe56c5e1..edee6a52ba2 100644 --- a/pkgs/os-specific/linux/fuse/default.nix +++ b/pkgs/os-specific/linux/fuse/default.nix @@ -11,7 +11,7 @@ in { }; fuse_3 = mkFuse { - version = "3.7.0"; - sha256Hash = "0l22gv5h84j5m7khs7l82jw834i8wf7hcgagpsn9y02x7ymmiha2"; + version = "3.8.0"; + sha256Hash = "0zbj5l2pffs0q38lqfrnkafsgxf50mw5mqmh4m2jmqab1fxg5mip"; }; } diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix index 9c91c91eeb4..8096684b137 100644 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ b/pkgs/os-specific/linux/kernel/linux-testing.nix @@ -3,7 +3,7 @@ with stdenv.lib; buildLinux (args // rec { - version = "5.4-rc5"; + version = "5.4-rc6"; extraMeta.branch = "5.4"; # modDirVersion needs to be x.y.z, will always add .0 @@ -11,7 +11,7 @@ buildLinux (args // rec { src = fetchurl { url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - sha256 = "0047f1vq93cq9qa0550dnilci0qxy4ygc6brhcr6xbwqakglwr18"; + sha256 = "0ypazqr6z0n8fwaawxca0i56bwd4g4q2bw5qwayf0f4402m34xdh"; }; # Should the testing kernels ever be built on Hydra? diff --git a/pkgs/os-specific/linux/kmod/aggregator.nix b/pkgs/os-specific/linux/kmod/aggregator.nix index 4da87a557cb..cd138f1d7f5 100644 --- a/pkgs/os-specific/linux/kmod/aggregator.nix +++ b/pkgs/os-specific/linux/kmod/aggregator.nix @@ -29,7 +29,7 @@ buildEnv { # kernel version number, otherwise depmod will use `uname -r'. if test -w $out/lib/modules/$kernelVersion; then rm -f $out/lib/modules/$kernelVersion/modules.!(builtin*|order*) - ${kmod}/bin/depmod -b $out -a $kernelVersion + ${kmod}/bin/depmod -b $out -C $out/etc/depmod.d -a $kernelVersion fi ''; } diff --git a/pkgs/os-specific/linux/lvm2/default.nix b/pkgs/os-specific/linux/lvm2/default.nix index d5b45117732..9c48caaa243 100644 --- a/pkgs/os-specific/linux/lvm2/default.nix +++ b/pkgs/os-specific/linux/lvm2/default.nix @@ -40,7 +40,9 @@ stdenv.mkDerivation { --replace /usr/bin/udevadm ${systemd}/bin/udevadm ''; - enableParallelBuilding = true; + # https://github.com/NixOS/nixpkgs/pull/52597 + # gcc: error: ../../device_mapper/libdevice-mapper.a: No such file or directory + enableParallelBuilding = false; patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [ (fetchpatch { diff --git a/pkgs/servers/amqp/rabbitmq-server/default.nix b/pkgs/servers/amqp/rabbitmq-server/default.nix index 12211f49698..bc83c5a8ea2 100644 --- a/pkgs/servers/amqp/rabbitmq-server/default.nix +++ b/pkgs/servers/amqp/rabbitmq-server/default.nix @@ -6,12 +6,12 @@ stdenv.mkDerivation rec { pname = "rabbitmq-server"; - version = "3.8.0"; + version = "3.8.1"; # when updating, consider bumping elixir version in all-packages.nix src = fetchurl { url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz"; - sha256 = "174ai8ihk50gwbqinxxxx5is6izvgmfca7skvvp4yk6fl8nbwm15"; + sha256 = "17ymzjgz3544jgf321f8f788gdxs9l252ah61nlgsglv0x8gggrh"; }; buildInputs = diff --git a/pkgs/servers/home-assistant/appdaemon.nix b/pkgs/servers/home-assistant/appdaemon.nix index 5d4d88e1cda..47d9e88999a 100644 --- a/pkgs/servers/home-assistant/appdaemon.nix +++ b/pkgs/servers/home-assistant/appdaemon.nix @@ -52,7 +52,7 @@ in python.pkgs.buildPythonApplication rec { propagatedBuildInputs = with python.pkgs; [ daemonize astral requests sseclient websocket_client aiohttp yarl jinja2 - aiohttp-jinja2 pyyaml voluptuous feedparser iso8601 bcrypt paho-mqtt + aiohttp-jinja2 pyyaml voluptuous feedparser iso8601 bcrypt paho-mqtt setuptools ]; # no tests implemented diff --git a/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/pkgs/servers/monitoring/prometheus/postgres-exporter.nix index 54a0dc58e8a..410687d0335 100644 --- a/pkgs/servers/monitoring/prometheus/postgres-exporter.nix +++ b/pkgs/servers/monitoring/prometheus/postgres-exporter.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "postgres_exporter"; - version = "0.6.0"; + version = "0.7.0"; goPackagePath = "github.com/wrouesnel/postgres_exporter"; @@ -10,9 +10,11 @@ buildGoPackage rec { owner = "wrouesnel"; repo = "postgres_exporter"; rev = "v${version}"; - sha256 = "0a903mklp3aardlbz5fkslisav9khd1w3akcf9xkc5nfinr6xnqb"; + sha256 = "0xi61090kmkp1cid3hx00csfa4w8nvaw8ky0w004czwqlyids6jg"; }; + doCheck = true; + meta = with lib; { inherit (src.meta) homepage; description = "A Prometheus exporter for PostgreSQL"; diff --git a/pkgs/servers/nosql/arangodb/default.nix b/pkgs/servers/nosql/arangodb/default.nix index 52e6c787bef..ef75dad9151 100644 --- a/pkgs/servers/nosql/arangodb/default.nix +++ b/pkgs/servers/nosql/arangodb/default.nix @@ -53,7 +53,16 @@ let }; }; in { - arangodb_3_3 = common { version = "3.3.23.1"; sha256 = "0bnbiispids7jcgrgcmanf9jqgvk0vaflrvgalz587jwr2zf21k8"; }; - arangodb_3_4 = common { version = "3.4.7"; sha256 = "1wr2xvi5lnl6f2ryyxdwn4wnfiaz0rrf58ja1k19m7b6w3264iim"; }; - arangodb_3_5 = common { version = "3.5.0-rc.7"; sha256 = "1sdmbmyml9d3ia3706bv5901qqmh4sxk7js5b9hyfjqpcib10d1k"; }; + arangodb_3_3 = common { + version = "3.3.24"; + sha256 = "18175789j4y586qvpcsaqxmw7d6vc3s29qm1fja5c7wzimx6ilyp"; + }; + arangodb_3_4 = common { + version = "3.4.8"; + sha256 = "0vm94lf1i1vvs04vy68bkkv9q43rsaf1y3kfs6s3jcrs3ay0h0jn"; + }; + arangodb_3_5 = common { + version = "3.5.1"; + sha256 = "1jw3j7vaq3xgkxiqg0bafn4b2169jq7f3y0l7mrpnrpijn77rkrv"; + }; } diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix index 59affd09295..7fb7a774e8d 100644 --- a/pkgs/servers/search/groonga/default.nix +++ b/pkgs/servers/search/groonga/default.nix @@ -7,11 +7,11 @@ stdenv.mkDerivation rec { pname = "groonga"; - version = "9.0.8"; + version = "9.0.9"; src = fetchurl { url = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz"; - sha256 = "1fcagm0hzfl9jvn9afzhaahphvq3mc7d7s1s7hhinpv7bsr3xdl5"; + sha256 = "0axf07cg8j5lahkl41li9f7i3c6318cmlb40865iscmkjl17yxh9"; }; buildInputs = with stdenv.lib; diff --git a/pkgs/servers/search/solr/8.x.nix b/pkgs/servers/search/solr/8.x.nix index fd888de60de..7abfe9a2b20 100644 --- a/pkgs/servers/search/solr/8.x.nix +++ b/pkgs/servers/search/solr/8.x.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "solr"; - version = "8.2.0"; + version = "8.3.0"; src = fetchurl { url = "mirror://apache/lucene/${pname}/${version}/${pname}-${version}.tgz"; - sha256 = "0j9lydxlng785h2n1b8avinrkqdpbj5qn4rk897p2pbf4fdv795z"; + sha256 = "11qkipmj8qq4gw5lwnx1j8dr2lq8d5h1v1fbdyppw8l6a68j160s"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix index 40b88c34e8d..f97182612fd 100644 --- a/pkgs/servers/shairport-sync/default.nix +++ b/pkgs/servers/shairport-sync/default.nix @@ -2,11 +2,11 @@ , libdaemon, popt, pkgconfig, libconfig, libpulseaudio, soxr }: stdenv.mkDerivation rec { - version = "3.3.2"; + version = "3.3.4"; pname = "shairport-sync"; src = fetchFromGitHub { - sha256 = "14f09sj2rxmixd5yjmwp82j49rxn1fvcxkvh7qjif893xgk98a3w"; + sha256 = "07rxf1la93g5y7yq49fglhxji8vizzr268p1ccf8ws8j025vbl7n"; rev = version; repo = "shairport-sync"; owner = "mikebrady"; diff --git a/pkgs/servers/shellinabox/default.nix b/pkgs/servers/shellinabox/default.nix index af1992fc869..fe1837e907a 100644 --- a/pkgs/servers/shellinabox/default.nix +++ b/pkgs/servers/shellinabox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, pam, openssl, openssh, shadow, makeWrapper }: +{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pam, openssl, openssh, shadow, makeWrapper }: stdenv.mkDerivation rec { version = "2.20"; @@ -11,10 +11,17 @@ stdenv.mkDerivation rec { sha256 = "1hmfayh21cks2lyj572944ll0mmgsxbnj981b3hq3nhdg8ywzjfr"; }; - patches = [ ./shellinabox-minus.patch ]; + patches = [ + ./shellinabox-minus.patch + (fetchpatch { + name = "CVE-2018-16789.patch"; + url = "https://github.com/shellinabox/shellinabox/commit/4f0ecc31ac6f985e0dd3f5a52cbfc0e9251f6361.patch"; + sha256 = "1mpm6acxdb0fms9pa2b88fx6hp07ph87ahxi82yyqj2m7p79jx7a"; + }) + ]; - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ pam openssl openssh makeWrapper ]; + nativeBuildInputs = [ autoreconfHook makeWrapper ]; + buildInputs = [ pam openssl openssh ]; # Disable GSSAPIAuthentication errors. Also, paths in certain source files are # hardcoded. Replace the hardcoded paths with correct paths. diff --git a/pkgs/servers/sql/postgresql/ext/pg_topn.nix b/pkgs/servers/sql/postgresql/ext/pg_topn.nix index c368929db5d..b6300f78af2 100644 --- a/pkgs/servers/sql/postgresql/ext/pg_topn.nix +++ b/pkgs/servers/sql/postgresql/ext/pg_topn.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "pg_topn"; - version = "2.2.2"; + version = "2.3.0"; buildInputs = [ postgresql ]; @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { owner = "citusdata"; repo = "postgresql-topn"; rev = "refs/tags/v${version}"; - sha256 = "1bh28nrxj06vc2cvlsxlwrwad5ff3lfj3kr5cnnggwjk2dhwbbjm"; + sha256 = "05mjzm7rz5j7byzag23526hhsqsg4dsyxxsg8q9ray1rwxjbr392"; }; installPhase = '' diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix index ef3dc4894d7..296e7e0a41a 100644 --- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix +++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { pname = "timescaledb"; - version = "1.4.2"; + version = "1.5.0"; nativeBuildInputs = [ cmake ]; buildInputs = [ postgresql openssl ]; @@ -17,10 +17,10 @@ stdenv.mkDerivation rec { owner = "timescale"; repo = "timescaledb"; rev = "refs/tags/${version}"; - sha256 = "06mchpfjh4kskxq5r8b84870gl37xcqdf14n96qjb4nbyw9l8xcc"; + sha256 = "0qw7yp2vh3fkx43zlnj8xsvd0d68rcmdcl3p9jpmr97hyl376xf2"; }; - cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" ]; + cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ]; # Fix the install phase which tries to install into the pgsql extension dir, # and cannot be manually overridden. This is rather fragile but works OK. diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix index 4756fbdafb6..8af11183c69 100644 --- a/pkgs/servers/varnish/default.nix +++ b/pkgs/servers/varnish/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchurl, pcre, libxslt, groff, ncurses, pkgconfig, readline, libedit -, python2, python3, makeWrapper }: +, python3, makeWrapper }: let - common = { version, sha256, python, extraNativeBuildInputs ? [] }: + common = { version, sha256, extraNativeBuildInputs ? [] }: stdenv.mkDerivation rec { pname = "varnish"; inherit version; @@ -12,11 +12,11 @@ let inherit sha256; }; - passthru.python = python; + passthru.python = python3; - nativeBuildInputs = with python.pkgs; [ pkgconfig docutils ] ++ extraNativeBuildInputs; + nativeBuildInputs = with python3.pkgs; [ pkgconfig docutils sphinx ]; buildInputs = [ - pcre libxslt groff ncurses readline libedit makeWrapper python + pcre libxslt groff ncurses readline libedit makeWrapper python3 ]; buildFlags = "localstatedir=/var/spool"; @@ -40,20 +40,16 @@ let }; in { - varnish4 = common { - version = "4.1.10"; - sha256 = "08kwx0il6cqxsx3897042plh1yxjaanbaqjbspfl0xgvyvxk6j1n"; - python = python2; + varnish60 = common { + version = "6.0.5"; + sha256 = "11aw202s7zdp5qp66hii5nhgm2jk0d86pila7gqrnjgc7x8fs8a0"; }; - varnish5 = common { - version = "5.2.1"; - sha256 = "1cqlj12m426c1lak1hr1fx5zcfsjjvka3hfirz47hvy1g2fjqidq"; - python = python2; + varnish62 = common { + version = "6.2.2"; + sha256 = "10s3qdvb95pkwp3wxndrigb892h0109yqr8dw4smrhfi0knhnfk5"; }; - varnish6 = common { - version = "6.3.0"; - sha256 = "0zwlffdd1m0ih33nq40xf2wwdyvr4czmns2fs90qpfnwy72xxk4m"; - python = python3; - extraNativeBuildInputs = [ python3.pkgs.sphinx ]; + varnish63 = common { + version = "6.3.1"; + sha256 = "0xa14pd68zpi5hxcax3arl14rcmh5d1cdwa8gv4l5f23mmynr8ni"; }; } diff --git a/pkgs/servers/varnish/digest.nix b/pkgs/servers/varnish/digest.nix index 2ccb0419c04..f11c577288f 100644 --- a/pkgs/servers/varnish/digest.nix +++ b/pkgs/servers/varnish/digest.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation rec { configureFlags = [ "VMOD_DIR=$(out)/lib/varnish/vmods" ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ]; + doCheck = true; meta = with stdenv.lib; { diff --git a/pkgs/servers/varnish/dynamic.nix b/pkgs/servers/varnish/dynamic.nix index b3e86387ee3..7db4680ac62 100644 --- a/pkgs/servers/varnish/dynamic.nix +++ b/pkgs/servers/varnish/dynamic.nix @@ -1,14 +1,14 @@ { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, varnish, docutils }: stdenv.mkDerivation rec { - version = "0.3"; + version = "0.4"; name = "${varnish.name}-dynamic-${version}"; src = fetchFromGitHub { owner = "nigoroll"; repo = "libvmod-dynamic"; - rev = "475be183fddbd727c3d2523f0518effa9aa881f8"; # 5.2 branch for Varnish-5.2 https://github.com/nigoroll/libvmod-dynamic/commits/5.2 - sha256 = "12a42lbv0vf6fn3qnvngw893kmbd006f8pgab4ir7irc8855xjgf"; + rev = "v${version}"; + sha256 = "1n94slrm6vn3hpymfkla03gw9603jajclg84bjhwb8kxsk3rxpmk"; }; nativeBuildInputs = [ pkgconfig docutils autoreconfHook varnish.python ]; diff --git a/pkgs/servers/varnish/geoip.nix b/pkgs/servers/varnish/geoip.nix deleted file mode 100644 index d1790252065..00000000000 --- a/pkgs/servers/varnish/geoip.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, pkgconfig, varnish, geoip, docutils }: - -stdenv.mkDerivation rec { - version = "1.0.2"; - name = "${varnish.name}-geoip-${version}"; - - src = fetchFromGitHub { - owner = "varnish"; - repo = "libvmod-geoip"; - rev = "libvmod-geoip-${version}"; - sha256 = "1gmadayqh3dais14c4skvd47w8h4kyifg7kcw034i0777z5hfpyn"; - }; - - patches = [ - # IPv6 support - (fetchpatch { - url = https://github.com/volth/libvmod-geoip-1/commit/0966fe8.patch; - sha256 = "053im8h2y8qzs37g95ksr00sf625p23r5ps1j0a2h4lfg70vf4ry"; - }) - ]; - - nativeBuildInputs = [ autoreconfHook pkgconfig docutils ]; - buildInputs = [ varnish geoip ]; - configureFlags = [ "VMOD_DIR=$(out)/lib/varnish/vmods" ]; - - meta = with stdenv.lib; { - description = "GeoIP Varnish module by Varnish Software"; - homepage = https://github.com/varnish/libvmod-geoip; - inherit (varnish.meta) license platforms maintainers; - }; -} diff --git a/pkgs/servers/varnish/modules.nix b/pkgs/servers/varnish/modules.nix index 16c74956db7..32c462e4a77 100644 --- a/pkgs/servers/varnish/modules.nix +++ b/pkgs/servers/varnish/modules.nix @@ -1,14 +1,14 @@ { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, varnish, docutils, removeReferencesTo }: stdenv.mkDerivation rec { - version = "0.14.0"; + version = "0.15.0"; name = "${varnish.name}-modules-${version}"; src = fetchFromGitHub { owner = "varnish"; repo = "varnish-modules"; rev = version; - sha256 = "17fkbr4i70qgdqsrx1x28ag20xkfyz1v3q3d3ywmv409aczqhm40"; + sha256 = "00p9syl765lfg1d2ka7da6h46dfl388f8h36x9cmrjix95rg0yr8"; }; nativeBuildInputs = [ diff --git a/pkgs/servers/varnish/packages.nix b/pkgs/servers/varnish/packages.nix index f468ac58e6c..a5c5fe868d0 100644 --- a/pkgs/servers/varnish/packages.nix +++ b/pkgs/servers/varnish/packages.nix @@ -1,22 +1,15 @@ -{ callPackage, varnish4, varnish5, varnish6 }: +{ callPackage, varnish60, varnish62, varnish63 }: { - varnish4Packages = { - varnish = varnish4; - digest = callPackage ./digest.nix { varnish = varnish4; }; - rtstatus = callPackage ./rtstatus.nix { varnish = varnish4; }; # varnish4 only - modules = callPackage ./modules.nix { varnish = varnish4; }; # varnish4 and varnish5 only - geoip = callPackage ./geoip.nix { varnish = varnish4; }; # varnish4 and varnish5 only + varnish60Packages = { + varnish = varnish60; + digest = callPackage ./digest.nix { varnish = varnish60; }; + dynamic = callPackage ./dynamic.nix { varnish = varnish60; }; }; - varnish5Packages = { - varnish = varnish5; - digest = callPackage ./digest.nix { varnish = varnish5; }; - dynamic = callPackage ./dynamic.nix { varnish = varnish5; }; # varnish5 only (upstream has a separate branch for varnish4) - modules = callPackage ./modules.nix { varnish = varnish5; }; # varnish4 and varnish5 only - geoip = callPackage ./geoip.nix { varnish = varnish5; }; # varnish4 and varnish5 only + varnish62Packages = { + varnish = varnish62; }; - varnish6Packages = { - varnish = varnish6; - digest = callPackage ./digest.nix { varnish = varnish6; }; + varnish63Packages = { + varnish = varnish63; }; } diff --git a/pkgs/servers/varnish/rtstatus.nix b/pkgs/servers/varnish/rtstatus.nix deleted file mode 100644 index c27633a2d33..00000000000 --- a/pkgs/servers/varnish/rtstatus.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ stdenv, fetchurl, pkgconfig, varnish, docutils }: - -stdenv.mkDerivation rec { - version = "1.2.0"; - name = "${varnish.name}-rtstatus-${version}"; - - src = fetchurl { - url = "https://download.varnish-software.com/libvmod-rtstatus/libvmod-rtstatus-${version}.tar.gz"; - sha256 = "0hll1aspgpv1daw5sdbn5w1d6birchxgapzb6zi1nhahjlimy4ly"; - }; - - nativeBuildInputs = [ pkgconfig docutils varnish.python ]; - buildInputs = [ varnish ]; - configureFlags = [ "VMOD_DIR=$(out)/lib/varnish/vmods" ]; - - meta = with stdenv.lib; { - description = "Varnish realtime status page"; - homepage = https://github.com/varnish/libvmod-rtstatus; - inherit (varnish.meta) license platforms maintainers; - }; -} diff --git a/pkgs/servers/web-apps/dokuwiki/default.nix b/pkgs/servers/web-apps/dokuwiki/default.nix new file mode 100644 index 00000000000..ff6fa982228 --- /dev/null +++ b/pkgs/servers/web-apps/dokuwiki/default.nix @@ -0,0 +1,26 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "dokuwiki"; + version = "2018-04-22b"; + + src = fetchFromGitHub { + owner = "splitbrain"; + repo = "${pname}"; + rev = "release_stable_${version}"; + sha256 = "1na5pn4j4mi2la80ywzg1krwqdxz57mjkw0id6ga9rws809gkdjp"; + }; + + installPhase = '' + mkdir -p $out/share/dokuwiki + cp -r * $out/share/dokuwiki + ''; + + meta = with stdenv.lib; { + description = "Simple to use and highly versatile Open Source wiki software that doesn't require a database"; + license = licenses.gpl2; + homepage = "https://www.dokuwiki.org"; + platforms = platforms.all; + maintainers = [ maintainers."1000101" ]; + }; +} diff --git a/pkgs/shells/zsh/zsh-history-substring-search/default.nix b/pkgs/shells/zsh/zsh-history-substring-search/default.nix index b7521654667..fcd294f4dce 100644 --- a/pkgs/shells/zsh/zsh-history-substring-search/default.nix +++ b/pkgs/shells/zsh/zsh-history-substring-search/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "zsh-history-substring-search"; - version = "1.0.1"; + version = "1.0.2"; src = fetchFromGitHub { owner = "zsh-users"; repo = "zsh-history-substring-search"; rev = "v${version}"; - sha256 = "0lgmq1xcccnz5cf7vl0r0qj351hwclx9p80cl0qczxry4r2g5qaz"; + sha256 = "0y8va5kc2ram38hbk2cibkk64ffrabfv1sh4xm7pjspsba9n5p1y"; }; installPhase = '' diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index b754230b0be..6bd6a9bf41e 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -36,10 +36,10 @@ let attrs ? meta.license; hasWhitelistedLicense = assert areLicenseListsValid; attrs: - hasLicense attrs && builtins.elem attrs.meta.license whitelist; + hasLicense attrs && lib.lists.any (l: builtins.elem l whitelist) (lib.lists.toList attrs.meta.license); hasBlacklistedLicense = assert areLicenseListsValid; attrs: - hasLicense attrs && builtins.elem attrs.meta.license blacklist; + hasLicense attrs && lib.lists.any (l: builtins.elem l blacklist) (lib.lists.toList attrs.meta.license); allowBroken = config.allowBroken or false || builtins.getEnv "NIXPKGS_ALLOW_BROKEN" == "1"; @@ -75,7 +75,7 @@ let allowInsecurePredicate attrs || builtins.getEnv "NIXPKGS_ALLOW_INSECURE" == "1"; - showLicense = license: license.shortName or "unknown"; + showLicense = license: toString (map (l: l.shortName or "unknown") (lib.lists.toList license)); pos_str = meta: meta.position or "«unknown-file»"; diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix index 8d513625df2..0c285f9661e 100644 --- a/pkgs/stdenv/linux/make-bootstrap-tools.nix +++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix @@ -33,6 +33,15 @@ in with pkgs; rec { ''; }; + bootGCC = gcc.cc.override { enableLTO = false; }; + bootBinutils = binutils.bintools.override { + withAllTargets = false; + # Don't need two linkers, disable whatever's not primary/default. + gold = false; + # bootstrap is easier w/static + enableShared = false; + }; + build = stdenv.mkDerivation { @@ -109,12 +118,12 @@ in with pkgs; rec { cp -d ${gnugrep.pcre.out}/lib/libpcre*.so* $out/lib # needed by grep # Copy what we need of GCC. - cp -d ${gcc.cc.out}/bin/gcc $out/bin - cp -d ${gcc.cc.out}/bin/cpp $out/bin - cp -d ${gcc.cc.out}/bin/g++ $out/bin - cp -d ${gcc.cc.lib}/lib/libgcc_s.so* $out/lib - cp -d ${gcc.cc.lib}/lib/libstdc++.so* $out/lib - cp -rd ${gcc.cc.out}/lib/gcc $out/lib + cp -d ${bootGCC.out}/bin/gcc $out/bin + cp -d ${bootGCC.out}/bin/cpp $out/bin + cp -d ${bootGCC.out}/bin/g++ $out/bin + cp -d ${bootGCC.lib}/lib/libgcc_s.so* $out/lib + cp -d ${bootGCC.lib}/lib/libstdc++.so* $out/lib + cp -rd ${bootGCC.out}/lib/gcc $out/lib chmod -R u+w $out/lib rm -f $out/lib/gcc/*/*/include*/linux rm -f $out/lib/gcc/*/*/include*/sound @@ -122,11 +131,11 @@ in with pkgs; rec { rm -f $out/lib/gcc/*/*/include-fixed/asm rm -rf $out/lib/gcc/*/*/plugin #rm -f $out/lib/gcc/*/*/*.a - cp -rd ${gcc.cc.out}/libexec/* $out/libexec + cp -rd ${bootGCC.out}/libexec/* $out/libexec chmod -R u+w $out/libexec rm -rf $out/libexec/gcc/*/*/plugin mkdir -p $out/include - cp -rd ${gcc.cc.out}/include/c++ $out/include + cp -rd ${bootGCC.out}/include/c++ $out/include chmod -R u+w $out/include rm -rf $out/include/c++/*/ext/pb_ds rm -rf $out/include/c++/*/ext/parallel @@ -148,7 +157,7 @@ in with pkgs; rec { # Copy binutils. for i in as ld ar ranlib nm strip readelf objdump; do - cp ${binutils.bintools.out}/bin/$i $out/bin + cp ${bootBinutils.out}/bin/$i $out/bin done cp '${lib.getLib binutils.bintools}'/lib/* "$out/lib/" @@ -172,7 +181,7 @@ in with pkgs; rec { mv $out/.pack $out/pack mkdir $out/on-server - XZ_OPT=-9 tar cvJf $out/on-server/bootstrap-tools.tar.xz --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack . + XZ_OPT="-9 -e" tar cvJf $out/on-server/bootstrap-tools.tar.xz --hard-dereference --sort=name --numeric-owner --owner=0 --group=0 --mtime=@1 -C $out/pack . cp ${busyboxMinimal}/bin/busybox $out/on-server chmod u+w $out/on-server/busybox nuke-refs $out/on-server/busybox diff --git a/pkgs/tools/X11/wpgtk/default.nix b/pkgs/tools/X11/wpgtk/default.nix index 1a6e99f0393..fce3df19718 100644 --- a/pkgs/tools/X11/wpgtk/default.nix +++ b/pkgs/tools/X11/wpgtk/default.nix @@ -3,13 +3,13 @@ python3Packages.buildPythonApplication rec { pname = "wpgtk"; - version = "6.0.9"; + version = "6.0.11"; src = fetchFromGitHub { owner = "deviantfero"; repo = "wpgtk"; rev = version; - sha256 = "0j2wci85918zsrrvd4qpcqv9bzhzj7qvjchvhvl11fn035jml5l0"; + sha256 = "0da4gj54c361a0bicrjhhb9bp9yr5lx7p1knrsc4dykap1xn23vi"; }; buildInputs = [ diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix index c445cf854dd..b1d440e51ce 100644 --- a/pkgs/tools/archivers/unrar/default.nix +++ b/pkgs/tools/archivers/unrar/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "unrar"; - version = "5.8.2"; + version = "5.8.3"; src = fetchurl { url = "https://www.rarlab.com/rar/unrarsrc-${version}.tar.gz"; - sha256 = "1nixncpx4psfc5xx1dh332gfcmxld5m4mpwjcasm7c9zzlincf1k"; + sha256 = "19lizlsbblkcdyc81jycp5k8kf5d8h2hlgfy16zb1g2vixf6i49m"; }; postPatch = '' diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix index c664c745f32..43539f1ee29 100644 --- a/pkgs/tools/audio/video2midi/default.nix +++ b/pkgs/tools/audio/video2midi/default.nix @@ -8,7 +8,7 @@ let }); in pythonPackages.buildPythonApplication rec { pname = "video2midi"; - version = "0.3.9.5"; + version = "0.3.9.6"; format = "other"; @@ -16,7 +16,7 @@ in pythonPackages.buildPythonApplication rec { owner = "svsdval"; repo = pname; rev = version; - sha256 = "1jc50zimc64ilc1as3dyh16lsygwqyvi381mw8si8m9j3pw6may4"; + sha256 = "0x9b8hwl325gd6v9i60yh95gbn49nydpwyfqs92mbq8vvvq7x8fk"; }; propagatedBuildInputs = with pythonPackages; [ opencv3_ midiutil pygame pyopengl ]; diff --git a/pkgs/tools/backup/s3ql/default.nix b/pkgs/tools/backup/s3ql/default.nix index 7ef213bae23..346f8d27964 100644 --- a/pkgs/tools/backup/s3ql/default.nix +++ b/pkgs/tools/backup/s3ql/default.nix @@ -2,13 +2,13 @@ python3Packages.buildPythonApplication rec { pname = "s3ql"; - version = "3.3"; + version = "3.3.2"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "release-${version}"; - sha256 = "1rb1y1hl6qgwpkfc85ivkk0l0f5dh8skpfaipnvndn73mlya96mk"; + sha256 = "1x0xj8clfs8fdczn8skc2wag5i4z47bsvlczn22iaf20hll1bb2w"; }; checkInputs = [ which ] ++ (with python3Packages; [ cython pytest ]); diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix index 85cd0609920..33fc5ce2ab6 100644 --- a/pkgs/tools/filesystems/sshfs-fuse/default.nix +++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix @@ -1,20 +1,25 @@ -{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, docutils, makeWrapper +{ stdenv, fetchFromGitHub, fetchpatch, meson, pkgconfig, ninja, docutils, makeWrapper , fuse3, glib , which, python3Packages , openssh }: stdenv.mkDerivation rec { - version = "3.5.2"; + version = "3.6.0"; pname = "sshfs-fuse"; src = fetchFromGitHub { owner = "libfuse"; repo = "sshfs"; rev = "sshfs-${version}"; - sha256 = "0gvk8snivpi2sjidjnd9ypc66ny7lr0z9v4swl56rwjv539dkbx2"; + sha256 = "0l4a6azsp920fhl4safxjam6821b77zxhw8mjgm33f60pksslww0"; }; + patches = [ (fetchpatch { + url = "https://github.com/libfuse/sshfs/commit/a548abd1f33a8423bec72724a5f48eb96fa55dd2.patch"; + sha256 = "19p94aw7nvydd7p2bd1f5cqhlhhamjhda31k22sg06xaqyl893jm"; + }) ]; + nativeBuildInputs = [ meson pkgconfig ninja docutils makeWrapper ]; buildInputs = [ fuse3 glib ]; checkInputs = [ which python3Packages.pytest ]; diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/tools/graphics/gmic/default.nix index de439d1a6ba..54b140cdb3e 100644 --- a/pkgs/tools/graphics/gmic/default.nix +++ b/pkgs/tools/graphics/gmic/default.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "gmic"; - version = "2.7.4"; + version = "2.7.5"; outputs = [ "out" "lib" "dev" "man" ]; src = fetchurl { url = "https://gmic.eu/files/source/gmic_${version}.tar.gz"; - sha256 = "0h1c1c6l25c5rjc0wkspmw44k7cafrn0jwc0713vp87qipx416yd"; + sha256 = "008lpjm3w5hzfccam6qf0rizdg3a9cqrizhr7vrpskmbr1j451d6"; }; nativeBuildInputs = [ diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix index 08c5f308f5c..068aea54595 100644 --- a/pkgs/tools/graphics/pfstools/default.nix +++ b/pkgs/tools/graphics/pfstools/default.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, cmake, pkgconfig +{ stdenv, fetchurl, cmake, pkgconfig, darwin , openexr, zlib, imagemagick, libGLU_combined, freeglut, fftwFloat -, fftw, gsl, libexif, perl, opencv, qt5 +, fftw, gsl, libexif, perl, opencv, qt5, netpbm }: stdenv.mkDerivation rec { @@ -18,13 +18,26 @@ stdenv.mkDerivation rec { -DWITH_MATLAB=false ''; + preConfigure = '' + rm cmake/FindNETPBM.cmake + echo "SET(NETPBM_LIBRARY `find ${netpbm} -name "*.${stdenv.hostPlatform.extensions.sharedLibrary}*" -type f`)" >> cmake/FindNETPBM.cmake + echo "SET(NETPBM_LIBRARIES `find ${netpbm} -name "*.${stdenv.hostPlatform.extensions.sharedLibrary}*" -type f`)" >> cmake/FindNETPBM.cmake + echo "SET(NETPBM_INCLUDE_DIR ${netpbm}/include/netpbm)" >> cmake/FindNETPBM.cmake + echo "INCLUDE(FindPackageHandleStandardArgs)" >> cmake/FindNETPBM.cmake + echo "FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETPBM DEFAULT_MSG NETPBM_LIBRARY NETPBM_INCLUDE_DIR)" >> cmake/FindNETPBM.cmake + ''; + nativeBuildInputs = [ cmake pkgconfig ]; buildInputs = [ - openexr zlib imagemagick libGLU_combined freeglut fftwFloat - fftw gsl libexif perl opencv qt5.qtbase - ]; + openexr zlib imagemagick fftwFloat + fftw gsl libexif perl opencv qt5.qtbase netpbm + ] ++ (if stdenv.isDarwin then (with darwin.apple_sdk.frameworks; [ + OpenGL GLUT + ]) else [ + libGLU_combined freeglut + ]); - patches = [ ./threads.patch ./pfstools.patch ]; + patches = [ ./threads.patch ./pfstools.patch ./pfsalign.patch ]; meta = with stdenv.lib; { homepage = http://pfstools.sourceforge.net/; diff --git a/pkgs/tools/graphics/pfstools/pfsalign.patch b/pkgs/tools/graphics/pfstools/pfsalign.patch new file mode 100644 index 00000000000..f079415ddcb --- /dev/null +++ b/pkgs/tools/graphics/pfstools/pfsalign.patch @@ -0,0 +1,12 @@ +--- a/src/camera/CMakeLists.txt 2017-11-13 18:38:27.000000000 +0100 ++++ b/src/camera/CMakeLists.txt 2018-12-30 14:55:30.235571520 +0100 +@@ -9,7 +9,7 @@ target_link_libraries(${TRG} pfs) + install (TARGETS ${TRG} DESTINATION bin) + install (FILES ${TRG}.1 DESTINATION ${MAN_DIR}) + +-if( OpenCV_FOUND AND EXIF_FOUND ) ++if( OpenCV_FOUND AND MYPKG_FOUND ) + + set(TRG pfsalign) + add_executable(${TRG} ${TRG}.cpp "${GETOPT_OBJECT}") + diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix index b6fffddeb53..587bc2b9278 100644 --- a/pkgs/tools/misc/chezmoi/default.nix +++ b/pkgs/tools/misc/chezmoi/default.nix @@ -1,24 +1,32 @@ -{ stdenv, buildGoPackage, fetchFromGitHub }: +{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }: -buildGoPackage rec { +buildGoModule rec { pname = "chezmoi"; - version = "1.5.5"; - - goPackagePath = "github.com/twpayne/chezmoi"; + version = "1.7.2"; src = fetchFromGitHub { owner = "twpayne"; repo = "chezmoi"; rev = "v${version}"; - sha256 = "18kc3b2ncjzxivycx3mhqw9kbqp0sxmlgc2ddvhgj2vpvlkayzkh"; + sha256 = "06wgfnlzcs6yfrjpy6zhcg5y844zd22manbm2sfq5vyng02bg229"; }; - goDeps = ./deps.nix; + modSha256 = "1y1q1lps3a8piikh8ds28yrw5r82af9pyl6vy87207z1y5v2hams"; buildFlagsArray = [ - "-ldflags=-s -w -X ${goPackagePath}/cmd.VersionStr=${version}" + "-ldflags=-s -w -X github.com/twpayne/chezmoi/cmd.VersionStr=${version}" ]; + nativeBuildInputs = [ installShellFiles ]; + + postInstall = '' + installShellCompletion --bash completions/chezmoi-completion.bash + installShellCompletion --fish completions/chezmoi.fish + installShellCompletion --zsh completions/chezmoi.zsh + ''; + + subPackages = [ "." ]; + meta = with stdenv.lib; { homepage = https://github.com/twpayne/chezmoi; description = "Manage your dotfiles across multiple machines, securely"; diff --git a/pkgs/tools/misc/chezmoi/deps.nix b/pkgs/tools/misc/chezmoi/deps.nix deleted file mode 100644 index 6641a58931d..00000000000 --- a/pkgs/tools/misc/chezmoi/deps.nix +++ /dev/null @@ -1,507 +0,0 @@ -# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix) -[ - { - goPackagePath = "github.com/BurntSushi/toml"; - fetch = { - type = "git"; - url = "https://github.com/BurntSushi/toml"; - rev = "v0.3.1"; - sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6"; - }; - } - { - goPackagePath = "github.com/Masterminds/semver"; - fetch = { - type = "git"; - url = "https://github.com/Masterminds/semver"; - rev = "v1.4.2"; - sha256 = "0k2fpk2x8jbvqkqxx5hkx1ygrsppzmzypqb90i1r33yq7ac7zlxj"; - }; - } - { - goPackagePath = "github.com/Masterminds/sprig"; - fetch = { - type = "git"; - url = "https://github.com/Masterminds/sprig"; - rev = "v2.17.1"; - sha256 = "0iiwga57100r780k2d509fzx67x6l8z0wjl84pyzg5mpy6zp2y9y"; - }; - } - { - goPackagePath = "github.com/aokoli/goutils"; - fetch = { - type = "git"; - url = "https://github.com/aokoli/goutils"; - rev = "v1.1.0"; - sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq"; - }; - } - { - goPackagePath = "github.com/armon/consul-api"; - fetch = { - type = "git"; - url = "https://github.com/armon/consul-api"; - rev = "eb2c6b5be1b6"; - sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9"; - }; - } - { - goPackagePath = "github.com/coreos/etcd"; - fetch = { - type = "git"; - url = "https://github.com/coreos/etcd"; - rev = "v3.3.10"; - sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl"; - }; - } - { - goPackagePath = "github.com/coreos/go-etcd"; - fetch = { - type = "git"; - url = "https://github.com/coreos/go-etcd"; - rev = "v2.0.0"; - sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj"; - }; - } - { - goPackagePath = "github.com/coreos/go-semver"; - fetch = { - type = "git"; - url = "https://github.com/coreos/go-semver"; - rev = "v0.2.0"; - sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0"; - }; - } - { - goPackagePath = "github.com/danieljoos/wincred"; - fetch = { - type = "git"; - url = "https://github.com/danieljoos/wincred"; - rev = "v1.0.1"; - sha256 = "1bb1928nnikx5036aw4152p55g8xgwx42rv0n2i5zydh1031f50m"; - }; - } - { - goPackagePath = "github.com/davecgh/go-spew"; - fetch = { - type = "git"; - url = "https://github.com/davecgh/go-spew"; - rev = "v1.1.1"; - sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; - }; - } - { - goPackagePath = "github.com/fsnotify/fsnotify"; - fetch = { - type = "git"; - url = "https://github.com/fsnotify/fsnotify"; - rev = "v1.4.7"; - sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g"; - }; - } - { - goPackagePath = "github.com/godbus/dbus"; - fetch = { - type = "git"; - url = "https://github.com/godbus/dbus"; - rev = "v4.1.0"; - sha256 = "1ckvg15zdsgmbn4mi36cazkb407ixc9mmyf7vwj8b8wi3d00rgn9"; - }; - } - { - goPackagePath = "github.com/golang/protobuf"; - fetch = { - type = "git"; - url = "https://github.com/golang/protobuf"; - rev = "v1.2.0"; - sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab"; - }; - } - { - goPackagePath = "github.com/google/go-github"; - fetch = { - type = "git"; - url = "https://github.com/google/go-github"; - rev = "v25.0.1"; - sha256 = "1wggj64dm73zmav64qfgw8v3pkzxxmlaqrccvs5rf66j0wij9g20"; - }; - } - { - goPackagePath = "github.com/google/go-querystring"; - fetch = { - type = "git"; - url = "https://github.com/google/go-querystring"; - rev = "v1.0.0"; - sha256 = "0xl12bqyvmn4xcnf8p9ksj9rmnr7s40pvppsdmy8n9bzw1db0iwz"; - }; - } - { - goPackagePath = "github.com/google/renameio"; - fetch = { - type = "git"; - url = "https://github.com/google/renameio"; - rev = "v0.1.0"; - sha256 = "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx"; - }; - } - { - goPackagePath = "github.com/google/uuid"; - fetch = { - type = "git"; - url = "https://github.com/google/uuid"; - rev = "v1.1.0"; - sha256 = "0yx4kiafyshdshrmrqcf2say5mzsviz7r94a0y1l6xfbkkyvnc86"; - }; - } - { - goPackagePath = "github.com/hashicorp/hcl"; - fetch = { - type = "git"; - url = "https://github.com/hashicorp/hcl"; - rev = "v1.0.0"; - sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66"; - }; - } - { - goPackagePath = "github.com/huandu/xstrings"; - fetch = { - type = "git"; - url = "https://github.com/huandu/xstrings"; - rev = "v1.2.0"; - sha256 = "0bn1kac5vcspxdpx4bygr4gngdbk67pnbqc04b0f7a4ny25n10iq"; - }; - } - { - goPackagePath = "github.com/imdario/mergo"; - fetch = { - type = "git"; - url = "https://github.com/imdario/mergo"; - rev = "v0.3.7"; - sha256 = "05ir0jj74w0yfi1lrhjd97v759in1dpsma64cgmbiqvyp6hfmmf8"; - }; - } - { - goPackagePath = "github.com/inconshreveable/mousetrap"; - fetch = { - type = "git"; - url = "https://github.com/inconshreveable/mousetrap"; - rev = "v1.0.0"; - sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152"; - }; - } - { - goPackagePath = "github.com/kr/pty"; - fetch = { - type = "git"; - url = "https://github.com/kr/pty"; - rev = "v1.1.1"; - sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6"; - }; - } - { - goPackagePath = "github.com/kr/text"; - fetch = { - type = "git"; - url = "https://github.com/kr/text"; - rev = "v0.1.0"; - sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; - }; - } - { - goPackagePath = "github.com/magiconair/properties"; - fetch = { - type = "git"; - url = "https://github.com/magiconair/properties"; - rev = "v1.8.0"; - sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn"; - }; - } - { - goPackagePath = "github.com/mattn/go-isatty"; - fetch = { - type = "git"; - url = "https://github.com/mattn/go-isatty"; - rev = "v0.0.7"; - sha256 = "1i77aq4gf9as03m8fpfh8fq49n4z9j7548blrcsidm1xhslzk5xd"; - }; - } - { - goPackagePath = "github.com/mitchellh/mapstructure"; - fetch = { - type = "git"; - url = "https://github.com/mitchellh/mapstructure"; - rev = "v1.1.2"; - sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr"; - }; - } - { - goPackagePath = "github.com/pelletier/go-toml"; - fetch = { - type = "git"; - url = "https://github.com/pelletier/go-toml"; - rev = "v1.2.0"; - sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy"; - }; - } - { - goPackagePath = "github.com/pmezard/go-difflib"; - fetch = { - type = "git"; - url = "https://github.com/pmezard/go-difflib"; - rev = "v1.0.0"; - sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw"; - }; - } - { - goPackagePath = "github.com/russross/blackfriday"; - fetch = { - type = "git"; - url = "https://github.com/russross/blackfriday"; - rev = "v2.0.1"; - sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j"; - }; - } - { - goPackagePath = "github.com/shurcooL/sanitized_anchor_name"; - fetch = { - type = "git"; - url = "https://github.com/shurcooL/sanitized_anchor_name"; - rev = "v1.0.0"; - sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f"; - }; - } - { - goPackagePath = "github.com/spf13/afero"; - fetch = { - type = "git"; - url = "https://github.com/spf13/afero"; - rev = "v1.2.2"; - sha256 = "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9"; - }; - } - { - goPackagePath = "github.com/spf13/cast"; - fetch = { - type = "git"; - url = "https://github.com/spf13/cast"; - rev = "v1.3.0"; - sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5"; - }; - } - { - goPackagePath = "github.com/spf13/cobra"; - fetch = { - type = "git"; - url = "https://github.com/spf13/cobra"; - rev = "v0.0.3"; - sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd"; - }; - } - { - goPackagePath = "github.com/spf13/jwalterweatherman"; - fetch = { - type = "git"; - url = "https://github.com/spf13/jwalterweatherman"; - rev = "v1.0.0"; - sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8"; - }; - } - { - goPackagePath = "github.com/spf13/pflag"; - fetch = { - type = "git"; - url = "https://github.com/spf13/pflag"; - rev = "v1.0.3"; - sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd"; - }; - } - { - goPackagePath = "github.com/spf13/viper"; - fetch = { - type = "git"; - url = "https://github.com/spf13/viper"; - rev = "v1.3.1"; - sha256 = "1190mg04718r03qriav99sf4kx2n7wdgr8vdni15f74bpbzrdjrl"; - }; - } - { - goPackagePath = "github.com/stretchr/objx"; - fetch = { - type = "git"; - url = "https://github.com/stretchr/objx"; - rev = "v0.2.0"; - sha256 = "0pcdvakxgddaiwcdj73ra4da05a3q4cgwbpm2w75ycq4kzv8ij8k"; - }; - } - { - goPackagePath = "github.com/stretchr/testify"; - fetch = { - type = "git"; - url = "https://github.com/stretchr/testify"; - rev = "v1.3.0"; - sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy"; - }; - } - { - goPackagePath = "github.com/twpayne/go-difflib"; - fetch = { - type = "git"; - url = "https://github.com/twpayne/go-difflib"; - rev = "v1.3.0"; - sha256 = "01lidr7brrdv4xqx87n6c2ppyaj8rdf9lqj85qhbbalwy6z34fj8"; - }; - } - { - goPackagePath = "github.com/twpayne/go-shell"; - fetch = { - type = "git"; - url = "https://github.com/twpayne/go-shell"; - rev = "v0.0.1"; - sha256 = "0nbbfxdwqy14izbfbk8c8ia90l31wbhkcwd2r7v6jhz58iaxcvxk"; - }; - } - { - goPackagePath = "github.com/twpayne/go-vfs"; - fetch = { - type = "git"; - url = "https://github.com/twpayne/go-vfs"; - rev = "v1.0.6"; - sha256 = "0sqjng5qm4s7crq9s1f5y5niq4wss6dizip62zx37iyvws1yngjd"; - }; - } - { - goPackagePath = "github.com/twpayne/go-vfsafero"; - fetch = { - type = "git"; - url = "https://github.com/twpayne/go-vfsafero"; - rev = "v1.0.0"; - sha256 = "18jwxhlrjd06z8xzg9ij0irl4f79jfy5jpwiz6xqlhzb1fja19pw"; - }; - } - { - goPackagePath = "github.com/twpayne/go-xdg"; - fetch = { - type = "git"; - url = "https://github.com/twpayne/go-xdg"; - rev = "v3.1.0"; - sha256 = "0j8q7yzixs6jlaad0lpa8hs6b240gm2cmy0yxgnprrbpa0y2r7ln"; - }; - } - { - goPackagePath = "github.com/ugorji/go"; - fetch = { - type = "git"; - url = "https://github.com/ugorji/go"; - rev = "d75b2dcb6bc8"; - sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps"; - }; - } - { - goPackagePath = "github.com/xordataexchange/crypt"; - fetch = { - type = "git"; - url = "https://github.com/xordataexchange/crypt"; - rev = "b2862e3d0a77"; - sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y"; - }; - } - { - goPackagePath = "github.com/zalando/go-keyring"; - fetch = { - type = "git"; - url = "https://github.com/zalando/go-keyring"; - rev = "6d81c293b3fb"; - sha256 = "1wah726fi08h6ga5wnwxd1zyxq7ckp3qliql44bxgliw2p35kkyb"; - }; - } - { - goPackagePath = "go.etcd.io/bbolt"; - fetch = { - type = "git"; - url = "https://github.com/etcd-io/bbolt"; - rev = "4af6cfab7010"; - sha256 = "1zgirl82lph606vw39wj4mvk8bkq2bakvnx49dpq7l5dsdhiydpv"; - }; - } - { - goPackagePath = "golang.org/x/crypto"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/crypto"; - rev = "c2843e01d9a2"; - sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r"; - }; - } - { - goPackagePath = "golang.org/x/net"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/net"; - rev = "d8887717615a"; - sha256 = "1wfm6ngxjyj7v5a2dqib6lw8bb2rdnf1kl48diykxjrsddn0s163"; - }; - } - { - goPackagePath = "golang.org/x/oauth2"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/oauth2"; - rev = "d2e6202438be"; - sha256 = "0wbn75fd10485nb93bm4kqldqifdim5xqy4v7r5sdvimvf3fyhn7"; - }; - } - { - goPackagePath = "golang.org/x/sync"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/sync"; - rev = "e225da77a7e6"; - sha256 = "0bh3583smcfw6jw3w6lp0za93rz7hpxfdz8vhxng75b7a6vdlw4p"; - }; - } - { - goPackagePath = "golang.org/x/sys"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/sys"; - rev = "10058d7d4faa"; - sha256 = "0y83433yjgsr7057h99g5ayljzlivx2bnkcp01xnzqz8lppv8fql"; - }; - } - { - goPackagePath = "golang.org/x/text"; - fetch = { - type = "git"; - url = "https://go.googlesource.com/text"; - rev = "v0.3.0"; - sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19"; - }; - } - { - goPackagePath = "google.golang.org/appengine"; - fetch = { - type = "git"; - url = "https://github.com/golang/appengine"; - rev = "v1.1.0"; - sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x"; - }; - } - { - goPackagePath = "gopkg.in/check.v1"; - fetch = { - type = "git"; - url = "https://gopkg.in/check.v1"; - rev = "20d25e280405"; - sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"; - }; - } - { - goPackagePath = "gopkg.in/yaml.v2"; - fetch = { - type = "git"; - url = "https://gopkg.in/yaml.v2"; - rev = "v2.2.2"; - sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa"; - }; - } -] diff --git a/pkgs/tools/misc/dust/default.nix b/pkgs/tools/misc/dust/default.nix index 4dffae557a4..68f06f1ceb8 100644 --- a/pkgs/tools/misc/dust/default.nix +++ b/pkgs/tools/misc/dust/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "dust"; - version = "0.2.3"; + version = "0.4.1.2"; src = fetchFromGitHub { owner = "bootandy"; repo = "dust"; rev = "v${version}"; - sha256 = "1l8z1daiq2x92449p2ciblcwl0ddgr3vqj2dsd3z8jj3y0z8j51s"; + sha256 = "0a2n96p6z4y09l5z617qbpm8lgxvfagd1l950d2gz9xw4xf1ik5w"; }; - cargoSha256 = "1bby08ijpwb8676pgm87k80s0n0fqsxc3wmz0v8p9s85yzkflnx5"; + cargoSha256 = "0cpgxkgz10na90r3fgz8hs20vihqdcc8983inn71fq90627bhdx7"; doCheck = false; diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix index b3ed85ca228..a06b38c0ec7 100644 --- a/pkgs/tools/misc/file/default.nix +++ b/pkgs/tools/misc/file/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, file, zlib, libgnurx }: +{ stdenv, fetchurl, fetchpatch, file, zlib, libgnurx }: stdenv.mkDerivation rec { pname = "file"; @@ -12,6 +12,14 @@ stdenv.mkDerivation rec { sha256 = "0zz0p9bqnswfx0c16j8k62ivjq1m16x10xqv4hy9lcyxyxkkkhg9"; }; + patches = [ + (fetchpatch { + name = "CVE-2019-18218.patch"; + url = "https://sources.debian.org/data/main/f/file/1:5.37-6/debian/patches/cherry-pick.FILE5_37-67-g46a8443f.limit-the-number-of-elements-in-a-vector-found-by-oss-fuzz.patch"; + sha256 = "1i22y91yndc3n2p2ngczp1lwil8l05sp8ciicil74xrc5f91y6mj"; + }) + ]; + nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file; buildInputs = [ zlib ] ++ stdenv.lib.optional stdenv.hostPlatform.isWindows libgnurx; diff --git a/pkgs/tools/misc/marlin-calc/default.nix b/pkgs/tools/misc/marlin-calc/default.nix index 5c175053fc9..c7222f696c9 100644 --- a/pkgs/tools/misc/marlin-calc/default.nix +++ b/pkgs/tools/misc/marlin-calc/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation { pname = "marlin-calc"; - version = "2019-06-04"; + version = "2019-10-17"; src = fetchFromGitHub { owner = "eyal0"; repo = "Marlin"; - rev = "4120d1c72d6c32e9c5cc745c05d20963ba4bbca3"; - sha256 = "06aly7s4k1r31njm43sbxq9a0127sw43pnaddh92a3cc39rbj2va"; + rev = "3d5a5c86bea35a2a169eb56c70128bf2d070feef"; + sha256 = "14sqajm361gnrcqv84g7kbmyqm8pppbhqsabszc4j2cn7vbwkdg5"; }; buildPhase = '' diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix index 9f423cf6a4d..4c5e4a50ef6 100644 --- a/pkgs/tools/misc/ostree/default.nix +++ b/pkgs/tools/misc/ostree/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk-doc, gobject-introspection, gnome3 +{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk-doc, gobject-introspection, gjs , glib, systemd, xz, e2fsprogs, libsoup, gpgme, which, autoconf, automake, libtool, fuse, utillinuxMinimal, libselinux , libarchive, libcap, bzip2, yacc, libxslt, docbook_xsl, docbook_xml_dtd_42, python3 }: @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { glib systemd e2fsprogs libsoup gpgme fuse libselinux libcap libarchive bzip2 xz utillinuxMinimal # for libmount - (python3.withPackages (p: with p; [ pyyaml ])) gnome3.gjs # for tests + (python3.withPackages (p: with p; [ pyyaml ])) gjs # for tests ]; preConfigure = '' diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix index 46ff72a678a..27fd51ed447 100644 --- a/pkgs/tools/misc/parallel/default.nix +++ b/pkgs/tools/misc/parallel/default.nix @@ -1,11 +1,11 @@ { fetchurl, stdenv, perl, makeWrapper, procps }: stdenv.mkDerivation rec { - name = "parallel-20190922"; + name = "parallel-20191022"; src = fetchurl { url = "mirror://gnu/parallel/${name}.tar.bz2"; - sha256 = "0qrw34rpp8g5knb2nhs8z1hz9i42nxjn6i12m4rblm0anhnfwbr8"; + sha256 = "1a89x5ix9kls1abj8zkgxdf3g3s5phzb83xcd4cwpz4szfjfw6v4"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/misc/yad/default.nix b/pkgs/tools/misc/yad/default.nix index 946a07d17b4..776b41ac1aa 100644 --- a/pkgs/tools/misc/yad/default.nix +++ b/pkgs/tools/misc/yad/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "yad"; - version = "0.42.0"; + version = "5.0"; src = fetchFromGitHub { owner = "v1cont"; repo = "yad"; rev = "v${version}"; - sha256 = "0ym8pgbzx7ydk5rmi2kwwdyzi6pdpcps86i0c20cqcjmqh8kdl36"; + sha256 = "07rd61hvilsxxrj7lf8c9k0a8glj07s48m7ya8d45030r90g3lvc"; }; configureFlags = [ diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix index 610738daebd..bc198eb595b 100644 --- a/pkgs/tools/misc/youtube-dl/default.nix +++ b/pkgs/tools/misc/youtube-dl/default.nix @@ -18,11 +18,11 @@ buildPythonPackage rec { # The websites youtube-dl deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2019.10.29"; + version = "2019.11.05"; src = fetchurl { url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz"; - sha256 = "1lq6ycjbx07831s24yx42q6m6svas4mf02vbszw0965dbbzs7vp4"; + sha256 = "129461i4103slqj3nq69djnlmgjj3lfgmazn41avc5g967w29b85"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/tools/networking/acme-client/default.nix b/pkgs/tools/networking/acme-client/default.nix index 60b3b6df69a..bf1c96b66b2 100644 --- a/pkgs/tools/networking/acme-client/default.nix +++ b/pkgs/tools/networking/acme-client/default.nix @@ -1,8 +1,8 @@ { stdenv +, fetchFromGitHub +, autoreconfHook +, bison , apple_sdk ? null -, cacert -, defaultCaFile ? "${cacert}/etc/ssl/certs/ca-bundle.crt" -, fetchurl , libbsd , libressl , pkgconfig @@ -12,24 +12,22 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "acme-client"; - version = "0.1.16"; + version = "0.2.4"; - src = fetchurl { - url = "https://kristaps.bsd.lv/acme-client/snapshots/acme-client-portable-${version}.tgz"; - sha256 = "00q05b3b1dfnfp7sr1nbd212n0mqrycl3cr9lbs51m7ncaihbrz9"; + src = fetchFromGitHub { + owner = "graywolf"; + repo = "acme-client-portable"; + rev = "v${version}"; + sha256 = "1yq2lkrnjwjs0h9mijqysnjmr7kp4zcq1f4cxr9n1db7pw8446xb"; }; - buildInputs = [ libbsd libressl pkgconfig ] - ++ optional stdenv.isDarwin apple_sdk.sdk; + nativeBuildInputs = [ autoreconfHook bison pkgconfig ]; + buildInputs = [ libbsd libressl ] ++ optional stdenv.isDarwin apple_sdk.sdk; - CFLAGS = "-DDEFAULT_CA_FILE='\"${defaultCaFile}\"'"; - - preConfigure = '' - export PREFIX="$out" - ''; + makeFlags = [ "PREFIX=${placeholder "out"}" ]; meta = { - homepage = https://kristaps.bsd.lv/acme-client/; + homepage = "https://github.com/graywolf/acme-client-portable"; description = "Secure ACME/Let's Encrypt client"; platforms = platforms.unix; license = licenses.isc; diff --git a/pkgs/tools/networking/nfstrace/default.nix b/pkgs/tools/networking/nfstrace/default.nix new file mode 100644 index 00000000000..50654da54e4 --- /dev/null +++ b/pkgs/tools/networking/nfstrace/default.nix @@ -0,0 +1,37 @@ +{ cmake, fetchFromGitHub, fetchpatch, json_c, libpcap, ncurses, stdenv }: + +stdenv.mkDerivation rec { + pname = "nfstrace"; + version = "0.4.3.2"; + + src = fetchFromGitHub { + owner = "epam"; + repo = "nfstrace"; + rev = "${version}"; + sha256 = "1djsyn7i3xp969rnmsdaf5vwjiik9wylxxrc5nm7by00i76c1vsg"; + }; + + patches = [ + (fetchpatch { + url = "https://salsa.debian.org/debian/nfstrace/raw/debian/0.4.3.1-3/debian/patches/reproducible_build.patch"; + sha256 = "0fd96r8xi142kjwibqkd46s6jwsg5kfc5v28bqsj9rdlc2aqmay5"; + }) + ]; + + buildInputs = [ json_c libpcap ncurses ]; + nativeBuildInputs = [ cmake ]; + + # To build with GCC 8+ it needs: + CXXFLAGS = [ "-Wno-class-memaccess" "-Wno-ignored-qualifiers" ]; + # CMake can't find json_c without: + NIX_CFLAGS_COMPILE = [ "-I${json_c.dev}/include/json-c" ]; + + doCheck = false; # requires network access + + meta = with stdenv.lib; { + homepage = "http://epam.github.io/nfstrace/"; + description = "NFS and CIFS tracing/monitoring/capturing/analyzing tool"; + license = licenses.gpl2; + platforms = platforms.linux; + }; +} diff --git a/pkgs/tools/networking/phodav/default.nix b/pkgs/tools/networking/phodav/default.nix index 320e7614c7c..0d7b30ae152 100644 --- a/pkgs/tools/networking/phodav/default.nix +++ b/pkgs/tools/networking/phodav/default.nix @@ -1,20 +1,24 @@ { stdenv, fetchurl -, intltool, pkgconfig, glib, libsoup }: +, pkgconfig, libsoup, meson, ninja }: let - version = "2.2"; + version = "2.3"; in stdenv.mkDerivation rec { pname = "phodav"; inherit version; src = fetchurl { url = "http://ftp.gnome.org/pub/GNOME/sources/phodav/${version}/${pname}-${version}.tar.xz"; - sha256 = "1hap0lncbcmivnflh0fbx7y58ry78p9wgj7z03r64ic0kvf0a0q8"; + sha256 = "0ndy5qva6bq7vhk06jq2d4nr5fp98xsdwypg42vjz91h9ii1xxkf"; }; - buildInputs = [ intltool glib libsoup ]; + mesonFlags = [ + "-Davahi=disabled" + "-Dsystemd=disabled" + "-Dgtk_doc=disabled" + ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ libsoup pkgconfig meson ninja ]; meta = with stdenv.lib; { description = "WebDav server implementation and library using libsoup"; diff --git a/pkgs/tools/security/gnupg-pkcs11-scd/default.nix b/pkgs/tools/security/gnupg-pkcs11-scd/default.nix new file mode 100644 index 00000000000..bc7cff99dc2 --- /dev/null +++ b/pkgs/tools/security/gnupg-pkcs11-scd/default.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchurl, libgpgerror, libassuan, libgcrypt, pkcs11helper, + pkgconfig, openssl }: + +stdenv.mkDerivation rec { + pname = "gnupg-pkcs11-scd"; + version = "0.9.2"; + + src = fetchurl { + url = "https://github.com/alonbl/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.bz2"; + sha256 = "sha256:1mfh9zjbahjd788rq1mzx009pd7p1sq62sbz586rd7szif7pkpgx"; + }; + + buildInputs = [ pkcs11helper pkgconfig openssl ]; + + configureFlags = [ + "--with-libgpg-error-prefix=${libgpgerror.dev}" + "--with-libassuan-prefix=${libassuan.dev}" + "--with-libgcrypt-prefix=${libgcrypt.dev}" + ]; + + meta = with stdenv.lib; { + description = "A smart-card daemon to enable the use of PKCS#11 tokens with GnuPG"; + longDescription = '' + gnupg-pkcs11 is a project to implement a BSD-licensed smart-card + daemon to enable the use of PKCS#11 tokens with GnuPG. + ''; + homepage = http://gnupg-pkcs11.sourceforge.net/; + license = licenses.bsd3; + maintainers = with maintainers; [ lschuermann philandstuff ]; + platforms = platforms.unix; + }; +} + diff --git a/pkgs/tools/security/john/default.nix b/pkgs/tools/security/john/default.nix index dd3a93be995..4107e9fcf14 100644 --- a/pkgs/tools/security/john/default.nix +++ b/pkgs/tools/security/john/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, openssl, nss, nspr, kerberos, gmp, zlib, libpcap, re2 -, gcc, pythonPackages, perl, perlPackages, makeWrapper +, gcc, python3Packages, perl, perlPackages, makeWrapper }: with stdenv.lib; @@ -33,8 +33,9 @@ stdenv.mkDerivation rec { ''; configureFlags = [ "--disable-native-macro" ]; - buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 gcc pythonPackages.wrapPython perl makeWrapper ]; - propagatedBuildInputs = (with pythonPackages; [ dpkt scapy lxml ]) ++ # For pcap2john.py + buildInputs = [ openssl nss nspr kerberos gmp zlib libpcap re2 ]; + nativeBuildInputs = [ gcc python3Packages.wrapPython perl makeWrapper ]; + propagatedBuildInputs = (with python3Packages; [ dpkt scapy lxml ]) ++ # For pcap2john.py (with perlPackages; [ DigestMD4 DigestSHA1 GetoptLong # For pass_gen.pl perlldap ]); # For sha-dump.pl # TODO: Get dependencies for radius2john.pl and lion2john-alt.pl diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix index 559ba0383bd..653858d3696 100644 --- a/pkgs/tools/security/keybase/default.nix +++ b/pkgs/tools/security/keybase/default.nix @@ -1,11 +1,12 @@ -{ stdenv, lib, buildGoPackage, fetchFromGitHub +{ stdenv, substituteAll, lib, buildGoPackage, fetchFromGitHub , AVFoundation, AudioToolbox, ImageIO, CoreMedia , Foundation, CoreGraphics, MediaToolbox +, gnupg }: buildGoPackage rec { pname = "keybase"; - version = "4.6.0"; + version = "4.7.2"; goPackagePath = "github.com/keybase/client"; subPackages = [ "go/keybase" ]; @@ -16,10 +17,18 @@ buildGoPackage rec { owner = "keybase"; repo = "client"; rev = "v${version}"; - sha256 = "1aqj5s3vfji1zl7xdzphnsw3b8pnbg22n9rzdxkcdjf7via5wz2k"; + sha256 = "1ixfq9qv71misg04fvf4892z956w5aydq0r1wk6qk5jjqp6gf4lv"; }; - buildInputs = lib.optionals stdenv.isDarwin [ AVFoundation AudioToolbox ImageIO CoreMedia Foundation CoreGraphics MediaToolbox ]; + patches = [ + (substituteAll { + src = ./fix-paths-keybase.patch; + gpg = "${gnupg}/bin/gpg"; + gpg2 = "${gnupg}/bin/gpg2"; + }) + ]; + + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ AVFoundation AudioToolbox ImageIO CoreMedia Foundation CoreGraphics MediaToolbox ]; buildFlags = [ "-tags production" ]; meta = with stdenv.lib; { diff --git a/pkgs/tools/security/keybase/fix-paths-kbfs.patch b/pkgs/tools/security/keybase/fix-paths-kbfs.patch new file mode 100644 index 00000000000..1180f38b865 --- /dev/null +++ b/pkgs/tools/security/keybase/fix-paths-kbfs.patch @@ -0,0 +1,48 @@ +diff --git a/go/kbfs/libfuse/mounter.go b/go/kbfs/libfuse/mounter.go +index d791ffc2..b116ad5d 100644 +--- a/go/kbfs/libfuse/mounter.go ++++ b/go/kbfs/libfuse/mounter.go +@@ -108,7 +108,7 @@ func (m *mounter) Unmount() (err error) { + case "darwin": + _, err = exec.Command("/sbin/umount", dir).Output() + case "linux": +- fusermountOutput, fusermountErr := exec.Command("fusermount", "-u", dir).CombinedOutput() ++ fusermountOutput, fusermountErr := exec.Command("@fusermount@", "-u", dir).CombinedOutput() + // Only clean up mountdir on a clean unmount. + if fusermountErr == nil { + m.log.Info("Successfully unmounted") +@@ -135,7 +135,7 @@ func (m *mounter) Unmount() (err error) { + "/usr/sbin/diskutil", "unmountDisk", "force", dir).Output() + case "linux": + // Lazy unmount; will unmount when KBFS is no longer in use. +- _, err = exec.Command("fusermount", "-u", "-z", dir).Output() ++ _, err = exec.Command("@fusermount@", "-u", "-z", dir).Output() + default: + err = errors.New("Forced unmount is not supported on this platform yet") + } +diff --git a/go/vendor/bazil.org/fuse/mount_linux.go b/go/vendor/bazil.org/fuse/mount_linux.go +index ec7fd89c..4d0a9e30 100644 +--- a/go/vendor/bazil.org/fuse/mount_linux.go ++++ b/go/vendor/bazil.org/fuse/mount_linux.go +@@ -196,7 +196,7 @@ func mount(dir string, conf *mountConfig, ready chan<- struct{}, _ *error) (fuse + defer readFile.Close() + + cmd := exec.Command( +- "fusermount", ++ "@fusermount@", + "-o", conf.getOptions(), + "--", + dir, +diff --git a/go/vendor/bazil.org/fuse/unmount_linux.go b/go/vendor/bazil.org/fuse/unmount_linux.go +index f02448af..6e4c6c23 100644 +--- a/go/vendor/bazil.org/fuse/unmount_linux.go ++++ b/go/vendor/bazil.org/fuse/unmount_linux.go +@@ -21,7 +21,7 @@ func unmount(dir string) error { + return sysunix.Unmount(dir, sysunix.MNT_DETACH) + } + +- cmd := exec.Command("fusermount", "-u", dir) ++ cmd := exec.Command("@fusermount@", "-u", dir) + output, err := cmd.CombinedOutput() + if err != nil { + if len(output) > 0 { diff --git a/pkgs/tools/security/keybase/fix-paths-keybase.patch b/pkgs/tools/security/keybase/fix-paths-keybase.patch new file mode 100644 index 00000000000..b3de7bbb530 --- /dev/null +++ b/pkgs/tools/security/keybase/fix-paths-keybase.patch @@ -0,0 +1,16 @@ +diff --git a/go/libkb/gpg_cli.go b/go/libkb/gpg_cli.go +index 3c7c6257..ae8f7e2f 100644 +--- a/go/libkb/gpg_cli.go ++++ b/go/libkb/gpg_cli.go +@@ -54,9 +54,9 @@ func (g *GpgCLI) Configure(mctx MetaContext) (err error) { + if len(prog) > 0 { + err = canExec(prog) + } else { +- prog, err = exec.LookPath("gpg2") ++ prog, err = exec.LookPath("@gpg2@") + if err != nil { +- prog, err = exec.LookPath("gpg") ++ prog, err = exec.LookPath("@gpg@") + } + } + if err != nil { diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix index aa4db75cef1..1d32f1cc881 100644 --- a/pkgs/tools/security/keybase/gui.nix +++ b/pkgs/tools/security/keybase/gui.nix @@ -4,16 +4,16 @@ , runtimeShell, gsettings-desktop-schemas }: let - versionSuffix = "20191010154240.134c2d892b"; + versionSuffix = "20191028173732.6fc2e969b4"; in stdenv.mkDerivation rec { pname = "keybase-gui"; - version = "4.6.0"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages + version = "4.7.2"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages src = fetchurl { url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb"; - sha256 = "a25f0c676c00d306859d32e4dad7a23dd4955fa0b352be50c281081f2cf000ae"; + sha256 = "01slhdxcjs1543rz1khxhzn25g26vm9fd9mcyd5ahp2v4g37b8sd"; }; nativeBuildInputs = [ diff --git a/pkgs/tools/security/keybase/kbfs.nix b/pkgs/tools/security/keybase/kbfs.nix index 9448182a65a..93c7bd540d8 100644 --- a/pkgs/tools/security/keybase/kbfs.nix +++ b/pkgs/tools/security/keybase/kbfs.nix @@ -1,4 +1,4 @@ -{ stdenv, buildGoPackage, fetchFromGitHub, keybase }: +{ stdenv, substituteAll, buildGoPackage, fetchFromGitHub, fuse, osxfuse, keybase }: buildGoPackage { pname = "kbfs"; @@ -10,6 +10,13 @@ buildGoPackage { dontRenameImports = true; + patches = [ + (substituteAll { + src = ./fix-paths-kbfs.patch; + fusermount = "${fuse}/bin/fusermount"; + }) + ]; + buildFlags = [ "-tags production" ]; meta = with stdenv.lib; { diff --git a/pkgs/tools/security/theharvester/default.nix b/pkgs/tools/security/theharvester/default.nix index 4a1e92e6104..4153ddafbf4 100644 --- a/pkgs/tools/security/theharvester/default.nix +++ b/pkgs/tools/security/theharvester/default.nix @@ -1,40 +1,36 @@ -{ stdenv, fetchFromGitHub, makeWrapper, python3Packages }: +{ lib, fetchFromGitHub, python3 }: -stdenv.mkDerivation rec { +python3.pkgs.buildPythonApplication rec { pname = "theHarvester"; - version = "3.0.6"; + version = "3.1"; src = fetchFromGitHub { owner = "laramies"; repo = pname; - rev = version; - sha256 = "0f33a7sfb5ih21yp1wspb03fxsls1m14yizgrw0srfirm2a6aa0c"; + rev = "V${version}"; + sha256 = "0lxzxfa9wbzim50d2jmd27i57szd0grm1dfayhnym86jn01qpvn3"; }; - nativeBuildInputs = [ makeWrapper ]; + propagatedBuildInputs = with python3.pkgs; [ + aiodns beautifulsoup4 dns grequests netaddr + plotly pyyaml requests retrying shodan texttable + ]; - # add dependencies - propagatedBuildInputs = with python3Packages; [ requests beautifulsoup4 plotly ]; + checkInputs = [ python3.pkgs.pytest ]; - installPhase = '' - # create dirs - mkdir -p $out/share/${pname} $out/bin + checkPhase = "runHook preCheck ; pytest tests/test_myparser.py ; runHook postCheck"; + # We don't run other tests (discovery modules) because they require network access - # move project code - mv * $out/share/${pname}/ - - # make project runnable - chmod +x $out/share/${pname}/theHarvester.py - ln -s $out/share/${pname}/theHarvester.py $out/bin - - wrapProgram "$out/bin/theHarvester.py" --prefix PYTHONPATH : $out/share/${pname}:$PYTHONPATH - ''; - - meta = with stdenv.lib; { + meta = with lib; { description = "Gather E-mails, subdomains and names from different public sources"; + longDescription = '' + theHarvester is a very simple, yet effective tool designed to be used in the early + stages of a penetration test. Use it for open source intelligence gathering and + helping to determine an entity's external threat landscape on the internet. The tool + gathers emails, names, subdomains, IPs, and URLs using multiple public data sources. + ''; homepage = "https://github.com/laramies/theHarvester"; - platforms = platforms.all; - maintainers = with maintainers; [ treemo ]; + maintainers = with maintainers; [ c0bw3b treemo ]; license = licenses.gpl2; }; } diff --git a/pkgs/tools/system/ps_mem/default.nix b/pkgs/tools/system/ps_mem/default.nix index ad256e36656..bde4429c481 100644 --- a/pkgs/tools/system/ps_mem/default.nix +++ b/pkgs/tools/system/ps_mem/default.nix @@ -1,7 +1,7 @@ { stdenv, pythonPackages, fetchFromGitHub }: let - version = "3.12"; + version = "3.13"; pname = "ps_mem"; in pythonPackages.buildPythonApplication { name = "${pname}-${version}"; @@ -10,7 +10,7 @@ in pythonPackages.buildPythonApplication { owner = "pixelb"; repo = pname; rev = "v${version}"; - sha256 = "0kcxlmfisbwf24p2k72njfyfp22fjr9p9zalg9b4w0yhnlzk24ph"; + sha256 = "0pgi9hvwfbkzvwicqlkwx4rwal1ikza018yxbwpnf7c80zw0zaw9"; }; meta = with stdenv.lib; { diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix index 8cf1b16a37d..5617ed9dc93 100644 --- a/pkgs/tools/system/rsyslog/default.nix +++ b/pkgs/tools/system/rsyslog/default.nix @@ -2,7 +2,7 @@ , libkrb5 ? null, systemd ? null, jemalloc ? null, libmysqlclient ? null, postgresql ? null , libdbi ? null, net_snmp ? null, libuuid ? null, curl ? null, gnutls ? null , libgcrypt ? null, liblognorm ? null, openssl ? null, librelp ? null, libksi ? null -, libgt ? null, liblogging ? null, libnet ? null, hadoop ? null, rdkafka ? null +, liblogging ? null, libnet ? null, hadoop ? null, rdkafka ? null , libmongo-client ? null, czmq ? null, rabbitmq-c ? null, hiredis ? null, mongoc ? null }: @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { buildInputs = [ fastJson libestr json_c zlib pythonPackages.docutils libkrb5 jemalloc postgresql libdbi net_snmp libuuid curl gnutls libgcrypt liblognorm openssl - librelp libgt libksi liblogging libnet hadoop rdkafka libmongo-client czmq + librelp libksi liblogging libnet hadoop rdkafka libmongo-client czmq rabbitmq-c hiredis mongoc ] ++ stdenv.lib.optional (libmysqlclient != null) libmysqlclient ++ stdenv.lib.optional stdenv.isLinux systemd; @@ -73,8 +73,7 @@ stdenv.mkDerivation rec { (mkFlag true "mmpstrucdata") (mkFlag (openssl != null) "mmrfc5424addhmac") (mkFlag (librelp != null) "relp") - (mkFlag (libgt != null) "guardtime") - (mkFlag (libksi != null) "gt-ksi") + (mkFlag (libksi != null) "ksi-ls12") (mkFlag (liblogging != null) "liblogging-stdlog") (mkFlag (liblogging != null) "rfc3195") (mkFlag true "imfile") diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix new file mode 100644 index 00000000000..6050b2a709e --- /dev/null +++ b/pkgs/tools/system/tre-command/default.nix @@ -0,0 +1,24 @@ +{ rustPlatform, fetchFromGitHub, stdenv }: + +rustPlatform.buildRustPackage rec { + pname = "tre"; + version = "0.2.2"; + + src = fetchFromGitHub { + owner = "dduan"; + repo = "tre"; + rev = "v${version}"; + sha256 = "1fazw2wn738iknbv54gv7qll7d4q2gy9bq1s3f3cv21cdv6bqral"; + }; + + cargoSha256 = "0m82zbi610zgvcza6n03xl80g31x6bfkjyrfxcxa6fyf2l5cj9pv"; + verifyCargoDeps = true; + + meta = with stdenv.lib; { + description = "Tree command, improved"; + homepage = "https://github.com/dduan/tre"; + license = licenses.mit; + maintainers = [ maintainers.dduan ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix index a6f38ad0bc2..5b1412f3792 100644 --- a/pkgs/tools/typesetting/pdf2djvu/default.nix +++ b/pkgs/tools/typesetting/pdf2djvu/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, pkgconfig, djvulibre, poppler, fontconfig, libjpeg }: stdenv.mkDerivation rec { - version = "0.9.13"; + version = "0.9.14"; pname = "pdf2djvu"; src = fetchurl { url = "https://github.com/jwilk/pdf2djvu/releases/download/${version}/${pname}-${version}.tar.xz"; - sha256 = "0qscmfii1pvnb8g7kbl1rdiqyic6ybfiw4kwvy35qqi967c1daz0"; + sha256 = "05z2bbg54pfsi668fwcjrcr5iz9llf9gprzdsrn6fw5wjv4876zi"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d443f81d44b..641e7459e0c 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -209,6 +209,7 @@ mapAliases ({ man_db = man-db; # added 2016-05 manpages = man-pages; # added 2015-12-06 mariadb-client = hiPrio mariadb.client; #added 2019.07.28 + mess = mame; # added 2019-10-30 mysql-client = hiPrio mariadb.client; memtest86 = memtest86plus; # added 2019-05-08 mesa_noglu = mesa; # added 2019-05-28 @@ -335,6 +336,7 @@ mapAliases ({ sapic = throw "deprecated 2019-1-19: sapic is bundled with 'tamarin-prover' now"; scim = sc-im; # added 2016-01-22 scollector = bosun; # added 2018-04-25 + sdlmame = mame; # added 2019-10-30 shared_mime_info = shared-mime-info; # added 2018-02-25 skrooge2 = skrooge; # added 2017-02-18 skype = skypeforlinux; # added 2017-07-27 @@ -392,8 +394,9 @@ mapAliases ({ ultrastardx-beta = ultrastardx; # added 2017-08-12 usb_modeswitch = usb-modeswitch; # added 2016-05-10 usbguard-nox = usbguard; # added 2019-09-04 - valadoc = throw "deprecated 2019-10-10: valadoc was merged into vala 0.38"; v4l_utils = v4l-utils; # added 2019-08-07 + v8_3_16_14 = throw "removed 2019-11-01: no longer referenced by other packages"; + valadoc = throw "deprecated 2019-10-10: valadoc was merged into vala 0.38"; vimbWrapper = vimb; # added 2015-01 vimprobable2Wrapper = vimprobable2; # added 2015-01 virtviewer = virt-viewer; # added 2015-12-24 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 24b3e1d3d23..880c70ed230 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -877,6 +877,8 @@ in gitter = callPackage ../applications/networking/instant-messengers/gitter { }; + gjs = callPackage ../development/libraries/gjs { }; + glasgow = with python3Packages; toPythonApplication glasgow; gucci = callPackage ../tools/text/gucci { }; @@ -1557,6 +1559,8 @@ in doitlive = callPackage ../tools/misc/doitlive { }; + dokuwiki = callPackage ../servers/web-apps/dokuwiki { }; + dosage = callPackage ../applications/graphics/dosage { pythonPackages = python3Packages; }; @@ -1904,6 +1908,8 @@ in nfdump = callPackage ../tools/networking/nfdump { }; + nfstrace = callPackage ../tools/networking/nfstrace { }; + nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools; noteshrink = callPackage ../tools/misc/noteshrink { }; @@ -2035,7 +2041,6 @@ in liblognorm = null; openssl = null; librelp = null; - libgt = null; libksi = null; liblogging = null; libnet = null; @@ -3523,7 +3528,7 @@ in gnome-podcasts = callPackage ../applications/audio/gnome-podcasts { }; gnome-photos = callPackage ../applications/graphics/gnome-photos { - gegl = gnome3.gegl_0_4; + gegl = gegl_0_4; }; gnokii = callPackage ../tools/misc/gnokii { }; @@ -3557,6 +3562,8 @@ in }; gnupg = gnupg22; + gnupg-pkcs11-scd = callPackage ../tools/security/gnupg-pkcs11-scd { }; + gnuplot = libsForQt5.callPackage ../tools/graphics/gnuplot { }; gnuplot_qt = gnuplot.override { withQt = true; }; @@ -5599,7 +5606,7 @@ in pinentry-emacs = (stdenv.lib.getOutput "emacs" pinentry); pinentry-gtk2 = (stdenv.lib.getOutput "gtk2" pinentry); pinentry-qt = (stdenv.lib.getOutput "qt" pinentry); - pinentry-gnome = (stdenv.lib.getOutput "gnome" pinentry); + pinentry-gnome = (stdenv.lib.getOutput "gnome3" pinentry); pinentry_mac = callPackage ../tools/security/pinentry/mac.nix { inherit (darwin.apple_sdk.frameworks) Cocoa; @@ -5680,6 +5687,8 @@ in polkit_gnome = callPackage ../tools/security/polkit-gnome { }; + poly2tri-c = callPackage ../development/libraries/poly2tri-c { }; + polysh = callPackage ../tools/networking/polysh { }; ponysay = callPackage ../tools/misc/ponysay { }; @@ -7119,13 +7128,13 @@ in valum = callPackage ../development/web/valum { }; inherit (callPackages ../servers/varnish { }) - varnish4 varnish5 varnish6; + varnish60 varnish62 varnish63; inherit (callPackages ../servers/varnish/packages.nix { }) - varnish4Packages - varnish5Packages - varnish6Packages; + varnish60Packages + varnish62Packages + varnish63Packages; - varnishPackages = varnish5Packages; + varnishPackages = varnish63Packages; varnish = varnishPackages.varnish; hitch = callPackage ../servers/hitch { }; @@ -8523,6 +8532,9 @@ in cargo-bloat = callPackage ../development/tools/rust/cargo-bloat { }; cargo-expand = callPackage ../development/tools/rust/cargo-expand { }; cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { }; + cargo-geiger = callPackage ../development/tools/rust/cargo-geiger { + inherit (darwin.apple_sdk.frameworks) Security; + }; cargo-inspect = callPackage ../development/tools/rust/cargo-inspect { inherit (darwin.apple_sdk.frameworks) Security; }; @@ -8656,6 +8668,8 @@ in vlang = callPackage ../development/compilers/vlang { }; + vala-lint = callPackage ../development/tools/vala-lint { }; + inherit (callPackage ../development/compilers/vala { }) vala_0_36 vala_0_40 @@ -9540,6 +9554,8 @@ in cmakeWithGui = cmakeCurses.override { withQt5 = true; }; cmakeWithQt4Gui = cmakeCurses.override { useQt4 = true; }; + cmake-format = python3Packages.callPackage ../development/tools/cmake-format { }; + # Does not actually depend on Qt 5 inherit (kdeFrameworks) extra-cmake-modules kapidox kdoctools; @@ -11072,7 +11088,7 @@ in }; gegl_0_4 = callPackage ../development/libraries/gegl/4.0.nix { - gtk = res.gtk2; + inherit (darwin.apple_sdk.frameworks) OpenCL; }; geoclue2 = callPackage ../development/libraries/geoclue {}; @@ -13727,6 +13743,8 @@ in SDL_net = callPackage ../development/libraries/SDL_net { }; + SDL_Pango = callPackage ../development/libraries/SDL_Pango {}; + SDL_sound = callPackage ../development/libraries/SDL_sound { }; SDL_stretch= callPackage ../development/libraries/SDL_stretch { }; @@ -14170,12 +14188,6 @@ in stdenv = gcc5Stdenv; }; - v8_3_16_14 = callPackage ../development/libraries/v8/3.16.14.nix { - inherit (python2Packages) python gyp; - cctools = darwin.cctools; - stdenv = if stdenv.isDarwin then stdenv else gcc5Stdenv; - }; - v8_5_x = callPackage ../development/libraries/v8/5_x.nix ({ inherit (python2Packages) python gyp; icu = icu58; # v8-5.4.232 fails against icu4c-59.1 @@ -15671,6 +15683,8 @@ in bt-fw-converter = callPackage ../os-specific/linux/firmware/bt-fw-converter { }; + brillo = callPackage ../os-specific/linux/brillo { }; + broadcom-bt-firmware = callPackage ../os-specific/linux/firmware/broadcom-bt-firmware { }; batctl = callPackage ../os-specific/linux/batman-adv/batctl.nix { }; @@ -15915,9 +15929,7 @@ in kmscube = callPackage ../os-specific/linux/kmscube { }; - kmsxx = callPackage ../development/libraries/kmsxx { - stdenv = gcc6Stdenv; - }; + kmsxx = callPackage ../development/libraries/kmsxx { }; latencytop = callPackage ../os-specific/linux/latencytop { }; @@ -16134,6 +16146,8 @@ in deepin-anything = callPackage ../os-specific/linux/deepin-anything { }; + digimend = callPackage ../os-specific/linux/digimend { }; + dpdk = callPackage ../os-specific/linux/dpdk { }; exfat-nofuse = callPackage ../os-specific/linux/exfat { }; @@ -17197,6 +17211,8 @@ in # lohit-fonts.kashmiri lohit-fonts.konkani lohit-fonts.maithili lohit-fonts.sindhi lohit-fonts = recurseIntoAttrs ( callPackages ../data/fonts/lohit-fonts { } ); + lounge-gtk-theme = callPackage ../data/themes/lounge { }; + luculent = callPackage ../data/fonts/luculent { }; maia-icon-theme = callPackage ../data/icons/maia-icon-theme { }; @@ -17471,6 +17487,8 @@ in gtk = res.gtk2; }; + theme-jade1 = callPackage ../data/themes/jade1 { }; + theme-obsidian2 = callPackage ../data/themes/obsidian2 { }; themes = name: callPackage (../data/misc/themes + ("/" + name + ".nix")) {}; @@ -18282,6 +18300,7 @@ in emacs = emacs26; emacsPackages = emacs26Packages; + emacs-nox = emacs26-nox; emacs26 = callPackage ../applications/editors/emacs { # use override to enable additional features @@ -18421,6 +18440,8 @@ in keepass-keepassrpc = callPackage ../applications/misc/keepass-plugins/keepassrpc { }; + keepass-otpkeyprov = callPackage ../applications/misc/keepass-plugins/otpkeyprov { }; + exrdisplay = callPackage ../applications/graphics/exrdisplay { }; exrtools = callPackage ../applications/graphics/exrtools { }; @@ -19248,7 +19269,6 @@ in inkscape = callPackage ../applications/graphics/inkscape { lcms = lcms2; - poppler = poppler_0_61; }; inspectrum = libsForQt5.callPackage ../applications/radio/inspectrum { }; @@ -21305,6 +21325,8 @@ in tdrop = callPackage ../applications/misc/tdrop { }; + tre-command = callPackage ../tools/system/tre-command {}; + tree = callPackage ../tools/system/tree {}; treesheets = callPackage ../applications/office/treesheets { wxGTK = wxGTK31; }; @@ -21671,34 +21693,64 @@ in in with libretro; ([ ] ++ optional (cfg.enable4do or false) _4do + ++ optional (cfg.enableAtari800 or false) atari800 + ++ optional (cfg.enableBeetleGBA or false) beetle-gba + ++ optional (cfg.enableBeetleLynx or false) beetle-lynx + ++ optional (cfg.enableBeetleNGP or false) beetle-ngp ++ optional (cfg.enableBeetlePCEFast or false) beetle-pce-fast + ++ optional (cfg.enableBeetlePCFX or false) beetle-pcfx ++ optional (cfg.enableBeetlePSX or false) beetle-psx ++ optional (cfg.enableBeetleSaturn or false) beetle-saturn + ++ optional (cfg.enableBeetleSNES or false) beetle-snes + ++ optional (cfg.enableBeetleSuperGrafx or false) beetle-supergrafx + ++ optional (cfg.enableBeetleWswan or false) beetle-wswan + ++ optional (cfg.enableBeetleVB or false) beetle-vb + ++ optional (cfg.enableBlueMSX or false) bluemsx ++ optional (cfg.enableBsnesMercury or false) bsnes-mercury + ++ optional (cfg.enableDOSBox or false) dosbox ++ optional (cfg.enableDesmume or false) desmume + ++ optional (cfg.enableDesmume2015 or false) desmume2015 ++ optional (cfg.enableDolphin or false) dolphin ++ optional (cfg.enableFBA or false) fba ++ optional (cfg.enableFceumm or false) fceumm + ++ optional (cfg.enableFlycast or false) flycast ++ optional (cfg.enableGambatte or false) gambatte ++ optional (cfg.enableGenesisPlusGX or false) genesis-plus-gx + ++ optional (cfg.enableGpsp or false) gpsp + ++ optional (cfg.enableHandy or false) handy + ++ optional (cfg.enableHatari or false) hatari ++ optional (cfg.enableHiganSFC or false) higan-sfc ++ optional (cfg.enableMAME or false) mame + ++ optional (cfg.enableMAME2000 or false) mame2000 + ++ optional (cfg.enableMAME2003 or false) mame2003 + ++ optional (cfg.enableMAME2003Plus or false) mame2003-plus + ++ optional (cfg.enableMAME2010 or false) mame2010 + ++ optional (cfg.enableMAME2015 or false) mame2015 + ++ optional (cfg.enableMAME2016 or false) mame2016 + ++ optional (cfg.enableMesen or false) mesen ++ optional (cfg.enableMGBA or false) mgba ++ optional (cfg.enableMupen64Plus or false) mupen64plus ++ optional (cfg.enableNestopia or false) nestopia + ++ optional (cfg.enableO2EM or false) o2em ++ optional (cfg.enableParallelN64 or false) parallel-n64 + ++ optional (cfg.enablePCSXRearmed or false) pcsx_rearmed ++ optional (cfg.enablePicodrive or false) picodrive - ++ optional (cfg.enablePrboom or false) prboom + ++ optional (cfg.enablePlay or false) play ++ optional (cfg.enablePPSSPP or false) ppsspp + ++ optional (cfg.enablePrboom or false) prboom + ++ optional (cfg.enableProSystem or false) prosystem ++ optional (cfg.enableQuickNES or false) quicknes - ++ optional (cfg.enableReicast or false) reicast ++ optional (cfg.enableScummVM or false) scummvm ++ optional (cfg.enableSnes9x or false) snes9x - ++ optional (cfg.enableSnes9xNext or false) snes9x-next + ++ optional (cfg.enableSnes9x2002 or false) snes9x2002 + ++ optional (cfg.enableSnes9x2005 or false) snes9x2005 + ++ optional (cfg.enableSnes9x2010 or false) snes9x2010 ++ optional (cfg.enableStella or false) stella ++ optional (cfg.enableVbaNext or false) vba-next ++ optional (cfg.enableVbaM or false) vba-m - + ++ optional (cfg.enableVecx or false) vecx + ++ optional (cfg.enableVirtualJaguar or false) virtualjaguar + ++ optional (cfg.enableYabause or false) yabause # added on 2017-02-25 due #23163 ++ optional (cfg.enableMednafenPCEFast or false) (throw "nix config option enableMednafenPCEFast has been renamed to enableBeetlePCEFast") @@ -22125,8 +22177,6 @@ in inherit (darwin.apple_sdk.frameworks) IOKit; }; - jormungandr = callPackage ../applications/blockchains/jormungandr { }; - ledger-live-desktop = callPackage ../applications/blockchains/ledger-live-desktop { }; litecoin = callPackage ../applications/blockchains/litecoin.nix { @@ -22439,6 +22489,8 @@ in frogatto = callPackage ../games/frogatto { }; + frozen-bubble = callPackage ../games/frozen-bubble { }; + fsg = callPackage ../games/fsg { wxGTK = wxGTK28.override { unicode = false; }; }; @@ -22777,8 +22829,6 @@ in scrolls = callPackage ../games/scrolls { }; - sdlmame = callPackage ../games/sdlmame { }; - service-wrapper = callPackage ../os-specific/linux/service-wrapper { }; sgtpuzzles = callPackage (callPackage ../games/sgt-puzzles) { }; @@ -22855,7 +22905,7 @@ in superTuxKart = callPackage ../games/super-tux-kart { }; - synthv1 = callPackage ../applications/audio/synthv1 { }; + synthv1 = libsForQt5.callPackage ../applications/audio/synthv1 { }; system-syzygy = callPackage ../games/system-syzygy { }; @@ -23088,6 +23138,7 @@ in icon-hider = callPackage ../desktops/gnome-3/extensions/icon-hider { }; impatience = callPackage ../desktops/gnome-3/extensions/impatience.nix { }; mpris-indicator-button = callPackage ../desktops/gnome-3/extensions/mpris-indicator-button { }; + night-theme-switcher = callPackage ../desktops/gnome-3/extensions/night-theme-switcher { }; no-title-bar = callPackage ../desktops/gnome-3/extensions/no-title-bar { }; pidgin-im-integration = callPackage ../desktops/gnome-3/extensions/pidgin-im-integration { }; remove-dropdown-arrows = callPackage ../desktops/gnome-3/extensions/remove-dropdown-arrows { }; @@ -23156,8 +23207,6 @@ in onestepback = callPackage ../misc/themes/onestepback { }; - theme-jade1 = callPackage ../misc/themes/jade1 { }; - theme-vertex = callPackage ../misc/themes/vertex { }; rox-filer = callPackage ../desktops/rox/rox-filer { @@ -23275,6 +23324,8 @@ in dcm2niix = callPackage ../applications/science/biology/dcm2niix { }; + deeptools = callPackage ../applications/science/biology/deeptools { python = python3; }; + delly = callPackage ../applications/science/biology/delly { }; diamond = callPackage ../applications/science/biology/diamond { }; @@ -24349,11 +24400,9 @@ in icu = icu58; }; - martyr = callPackage ../development/libraries/martyr { }; + mame = libsForQt5.callPackage ../misc/emulators/mame { }; - mess = callPackage ../misc/emulators/mess { - inherit (pkgs.gnome2) GConf; - }; + martyr = callPackage ../development/libraries/martyr { }; moltengamepad = callPackage ../misc/drivers/moltengamepad { }; @@ -24543,7 +24592,8 @@ in nix-prefetch = callPackage ../tools/package-management/nix-prefetch { }; - nix-prefetch-github = callPackage ../build-support/nix-prefetch-github {}; + nix-prefetch-github = with python3Packages; + toPythonApplication nix-prefetch-github; inherit (callPackages ../tools/package-management/nix-prefetch-scripts { }) nix-prefetch-bzr diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 61822351ee2..d7bf30946ff 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -209,6 +209,27 @@ let }; }; + AlienSDL = buildPerlModule { + pname = "Alien-SDL"; + version = "1.446"; + src = fetchurl { + url = "mirror://cpan/authors/id/F/FR/FROGGS/Alien-SDL-1.446.tar.gz"; + sha256 = "c9aa2c9dc3c63d89773c7d7203f2a46d1b924d0c72d9f801af147a3dc8bc512a"; + }; + patches = [ ../development/perl-modules/alien-sdl.patch ]; + + installPhase = "./Build install --prefix $out"; + + SDL_INST_DIR = pkgs.SDL.dev; + buildInputs = [ ArchiveExtract ArchiveZip TextPatch pkgs.SDL ]; + propagatedBuildInputs = [ CaptureTiny FileShareDir FileWhich ]; + + meta = { + description = "Get, Build and Use SDL libraries"; + license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; + }; + }; + AlienTidyp = buildPerlModule { pname = "Alien-Tidyp"; version = "1.4.7"; @@ -3580,6 +3601,23 @@ let buildInputs = [ CryptOpenSSLGuess ]; }; + CryptOpenSSLX509 = buildPerlPackage rec { + pname = "Crypt-OpenSSL-X509"; + version = "1.813"; + src = fetchurl { + url = "mirror://cpan/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.813.tar.gz"; + sha256 = "684bd888d2ed4c748f8f6dd8e87c14afa2974b12ee01faa082ad9cfa1e321e62"; + }; + NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include"; + NIX_CFLAGS_LINK = "-L${pkgs.openssl.out}/lib -lcrypto"; + meta = { + homepage = "https://github.com/dsully/perl-crypt-openssl-x509"; + description = "Perl extension to OpenSSL's X509 API"; + license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; + maintainers = [ maintainers.sgo ]; + }; + }; + CryptPBKDF2 = buildPerlPackage { pname = "Crypt-PBKDF2"; version = "0.161520"; @@ -11678,10 +11716,10 @@ let MojoSQLite = buildPerlModule { pname = "Mojo-SQLite"; - version = "3.002"; + version = "3.003"; src = fetchurl { - url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.002.tar.gz"; - sha256 = "16dn0p14i6r4c8aspvkp7rfry3zy7kr2ffcmncj0pqygk62miinp"; + url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.003.tar.gz"; + sha256 = "d96c00dcf45e2becc8e8181df074853d42616f2a660703455d0e0a2741478092"; }; buildInputs = [ ModuleBuildTiny ]; propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstract URIdb ]; @@ -15415,6 +15453,24 @@ let }; }; + SDL = buildPerlModule { + pname = "SDL"; + version = "2.548"; + src = fetchurl { + url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz"; + sha256 = "252a192bfa9c2070a4883707d139c3a45d9c4518ccd66a1e699b5b7959bd4fb5"; + }; + perlPreHook = "export LD=$CC"; + preCheck = "rm t/core_audiospec.t"; + buildInputs = [ AlienSDL CaptureTiny TestDeep TestDifferences TestException TestMost TestWarn ] + ++ (with pkgs; [ SDL SDL_gfx SDL_mixer SDL_image SDL_ttf SDL_Pango SDL_net ] ); + propagatedBuildInputs = [ FileShareDir TieSimple ]; + meta = { + description = "SDL bindings to Perl"; + license = stdenv.lib.licenses.lgpl21Plus; + }; + }; + SerealDecoder = buildPerlPackage { pname = "Sereal-Decoder"; version = "4.007"; @@ -18667,6 +18723,20 @@ let }; }; + TextPatch = buildPerlPackage { + pname = "Text-Patch"; + version = "1.8"; + src = fetchurl { + url = "mirror://cpan/authors/id/C/CA/CADE/Text-Patch-1.8.tar.gz"; + sha256 = "eaf18e61ba6a3e143846a7cc66f08ce58a0c4fbda92acb31aede25cb3b5c3dcc"; + }; + propagatedBuildInputs = [ TextDiff ]; + meta = { + description = "Patches text with given patch"; + license = stdenv.lib.licenses.gpl2; + }; + }; + TextPDF = buildPerlPackage { pname = "Text-PDF"; version = "0.31"; @@ -19122,6 +19192,19 @@ let }; }; + TieSimple = buildPerlPackage { + pname = "Tie-Simple"; + version = "1.04"; + src = fetchurl { + url = "mirror://cpan/authors/id/H/HA/HANENKAMP/Tie-Simple-1.04.tar.gz"; + sha256 = "29e9e2133951046c78f205f1b3e8df62c90e114f0e08fa06b817766a0f808b12"; + }; + meta = { + description = "Variable ties made much easier: much, much, much easier.."; + license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ]; + }; + }; + TieSub = buildPerlPackage { pname = "Tie-Sub"; version = "1.001"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8fbe53f7904..d776e80a9e3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -521,6 +521,8 @@ in { deap = callPackage ../development/python-modules/deap { }; + deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { }; + dkimpy = callPackage ../development/python-modules/dkimpy { }; dictionaries = callPackage ../development/python-modules/dictionaries { }; @@ -715,7 +717,7 @@ in { jwcrypto = callPackage ../development/python-modules/jwcrypto { }; kconfiglib = callPackage ../development/python-modules/kconfiglib { }; - + labelbox = callPackage ../development/python-modules/labelbox { }; lammps-cython = callPackage ../development/python-modules/lammps-cython { @@ -917,7 +919,7 @@ in { pybullet = callPackage ../development/python-modules/pybullet { }; pycairo = callPackage ../development/python-modules/pycairo { - inherit (pkgs) pkgconfig; + inherit (pkgs) meson pkgconfig; }; pycategories = callPackage ../development/python-modules/pycategories { }; @@ -977,7 +979,7 @@ in { }; pygobject3 = callPackage ../development/python-modules/pygobject/3.nix { - inherit (pkgs) pkgconfig; + inherit (pkgs) meson pkgconfig; }; pygtail = callPackage ../development/python-modules/pygtail { }; @@ -1701,6 +1703,11 @@ in { dugong = callPackage ../development/python-modules/dugong {}; + easysnmp = callPackage ../development/python-modules/easysnmp { + openssl = pkgs.openssl; + net_snmp = pkgs.net_snmp; + }; + iowait = callPackage ../development/python-modules/iowait {}; responses = callPackage ../development/python-modules/responses {}; @@ -1709,6 +1716,8 @@ in { proboscis = callPackage ../development/python-modules/proboscis {}; + poster3 = callPackage ../development/python-modules/poster3 { }; + py4j = callPackage ../development/python-modules/py4j { }; pyechonest = callPackage ../development/python-modules/pyechonest { }; @@ -2461,7 +2470,7 @@ in { grip = callPackage ../development/python-modules/grip { }; gst-python = callPackage ../development/python-modules/gst-python { - inherit (pkgs) pkgconfig; + inherit (pkgs) meson pkgconfig; gst-plugins-base = pkgs.gst_all_1.gst-plugins-base; }; @@ -2531,6 +2540,8 @@ in { iniparse = callPackage ../development/python-modules/iniparse { }; + intreehooks = callPackage ../development/python-modules/intreehooks { }; + i3-py = callPackage ../development/python-modules/i3-py { }; JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi {}; @@ -2784,7 +2795,7 @@ in { python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { }; pythonix = callPackage ../development/python-modules/pythonix { - inherit (pkgs) pkgconfig; + inherit (pkgs) meson pkgconfig; }; pyramid = callPackage ../development/python-modules/pyramid { }; @@ -3841,6 +3852,16 @@ in { mesa = callPackage ../development/python-modules/mesa { }; + meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override { + python3Packages = self; + }).overrideAttrs(oldAttrs: { + # We do not want the setup hook in Python packages + # because the build is performed differently. + setupHook = null; + }))); + + mesonpep517 = callPackage ../development/python-modules/mesonpep517 { }; + metaphone = callPackage ../development/python-modules/metaphone { }; mezzanine = callPackage ../development/python-modules/mezzanine { }; @@ -3893,6 +3914,8 @@ in { moderngl = callPackage ../development/python-modules/moderngl { }; + moderngl-window = callPackage ../development/python-modules/moderngl_window { }; + modestmaps = callPackage ../development/python-modules/modestmaps { }; # Needed here because moinmoin is loaded as a Python library. @@ -4318,12 +4341,13 @@ in { kmapper = callPackage ../development/python-modules/kmapper { }; - kmsxx = (callPackage ../development/libraries/kmsxx { + kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx { inherit (pkgs.kmsxx) stdenv; inherit (pkgs) pkgconfig; + withPython = true; }).overrideAttrs (oldAttrs: { name = "${python.libPrefix}-${pkgs.kmsxx.name}"; - }); + })); precis-i18n = callPackage ../development/python-modules/precis-i18n { }; @@ -4445,6 +4469,10 @@ in { pybfd = callPackage ../development/python-modules/pybfd { }; + pybigwig = callPackage ../development/python-modules/pybigwig { }; + + py2bit = callPackage ../development/python-modules/py2bit { }; + pyblock = callPackage ../development/python-modules/pyblock { }; pyblosxom = callPackage ../development/python-modules/pyblosxom { }; diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix index ed2321887a7..c1abb67e256 100644 --- a/pkgs/top-level/ruby-packages.nix +++ b/pkgs/top-level/ruby-packages.nix @@ -2466,17 +2466,6 @@ }; version = "1.8.0"; }; - therubyracer = { - dependencies = ["libv8" "ref"]; - groups = ["default"]; - platforms = []; - source = { - remotes = ["https://rubygems.org"]; - sha256 = "1g95bzs2axjglyjyj6xvsywqgr80bnzlkw7mddxx1fdrak5wni2q"; - type = "gem"; - }; - version = "0.12.3"; - }; thor = { groups = ["default"]; platforms = [];