nix-env should have an option to update the all packages to new channel even if the version is the same

Created on 31 Oct 2020  ·  4Comments  ·  Source: NixOS/nix

Describe the bug

If a package, for example firefox, has the same version in old (20.03) and new (20.09) channels it is not updated. This may result in errors if old package is not compatible with new environment.

I run into this problem when updating to 20.09 when the firefox fontconfig was not compatible with new files.

Steps To Reproduce

  1. Switch channels
  2. nixos-rebuild boot --upgrade
  3. nix-env -u
  4. Reboot
  5. Start firefox

Expected behavior

System works

nix-env --version output

nix-env (Nix) 2.3.7

Additional context

$ firefox 
Fontconfig warning: "/etc/fonts/2.11/fonts.conf", line 5: unknown element "description"
Fontconfig error: "/etc/fonts/2.11/fonts.conf", line 5: invalid attribute 'domain'
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/20-unhint-small-vera.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/40-nonlatin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/45-generic.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/45-latin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/49-sansserif.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/51-local.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/60-generic.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/60-latin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/65-nonlatin.conf", line 4: unknown element "description"
Fontconfig error: Cannot load config file from /etc/fonts/2.11/fonts.conf
Fontconfig warning: "/etc/fonts/2.11/fonts.conf", line 5: unknown element "description"
Fontconfig error: "/etc/fonts/2.11/fonts.conf", line 5: invalid attribute 'domain'
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/20-unhint-small-vera.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/30-metric-aliases.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/40-nonlatin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/45-generic.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/45-latin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/49-sansserif.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/51-local.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/60-generic.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/60-latin.conf", line 4: unknown element "description"
Fontconfig warning: "/etc/fonts/conf.d/65-nonlatin.conf", line 4: unknown element "description"
Fontconfig error: Cannot load config file from /etc/fonts/2.11/fonts.conf

###!!! [Parent][MessageChannel] Error: (msgtype=0x21007B,name=PBrowser::Msg_SynthMouseMoveEvent) Channel error: cannot send/recv

fish: “firefox” terminated by signal SIGSEGV (Address boundary error)

Reinstalling firefox to be picked from 20.09 channel works.

bug

Most helpful comment

@bjornfor I think you're right. It might be good to add it to nix/nixos documentation.

Though I think @grahamc might be onto something that it should be by default...

All 4 comments

nix-env should probably always upgrade every package, since a critical fix in an underlying library is still a required upgrade, but right now nix-env will ignore it.

I think this feature is provided by the --always flag.

@bjornfor I think you're right. It might be good to add it to nix/nixos documentation.

Though I think @grahamc might be onto something that it should be by default...

Yes, --always or --leq does this.

nix profile upgrade doesn't look at version numbers by the way.

Was this page helpful?
0 / 5 - 0 ratings