Question: <ins> From 8d3cd578f9c0a36d29411c96fa70402a7a56d502 Mon Sep 17 00:00:00 2001 From: Evgeni Burovski <evgeni@burovski.me> Date: Sun, 8 Nov 2015 15:27:22 +0000 Subject: [PATCH] MAINT: update decorators.py module to version 4.0.5 This is commit d6abda0 at https://github.com/micheles/decorator/tree/4.0.5 --- scipy/_lib/decorator.py | 380 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 293 insertions(+), 87 deletions(-) diff --git a/scipy/_lib/decorator.py b/scipy/_lib/decorator.py index 07d9d21..05f7056 100644 --- a/scipy/_lib/decorator.py +++ b/scipy/_lib/decorator.py @@ -1,48 +1,52 @@ -##########################     LICENCE     ############################### -## -##   Copyright (c) 2005-2011, Michele Simionato -##   All rights reserved. -## -##   Redistributions of source code must retain the above copyright -##   notice, this list of conditions and the following disclaimer. -##   Redistributions in bytecode form must reproduce the above copyright -##   notice, this list of conditions and the following disclaimer in -##   the documentation and/or other materials provided with the -##   distribution. - -##   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -##   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -##   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -##   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -##   HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -##   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -##   BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -##   OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -##   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -##   TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -##   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -##   DAMAGE. +# #########################     LICENSE     ############################ # + +# Copyright (c) 2005-2015, Michele Simionato +# All rights reserved. + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: + +#   Redistributions of source code must retain the above copyright +#   notice, this list of conditions and the following disclaimer. +#   Redistributions in bytecode form must reproduce the above copyright +#   notice, this list of conditions and the following disclaimer in +#   the documentation and/or other materials provided with the +#   distribution. + +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. """ Decorator module, see http://pypi.python.org/pypi/decorator for the documentation. """ +from __future__ import print_function -from __future__ import division, print_function, absolute_import - -__version__ = '3.3.2' - -__all__ = ["decorator", "FunctionMaker"] - -import sys import re +import sys import inspect -from functools import partial +import operator +import itertools +import collections -from scipy._lib.six import exec_ +__version__ = '4.0.5' if sys.version >= '3': from inspect import getfullargspec + +    def get_init(cls): +        return cls.__init__ else: class getfullargspec(object): "A quick and dirty replacement for getfullargspec for Python 2.X" @@ -51,7 +55,6 @@ else: inspect.getargspec(f) self.kwonlyargs = [] self.kwonlydefaults = None -            self.annotations = getattr(f, '__annotations__', {}) def __iter__(self): yield self.args @@ -59,17 +62,35 @@ else: yield self.varkw yield self.defaults -DEF = re.compile('s*defs*([_w][_wd]*)s*(') +        getargspec = inspect.getargspec + +    def get_init(cls): +        return cls.__init__.__func__ + +# getargspec has been deprecated in Python 3.5 +ArgSpec = collections.namedtuple( +    'ArgSpec', 'args varargs varkw defaults') -# basic functionality +def getargspec(f): +    """A replacement for inspect.getargspec""" +    spec = getfullargspec(f) +    return ArgSpec(spec.args, spec.varargs, spec.varkw, spec.defaults) +DEF = re.compile('s*defs*([_w][_wd]*)s*(') + + +# basic functionality class FunctionMaker(object): """ An object with the ability to create functions with a given signature. It has attributes name, doc, module, signature, defaults, dict and methods update and make. """ + +    # Atomic get-and-increment provided by the GIL +    _compile_count = itertools.count() + def __init__(self, func=None, name=None, signature=None, defaults=None, doc=None, module=None, funcdict=None): self.shortsignature = signature @@ -82,22 +103,32 @@ class FunctionMaker(object): self.module = func.__module__ if inspect.isfunction(func): argspec = getfullargspec(func) +                self.annotations = getattr(func, '__annotations__', {}) for a in ('args', 'varargs', 'varkw', 'defaults', 'kwonlyargs', -                          'kwonlydefaults', 'annotations'): +                          'kwonlydefaults'): setattr(self, a, getattr(argspec, a)) for i, arg in enumerate(self.args): setattr(self, 'arg%d' % i, arg) -                self.signature = inspect.formatargspec( -                    formatvalue=lambda val: "", *argspec)[1:-1] -                allargs = list(self.args) -                if self.varargs: -                    allargs.append('*' + self.varargs) -                if self.varkw: -                    allargs.append('**' + self.varkw) -                try: -                    self.shortsignature = ', '.join(allargs) -                except TypeError:  # exotic signature, valid only in Python 2.X -                    self.shortsignature = self.signature +                if sys.version < '3':  # easy way +                    self.shortsignature = self.signature = ( +                        inspect.formatargspec( +                            formatvalue=lambda val: "", *argspec)[1:-1]) +                else:  # Python 3 way +                    allargs = list(self.args) +                    allshortargs = list(self.args) +                    if self.varargs: +                        allargs.append('*' + self.varargs) +                        allshortargs.append('*' + self.varargs) +                    elif self.kwonlyargs: +                        allargs.append('*')  # single star syntax +                    for a in self.kwonlyargs: +                        allargs.append('%s=None' % a) +                        allshortargs.append('%s=%s' % (a, a)) +                    if self.varkw: +                        allargs.append('**' + self.varkw) +                        allshortargs.append('**' + self.varkw) +                    self.signature = ', '.join(allargs) +                    self.shortsignature = ', '.join(allshortargs) self.dict = func.__dict__.copy() # func=None happens when decorating a caller if name: @@ -122,12 +153,15 @@ class FunctionMaker(object): func.__name__ = self.name func.__doc__ = getattr(self, 'doc', None) func.__dict__ = getattr(self, 'dict', {}) -        if sys.version_info[0] >= 3: -            func.__defaults__ = getattr(self, 'defaults', ()) -        else: -            func.func_defaults = getattr(self, 'defaults', ()) +        func.__defaults__ = getattr(self, 'defaults', ()) func.__kwdefaults__ = getattr(self, 'kwonlydefaults', None) -        callermodule = sys._getframe(3).f_globals.get('__name__', '?') +        func.__annotations__ = getattr(self, 'annotations', None) +        try: +            frame = sys._getframe(3) +        except AttributeError:  # for IronPython and similar implementations +            callermodule = '?' +        else: +            callermodule = frame.f_globals.get('__name__', '?') func.__module__ = getattr(self, 'module', callermodule) func.__dict__.update(kw) @@ -140,16 +174,20 @@ class FunctionMaker(object): raise SyntaxError('not a valid function templaten%s' % src) name = mo.group(1)  # extract the function name names = set([name] + [arg.strip(' *') for arg in -                             self.shortsignature.split(',')]) +                              self.shortsignature.split(',')]) for n in names: if n in ('_func_', '_call_'): raise NameError('%s is overridden inn%s' % (n, src)) if not src.endswith('n'):  # add a newline just for safety src += 'n'  # this is needed in old versions of Python + +        # Ensure each generated function has a unique filename for profilers +        # (such as cProfile) that depend on the tuple of (<filename>, +        # <definition line>, <function name>) being unique. +        filename = '<decorator-gen-%d>' % (next(self._compile_count),) try: -            code = compile(src, '<string>', 'single') -            # print >> sys.stderr, 'Compiling %s' % src -            exec_(code, evaldict) +            code = compile(src, filename, 'single') +            exec(code, evaldict) except: print('Error in generated code:', file=sys.stderr) print(src, file=sys.stderr) @@ -165,9 +203,9 @@ class FunctionMaker(object): doc=None, module=None, addsource=True, **attrs): """ Create a function from the strings name, signature and body. -        evaldict is the evaluation dictionary. If addsource is true an attribute -        __source__ is added to the result. The attributes attrs are added, -        if any. +        evaldict is the evaluation dictionary. If addsource is true an +        attribute __source__ is added to the result. The attributes attrs +        are added, if any. """ if isinstance(obj, str):  # "name(signature)" name, rest = obj.strip().split('(', 1) @@ -180,37 +218,205 @@ class FunctionMaker(object): self = cls(func, name, signature, defaults, doc, module) ibody = 'n'.join('    ' + line for line in body.splitlines()) return self.make('def %(name)s(%(signature)s):n' + ibody, -                        evaldict, addsource, **attrs) +                         evaldict, addsource, **attrs) -def decorator(caller, func=None): +def decorate(func, caller): """ -    decorator(caller) converts a caller function into a decorator; -    decorator(caller, func) decorates a function using a caller. +    decorate(func, caller) decorates a function using a caller. """ -    if func is not None:  # returns a decorated function -        if sys.version_info[0] >= 3: -            evaldict = func.__globals__.copy() +    evaldict = func.__globals__.copy() +    evaldict['_call_'] = caller +    evaldict['_func_'] = func +    fun = FunctionMaker.create( +        func, "return _call_(_func_, %(shortsignature)s)", +        evaldict, __wrapped__=func) +    if hasattr(func, '__qualname__'): +        fun.__qualname__ = func.__qualname__ +    return fun + + +def decorator(caller, _func=None): +    """decorator(caller) converts a caller function into a decorator""" +    if _func is not None:  # return a decorated function +        # this is obsolete behavior; you should use decorate instead +        return decorate(_func, caller) +    # else return a decorator function +    if inspect.isclass(caller): +        name = caller.__name__.lower() +        callerfunc = get_init(caller) +        doc = 'decorator(%s) converts functions/generators into '  +            'factories of %s objects' % (caller.__name__, caller.__name__) +    elif inspect.isfunction(caller): +        if caller.__name__ == '<lambda>': +            name = '_lambda_' else: -            evaldict = func.func_globals.copy() -        evaldict['_call_'] = caller -        evaldict['_func_'] = func +            name = caller.__name__ +        callerfunc = caller +        doc = caller.__doc__ +    else:  # assume caller is an object with a __call__ method +        name = caller.__class__.__name__.lower() +        callerfunc = caller.__call__.__func__ +        doc = caller.__call__.__doc__ +    evaldict = callerfunc.__globals__.copy() +    evaldict['_call_'] = caller +    evaldict['_decorate_'] = decorate +    return FunctionMaker.create( +        '%s(func)' % name, 'return _decorate_(func, _call_)', +        evaldict, doc=doc, module=caller.__module__, +        __wrapped__=caller) + + +# ####################### contextmanager ####################### # + +try:  # Python >= 3.2 +    from contextlib import _GeneratorContextManager +except ImportError:  # Python >= 2.5 +    from contextlib import GeneratorContextManager as _GeneratorContextManager + + +class ContextManager(_GeneratorContextManager): +    def __call__(self, func): +        """Context manager decorator""" return FunctionMaker.create( -            func, "return _call_(_func_, %(shortsignature)s)", -            evaldict, undecorated=func, __wrapped__=func) -    else:  # returns a decorator -        if isinstance(caller, partial): -            return partial(decorator, caller) -        # otherwise assume caller is a function -        first = inspect.getargspec(caller)[0][0]  # first arg -        if sys.version_info[0] >= 3: -            evaldict = caller.__globals__.copy() -        else: -            evaldict = caller.func_globals.copy() -        evaldict['_call_'] = caller -        evaldict['decorator'] = decorator +            func, "with _self_: return _func_(%(shortsignature)s)", +            dict(_self_=self, _func_=func), __wrapped__=func) + +init = getfullargspec(_GeneratorContextManager.__init__) +n_args = len(init.args) +if n_args == 2 and not init.varargs:  # (self, genobj) Python 2.7 +    def __init__(self, g, *a, **k): +        return _GeneratorContextManager.__init__(self, g(*a, **k)) +    ContextManager.__init__ = __init__ +elif n_args == 2 and init.varargs:  # (self, gen, *a, **k) Python 3.4 +    pass +elif n_args == 4:  # (self, gen, args, kwds) Python 3.5 +    def __init__(self, g, *a, **k): +        return _GeneratorContextManager.__init__(self, g, a, k) +    ContextManager.__init__ = __init__ + +contextmanager = decorator(ContextManager) + + +# ############################ dispatch_on ############################ # + +def append(a, vancestors): +    """ +    Append ``a`` to the list of the virtual ancestors, unless it is already +    included. +    """ +    add = True +    for j, va in enumerate(vancestors): +        if issubclass(va, a): +            add = False +            break +        if issubclass(a, va): +            vancestors[j] = a +            add = False +    if add: +        vancestors.append(a) + + +# inspired from simplegeneric by P.J. Eby and functools.singledispatch +def dispatch_on(*dispatch_args): +    """ +    Factory of decorators turning a function into a generic function +    dispatching on the given arguments. +    """ +    assert dispatch_args, 'No dispatch args passed' +    dispatch_str = '(%s,)' % ', '.join(dispatch_args) + +    def check(arguments, wrong=operator.ne, msg=''): +        """Make sure one passes the expected number of arguments""" +        if wrong(len(arguments), len(dispatch_args)): +            raise TypeError('Expected %d arguments, got %d%s' % +                            (len(dispatch_args), len(arguments), msg)) + +    def gen_func_dec(func): +        """Decorator turning a function into a generic function""" + +        # first check the dispatch arguments +        argset = set(getfullargspec(func).args) +        if not set(dispatch_args) <= argset: +            raise NameError('Unknown dispatch arguments %s' % dispatch_str) + +        typemap = {} + +        def vancestors(*types): +            """ +            Get a list of sets of virtual ancestors for the given types +            """ +            check(types) +            ras = [[] for _ in range(len(dispatch_args))] +            for types_ in typemap: +                for t, type_, ra in zip(types, types_, ras): +                    if issubclass(t, type_) and type_ not in t.__mro__: +                        append(type_, ra) +            return [set(ra) for ra in ras] + +        def ancestors(*types): +            """ +            Get a list of virtual MROs, one for each type +            """ +            check(types) +            lists = [] +            for t, vas in zip(types, vancestors(*types)): +                n_vas = len(vas) +                if n_vas > 1: +                    raise RuntimeError( +                        'Ambiguous dispatch for %s: %s' % (t, vas)) +                elif n_vas == 1: +                    va, = vas +                    mro = type('t', (t, va), {}).__mro__[1:] +                else: +                    mro = t.__mro__ +                lists.append(mro[:-1])  # discard t and object +            return lists + +        def register(*types): +            """ +            Decorator to register an implementation for the given types +            """ +            check(types) +            def dec(f): +                check(getfullargspec(f).args, operator.lt, ' in ' + f.__name__) +                typemap[types] = f +                return f +            return dec + +        def dispatch_info(*types): +            """ +            An utility to introspect the dispatch algorithm +            """ +            check(types) +            lst = [] +            for anc in itertools.product(*ancestors(*types)): +                lst.append(tuple(a.__name__ for a in anc)) +            return lst + +        def _dispatch(dispatch_args, *args, **kw): +            types = tuple(type(arg) for arg in dispatch_args) +            try:  # fast path +                f = typemap[types] +            except KeyError: +                pass +            else: +                return f(*args, **kw) +            combinations = itertools.product(*ancestors(*types)) +            next(combinations)  # the first one has been already tried +            for types_ in combinations: +                f = typemap.get(types_) +                if f is not None: +                    return f(*args, **kw) + +            # else call the default implementation +            return func(*args, **kw) + return FunctionMaker.create( -            '%s(%s)' % (caller.__name__, first), -            'return decorator(_call_, %s)' % first, -            evaldict, undecorated=caller, __wrapped__=caller, -            doc=caller.__doc__, module=caller.__module__) +            func, 'return _f_(%s, %%(shortsignature)s)' % dispatch_str, +            dict(_f_=_dispatch), register=register, default=func, +            typemap=typemap, vancestors=vancestors, ancestors=ancestors, +            dispatch_info=dispatch_info, __wrapped__=func) + +    gen_func_dec.__name__ = 'dispatch_on' + dispatch_str +    return gen_func_dec -- 2.6.3 </ins>

