# Electron complaining it is EOL - but what is requiring it?

**URL:** https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700
**Category:** Help
**Created:** [October 27, 2023, 6:05pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700 "2023-10-27T18:05:27Z")
**Posts on this page:** 19
**Page:** 1

<div class="post-metadata">

### Author: ![noblman](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/n/b487fb/32.png) [@noblman](https://discourse.nixos.org/u/noblman)
#### Post date: [October 27, 2023, 6:05pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/1 "2023-10-27T18:05:28Z")

</div>

I just tried a `home-manager switch -- flake .` but I got an error about Electron being EOL’ed. The problem is that I don’t explicitly install it, and I don’t know what is requiring it.

How can I solve this problem?

Here is the error output:

```auto
error:
       … while calling the 'derivationStrict' builtin

         at /builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'home-manager-generation'
         whose name attribute is located at /nix/store/z1nvpjx9vd4151vx2krxzmx2p1a36pf9-source/pkgs/stdenv/generic/make-derivation.nix:300:7

       … while evaluating attribute 'buildCommand' of derivation 'home-manager-generation'

         at /nix/store/z1nvpjx9vd4151vx2krxzmx2p1a36pf9-source/pkgs/build-support/trivial-builders/default.nix:87:14:

           86| enableParallelBuilding = true;
           87| inherit buildCommand name;
             | ^
           88| passAsFile = ["buildCommand"]

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: Package ‘electron-22.3.27’ in /nix/store/z1nvpjx9vd4151vx2krxzmx2p1a36pf9-source/pkgs/development/tools/electron/binary/generic.nix:35 is marked as insecure, refusing to evaluate.

       Known issues:
        - Electron version 22.3.27 is EOL

       You can install it anyway by allowing this package, using the
       following methods:

       a) To temporarily allow all insecure packages, you can use an environment
          variable for a single invocation of the nix tools:

            $ export NIXPKGS_ALLOW_INSECURE=1

        Note: For `nix shell`, `nix build`, `nix develop` or any other Nix 2.4+
        (Flake) command, `--impure` must be passed in order to read this
        environment variable.

       b) for `nixos-rebuild` you can add ‘electron-22.3.27’ to
          `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
          like so:

            {
              nixpkgs.config.permittedInsecurePackages = [
                "electron-22.3.27"
              ];
            }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
          ‘electron-22.3.27’ to `permittedInsecurePackages` in
          ~/.config/nixpkgs/config.nix, like so:

            {
              permittedInsecurePackages = [
                "electron-22.3.27"
              ];
            }
~

