mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 04:43:09 +03:00
all-packages.nix: Provide a shorter way to specify packages
There are zillions of lines of the form foo = callPackage ../bla/foo { }; in all-packages.nix. To get rid of this verbosity, you can now list such packages in pkgs/auto-packages.nix. This is just a list of package file names, e.g. development/libraries/libogg development/libraries/libvorbis tools/archivers/gnutar If the package needs non-default function arguments, or if its intended attribute name is different from its file name, then you cannot put it in auto-packages.nix and instead need to specify it in all-packages.nix. If Nix had a glob function (https://github.com/NixOS/nix/pull/235), we could even get rid of auto-packages.nix and have package expressions be discovered automatically. However, that might not be desirable because of the need to traverse the file system to find packages we may not even use.
This commit is contained in:
parent
beb47fa3b6
commit
ece61b7cc8
16
pkgs/auto-packages.nix
Normal file
16
pkgs/auto-packages.nix
Normal file
@ -0,0 +1,16 @@
|
||||
/* A list of file names of package Nix expressions, whose base names
|
||||
match the intended attribute names, and that do not need to be
|
||||
called with any overrides. Thus, listing ‘./foo.nix’ here is
|
||||
equivalent to defining the attribute
|
||||
|
||||
foo = callPackage ./foo.nix { };
|
||||
|
||||
in all-packages.nix. */
|
||||
|
||||
[
|
||||
build-support/libredirect
|
||||
development/libraries/libogg
|
||||
development/libraries/libvorbis
|
||||
tools/archivers/gnutar
|
||||
tools/system/acct
|
||||
]
|
@ -130,11 +130,19 @@ let
|
||||
in pkgs;
|
||||
|
||||
|
||||
# The package compositions. Yes, this isn't properly indented.
|
||||
# The package compositions.
|
||||
pkgsFun = pkgs: overrides:
|
||||
with helperFunctions;
|
||||
let defaultScope = pkgs // pkgs.xorg; self = self_ // overrides;
|
||||
self_ = with self; helperFunctions // {
|
||||
let
|
||||
defaultScope = pkgs // pkgs.xorg;
|
||||
autoPackages = lib.listToAttrs
|
||||
(map (fn: { name = baseNameOf (toString fn); value = pkgs.callPackage fn { }; })
|
||||
(import ../auto-packages.nix));
|
||||
self = self_ // autoPackages // overrides;
|
||||
self_ = with self; helperFunctions //
|
||||
|
||||
|
||||
# Yes, this isn't properly indented.
|
||||
{
|
||||
|
||||
# Make some arguments passed to all-packages.nix available
|
||||
inherit system stdenvType platform;
|
||||
@ -361,8 +369,6 @@ let
|
||||
inherit url;
|
||||
};
|
||||
|
||||
libredirect = callPackage ../build-support/libredirect { };
|
||||
|
||||
makeDesktopItem = import ../build-support/make-desktopitem {
|
||||
inherit stdenv;
|
||||
};
|
||||
@ -427,8 +433,6 @@ let
|
||||
|
||||
### TOOLS
|
||||
|
||||
acct = callPackage ../tools/system/acct { };
|
||||
|
||||
acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter {
|
||||
ffmpeg = ffmpeg_1;
|
||||
};
|
||||
@ -1159,8 +1163,6 @@ let
|
||||
|
||||
gnused = callPackage ../tools/text/gnused { };
|
||||
|
||||
gnutar = callPackage ../tools/archivers/gnutar { };
|
||||
|
||||
gnuvd = callPackage ../tools/misc/gnuvd { };
|
||||
|
||||
goaccess = callPackage ../tools/misc/goaccess { };
|
||||
@ -5366,8 +5368,6 @@ let
|
||||
|
||||
libofx = callPackage ../development/libraries/libofx { };
|
||||
|
||||
libogg = callPackage ../development/libraries/libogg { };
|
||||
|
||||
liboggz = callPackage ../development/libraries/liboggz { };
|
||||
|
||||
liboil = callPackage ../development/libraries/liboil { };
|
||||
@ -5534,8 +5534,6 @@ let
|
||||
|
||||
libvterm = callPackage ../development/libraries/libvterm { };
|
||||
|
||||
libvorbis = callPackage ../development/libraries/libvorbis { };
|
||||
|
||||
libwebp = callPackage ../development/libraries/libwebp { };
|
||||
|
||||
libwmf = callPackage ../development/libraries/libwmf { };
|
||||
@ -10417,13 +10415,13 @@ let
|
||||
callPackage = newScope pkgs.cinnamon;
|
||||
inherit (gnome3) gnome_common libgnomekbd gnome-menus zenity;
|
||||
|
||||
muffin = callPackage ../desktops/cinnamon/muffin.nix { } ;
|
||||
muffin = callPackage ../desktops/cinnamon/muffin.nix { };
|
||||
|
||||
cinnamon-control-center = callPackage ../desktops/cinnamon/cinnamon-control-center.nix{ };
|
||||
cinnamon-control-center = callPackage ../desktops/cinnamon/cinnamon-control-center.nix { };
|
||||
|
||||
cinnamon-settings-daemon = callPackage ../desktops/cinnamon/cinnamon-settings-daemon.nix{ };
|
||||
cinnamon-settings-daemon = callPackage ../desktops/cinnamon/cinnamon-settings-daemon.nix { };
|
||||
|
||||
cinnamon-session = callPackage ../desktops/cinnamon/cinnamon-session.nix{ } ;
|
||||
cinnamon-session = callPackage ../desktops/cinnamon/cinnamon-session.nix { };
|
||||
|
||||
cinnamon-desktop = callPackage ../desktops/cinnamon/cinnamon-desktop.nix { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user