As noted by scipy uses the wrong tests. Instead of running its own test-suite, it runs that of numpy. This is because accidentally pkgName was set to in
Most errors are which are harmless according to
The 12 errors that are encountered are in fact 11 deprecation warnings, and one syntax error in a test when setting PYTHONPATH.


Question: dontConfigure = true; installPhase = '' <ins> runHook preInstall </ins> mkdir -p $out/{bin,opt/${basename},share} # Install all files, remove unnecessary ones cp -a . $out/opt/${basename}/ rm -r $out/opt/${basename}/{{add,remove}-menuitem.sh,credits.html,icons/} <del> wrapProgram $out/opt/${basename}/${basename} --add-flags "--no-version-check" --prefix LD_LIBRARY_PATH : ${runtimeLibs} </del> ln -s "$out/opt/${basename}/${basename}" $out/bin/ <del> ln -s "${desktopItem}/share/applications" $out/share/ </del> <ins> cp -r "${desktopItem}/share/applications" $out/share/ runHook postInstall ''; preFixup = '' gappsWrapperArgs+=( --add-flags "--no-version-check"  --prefix LD_LIBRARY_PATH : ${runtimeLibs}  --prefix PATH : ${runtimeBins} ) </ins> ''; desktopItem = makeDesktopItem {

Cannot view any content when running the program because it complains about missing binaries. Steps to reproduce the behavior: to watch any stream No errors, stream works system: host os: multi-user?: sandbox: version: channels(admin): nixpkgs: Add and as runtime dependencies because the following works for me:


Question: dwarfs = callPackage ../tools/filesystems/dwarfs { }; <ins> etlegacy = callPackage ../games/etlegacy { lua = lua5_4; }; </ins> copier = callPackage ../tools/misc/copier { }; gamemode = callPackage ../tools/games/gamemode {

Project description ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license. Metadata homepage URL: source URL: license: gpl3 platforms: unix, linux, darwin
I got a derivation to work: This is for the 32-bit build, client only. Run and use the binary. Planning to properly package it and contribute to nixpkgs, but since it's my first package it'll require some more time. Also planning to get the server and omnibot working.
I marked this as stale due to inactivity. →
Still interested.
My version of derivation gist doesn't seem to work now that I've upgraded to NixOS 22.05. Haven't had time to investigate too much yet. Whether I try to join an online game server or host a game, I get the below error:
This adaptation of gist is working for me. It's currently for the 32-bit Linux version only, so produces a package . There is an option to use the mod libs built by the ET Legacy project (CI pipeline) or compile them locally.
Hi guys Based on gist I did compiled using NixOS VM Machine it runs fine but there a small quirks there Date is not set correctly it is set to beginning of the time :D Also does ignores manually set env variables ?
Added those 2 in etlegacy*.nix files ` Those 2 should fix issue with correct compile date and naming scheme to build non package But it does not Am I doing something wrong ? :D
Package created and pull request created. Just waiting on PR to be approved so the package can be to nixpkgs.
Is it normal I cannot find the package in the unstable channel?
I think there may be some delay as it migrates to the unstable channel, and then into 23.05.
it seems to be in unstable now.


Question: liberation_ttf_v1_from_source = throw "'liberation_ttf_v1_from_source' has been renamed to/replaced by 'liberation_ttf_v1'"; # Converted to throw 2022-02-22 liberation_ttf_v2_from_source = throw "'liberation_ttf_v2_from_source' has been renamed to/replaced by 'liberation_ttf_v2'"; # Converted to throw 2022-02-22 liberationsansnarrow = throw "'liberationsansnarrow' has been renamed to/replaced by 'liberation-sans-narrow'"; # Converted to throw 2022-02-22 <del> libgcc = throw "libgcc was removed, use gcc.cc.libgcc if needed"; # added 2023-05-13 </del> libgksu = throw "libgksu has been removed"; # Added 2022-01-16 libgme = game-music-emu; # Added 2022-07-20 libgnome_keyring = throw "'libgnome_keyring' has been renamed to/replaced by 'libgnome-keyring'"; # Converted to throw 2022-02-22

On or cross-compiled from , breaks: From : You can either run this on another architecture using . or should not crash: This was responsible for failing to replicate datasets to my ARM NAS. The issue does not_ occur for natively compiled builds. It appears to be a cross-compilation issue only.
It is a bug in / derivations. In non-cross cases it gets copied from used to bid into output: But in cross-case used to build does not yet provide as it needs bits of for it (and the library path is slightly incorrect). One of possible workarounds is to try to add to to get it pulled via from expected location.
We don't do the copying to glibc anymore, but this error still occurs as described on current nixpkgs master.
Yup. cross-compilation never propagated to in any form (and does not today).
Could you please try this PR? It should fix the problem.
With that PR, I'm seeing this on both (a Raspberry Pi CM4) and with QEMU on : Log from aarch64 machine: Log from machine with QEMU:
Well it's finding now, so there's clearly some other problem with addition to that. When I run it with I even get line numbers from inside : That line () is the last line in the following snippet of code: ... so is deliberately ing here due to . Grepping through the docs turns up: This is happening because uses . Once you do that, glibc needs to unwind the stack frame of any thread that calls . And unwinders are a giant headache. I'm afraid that's all I've got here. I've removed the closed-by from since it was only part of the problem here.
Ah, I think I know what it is. We can compile a without , but it won't have an unwinder. We need to pass the glibc headers to the build in order to get one of those.
would you please try ? I believe it fixes one of the two problems which caused this issue, and it includes which fixes the other one. It works for me: BTW, this issue (cross-compile , then run it under qemu) is a really valuable test case. We really ought to add it to so Hydra will catch any regressions automatically.


Question: liberation_ttf_v1_from_source = throw "'liberation_ttf_v1_from_source' has been renamed to/replaced by 'liberation_ttf_v1'"; # Converted to throw 2022-02-22 liberation_ttf_v2_from_source = throw "'liberation_ttf_v2_from_source' has been renamed to/replaced by 'liberation_ttf_v2'"; # Converted to throw 2022-02-22 liberationsansnarrow = throw "'liberationsansnarrow' has been renamed to/replaced by 'liberation-sans-narrow'"; # Converted to throw 2022-02-22 <del> libgcc = throw "libgcc was removed, use gcc.cc.libgcc if needed"; # added 2023-05-13 </del> libgksu = throw "libgksu has been removed"; # Added 2022-01-16 libgme = game-music-emu; # Added 2022-07-20 libgnome_keyring = throw "'libgnome_keyring' has been renamed to/replaced by 'libgnome-keyring'"; # Converted to throw 2022-02-22

Especially since the failure mode gives the user no error message to help them troubleshoot the problem! is a great candidate for this since it's one of those very rare non-C++ programs that uses advanced stack-unwinding features from pthreads.
Confirming fixes the issue. Tested with both and on real hardware and with QEMU on x86_64.
~I think this is fixed, and more cleanly,~ by Edit: it is not. :frowning_face: I will keep trying. Test is in Currently building.
Added this to , but commented out since it is not fixed yet.


Question: (fetchNuGet { pname = "CheapLoc"; version = "1.1.6"; sha256 = "1m6cgx9yh7h3vrq2d4f99xyvsxc9jvz8zjq1q14qgylfmyq4hx4l"; }) (fetchNuGet { pname = "Config.Net"; version = "4.19.0"; sha256 = "17iv0vy0693s6d8626lbz3w1ppn5abn77aaki7h4qi4izysizgim"; }) (fetchNuGet { pname = "Downloader"; version = "2.2.8"; sha256 = "0farwh3pc6m8hsgqywigdpcb4gr2m9myyxm2idzjmhhkzfqghj28"; }) <del> (fetchNuGet { pname = "Facepunch.Steamworks"; version = "2.3.3"; sha256 = "1r3m7cyzfy8ms9xxfa13xcwha02yk22givkaamw166im89m8wqyc"; }) </del> (fetchNuGet { pname = "goaaats.NativeLibraryLoader"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "1bjjgsw4ry9cz8dzsgwx428hn06wms194pqz8nclwrqcwfx7gmxk"; }) <ins> (fetchNuGet { pname = "goaaats.Steamworks"; version = "2.3.4"; sha256 = "1khxkkjvh6af60rxc13bacxn85amdfzr8z0b9a6gfg6m1fnmlkss"; }) </ins> (fetchNuGet { pname = "goaaats.Veldrid"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "0b35bn4190hxbvrwsygpbpg00gnrj6crxyk8b0d7ian611v4jj0m"; }) (fetchNuGet { pname = "goaaats.Veldrid.ImageSharp"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "1zihi2n9qz18kfkz4qnj3412bfsqvx49809hqkknixdrgn8323i2"; }) (fetchNuGet { pname = "goaaats.Veldrid.MetalBindings"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "13cs5jr8bpkrkzziz8b71l3npr14shxryrpsiw0zm7jcx69vg2qf"; })

is not included in the version of xivlauncher in nixpkgs, meaning that xivlauncher is currently broken. The update will need a backport to 22.05. <!-- Note that these are hard requirements --<!-- You can use the "Go to file" functionality on GitHub to find the package Then you can go to the history for this package Find the latest "packagename: oldversion -newversion" commit The "newversion" is the current version of the package --- <!-- Type the name of your package and try to find an open pull request for the package If you find an open pull request, you can review it! There's a high chance that you'll have the new version right away while helping the community! --- name: xivlauncher <!-- The current version can be found easily with the same process as above for checking the master branch If an open PR is present for the package, take this version as the current one and link to the PR --current version: xlcore 1.0.0.9 (upstream release 6.2.33, which I think is probably a more useful version number to use, since xlcore remains at 1.0.0.9 in the most recent release) desired version: 6.2.44 <!-- Search your package here: If no maintainer is listed for your package, tag the person that last updated the package --maintainers: Please tag this issue in your PR.


Question: <ins> { stdenv , lib , fetchurl , asciidoc , docbook-xsl-nons , docbook_xml_dtd_45 , gettext , itstool , libxslt , gexiv2 , tracker , meson , mesonEmulatorHook , ninja , pkg-config , vala , wrapGAppsNoGuiHook , bzip2 , dbus , exempi , giflib , glib , gnome , gst_all_1 , icu , json-glib , libcue , libexif , libgsf , libgxps , libiptcdata , libjpeg , libosinfo , libpng , libseccomp , libtiff , libuuid , libxml2 , networkmanager , poppler , systemd , taglib , upower , totem-pl-parser , e2fsprogs }: stdenv.mkDerivation (finalAttrs: { pname = "tracker-miners"; version = "3.7.3"; src = fetchurl { url = "mirror://gnome/sources/tracker-miners/${lib.versions.majorMinor finalAttrs.version}/tracker-miners-${finalAttrs.version}.tar.xz"; hash = "sha256-50OIFUtcGXtLfuQvDc6MX7vd1NNhCT74jU+zA+M9pf4="; }; nativeBuildInputs = [ asciidoc docbook-xsl-nons docbook_xml_dtd_45 gettext glib itstool libxslt meson ninja pkg-config vala wrapGAppsNoGuiHook ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ]; # TODO: add libenca, libosinfo buildInputs = [ bzip2 dbus exempi giflib gexiv2 totem-pl-parser tracker gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly gst_all_1.gstreamer gst_all_1.gst-libav icu json-glib libcue libexif libgsf libgxps libiptcdata libjpeg libosinfo libpng libtiff libuuid libxml2 poppler taglib ] ++ lib.optionals stdenv.isLinux [ libseccomp networkmanager systemd upower ] ++ lib.optionals stdenv.isDarwin [ e2fsprogs ]; mesonFlags = [ # TODO: tests do not like our sandbox "-Dfunctional_tests=false" # libgrss is unmaintained and has no new releases since 2015, and an open # security issue since then. Despite a patch now being availab, we're opting # to be safe due to the general state of the project "-Dminer_rss=false" ] ++ lib.optionals (!stdenv.isLinux) [ "-Dbattery_detection=none" "-Dnetwork_manager=disabled" "-Dsystemd_user_services=false" ]; postInstall = '' glib-compile-schemas "$out/share/glib-2.0/schemas" ''; passthru = { updateScript = gnome.updateScript { packageName = "tracker-miners"; }; }; meta = { homepage = "https://gitlab.gnome.org/GNOME/tracker-miners"; description = "Desktop-neutral user information store, search tool and indexer"; maintainers = lib.teams.gnome.members; license = lib.licenses.gpl2Plus; platforms = lib.platforms.unix; }; }) </ins>

Package name: tracker-miners Latest released version: 3.7.3 <!-- Search your package here: --- Current version on the unstable channel: 3.7.2 Current version on the stable/release channel: 3.6.2 <!-- Type the name of your package and try to find an open pull request for the package If you find an open pull request, you can review it! There's a high chance that you'll have the new version right away while helping the community! --- Notify maintainers <!-- If the result shows no maintainers, tag the person that last updated the package. -- Tracker was updated in , however tracker-miners wasn't. It currently suffers from this bug: (and generates a lot of failures on a running gnome system). It was fixed in 3.7.3. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
PRs are welcomed.


Question: '' + optionalString (libcxx.isLLVM or false) '' echo "-isystem ${lib.getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags <ins> echo "-isystem ${lib.getDev libcxx.cxxabi}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags </ins> echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags echo "-l${libcxx.cxxabi.libName}" >> $out/nix-support/libcxx-ldflags ''

Clang's wrapper does not set as an include path. Compiling files with since <cxxabi.hrequires is present in the aforementioned path I created the environment using this minimal mkShell expression Adding to
Proposed solution seems reasonable to me. See also started by
Please can you also include the nixpkgs commit hash in the repro (sorry if it's there and I missed it).
Oh thank you, that makes so much sense, I was also looking at how the monorepo handles things as well as their tests on finding the system include headers and what you said is probably the correct reason. Ah, it was the nixpkgs-unstable revision updated just then. Sorry I do not have that, but you can reproduce it with the current master as well.


Question: <ins> diff --git a/go.mod b/go.mod index 8841027..fda8eb7 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module git.sr.ht/~delthas/senpai -go 1.16 +go 1.18 require ( git.sr.ht/~emersion/go-scfg v0.0.0-20231004133111-9dce55c8d63b @@ -13,4 +13,14 @@ require ( mvdan.cc/xurls/v2 v2.5.0 ) +require ( +	github.com/gdamore/encoding v1.0.0 // indirect +	github.com/godbus/dbus/v5 v5.1.0 // indirect +	github.com/lucasb-eyer/go-colorful v1.2.0 // indirect +	github.com/rivo/uniseg v0.4.3 // indirect +	golang.org/x/sys v0.14.0 // indirect +	golang.org/x/term v0.14.0 // indirect +	golang.org/x/text v0.14.0 // indirect +) + replace github.com/gdamore/tcell/v2 => github.com/delthas/tcell/v2 v2.4.1-0.20230710100648-1489e78d90fb diff --git a/go.sum b/go.sum index 89c5397..f4d3eaa 100644 --- a/go.sum +++ b/go.sum @@ -20,44 +20,34 @@ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.4.0 h1:Z81tqI5ddIoXDPvVQ7/7CC9TnLM7ubaFG2qXYd5BbYY= @@ -65,7 +55,6 @@ golang.org/x/time v0.4.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= mvdan.cc/xurls/v2 v2.5.0 h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8= mvdan.cc/xurls/v2 v2.5.0/go.mod h1:yQgaGQ1rFtJUzkmKiHYSSfuQxqfYmd//X6PxvholpeE= </ins>

Package name: senpai Latest released version: 0.3.0 <!-- Search your package here: --- Current version on the unstable channel: 0.2.0 Current version on the stable/release channel: 0.2.0 <!-- Type the name of your package and try to find an open pull request for the package If you find an open pull request, you can review it! There's a high chance that you'll have the new version right away while helping the community! --- Notify maintainers Note for maintainers: Please tag this issue in your PR. Has new maintainer There are issues where the pulled dependencies don’t work with the 1.16 specified version. + (as well as 19) created a new batch of errors I decided to give up on. I did ask about in on their SourceHut issue tracker: Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:


Question: }: buildPythonPackage rec { pname = "sabctools"; <del> version = "7.0.2"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3 </del> <ins> version = "7.1.2"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3 </ins> format = "setuptools"; src = fetchPypi { inherit pname version; <del> hash = "sha256-AB5/McuOIDkhu7rtb3nFaqOTx3zwm92+3NEnH5HjzBo="; </del> <ins> hash = "sha256-wDgFXuxclmqMlRXyr9qpruJJcOXfOiOWTZXX53uYEB8="; </ins> }; pythonImportsCheck = ["sabctools"];

When booting up SABnzbd having done an update recently (5min ago at time of writing), I'm getting the following errors: ! Steps to reproduce the behavior: your on NixOS using current unstable, include the following: . I expected it to pick up SABCtools 7.1.2, but it got 7.0.2 instead. See above N/a
Opened a PR to fix this and provide better testing.
:+1: thanks


Question: exit 1 fi <del> makeWrapper "${browser}/bin/${browserName}"  </del> <ins> makeWrapper "$(readlink -v --canonicalize-existing "${browser}/bin/${browserName}")"  </ins> "$out/bin/${browserName}${nameSuffix}"  --suffix-each MOZ_PLUGIN_PATH ':' "$plugins"  --suffix LD_LIBRARY_PATH ':' "$libs"  --suffix-each GTK_PATH ':' "$gtk_modules"  --suffix-each LD_PRELOAD ':' "$(cat $(filterExisting $(addSuffix /extra-ld-preload $plugins)))"  --prefix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))"  <del> --set MOZ_OBJDIR "$(ls -d "${browser}/lib/${browserName}"*)"  </del> <ins> --suffix PATH ':' "$out/bin"  --set MOZ_APP_LAUNCHER "${browserName}${nameSuffix}"  </ins> ${lib.optionalString (!ffmpegSupport) ''--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"''} <del> ${ lib.optionalString libtrick '' libdirname="$(echo "${browser}/lib/${browserName}"*)" libdirbasename="$(basename "$libdirname")" mkdir -p "$out/lib/$libdirbasename" ln -s "$libdirname"/* "$out/lib/$libdirbasename" script_location="$(mktemp "$out/lib/$libdirbasename/${browserName}${nameSuffix}.XXXXXX")" mv "$out/bin/${browserName}${nameSuffix}" "$script_location" ln -s "$script_location" "$out/bin/${browserName}${nameSuffix}" '' } </del> if [ -e "${browser}/share/icons" ]; then mkdir -p "$out/share" ln -s "${browser}/share/icons" "$out/share/icons" else mkdir -p "$out/share/icons/hicolor/128x128/apps" <del> ln -s "$out/lib/$libdirbasename/browser/icons/mozicon128.png"  </del> <ins> ln -s "${browser}/lib/${browserName}-"*"/browser/icons/mozicon128.png"  </ins> "$out/share/icons/hicolor/128x128/apps/${browserName}.png" fi <del> mkdir -p $out/share/applications cp $desktopItem/share/applications/* $out/share/applications </del> <ins> install -D -t $out/share/applications $desktopItem/share/applications/* </ins> # For manpages, in case the program supplies them mkdir -p $out/nix-support

When "set as default browser" is clicked from within Firefox, it places a custom .desktop file in , and points to this from in the same directory. This file launches Firefox without the wrapper when it's opened using xdg-open. The result is that if xdg-open is used when no Firefox window exists, it will be opened without environment variables set correctly, and without plugins.
This is a great example why wrappers are error prone.
Is there a easy way to fix this? I don't see one
The easy way is to use a non-absolute path in the .desktop file, i.e. . This also ensures that after an upgrade, the new Firefox will be invoked.
This .desktop file is generated by Firefox when "set as default browser" is clicked - it's not one of nixpkgs's .desktop files. That'd involve a patch (which would have to be kept up to date with each Firefox release).
Right, shouldn't be hard to do.
Testing a patch now...
I can't see the patch anywhere -- did it work?
Chromium .desktop file includes and suffers from the same problem.
This is handled and detected with mimetypes.
Would be really nice to fix this one, any takers?
I think I have solved it for Firefox; as for Chromium — apparently it is non-trivial to test for me (StumpWM, not a DE)
There's still no obvious way to set the default browser that I can find - anyone know what the status is here?
A possibly reasonable option in the case of Firefox would be to disable the default browser check using the preferences file, and write a custom dialog for selecting the default browser in the wrapper itself, a very rough basis being: According to a google, similar should work for Chrome/Chromium, except passing instead of messing with config files. Opinions?
Is there no way to trick firefox into thinking its executable name is the wrapper ?
Yes: but this needs some testing, and it affects many browsers.
I fixed the wrapper to work with (), but we get another issue. When we update firefox, we end up with a different /nix path, which firefox considers as a different browser. If you restart firefox (for example when installing addons) then you get the not-your-default-browser" warning. Investaigating MOZAPPLAUNCHER as solution, but I start to think that may be the most general solution.


Question: "--with-rcdir=no" "--with-shell=${stdenv.shell}" "--with-test-font-path=${dejavu_fonts}/share/fonts/truetype/DejaVuSans.ttf" <ins> "--localstatedir=/var" "--sysconfdir=/etc" </ins> ]; makeFlags = [ "CUPS_SERVERBIN=$(out)/lib/cups" "CUPS_DATADIR=$(out)/share/cups" "CUPS_SERVERROOT=$(out)/etc/cups" ];

Configuration summary shows several incorrect paths: liblouis tables can probably be easily corrected, not sure what to do about cups dom socket and font directory. nixpkgs: cc
Thank you for your contributions. This has been automatically marked as stale because it has had no activity for 180 days. If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity. Here are suggestions that might help resolve this more quickly: for maintainers and people that previously touched the related code and @ mention them in a comment. on the . on the on .


Question: genericName = "Reference Management"; categories = [ "Office" "Database" ]; startupNotify = true; <del> mimeTypes = [ "text/plain" ]; </del> <ins> mimeTypes = [ "x-scheme-handler/zotero" "text/plain" ]; </ins> }; installPhase = ''

Links like do not work, since the scheme handler is not registered in the desktop entry file. Steps to reproduce the behavior: Zotero stuff to biblography to select item using a url The correct item is selected Related flathub issue: I'm using 21.11 stable, a backport would be appreciated. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --


Question: name = "exa-${version}"; version = "2016-04-20"; <del> depsSha256 = "0nyrdl57nhr3lxqs3gaij3mdmlrm0z52qv6mznvgw0ziwqmlq5w1"; </del> <ins> depsSha256 = "0qsqkgc1wxigvskhaamgfp5pyc2kprsikhcfccysgs07w44nxkd0"; </ins> src = fetchFromGitHub { owner = "ogham";

fails to compile on unstable. on (Flounder) System: (Flounder) Nix version: nix-env (Nix) 1.11.2 Nixpkgs version: "16.09pre88945." trace:


Question: patches = [ ./hardcoded-compiler.patch ./bin-ext.patch ]; patchFlags = [ "-p3" ]; <ins> # Don't attempt the .so if static, as it would fail. postPatch = lib.optionalString stdenv.hostPlatform.isStatic '' sed 's/^ILIBS>.*/ILIBS = liblmdb.a/' -i Makefile ''; </ins> outputs = [ "bin" "out" "dev" ]; buildInputs = lib.optional stdenv.hostPlatform.isWindows windows.pthreads;

Steps to reproduce the behavior: alternatively (the output is the same) Found this while trying to build on my mac I also tested this running on my nixos work computer instead of via a remote builder and got the same result. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result. Though the actual building is done by a remote builder with .
Fortunately it seemed OK after a quick glance, on x86_64-linux at least. Feel free to review.
Yep, this seems to have fixed it, thanks :) building a static lmdb seems to work for at least x86_64-linux and aarch64-darwin. I'll continue my adventure of trying to get murmur to build statically


Question: <ins> { lib, stdenvNoCC, fetchFromGitLab }: stdenvNoCC.mkDerivation { pname = "xr-hardware"; version = "unstable-2023-11-08"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "monado/utilities"; repo = "xr-hardware"; rev = "9204de323210d2a5ab8635c2ee52127100de67b1"; hash = "sha256-ZS15WODms/WKsPu+WbfILO2BOwnxrhCY/SoF8jzOX5Q="; }; installTargets = "install_package"; installFlagsArray = "DESTDIR=${placeholder "out"}"; meta = with lib; { description = "Hardware description for XR devices"; homepage = "https://gitlab.freedesktop.org/monado/utilities/xr-hardware"; license = licenses.boost; maintainers = with maintainers; [ Scrumplex ]; platforms = platforms.linux; }; } </ins>

The [monado] package doesn't install the udev rules generated by the [xr-hardware util] from the Monado project. Install the package and check the lack of udev rules in It was expected for the udev rules to be installted with the package. The udev rules are needed as some hmd's have some strange and specific permissions. Maybe instead of adding this to the package, monado could turn into an option like . <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]: [monado]: [xr-hardware util]:
Trying packaging the udev rules similar to how . [brscan4]:
I was working on a Monado NixOS module. Perhaps I can deal with udev rules there. See


Question: inherit enableSeccomp enableSuid <ins> externalLocalStateDir </ins> projectName removeCompat starterSuidPath

The derivation is missing the directory to work properly. Steps to reproduce the behavior: A clear and concise description of what you expected to happen. is output without error. This can be fixed by creating the directory manually (). I guess this could be to the derivation. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result.
NixOS module provides those top-level directories. discussed with one of the main Apptainer developer in . He think it should be easy to specify a directory that will always exist at build time. Regalding this, I'm considering the possibility to put those dilectories under the derivation store path. Not sure if there would be potential problem using a store path as a mount point, but it seems to work without problem.
Could you help me take a look at ?
If you have time, please help me test the PR . It should fundamentally solve this issue. If applied, you no longer need the NixOS module or just to run images. It specifies the LOCALSTATEDIR as , making both Apptainer and Sylabs SingularityCE works without . (The image running still depends on and to run images, which might be the final obstacle to build images as a package without invoking a virtual machine. Other than that, it should not be an issue for most users, as are available on most of the UNIX/UNIX-like systems.)
I removed (the temporary fix for this issue) and ran the following and it seems to work fine: Thank you for this fix!
Glad to hear that! Would you mind ? I've heard that committers tend to merge PRs getting two approvals.
Done!


Question: --replace "requests>=2.20.0,<2.26" "requests~=2.20" ''; <del> nativeBuildInputs = [ plux setuptools ]; </del> propagatedBuildInputs = [ <del> cachetools click cryptography </del> dill dnslib dnspython plux <del> psutil python-dotenv pyyaml rich </del> <ins> pyaes python-jose </ins> requests <del> semver stevedore tailer </del> <ins> tabulate </ins> ]; pythonImportsCheck = [ "localstack_ext" ];

Steps to reproduce the behavior: localstack (from unstable) (version 3.2.0) localstack 2.3.0 works and so does (tagged because you bumped the version) (the channel is slightly messed up. I am using 23.11 but with flakes) Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
The new version requires too many dependencies to package up in a reasonable time frame and even includes circular ones. contains a revert to 3.0.0 which builds for me and shows the usage. Can you take a look if that works for you?
Sorry for the delay! Yes, the revert works well for me! Thank you!


Question: meta = { description = "A notification system for tiling window managers"; homepage = https://github.com/sboli/twmn; <del> platforms = with stdenv.lib.platforms; linux; maintainers = [ stdenv.lib.maintainers.matejc ]; license = stdenv.lib.licenses.lgpl3; </del> <ins> platforms = with lib.platforms; linux; maintainers = [ lib.maintainers.matejc ]; license = lib.licenses.lgpl3; </ins> }; }

twmnd does not launch because qt5 library path is missing. Install the twmn package and run twmnd. twmnd works when I manually set the LDLIBRARYPATH to <qtbase/lib. System: NixOS 16.09.931. Nix version: 1.11.4 Nixpkgs version:16.09.931.
I noticed the same or similar thing when trying to run twmnd as a systemd user service. It just SIGABRTs: I could reproduce with Although works fine... So clearly there is some impurity in my local environment which is making twmnd work "by accident?" Possibly related?:


Question: }) (filterAttrs (name: service: service.startAt != "") cfg.services); <ins> # Generate timer units for all services that have a ‘startAt’ value. systemd.user.timers = mapAttrs (name: service: { wantedBy = [ "timers.target" ]; timerConfig.OnCalendar = service.startAt; }) (filterAttrs (name: service: service.startAt != "") cfg.user.services); </ins> systemd.sockets.systemd-journal-gatewayd.wantedBy = optional config.services.journald.enableHttpGateway "sockets.target";

the attribute inside a user-level systemd service seems to be ignored. I have three observations to suggest this. With this snippet from (service details aren't important, just for concreteness) If I run , I see batterycheck.service, but no corresponding timer. If I run , I again see the .service file, but no timer file. If I remove the startAt line and run , I can see from the output that no new environment is being built. I'm pretty sure that this functionality used to work several months ago, when I created this unit definition.


Question: ]; configureFlags = [ <del> # TODO(Profpatsch): mupdf support </del> <ins> "--with-mutool-path=${mupdf}/bin/mutool" </ins> "--with-pdftops=pdftops" "--with-pdftops-path=${poppler_utils}/bin/pdftops" "--with-gs-path=${ghostscript}/bin/gs"


Question: odbc = "sha256-T+RIIKzZ9xEg/E72pfs5xqHz2WuIWKx/oRfDrQbw3ms="; }; x86_64-darwin = { <del> basic = "f4335c1d53e8188a3a8cdfb97494ff87c4d0f481309284cf086dc64080a60abd"; sdk = "b46b4b87af593f7cfe447cfb903d1ae5073cec34049143ad8cdc9f3e78b23b27"; sqlplus = "f7565c3cbf898b0a7953fbb0017c5edd9d11d1863781588b7caf3a69937a2e9e"; tools = "b2bc474f98da13efdbc77fd05f559498cd8c08582c5b9038f6a862215de33f2c"; odbc = "f91da40684abaa866aa059eb26b1322f2d527670a1937d678404c991eadeb725"; </del> <ins> basic = "sha256-V+1BmPOhDYPNXdwkcsBY1MOwt4Yka66/a7/HORzBIIc="; sdk = "sha256-D6iuTEQYqmbOh1z5LnKN16ga6vLmjnkm4QK15S/Iukw="; sqlplus = "sha256-08uoiwoKPZmTxLZLYRVp0UbN827FXdhOukeDUXvTCVk="; tools = "sha256-1xFFGZapFq9ogGQ6ePSv4PrXl5qOAgRZWAp4mJ5uxdU="; odbc = "sha256-S6+5P4daK/+nXwoHmOkj4DIkHtwdzO5GOkCCI612bRY="; </ins> }; }.${stdenv.hostPlatform.system} or throwSystem;

Package name: oracle-instantclient Latest released version:21.9.0.0.0 <!-- Search your package here: --- Current version on the unstable channel:19.16.0.0.0 Current version on the stable/release channel:19.16.0.0.0 <!-- Type the name of your package and try to find an open pull request for the package If you find an open pull request, you can review it! There's a high chance that you'll have the new version right away while helping the community! -- looks like it tried to upgrade v19 of instant client, but it is stale and not targeting v21. Notify maintainers <!-- If the result shows no maintainers, tag the person that last updated the package. --Note for maintainers: Please tag this issue in your PR.
It looks like you were the last one to touch instant client.
Package sources:


Question: ./services/hardware/lcd.nix ./services/hardware/lirc.nix ./services/hardware/nvidia-container-toolkit-cdi-generator <ins> ./services/hardware/monado.nix </ins> ./services/hardware/nvidia-optimus.nix ./services/hardware/openrgb.nix ./services/hardware/pcscd.nix


Question: <del> --- qemu-2.10.0-clean/linux-user/syscall.c	2020-03-12 18:47:47.898592169 +0100 +++ qemu-2.10.0/linux-user/syscall.c	2020-03-13 09:13:42.461809699 +0100 @@ -34,6 +34,7 @@ #include <sys/resource.h> #include <sys/swap.h> #include <linux/capability.h> +#include <linux/sockios.h> // https://lkml.org/lkml/2019/6/3/988 #include <sched.h> #include <sys/timex.h> #ifdef __ia64__ @@ -256,7 +257,9 @@ static type name (type1 arg1,type2 arg2, #endif #ifdef __NR_gettid -_syscall0(int, gettid) +// taken from https://patchwork.kernel.org/patch/10862231/ +#define __NR_sys_gettid __NR_gettid +_syscall0(int, sys_gettid) #else /* This is a replacement for the host gettid() and must return a host errno. */ @@ -6219,7 +6222,7 @@ static void *clone_func(void *arg) cpu = ENV_GET_CPU(env); thread_cpu = cpu; ts = (TaskState *)cpu->opaque; -    info->tid = gettid(); +    info->tid = sys_gettid(); task_settid(ts); if (info->child_tidptr) put_user_u32(info->tid, info->child_tidptr); @@ -6363,9 +6366,9 @@ static int do_fork(CPUArchState *env, un mapping.  We can't repeat the spinlock hack used above because the child process gets its own copy of the lock.  */ if (flags & CLONE_CHILD_SETTID) -                put_user_u32(gettid(), child_tidptr); +                put_user_u32(sys_gettid(), child_tidptr); if (flags & CLONE_PARENT_SETTID) -                put_user_u32(gettid(), parent_tidptr); +                put_user_u32(sys_gettid(), parent_tidptr); ts = (TaskState *)cpu->opaque; if (flags & CLONE_SETTLS) cpu_set_tls (env, newtls); @@ -11402,7 +11405,7 @@ abi_long do_syscall(void *cpu_env, int n break; #endif case TARGET_NR_gettid: -        ret = get_errno(gettid()); +        ret = get_errno(sys_gettid()); break; #ifdef TARGET_NR_readahead case TARGET_NR_readahead: </del>

Steps to reproduce the behavior: afl <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
If you are planing to open a PR, you don't need to create an issue first.
I wasn't sure, thanks for clarification


Question: <ins> { stdenv, fetchurl, unzip }: stdenv.mkDerivation { name = "lmmath-0.903"; src = fetchurl { url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/lmmath0903otf"; sha256 = "ee96cb14f5c746d6c6b9ecfbdf97dafc2f535be3dd277e15e8ea6fb594995d64"; name = "lmmath-0.903.zip"; }; buildInputs = [unzip]; sourceRoot = "."; installPhase = '' mkdir -p $out/texmf/fonts/opentype mkdir -p $out/share/fonts/opentype cp *.{OTF,otf} $out/texmf/fonts/opentype/lmmath-regular.otf cp *.{OTF,otf} $out/share/fonts/opentype/lmmath-regular.otf ln -s $out/texmf* $out/share/ ''; meta = { description = "Latin Modern font"; }; } </ins>

Describe the bug Thunderbird 78.2.1 is working. master (Thunderbird 78.2.2) has rendering issues (see screenshot). Most buttons do not react to clicks and the menu is also not reacting. To Reproduce Switch to the mentioned commit and rebuild. Expected behavior Normally working thunderbird. Screenshots ! Notify maintainers Metadata
This was also a bug in Ubuntu, it was fixed there with:
Upstream bug appears to be
Btw temporary workaround would be to switch to thunderbird-bin-78 if you are not opposed to binaries


Question: <ins> { stdenv, fetchurl, unzip }: stdenv.mkDerivation { name = "lmmath-0.903"; src = fetchurl { url = "http://www.gust.org.pl/projects/e-foundry/lm-math/download/lmmath0903otf"; sha256 = "ee96cb14f5c746d6c6b9ecfbdf97dafc2f535be3dd277e15e8ea6fb594995d64"; name = "lmmath-0.903.zip"; }; buildInputs = [unzip]; sourceRoot = "."; installPhase = '' mkdir -p $out/texmf/fonts/opentype mkdir -p $out/share/fonts/opentype cp *.{OTF,otf} $out/texmf/fonts/opentype/lmmath-regular.otf cp *.{OTF,otf} $out/share/fonts/opentype/lmmath-regular.otf ln -s $out/texmf* $out/share/ ''; meta = { description = "Latin Modern font"; }; } </ins>

Steps to reproduce the behavior: Add any other context about the problem here. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
might be fixed by confirmed. closing.
Hello. I'm new to NixOS, and also facing this problem: How can I apply that fix? I just updated my NixOS system flake to latest version: But still getting error during system rebuild:
try and update again, the fix is in unstable now.


Question: source $cc_wrapper/nix-support/add-local-cc-cflags-before.sh fi <del> # May need to transform the triple injected by the above. for ((i = 1; i < ${#extraBefore[@]}; i++)); do if [[ "${extraBefore[i]}" = -target ]]; then </del> <ins> for ((i=0; i < ${#extraBefore[@]}; i++));do case "${extraBefore[i]}" in -target) </ins> i=$((i + 1)) # On Darwin only, need to change 'aarch64' to 'arm64'. extraBefore[i]="${extraBefore[i]/aarch64-apple-/arm64-apple-}" # On Darwin, Swift requires the triple to be annotated with a version. # TODO: Assumes macOS. extraBefore[i]="${extraBefore[i]/-apple-darwin/-apple-macosx${MACOSX_DEPLOYMENT_TARGET:-11.0}}" <del> break fi </del> <ins> ;; -march=*) [[ i -gt 0 && ${extraBefore[i-1]} == -Xcc ]] && continue extraBefore=( "${extraBefore[@]:0:i}" -Xcc "${extraBefore[@]:i:${#extraBefore[@]}}" ) i=$((i + 1)) ;; esac </ins> done # As a very special hack, if the arguments are just `-v', then don't

Since was merged into the master, swift cannot be built on aarch64. Steps to reproduce the behavior: reported in I'm not familiar with swift or clang, but I'm using the following overlay as a workaround until it's fixed. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
states that this only fixed the swift build but all downstream packages are still broken. re-opening.
Actually, it seems only dark-mode-notify is broken, others seem fine. Probably because it uses Cocoa or disables sandbox. I don't know for sure.
I noticed that my personal package does not build either. Maybe it's because of swift itself or swiftpm?
The above open PR seems to run into the same issue…


Question: , buildGoModule , runCommandLocal # Native build inputs <ins> , addDriverRunpath </ins> , makeWrapper , pkg-config , util-linux , which # Build inputs , bash <ins> , callPackage </ins> , conmon , coreutils , cryptsetup

singularity cannot use nvidia gpu because it does not access 'nvidia-container-cli' Steps to reproduce the behavior: return result of ! This is because the path is not listed in , as also in a. It is caused by neither the option nor . I tried to handle it with override, but since it was called in , I think it is impossible to handle. Also, I created a conf file in as shown in the singularity docs, but it was not read. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result.
Thank you for reporting and sorry for the trouble. I'll look at the SingularityCE documentation again. (Those configuration options has been deprecated by Apptainer.) Also, I created a conf file in /usr/local/etc/singularity/ as shown in the singularity docs, but it was not read.  shold be what you are looking for. The overriden package can be assigned to . (If you would like to bypass all the overriding done by the module and directly specify the package to install for some special reason, you can assign it to .)
Thanks for the reply. I followed your advice and tried the override and was able to use the GPU. Here is the code This is simply adding a process to append the nvidia-docker path to the I mentioned earlier that when conf was entered in , it was not reflected, and the same is true for '/etc/singularity'. I referred to .
At least we have confirmed that in works and the path is replaced by , but the product does not seem to be recognizable.
Does setting the to make ldconfig search in help? This is modified from the configuration proposed by (). There's also (probably) related to this topic.
Adding the path of to works well. This once removed from consideration. Next we have a patched version of ldconfig. This does not append the path of to the config. The result was an error that could not be found, and it could not be started.
Oh, I already forgot about this issue. Absolutely coincidentally, but maybe efforts such as might open up a way to implement this hack more reliably.


Question: , buildGoModule , runCommandLocal # Native build inputs <ins> , addDriverRunpath </ins> , makeWrapper , pkg-config , util-linux , which # Build inputs , bash <ins> , callPackage </ins> , conmon , coreutils , cryptsetup

Meanwhile, in my config I'm still abusing You probably already have guessed, but singularity in nixpkgs is configured to read this config from the package-specific directory, rather than from the global . You could in principle override this behaviour, but there maybe isn't much value in supporting that
I tried to enable the use of external sysconfdir (), but have encountered issue trying to specify a directory under with the NixOS module ().
Have you tried to apply both at the same time?
The SingularityCE Admin Guide says If the value of nvidia-container-cli path is empty, SingularityCE will look for the binary on $PATH at runtime. It should work as long as is found in the run-time , even when is not set. As nvidia-container-cli is alredy included in the PATH-prefixing wrapper, we shouldn't have to set the .
Update: I found a bug in the prefixed PATH of the wrapper introduced in . The prefixing should be specified as (in Bash) I forgot to add , causing the trailing to be missing.
The statement in the SingularityCE Admin Guide turns out to be wrong / irrelevant. The source code clearly states that nvidia-container-cli will only be read from the configuration.
(we need to patch nvidia-container-cli, for many reasons )
Eh, actually, closed semi-automatically. Apptainer with is fixed (on NixOS), but not with . The fix doesn't concern singularity-ce either, unfortunately. Shouldn't be hard to make this work with singularity too, but I'm out of bandwidth
Hi folks, I've been trying to get apptainer to run this (which I've done previously successfully with a slight ldconfig hack -- that doesn't work anymore -- on NixOS 22.11), that will make use of the machine's Tesla V100 to do some simulation stuff. The machine is running NixOS 23.11. Using the workaround from 9th of May post further up, I was able to get past the ldconfig issue, but now I'm getting an error saying the driver and CUDA are not in sync.


Question: , buildGoModule , runCommandLocal # Native build inputs <ins> , addDriverRunpath </ins> , makeWrapper , pkg-config , util-linux , which # Build inputs , bash <ins> , callPackage </ins> , conmon , coreutils , cryptsetup

Before I start posting any details (I don't want to re-open this issue, but I'm also not sure if I'm just doing something wrong) I was wondering if the current implementation of singularity/apptainer on NixOS is expected to work, and I'm just being an idiot, or if there are known breaking issues? I've seen the other issues about singularity/apptainer here, but I'm not knowledgeable enough to make a judgement call if they are responsible for my problem or not. Thanks very much in advance!
(If I understood the message correctly) That usually means you need a reboot, and you should experience the same issue outside the container
No, the reboot didn't help either. For some reason, though, after upgrading to 24.05, everything "just works[tm]" again. So, whatever the issue was, thanks for fixing it (probably)! :)
Thanks to Nixpkgs 24.05 includes GPU-related changes/fixes to the package and the module.
Well more like thanks to ShamrockLee


Question: nativeBuildInputs = [ wrapGAppsHook gettext ]; <del> checkInputs = with python3.pkgs; [ pytest pytest_xdist pyflakes pycodestyle polib xvfb_run dbus.daemon glibcLocales ]; </del> <ins> checkInputs = [ gdk-pixbuf ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]); </ins> buildInputs = [ gnome3.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ] ++ (if xineBackend then [ xineLib ] else with gst_all_1;

fails to install on . It worked before the recent update. It fails early on in the check phase. I'm guessing the fact that I have to build it from source at all is because it also fails everywhere else, so there's no cached build to download. Try to install on system: host os: multi-user?: sandbox: version: channels(root): nixpkgs:
Hmm, the tests worked just fine for me on
Do they work for you now? What's kinda weird is that I never get an error message or anything. You see in the output I posted above, there's just loads of dots. It kind of sits there printing dots for a while and then it looks like it just times out or something.
For what it's worth if I put in the derivation, the resulting player is perfectly functional at least for my purposes. Haven't tested every feature or anything though.
I think it crashes during the test. I will try bisecting.
Bisecting was inconclusive because I ran out of resources when building webkitgtk.
What commands did you run? I have a server with plenty of resources that's just sitting idle at the moment, I could try run it on that.
but I guess it might make more sense to skip the builds where dependencies failed by running something like:
Cool, I've been running this for a while, for what it's worth it's currently narrowed it down to between and .
I'll let you know in the morning when it's finished.
The original bisect command I ran didn't take into account the case where dependencies failed to build, so I had to run it again with a script like the one you suggested. Here's the output of :
FWIW I managed to build it by setting in an overlay. Works for me, but I wouldn't suggest that this is done in the Hydra build of course!
Yeah, we should probably add in the expression if this still occurs.
I get quite a bit further, attempting to build rather than . The entire test suite finishes, then reports three test failures related to icons and GTK / GDK.
Seems like the tests are failing again
I marked this as stale due to inactivity. →
EDIT: Kindly ignore this comment, didn't notice that I was using the deprecated repository. Hi, I'm encountering the same errors as reported previously. In case anyone else is experiencing the same, I was able to fix them using:


Question: + " -drive if=pflash,format=raw,unit=1,file=$efiVars"); } '' <del> # Create a /boot EFI partition with 60M and arbitrary but fixed GUIDs for reproducibility </del> <ins> # Create a /boot EFI partition with 120M and arbitrary but fixed GUIDs for reproducibility </ins> ${pkgs.gptfdisk}/bin/sgdisk  --set-alignment=1 --new=1:34:2047 --change-name=1:BIOSBootPartition --typecode=1:ef02  --set-alignment=512 --largest-new=2 --change-name=2:EFISystem --typecode=2:ef00