```

---

<div class="post-metadata">

### Author: ![delroth](https://discourse.nixos.org/user_avatar/discourse.nixos.org/delroth/32/9307_2.png) [@delroth](https://discourse.nixos.org/u/delroth)
#### Post date: [October 27, 2023, 9:59pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/2 "2023-10-27T21:59:13Z")

</div>

As mentioned in the error message, `--show-trace` will show a longer stack trace, and you should be able to find the name of the derivation which depends on electron in there.

---

<div class="post-metadata">

### Author: ![tiez](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tiez/32/11262_2.png) [@tiez](https://discourse.nixos.org/u/tiez)
#### Post date: [October 28, 2023, 10:18am UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/3 "2023-10-28T10:18:29Z")

</div>

I have the same problem. For me it is obsidian notes that requires electron. Will this be resolved by the maintainer in a few days or should I do something myself long-term?

---

<div class="post-metadata">

### Author: ![hicksca](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hicksca/32/11556_2.png) [@hicksca](https://discourse.nixos.org/u/hicksca)
#### Post date: [October 30, 2023, 1:04am UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/4 "2023-10-30T01:04:12Z")

</div>

While not ideal, remove any app using electron update and then re-add them to your config.  
Basically, in your older derivation, one of the apps is depending on the old version of the dependency and bails before pulling the new dependency.

This resolved the issue for me.

---

<div class="post-metadata">

### Author: ![tiez](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tiez/32/11262_2.png) [@tiez](https://discourse.nixos.org/u/tiez)
#### Post date: [October 31, 2023, 1:04pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/5 "2023-10-31T13:04:47Z")

</div>

Unfortunately this did not solve the problem for me. I still get

> error: Package ‘electron-24.8.6’ in /nix/store/z707kdjl26j97153sc62szg61sz5ki34-nixos-23.05/nixos/pkgs/develo  
> pment/tools/electron/binary/generic.nix:27 is marked as insecure, refusing to evaluate.

What I did was

1. remove obsidian from `environment.systemPackages`
2. nixos-rebuild --switch
3. nix-channel --update
4. nixos-rebuild --switch
5. add obsidian to `environment.systemPackages`
6. nixos-rebuild --switch _(this failed with above error)_

---

<div class="post-metadata">

### Author: ![peterhoeg](https://discourse.nixos.org/user_avatar/discourse.nixos.org/peterhoeg/32/137_2.png) [@peterhoeg](https://discourse.nixos.org/u/peterhoeg)
#### Post date: [October 31, 2023, 1:53pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/6 "2023-10-31T13:53:22Z")

</div>

> [@hicksca](#):
>
> one of the apps is depending on the old version of the dependency and bails before pulling the new dependency.

That’s not how nix works.

The issue here is that the version in stable (23.05) uses the old and unsupported electron version, whereas unstable has the updated version.

There are a few options:

1. run obsidian from unstable but keep your system on stable
2. update the system to unstable
3. wait for 23.11
4. get one of the maintainers to backport the change to 23.05. I don’t know what the impact of that is (I don’t have any experience with electron applications).

---

<div class="post-metadata">

### Author: ![tiez](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tiez/32/11262_2.png) [@tiez](https://discourse.nixos.org/u/tiez)
#### Post date: [October 31, 2023, 1:57pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/7 "2023-10-31T13:57:24Z")

</div>

> [@peterhoeg](#):
>
> run obsidian from unstable but keep your system on stable

I am still new to NixOS. What is the most canonical and “safe” way to run unstable obsidian? Would be happy for some pointers.

---

<div class="post-metadata">

### Author: ![Atemu](https://discourse.nixos.org/user_avatar/discourse.nixos.org/atemu/32/10383_2.png) [@Atemu](https://discourse.nixos.org/u/Atemu)
#### Post date: [October 31, 2023, 2:01pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/8 "2023-10-31T14:01:01Z")

</div>

Simply use the unstable channel.

Despite its name, it’s not unsafe to use. Unstable refers to major package versions and NixOS options API changes; they may change at any time rather than at fixed times. Like Arch vs. Fedora.

You may sometimes get breaking changes that actually break your setup for a few days but that’s honestly not a big issue with NixOS.

---

<div class="post-metadata">

### Author: ![TLATER](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tlater/32/4257_2.png) [@TLATER](https://discourse.nixos.org/u/TLATER)
#### Post date: [October 31, 2023, 2:20pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/9 "2023-10-31T14:20:49Z")

</div>

You may also _just_ want obsidian from unstable if you don’t want to deal with the occasional API break, I have a long-form answer on how to do that here: [Installing multiple packages from unstable channel in configuration.nix - #2 by TLATER](https://discourse.nixos.org/t/installing-multiple-packages-from-unstable-channel-in-configuration-nix/19271/2)

Wonder if a tutorial for this would be appropriate on nix.dev

---

<div class="post-metadata">

### Author: ![Atemu](https://discourse.nixos.org/user_avatar/discourse.nixos.org/atemu/32/10383_2.png) [@Atemu](https://discourse.nixos.org/u/Atemu)
#### Post date: [October 31, 2023, 4:44pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/10 "2023-10-31T16:44:49Z")

</div>

Running stuff from different releases usually breaks when running GUI apps as those often rely one of the last remaining impurities in Nixpkgs: The graphics driver.

It should not be recommended to users without mentioning that major caveat.

---

<div class="post-metadata">

### Author: ![hicksca](https://discourse.nixos.org/user_avatar/discourse.nixos.org/hicksca/32/11556_2.png) [@hicksca](https://discourse.nixos.org/u/hicksca)
#### Post date: [October 31, 2023, 6:47pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/11 "2023-10-31T18:47:29Z")

</div>

I would be very curious of what other systems apps are installed.  
Obsidian probably isn’t the only app that has the dependency.

Some other examples that might no come to mind immediately:  
Slack/Discord/VScode/Bitwardon/1Password … I’m sure there are more  
but these are some that I can think of off the top of my head.

Would be interested to learn how to trace what the is using the version as a dependacy.

---

<div class="post-metadata">

### Author: ![tiez](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tiez/32/11262_2.png) [@tiez](https://discourse.nixos.org/u/tiez)
#### Post date: [October 31, 2023, 7:39pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/12 "2023-10-31T19:39:34Z")

</div>

I added obsidian from unstable and this resolved the issue. Took me some time to get all the expressions correctly and on _switch_ it looked like around 100 new packages were installed (dependencies from unstable?) but it works now. Will probably remove it again after 23.11 is out.

It’s a bummer though that stuff just breaks (electron is declared unsafe and dependent packages are not fixed) although you stay on stable.

Thank you for reading my blog.

---

<div class="post-metadata">

### Author: ![Atemu](https://discourse.nixos.org/user_avatar/discourse.nixos.org/atemu/32/10383_2.png) [@Atemu](https://discourse.nixos.org/u/Atemu)
#### Post date: [November 1, 2023, 8:19am UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/13 "2023-11-01T08:19:43Z")

</div>

> [@tiez](#):
>
> It’s a bummer though that stuff just breaks (electron is declared unsafe and dependent packages are not fixed) although you stay on stable.

We try to keep breakage like this as minimal as possible by removing things that will stop being maintained before release but the real world isn’t always plannable like that. Sometimes security issues crop up during a release and aren’t fixed. We can’t do much against that.

If you don’t care about the security issue, you could have just allowed the package like the first error message told you.

---

<div class="post-metadata">

### Author: ![taotien](https://discourse.nixos.org/user_avatar/discourse.nixos.org/taotien/32/10186_2.png) [@taotien](https://discourse.nixos.org/u/taotien)
#### Post date: [November 1, 2023, 10:08am UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/14 "2023-11-01T10:08:02Z")

</div>

Flake system here, having the same issue due to Heroic launcher.

For some reason, following `b)` and adding the right electron version to `nixpkgs.config.permittedInsecurePackages` is having no effect, although it worked previously for installing balena etcher.

`a)` doesn’t work either, and `c` is N/A.

---

<div class="post-metadata">

### Author: ![TLATER](https://discourse.nixos.org/user_avatar/discourse.nixos.org/tlater/32/4257_2.png) [@TLATER](https://discourse.nixos.org/u/TLATER)
#### Post date: [November 2, 2023, 5:43pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/15 "2023-11-02T17:43:50Z")

</div>

> [@taotien](#):
>
> `a)` doesn’t work either

Do note that a) will only work with `--impure`. `nixos-rebuild` is supposed to forward that to `nix build` & co. Flake-based nix commands by default do not allow anything to touch env vars, so there would be no way for the nixpkgs eval to read that variable without impure.

> [@taotien](#):
>
> For some reason, following `b)` and adding the right electron version to `nixpkgs.config.permittedInsecurePackages` is having no effect, although it worked previously for installing balena etcher.

Are you using the same `pkgs` as the one from your module args? `nixpkgs.config` only applies to that one, things passed in through flake inputs or other alternate ways will not have those options applied.

---

<div class="post-metadata">

### Author: ![taotien](https://discourse.nixos.org/user_avatar/discourse.nixos.org/taotien/32/10186_2.png) [@taotien](https://discourse.nixos.org/u/taotien)
#### Post date: [November 3, 2023, 7:54pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/16 "2023-11-03T19:54:57Z")

</div>

I see, that makes sense. The config needs to be set under the overlay since that’s how I’m mixing stable and unstable. Thank you very much!

---

<div class="post-metadata">

### Author: ![noblman](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/n/b487fb/32.png) [@noblman](https://discourse.nixos.org/u/noblman)
#### Post date: [November 3, 2023, 8:11pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/17 "2023-11-03T20:11:20Z")

</div>

For me, the offending application was Freetube. This is what I did to solve the issue:

```auto
	nixpkgs.config.permittedInsecurePackages = [
    "electron-22.3.27" # for freetube 0.19.0
  ];