During systemd-boot update step attempts to touch EFI variables, even when is set to . Steps to reproduce the behavior: NixOS 21.05 with systemd-boot and to NixOS 21.11 () switch fails with: An error is just an indication of update trying to touch EFI variables. (I have EFI vars touching disabled on that system because of some unrelated firmware breakage) Manually running properly finishes, further switches work fine. systemd-boot update should not touch EFI variables during upgrade. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Please run and paste the result. Maintainer information:
I had a similar issue which I fixed by running "sudo nixos-rebuild --install-bootloader switch"
The fix for this got reverted in


Question: PrivateMounts = true; PrivateUsers = true; MemoryDenyWriteExecute = true; <del> SystemCallFilter = "~@chown @clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @privileged @raw-io @reboot @resources @setuid @swap"; </del> <ins> SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @reboot @resources @setuid @swap"; </ins> SystemCallArchitectures = "native"; RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6"; };

Describe the bug gitea fails to start due to a too restrictive systemd setup To Reproduce Looks like is a bit too restrictive. :smile:
ping
Removing the blacklist of and gets us past the test, I think, but there's still problems with the socket.
Judging from this error output: it looks like it fails in prescript during in Interestingly enough, there is a right underneath that, in which does not seem to be the issue. This does not look like an issue with Gitea itself, since it fails during the service pre script. Since the and will only be run if the configuration is managed by nix, the tests pass if I set in the test config. (unfortunatly I don't know much about systemd services and especially systemd sanboxing, so I'm not sure if the information from above is useful or not)
Any chance the service is broken too? I recently updated and service failed to start. I haven't dug into it yet... I may have seen something about a database permission issue.
Temporary fix for someone who using bleeding-edge Gitea:
This doesn't solve the issue for me. I get the following output:
Pretty strange. It works for me (). You can try to disable it at all () and if it'll still not work then just change in the same way all other parameters to default values that were introduced in . p.s. probably there's must be something like a mkForceRemove, but I haven't found anything in manual.
Ok the fix is actually working, I just had an own AmbientCapabilities definition in my configuration which didn't play nicely with the new options.


Question: # Run-time libraries (loaded with dlopen) dbus <ins> libGL </ins> libXcursor libXext libXi

segfaults on launch Game runs Please run and paste the result. Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
I noticed this as well yesterday running nixos-unstable


Question: <ins> # HG changeset patch # User John Donoghue <john.donoghue@ieee.org> # Date 1652358904 14400 #      Thu May 12 08:35:04 2022 -0400 # Branch stable # Node ID 8c940cfcce257369677c09154da2aab2c56eaa79 # Parent  63710f3bd9811c2d206ac9e7b4f47cf06c47e153 * scripts/pkg/private/build.m: check configure and Makefile exist before trying to unlink them (Bug #62436) diff -r 63710f3bd981 -r 8c940cfcce25 scripts/pkg/private/build.m --- a/scripts/pkg/private/build.m	Wed May 11 09:44:55 2022 -0700 +++ b/scripts/pkg/private/build.m	Thu May 12 08:35:04 2022 -0400 @@ -77,8 +77,12 @@ else arch_abi = getarch (); configure_make (desc, build_root, verbose); -      unlink (fullfile (build_root, "src", "configure")); -      unlink (fullfile (build_root, "src", "Makefile")); +      if exist (fullfile (build_root, "src", "configure"), "file") +        unlink (fullfile (build_root, "src", "configure")); +      endif +      if exist (fullfile (build_root, "src", "Makefile"), "file") +        unlink (fullfile (build_root, "src", "Makefile")); +      endif endif tar_name = [desc.name "-" desc.version "-" arch_abi ".tar"]; tar_path = fullfile (builddir, tar_name); </ins>