```

---

<div class="post-metadata">

### Author: ![chococandy](https://discourse.nixos.org/user_avatar/discourse.nixos.org/chococandy/32/11249_2.png) [@chococandy](https://discourse.nixos.org/u/chococandy)
#### Post date: [November 19, 2023, 5:32am UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/18 "2023-11-19T05:32:37Z")

</div>

For me this error shows:

```auto
[chococandy@nixpie:~]$ sudo nixos-rebuild switch --upgrade --show-trace
[sudo] password for chococandy:
unpacking channels...
building Nix...
building the system configuration...
error:
       … while evaluating the attribute 'activationScript' of the derivation 'nixos-system-nixpie-23.05.4860.9fb122519e9c'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/make-derivation.nix:303:7:

          302| // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          303| name =
             | ^
          304| let

       … while evaluating the attribute 'system.activationScripts.script'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/activation-script.nix:137:9:

          136| apply = set: set // {
          137| script = systemActivationScript set false;
             | ^
          138| };

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/activation-script.nix:137:18:

          136| apply = set: set // {
          137| script = systemActivationScript set false;
             | ^
          138| };

       … while calling 'systemActivationScript'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/activation-script.nix:20:33:

           19|
           20| systemActivationScript = set: onlyDry: let
             | ^
           21| set' = mapAttrs (_: v: if isString v then (noDepEntry v) // { supportsDryActivation = false; } else v) set;

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/activation-script.nix:49:9:

           48|
           49| ${textClosureMap id (withDrySnippets) (attrNames withDrySnippets)}
             | ^
           50|

       … while calling 'textClosureMap'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/strings-with-deps.nix:75:35:

           74|
           75| textClosureMap = f: predefined: names:
             | ^
           76| concatStringsSep "\n" (map f (textClosureList predefined names));

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'id'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/trivial.nix:14:5:

           13| # The value to return
           14| x: x;
             | ^
           15|

       … while evaluating the attribute 'text'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/activation/activation-script.nix:9:5:

            8| addAttributeName = mapAttrs (a: v: v // {
            9| text = ''
             | ^
           10| #### Activation script snippet ${a}:

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'g'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:595:19:

          594| g =
          595| name: value:
             | ^
          596| if isAttrs value && cond value

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:598:20:

          597| then recurse (path ++ [name]) value
          598| else f (path ++ [name]) value;
             | ^
          599| in mapAttrs g;

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:248:72:

          247| # For definitions that have an associated option
          248| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             | ^
          249|

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:759:9:

          758| in warnDeprecation opt //
          759| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             | ^
          760| inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.activationScripts.etc.text':

       … while evaluating the attribute 'mergedValue'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:794:5:

          793| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          794| mergedValue =
             | ^
          795| if isDefined then

       … while evaluating the attribute 'values'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:788:9:

          787| in {
          788| values = defs''';
             | ^
          789| inherit (defs'') highestPrio;

       … while evaluating the attribute 'values'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:887:7:

          886| in {
          887| values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             | ^
          888| inherit highestPrio;

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:774:17:

          773| # Process mkMerge and mkIf properties.
          774| defs' = concatMap (m:
             | ^
          775| map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:774:28:

          773| # Process mkMerge and mkIf properties.
          774| defs' = concatMap (m:
             | ^
          775| map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating definitions from `/nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/etc/etc-activation.nix':

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:775:137:

          774| defs' = concatMap (m:
          775| map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             | ^
          776| ) defs;

       … while calling 'dischargeProperties'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:846:25:

          845| */
          846| dischargeProperties = def:
             | ^
          847| if def._type or "" == "merge" then

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:599:44:

          598| defnsByName' = byName "config" (module: value:
          599| [{ inherit (module) file; inherit value; }]
             | ^
          600| ) configs;

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:812:24:

          811| let f = attrPath:
          812| zipAttrsWith (n: values:
             | ^
          813| let here = attrPath ++ [n]; in

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/types.nix:563:29:

          562| merge = loc: defs:
          563| zipAttrsWith (name: defs:
             | ^
          564| let merged = mergeDefinitions (loc ++ [name]) elemType defs;

       … while evaluating the attribute 'optionalValue.value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:806:5:

          805|
          806| optionalValue =
             | ^
          807| if isDefined then { value = mergedValue; }

       … while evaluating the attribute 'values'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:788:9:

          787| in {
          788| values = defs''';
             | ^
          789| inherit (defs'') highestPrio;

       … while evaluating the attribute 'values'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:887:7:

          886| in {
          887| values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             | ^
          888| inherit highestPrio;

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:774:17:

          773| # Process mkMerge and mkIf properties.
          774| defs' = concatMap (m:
             | ^
          775| map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:774:28:

          773| # Process mkMerge and mkIf properties.
          774| defs' = concatMap (m:
             | ^
          775| map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))

       … while evaluating definitions from `/nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/etc/etc.nix':

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:775:137:

          774| defs' = concatMap (m:
          775| map (value: { inherit (m) file; inherit value; }) (builtins.addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             | ^
          776| ) defs;

       … while calling 'dischargeProperties'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:846:25:

          845| */
          846| dischargeProperties = def:
             | ^
          847| if def._type or "" == "merge" then

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/types.nix:569:58:

          568| # Push down position info.
          569| (map (def: mapAttrs (n: v: { inherit (def) file; value = v; }) def.value) defs);
             | ^
          570| emptyValue = { value = {}; };

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:88:39:

           87| then value
           88| else { ${elemAt attrPath n} = atDepth (n + 1); };
             | ^
           89| in atDepth 0;

       … while calling 'atDepth'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:85:17:

           84| len = length attrPath;
           85| atDepth = n:
             | ^
           86| if n == len

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:599:44:

          598| defnsByName' = byName "config" (module: value:
          599| [{ inherit (module) file; inherit value; }]
             | ^
          600| ) configs;

       … while evaluating the attribute 'buildCommand' of the derivation 'etc'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/make-derivation.nix:303:7:

          302| // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          303| name =
             | ^
          304| let

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/etc/etc.nix:54:7:

           53| mkdir -p "$out/etc"
           54| ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
             | ^
           55| "makeEtcEntry"

       … while calling 'concatMapStringsSep'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/strings.nix:116:5:

          115| # List of input strings
          116| list: concatStringsSep sep (map f list);
             | ^
          117|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/etc/etc.nix:54:33:

           53| mkdir -p "$out/etc"
           54| ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
             | ^
           55| "makeEtcEntry"

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/system/etc/etc.nix:54:43:

           53| mkdir -p "$out/etc"
           54| ${concatMapStringsSep "\n" (etcEntry: escapeShellArgs [
             | ^
           55| "makeEtcEntry"

       … while calling 'concatMapStringsSep'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/strings.nix:116:5:

          115| # List of input strings
          116| list: concatStringsSep sep (map f list);
             | ^
          117|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'escapeShellArg'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/strings.nix:427:20:

          426| */
          427| escapeShellArg = arg: "'${replaceStrings ["'"] ["'\\''"] (toString arg)}'";
             | ^
          428|

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling 'g'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:595:19:

          594| g =
          595| name: value:
             | ^
          596| if isAttrs value && cond value

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/attrsets.nix:598:20:

          597| then recurse (path ++ [name]) value
          598| else f (path ++ [name]) value;
             | ^
          599| in mapAttrs g;

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:248:72:

          247| # For definitions that have an associated option
          248| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             | ^
          249|

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:759:9:

          758| in warnDeprecation opt //
          759| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
             | ^
          760| inherit (res.defsFinal') highestPrio;

       … while evaluating the option `environment.etc.dbus-1.source':

       … while evaluating the attribute 'mergedValue'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:794:5:

          793| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          794| mergedValue =
             | ^
          795| if isDefined then

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:796:12:

          795| if isDefined then
          796| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             | ^
          797| else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:796:17:

          795| if isDefined then
          796| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             | ^
          797| else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:796:22:

          795| if isDefined then
          796| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             | ^
          797| else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling 'check'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/types.nix:491:15:

          490| descriptionClass = "noun";
          491| check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             | ^
          492| merge = mergeEqualOption;

       … while evaluating the attribute 'serviceDirectories' of the derivation 'dbus-1'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/make-derivation.nix:303:7:

          302| // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          303| name =
             | ^
          304| let

       … while evaluating call site

       at «none»:0: (source not available)

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/types.nix:509:14:

          508| merge = loc: defs:
          509| map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
             | ^
          510| imap1 (m: def':

       … while evaluating the attribute 'value'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:807:27:

          806| optionalValue =
          807| if isDefined then { value = mergedValue; }
             | ^
          808| else {};

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:796:12:

          795| if isDefined then
          796| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             | ^
          797| else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling anonymous lambda

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:796:17:

          795| if isDefined then
          796| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             | ^
          797| else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while evaluating call site

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/modules.nix:796:22:

          795| if isDefined then
          796| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             | ^
          797| else let allInvalid = filter (def: ! type.check def.value) defsFinal;

       … while calling 'check'

       at /nix/var/nix/profiles/per-user/root/channels/nixos/lib/types.nix:491:15:

          490| descriptionClass = "noun";
          491| check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             | ^
          492| merge = mergeEqualOption;

       … while evaluating the attribute 'passAsFile' of the derivation 'system-path'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/make-derivation.nix:303:7:

          302| // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          303| name =
             | ^
          304| let

       … while evaluating the attribute 'passAsFile'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/build-support/buildenv/default.nix:77:5:

           76| # XXX: The size is somewhat arbitrary
           77| passAsFile = if builtins.stringLength pkgs >= 128*1024 then ["pkgs"] else [];
             | ^
           78| }

       … while evaluating the attribute 'installPhase' of the derivation 'obsidian-1.2.8'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/make-derivation.nix:303:7:

          302| // (lib.optionalAttrs (attrs ? name || (attrs ? pname && attrs ? version)) {
          303| name =
             | ^
          304| let

       … while evaluating the attribute 'handled'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/check-meta.nix:447:7:

          446| # or, alternatively, just output a warning message.
          447| handled =
             | ^
          448| {

       … while evaluating the attribute 'no'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/check-meta.nix:449:11:

          448| {
          449| no = handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; };
             | ^
          450| warn = handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; };

       … while evaluating call site

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/check-meta.nix:449:16:

          448| {
          449| no = handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; };
             | ^
          450| warn = handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; };

       … while calling 'handleEvalIssue'

       at /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/stdenv/generic/check-meta.nix:226:38:

          225|
          226| handleEvalIssue = { meta, attrs }: { reason , errormsg ? "" }:
             | ^
          227| let

       error: Package ‘electron-24.8.6’ in /nix/store/0dqd3hsxn8fryqy96al9mc8wm8qw6l08-nixos-23.05/nixos/pkgs/development/tools/electron/binary/generic.nix:27 is marked as insecure, refusing to evaluate.

       Known issues:
        - Electron version 24.8.6 is EOL

       You can install it anyway by allowing this package, using the
       following methods:

       a) To temporarily allow all insecure packages, you can use an environment
          variable for a single invocation of the nix tools:

            $ export NIXPKGS_ALLOW_INSECURE=1

        Note: For `nix shell`, `nix build`, `nix develop` or any other Nix 2.4+
        (Flake) command, `--impure` must be passed in order to read this
        environment variable.

       b) for `nixos-rebuild` you can add ‘electron-24.8.6’ to
          `nixpkgs.config.permittedInsecurePackages` in the configuration.nix,
          like so:

            {
              nixpkgs.config.permittedInsecurePackages = [
                "electron-24.8.6"
              ];
            }

       c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
          ‘electron-24.8.6’ to `permittedInsecurePackages` in
          ~/.config/nixpkgs/config.nix, like so:

            {
              permittedInsecurePackages = [
                "electron-24.8.6"
              ];
            }

```

Solution `b)` to add `nixpkgs.config.permittedInsecurePackages` in the configuration.nix worked !!

---

<div class="post-metadata">

### Author: ![felipelalli](https://discourse.nixos.org/user_avatar/discourse.nixos.org/felipelalli/32/10270_2.png) [@felipelalli](https://discourse.nixos.org/u/felipelalli)
#### Post date: [September 20, 2024, 10:02pm UTC](https://discourse.nixos.org/t/electron-complaining-it-is-eol-but-what-is-requiring-it/34700/19 "2024-09-20T22:02:37Z")

</div>

Same issue here, but in my case the problematic package is “kuro” (Microsoft TODO for Linux).