For example: fails similarly. The line that causes the failure according to my testing is: A list of some packages that didn't break: Could be this is an upstream issue.
So digging into it, this is an issue raised by Octave's package management system itself. Namely, this -statement from Line 80 in that file is the statement. It expects to remove a file, which is not existing. The reason the other packages did not break was because they either do not have a directory () or they actually do have a generated file (netcdf & control). You can technically solve this by adding an empty script to the directory. I manually did this, and the package built correctly again. As for why this change happened, I cannot tell. The particular statement shown did not change between 6.4.0 and 7.1.0 in the file.
Looks like
That's the exact issue. Seems like we will need to wait for upstream to fix it. How does this usually get handled
Seems like we should apply to the patch:
There are still 5 packages failing to build, but that is a lot fewer than before.


Question: version = "0.34"; src = fetchFromGitHub { <del> owner  = "MusicPlayerDaemon"; repo   = "mpc"; rev    = "v${version}"; sha256 = "sha256-2FjYBfak0IjibuU+CNQ0y9Ei8hTZhynS/BK2DNerhVw="; </del> <ins> owner = "MusicPlayerDaemon"; repo = pname; rev = "v${version}"; hash = "sha256-2FjYBfak0IjibuU+CNQ0y9Ei8hTZhynS/BK2DNerhVw="; </ins> }; <del> buildInputs = [ libmpdclient ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; </del> <ins> buildInputs = [ libmpdclient ] ++ lib.optionals stdenv.isDarwin [ libiconv ]; </ins> <del> nativeBuildInputs = [ meson ninja pkg-config sphinx ]; </del> <ins> nativeBuildInputs = [ installShellFiles meson ninja pkg-config sphinx ]; postInstall = '' installShellCompletion --cmd mpc --bash $out/share/doc/mpc/contrib/mpc-completion.bash ''; postFixup = '' rm $out/share/doc/mpc/contrib/mpc-completion.bash ''; </ins> meta = with lib; { <del> description = "A minimalist command line interface to MPD"; </del> homepage = "https://www.musicpd.org/clients/mpc/"; <del> license = licenses.gpl2; maintainers = with maintainers; [ algorith ]; platforms = with platforms; linux ++ darwin; </del> <ins> description = "A minimalist command line interface to MPD"; changelog = "https://raw.githubusercontent.com/MusicPlayerDaemon/mpc/v${version}/NEWS"; license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = with platforms; unix; </ins> }; }

The mpccli package is missing bashcompletion, even though a bash completion file is in the upstream repo under contrib/mpc- . Steps to reproduce the behavior: the package a terminal and type It tries only to complete with the contents of the current directory mpc should be completed with the mpc subcomands like , , etc. On a regular system, the file would have to be installed under /etc/bashcompletion.d/ . I don't know whats the nix(os) equivalent to this.
First, I am not the maintainer of this package. Nonetheless I will review this. Second, in Nixpkgs we do "almost" the same: we use a special hook that installs those extra files at the . Now I need to sleep; please wait a bit more.


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

Fail to connect to a l2tp + ipsec VPN after putting in all information. This happens on both Latest Gnome ISO and after NixOS installation. Message received on Gnome Desktop: Connection Failed Activation of network connection failed Steps to reproduce the behavior: Live Gnome ISO. l2tp + ipsec (strongswan) details in NetworkManager. on VPN connection. There are several fixes listed in this issue I was able to fix the problem by creating the file AFTER creating the connection and failing to connect once. (I also created the file BEFORE creating the connection, but that did not fix the issue.) After successfully connecting, this was content of file include The following is the failure output from journalctl From ISO system: host os: multi-user?: sandbox: version: channels(root): nixpkgs:
I was also having issues and tried the above suggested by and was able to connect only after a failed connection !
This seems to fix the bug May we have this to the default package?
Fix in


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

Phew, a big title! Trying to write down as much as I can before I forget. First, the last part: If doesn't exist, will show failing like: fixes this problem. NixOS should probably create this file. I'm not sure if this file should be writable or not, when it exists, I have only ever seen it contain: I don't know what writes that there. Now for can't edit L2TP VPNs, but (GUI) can, even though nm-applet doesn't work under sway. If you see this in the system logs: try enabling "legacy proposals" in nm-connection-editor's IPSec Settings and try again. system: host os: multi-user?: sandbox: version: channels(root): channels(grahamc): nixpkgs:
Side note, how do I know for sure fixes it? I erased my dozens of times nailing it down, reproducing it to exactly this.
I think the strongswan module creates that file and the actual L2TP plugin appends that line to this file.
Nice find that the strongswan module does create that file! I don't have the strongswan module enabled, it seems something else in the stack would periodically create this file?
I'm not sure what does create it eventually, but it appears the plugin expects the file to exist so we should just do exactly that. It doesn't help that it expects it to be mutable, so maybe we can handle this within the NM module to add more secrets. Though it would probably duplicate what the strongswan module does.
^ does this make sense to you?
So I just remembered about this module I have: maybe instead we should have the networkmanager do when it detects the l2tp plugin but I am not sure how to do that. Maybe we would need to introduce a new option in networkmanager to add the nm-l2tp plugin and create the file. I tend to connect physically to the private network and only as a last resort rely to nm-l2tp since it tends to not work regularly and I am not sure if it's blocked by the network or some l2tp breakage.


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

We could add an option to networkmanager in the same way there's one for strongswan there
Was there ever any follow up on :
Hello, I'm a bot and I thank you in the name of the community for opening this issue. To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human. The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it. If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use or on the relevant files to find them. Lastly, you can always ask for help at or at .
i guess, it's still relevant, maybe not so urgent. this helped me big time:
I marked this as stale due to inactivity. →
I just ran into this on 21.05. Seeing a log like this: <details<summaryjournalctl log when starting vpn</summary<pre<codecharon[2059]: 00[CFG] loading ca certificates from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.d/cacerts' charon[2059]: 00[CFG] loading aa certificates from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.d/aacerts' charon[2059]: 00[CFG] loading ocsp signer certificates from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

d/ocspcerts' charon[2059]: 00[CFG] loading attribute certificates from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.d/acerts' charon[2059]: 00[CFG] loading crls from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.d/crls' charon[2059]: 00[CFG] loading secrets from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.secrets' charon[2059]: 00[CFG] expanding file expression '/etc/ipsec.secrets' failed charon[2059]: 00[CFG] opening triplet file /nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan- failed: No such file or directory charon[2059]: 00[CFG] loaded 0 RADIUS server configurations charon[2059]: 00[CFG] no script for ext-auth script defined,


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

disabled charon[2059]: 00[LIB] loaded plugins: charon unbound pkcs11 aesni aes des rc2 sha2 sha1 md5 mgf1 rdrand random nonce x509 revocation constraints acert pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey dnscert pem openssl af-alg fips-prf gmp curve25519 chapoly xcbc cmac hmac curl attr kernel-netlink resolve socket-default connmark forecast farp stroke vici updown eap-identity eap-sim eap-sim-pcsc eap-aka eap-aka-3gpp2 eap-simaka-pseudonym eap-simaka-reauth eap-md5 eap-gtc eap-mschapv2 eap-radius xauth-generic xauth-eap xauth-pam dhcp counters charon[2059]: 00[JOB] spawning 16 worker threads ipsecstarter[2058]: charon (2059) started after 660 ms charon[2059]: 11[CFG] received stroke: add connection '-ebef-4658-8991-' charon[2059]: 11[CFG] configuration '-ebef-4658-8991-' charon[2059]: 13[CFG] rereading secrets charon[2059]: 13[CFG] loading secrets from '/nix/store/va01sq5aqg6p7yakvpg2zlnsdj4pm9dj-strongswan-5.8.1/etc/ipsec.secrets' charon[2059]: 13[CFG] expanding file expression '/etc/ipsec.secrets' failed charon[2059]: 14[CFG] received stroke: initiate '-ebef-4658-8991-' charon[2059]: 15[IKE] initiating Main Mode IKESA -ebef-4658-8991-[1] to 123.111.111.111 charon[2059]: 15[IKE] initiating Main Mode IKESA -ebef-4658-8991-[1] to 123.111.111.


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

111 charon[2059]: 15[ENC] generating IDPROT request 0 [ SA V V V V V ] charon[2059]: 15[NET] sending packet: from 192.168.1.11[500] to 123.111.111.111[500] (304 bytes) charon[2059]: 03[NET] received packet: from 123.111.111.111[500] to 192.168.1.11[500] (204 bytes) charon[2059]: 03[ENC] parsed IDPROT response 0 [ SA V V V V V V ] charon[2059]: 03[IKE] received NAT-T (RFC 3947) vendor ID charon[2059]: 03[IKE] received draft-ietf-ipsec-nat-t-ike-03 vendor ID charon[2059]: 03[IKE] received draft-ietf-ipsec-nat-t-ike-02n vendor ID charon[2059]: 03[IKE] received draft-ietf-ipsec-nat-t-ike-02 vendor ID charon[2059]: 03[IKE] received draft-ietf-ipsec-nat-t-ike-00 vendor ID charon[2059]: 03[IKE] received DPD vendor ID charon[2059]: 03[CFG] selected proposal: IKE:AESCBC128/HMACSHA196/PRFHMACSHA1/MODP2048 charon[2059]: 03[ENC] generating IDPROT request 0 [ KE No NAT-D NAT-D ] charon[2059]: 03[NET] sending packet: from 192.168.1.11[500] to 123.111.111.111[500] (372 bytes) charon[2059]: 04[NET] received packet: from 123.111.111.111[500] to 192.168.1.11[500] (356 bytes) charon[2059]: 04[ENC] parsed IDPROT response 0 [ KE No NAT-D NAT-D ] charon[2059]: 04[IKE] no shared key found for 192.168.1.11 - 123.111.111.


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

111 charon[2059]: 04[ENC] generating INFORMATIONALV1 request [ N(INVALKE) ] charon[2059]: 04[NET] sending packet: from 192.168.1.11[500] to 123.111.111.111[500] (56 bytes) NetworkManager[2277]: initiating Main Mode IKESA -ebef-4658-8991-[1] to 123.111.111.111 NetworkManager[2277]: generating IDPROT request 0 [ SA V V V V V ] NetworkManager[2277]: sending packet: from 192.168.1.11[500] to 123.111.111.111[500] (304 bytes) NetworkManager[2277]: received packet: from 123.111.111.111[500] to 192.168.1.11[500] (204 bytes) NetworkManager[2277]: parsed IDPROT response 0 [ SA V V V V V V ] NetworkManager[2277]: received NAT-T (RFC 3947) vendor ID NetworkManager[2277]: received draft-ietf-ipsec-nat-t-ike-03 vendor ID NetworkManager[2277]: received draft-ietf-ipsec-nat-t-ike-02n vendor ID NetworkManager[2277]: received draft-ietf-ipsec-nat-t-ike-02 vendor ID NetworkManager[2277]: received draft-ietf-ipsec-nat-t-ike-00 vendor ID NetworkManager[2277]: received DPD vendor ID NetworkManager[2277]: selected proposal: IKE:AESCBC128/HMACSHA196/PRFHMACSHA1/MODP2048 NetworkManager[2277]: generating IDPROT request 0 [ KE No NAT-D NAT-D ] NetworkManager[2277]: sending packet: from 192.168.1.11[500] to 123.111.111.111[500] (372 bytes) NetworkManager[2277]: received packet: from 123.111.111.111[500] to 192.168.1.11[500] (356 bytes) NetworkManager[2277]: parsed IDPROT response 0 [ KE No NAT-D NAT-D ] NetworkManager[2277]: no shared key found for 192.168.1.11 - 123.111.111.


Question: let inherit (builtins) toFile; <del> inherit (lib) concatMapStringsSep concatStringsSep mapAttrsToList </del> <ins> inherit (lib) concatMapStrings concatStringsSep mapAttrsToList </ins> mkIf mkEnableOption mkOption types literalExpression optionalString; cfg = config.services.strongswan; <del> ipsecSecrets = secrets: toFile "ipsec.secrets" ( concatMapStringsSep "n" (f: "include ${f}") secrets ); </del> <ins> ipsecSecrets = secrets: concatMapStrings (f: "include ${f}n") secrets; </ins> ipsecConf = {setup, connections, ca}: let

111 NetworkManager[2277]: generating INFORMATIONALV1 request [ N(INVALKE) ] NetworkManager[2277]: sending packet: from 192.168.1.11[500] to 123.111.111.111[500] (56 bytes) NetworkManager[2277]: establishing connection '-ebef-4658-8991-' failed NetworkManager[2283]: Stopping strongSwan IPsec. charon[2059]: 00[DMN] signal of type SIGINT received. Shutting down ipsecstarter[2058]: child 2059 (charon) has quit (exit code 0) ipsecstarter[2058]: ipsecstarter[2058]: charon stopped after 200 ms ipsecstarter[2058]: ipsec starter stopped nm-l2tp-service[2039]: gdbusmethodinvocationtake_error: assertion 'error != NULL' failed NetworkManager[954]: <warn[.6803] vpn-connection[0x24c60a0,-ebef-4658-8991-,"my-l2tp-vpn",0]: VPN connection: failed to connect: 'Message recipient disconnected from message bus without replying' .nm-applet-wrap[1470]: Failed to show notification: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Notifications was not provided by any .service files </pre</code</detailsRunning the following command fixed my error and allowed me to connect: The networking part of my only has .
This still appears relevant in 21.11. Adding this (as mentioned above) to my config appears to get an L2TP and IPSec VPN working with NetworkManager:
Still relevant in 22.05. I am confirming that with a clean install, trying to set up L2TP/IPsec VPNs fail with the following indicator: fixed the issue for me straight away as well.
Fix in


Question: message = "SSL is enabled for httpd, but sslServerCert and/or sslServerKey haven't been specified."; } ]; <del> warnings = map (cfg: ''apache-httpd's port option is deprecated. Use listen = [{/*ip = "*"; */ port = ${toString cfg.port};}]; instead'' ) (lib.filter (cfg: cfg.port != 0) allHosts); </del> <ins> warnings = map (cfg: "apache-httpd's extraSubservices option is deprecated. Most existing subservices have been ported to the NixOS module system. Please update your configuration accordingly.") (lib.filter (cfg: cfg.extraSubservices != []) allHosts); </ins> users.users = optionalAttrs (mainCfg.user == "wwwrun") (singleton { name = "wwwrun";

I set up a brand new NixOS system with nothing but . After switching to the new configuration, I ran and was surprised to find in there in a and state. I poked around and it turns out that our module refers to in its section: It sort of makes sense, because presumably you want your webserver to spin up after your database, but it feels kinda icky to give completely unrelated (in principle) services dependencies on one another, especially when some of them might not even be on your system. I suppose we could make that entry conditional on , but I'm not sure what the pros and cons of that are.
Yes, I'd think it would better be conditional. Units should get reloaded on system switch IIRC, before starting new services, so I see no danger in that.
I think, this link should be broken unconditionally. In my scenario apache-httpd is used solely for SVN web interface, and while I have running Postgresql instance, they are orthogonal (postgresql is acompanied by tomcat container/nginx pair)
Perhaps, yeah. It also appears to depend on , which I think is a nixops-ism.


Question: <del> <section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="sec-custom-packages"> <title>Adding Custom Packages</title> <para> It’s possible that a package you need is not available in NixOS. In that case, you can do two things. First, you can clone the Nixpkgs repository, add the package to your clone, and (optionally) submit a patch or pull request to have it accepted into the main Nixpkgs repository. This is described in detail in the <link xlink:href="https://nixos.org/nixpkgs/manual">Nixpkgs manual</link>. In short, you clone Nixpkgs: <screen> <prompt>$ </prompt>git clone https://github.com/NixOS/nixpkgs <prompt>$ </prompt>cd nixpkgs </screen> Then you write and test the package as described in the Nixpkgs manual. Finally, you add it to <literal>environment.systemPackages</literal>, e.g. <programlisting> <xref linkend="opt-environment.systemPackages"/> = [ pkgs.my-package ]; </programlisting> and you run <command>nixos-rebuild</command>, specifying your own Nixpkgs tree: <screen> <prompt># </prompt>nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs</screen> </para> <para> The second possibility is to add the package outside of the Nixpkgs tree. For instance, here is how you specify a build of the <link xlink:href="https://www.gnu.org/software/hello/">GNU Hello</link> package directly in <filename>configuration.nix</filename>: <programlisting> <xref linkend="opt-environment.systemPackages"/> = let my-hello = with pkgs; stdenv.mkDerivation rec { name = "hello-2.8"; src = fetchurl { url = "mirror://gnu/hello/${name}.tar.gz"; sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; }; }; in [ my-hello ]; </programlisting> Of course, you can also move the definition of <literal>my-hello</literal> into a separate Nix expression, e.g. <programlisting> <xref linkend="opt-environment.systemPackages"/> = [ (import ./my-hello.nix) ]; </programlisting> where <filename>my-hello.nix</filename> contains: <programlisting> with import <nixpkgs> {}; # bring all of Nixpkgs into scope stdenv.mkDerivation rec { name = "hello-2.8"; src = fetchurl { url = "mirror://gnu/hello/${name}.tar.gz"; sha256 = "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"; }; } </programlisting> This allows testing the package easily: <screen> <prompt>$ </prompt>nix-build my-hello.nix <prompt>$ </prompt>./result/bin/hello Hello, world! </screen> </para> </section> </del>

This tracks the conversion of from DocBook to CommonMark per . here that you intend to work on this. (Please also post if you stop working on this.) a new branch of nixpkgs master. : change to . to . the contents from Docbook to . Follow . Use existing sections in the NixOS and Nixpkgs manual for inspiration. the CommonMark back to DocBook xml with: from nixpkgs root dir with: a preview server with: your work at on steps 5-9. it looks good, commit both the new file and the generated file, submit a PR and reference this issue.