Skip to content

Commit b6d79fa

Browse files
hamishmackangerman
authored andcommitted
Add more pkgconf mappings
1 parent 3907718 commit b6d79fa

File tree

3 files changed

+167
-12
lines changed

3 files changed

+167
-12
lines changed

builder/comp-builder.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ stdenv.mkDerivation ({
235235

236236
buildInputs = component.libs
237237
++ component.frameworks
238-
++ component.pkgconfig;
238+
++ builtins.concatLists component.pkgconfig;
239239

240240
nativeBuildInputs =
241241
[shellWrappers buildPackages.removeReferencesTo]

lib/pkgconf-nixpkgs-map.nix

Lines changed: 165 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,166 @@
11
# pkgconfig entries to nixpkgs map
2-
pkgs: {
3-
cairo-pdf = pkgs.cairo;
4-
cairo-ps = pkgs.cairo;
5-
cairo-svg = pkgs.cairo;
6-
xft = pkgs.xorg.libXft;
7-
xau = pkgs.xorg.libXau;
8-
libR = pkgs.R;
9-
fftw3f = pkgs.fftwFloat;
10-
fftw3 = pkgs.fftw;
11-
}
2+
pkgs:
3+
pkgs.lib.mapAttrs (name: value: [ value ]) pkgs //
4+
{
5+
# Based on https://github.com/NixOS/cabal2nix/blob/11c68fdc79461fb74fa1dfe2217c3709168ad752/src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs#L23
6+
"adns" = [ pkgs."adns" ];
7+
"alsa" = [ pkgs."alsaLib" ];
8+
"alut" = [ pkgs."freealut" ];
9+
"appindicator-0.1" = [ pkgs."libappindicator-gtk2" ];
10+
"appindicator3-0.1" = [ pkgs."libappindicator-gtk3" ];
11+
"asound" = [ pkgs."alsaLib" ];
12+
"atk" = [ pkgs."atk" ];
13+
"b2" = [ pkgs."libb2" ];
14+
"bz2" = [ pkgs."bzip2" ];
15+
"c++" = []; # What is that?
16+
"cairo-gobject" = [ pkgs."cairo" ];
17+
"cairo-pdf" = [ pkgs."cairo" ];
18+
"cairo-ps" = [ pkgs."cairo" ];
19+
"cairo-svg" = [ pkgs."cairo" ];
20+
"crypt" = []; # provided by glibc
21+
"crypto" = [ pkgs."openssl" ];
22+
"curses" = [ pkgs."ncurses" ];
23+
"dbusmenu-glib-0.4" = [ pkgs."libdbusmenu" ];
24+
"dbusmenu-gtk3-0.4" = [ pkgs."libdbusmenu-gtk3" ]; # do we also need pkgs."gtk3"
25+
"dl" = []; # provided by glibc
26+
"fftw3" = [ pkgs."fftw" ];
27+
"fftw3f" = [ pkgs."fftwFloat" ];
28+
"gconf" = [ pkgs."GConf" ];
29+
"gconf-2.0" = [ pkgs."GConf" ];
30+
"gdk-2.0" = [ pkgs."gtk2" ];
31+
"gdk-3.0" = [ pkgs."gtk3" ];
32+
"gdk-pixbuf-2.0" = [ pkgs."gdk_pixbuf" ];
33+
"gdk-x11-2.0" = [ pkgs."gdk_x11" ];
34+
"gdk-x11-3.0" = [ pkgs."gtk3" ];
35+
"gio-2.0" = [ pkgs."glib" ];
36+
"glib-2.0" = [ pkgs."glib" ];
37+
"GL" = [ pkgs."libGL" ];
38+
"GLU" = [ pkgs."libGLU" pkgs."libGL" ];
39+
"glut" = [ pkgs."freeglut" pkgs."libGLU" pkgs."libGL" ];
40+
"gnome-keyring" = [ pkgs."gnome-keyring" ];
41+
"gnome-keyring-1" = [ pkgs."libgnome-keyring" ];
42+
"gnome-vfs-2.0" = [ pkgs."gnome-vfs" ];
43+
"gnome-vfs-module-2.0" = [ pkgs."gnome-vfs_module" ];
44+
"gobject-2.0" = [ pkgs."glib" ];
45+
"gobject-introspection-1.0" = [ pkgs."gobject-introspection" ];
46+
"gstreamer-audio-0.10" = [ pkgs."gst-plugins-base" ];
47+
"gstreamer-audio-1.0" = [ pkgs."gst-plugins-base" ];
48+
"gstreamer-base-0.10" = [ pkgs."gst-plugins-base" ];
49+
"gstreamer-base-1.0" = [ pkgs."gst-plugins-base" ];
50+
"gstreamer-controller-0.10" = [ pkgs."gstreamer" ];
51+
"gstreamer-dataprotocol-0.10" = [ pkgs."gstreamer" ];
52+
"gstreamer-net-0.10" = [ pkgs."gst-plugins-base" ];
53+
"gstreamer-plugins-base-0.10" = [ pkgs."gst-plugins-base" ];
54+
"gstreamer-video-1.0" = [ pkgs."gst-plugins-base" ];
55+
"gthread-2.0" = [ pkgs."glib" ];
56+
"gtk+-2.0" = [ pkgs."gtk2" ];
57+
"gtk+-3.0" = [ pkgs."gtk3" ];
58+
"gtk-x11-2.0" = [ pkgs."gtk_x11" ];
59+
"gtksourceview-3.0" = [ pkgs."gtksourceview3" ];
60+
"hidapi-libusb" = [ pkgs."hidapi" ];
61+
"icudata" = [ pkgs."icu" ];
62+
"icui18n" = [ pkgs."icu" ];
63+
"icuuc" = [ pkgs."icu" ];
64+
"idn" = [ pkgs."libidn" ];
65+
"IL" = [ pkgs."libdevil" ];
66+
"ImageMagick" = [ pkgs."imagemagick" ];
67+
"Imlib2" = [ pkgs."imlib2" ];
68+
"iw" = [ pkgs."wirelesstools" ];
69+
"jack" = [ pkgs."libjack2" ];
70+
"javascriptcoregtk-3.0" = [ pkgs."webkitgtk24x-gtk3" ]; # These are the old APIs, of which 2.4 is the last provider, so map directly to that.
71+
"javascriptcoregtk-4.0" = [ pkgs."webkitgtk" ];
72+
"jpeg" = [ pkgs."libjpeg" ];
73+
"jvm" = [ pkgs."jdk" ];
74+
"lapack" = [ pkgs."liblapack" ];
75+
"lber" = [ pkgs."openldap" ];
76+
"ldap" = [ pkgs."openldap" ];
77+
"libavutil" = [ pkgs."ffmpeg" ];
78+
"libgsasl" = [ pkgs."gsasl" ];
79+
"libpcre" = [ pkgs."pcre" ];
80+
"libqrencode" = [ pkgs."qrencode" ];
81+
"libR" = [ pkgs."R" ];
82+
"libsoup-gnome-2.4" = [ pkgs."libsoup" ];
83+
"libsystemd" = [ pkgs."systemd" ];
84+
"libudev" = [ pkgs."systemd" ];
85+
"libxml-2.0" = [ pkgs."libxml2" ];
86+
"libzip" = [ pkgs."libzip" ];
87+
"libzmq" = [ pkgs."zeromq" ];
88+
"m" = []; # in stdenv
89+
"magic" = [ pkgs."file" ];
90+
"MagickWand" = [ pkgs."imagemagick" ];
91+
"mnl" = [ pkgs."libmnl" ];
92+
"mpi" = [ pkgs."openmpi" ];
93+
"ncursesw" = [ pkgs."ncurses" ];
94+
"netsnmp" = [ pkgs."net_snmp" ];
95+
"notify" = [ pkgs."libnotify" ];
96+
"odbc" = [ pkgs."unixODBC" ];
97+
"openblas" = [ pkgs."openblasCompat" ];
98+
"panelw" = [ pkgs."ncurses" ];
99+
"pangocairo" = [ pkgs."pango" ];
100+
"pcap" = [ pkgs."libpcap" ];
101+
"pfs-1.2" = [ pkgs."pfstools" ];
102+
"png" = [ pkgs."libpng" ];
103+
"poppler-glib" = [ pkgs."poppler" ];
104+
"pq" = [ pkgs."postgresql" ];
105+
"pthread" = [];
106+
"pulse" = [ pkgs."libpulseaudio" ];
107+
"pulse-simple" = [ pkgs."libpulseaudio" ];
108+
"python-3.3" = [ pkgs."python33" ];
109+
"python-3.4" = [ pkgs."python34" ];
110+
"Qt5Core" = [ pkgs."qt5" ];
111+
"Qt5Gui" = [ pkgs."qt5" ];
112+
"Qt5Qml" = [ pkgs."qt5" ];
113+
"Qt5Quick" = [ pkgs."qt5" ];
114+
"Qt5Widgets" = [ pkgs."qt5" ];
115+
"quadprog" = [ pkgs."QuadProgpp" ];
116+
"rt" = []; # in glibc
117+
"rtlsdr" = [ pkgs."rtl-sdr" ];
118+
"ruby1.8" = [ pkgs."ruby" ];
119+
"sass" = [ pkgs."libsass" ];
120+
"sctp" = [ pkgs."lksctp-tools" ]; # This is linux-specific, we should create a common attribute if we ever add sctp support for other systems.
121+
"sdl2" = [ pkgs."SDL2" ];
122+
"sndfile" = [ pkgs."libsndfile" ];
123+
"sodium" = [ pkgs."libsodium" ];
124+
"sqlite3" = [ pkgs."sqlite" ];
125+
"ssh2" = [ pkgs."libssh2" ];
126+
"ssl" = [ pkgs."openssl" ];
127+
"statgrab" = [ pkgs."libstatgrab" ];
128+
"stdc++" = []; # What is that?
129+
"stdc++.dll" = []; # What is that?
130+
"systemd-journal" = [ pkgs."systemd" ];
131+
"tag_c" = [ pkgs."taglib" ];
132+
"taglib_c" = [ pkgs."taglib" ];
133+
"tensorflow" = [ pkgs."libtensorflow" ];
134+
"udev" = [ pkgs."systemd" ];
135+
"uuid" = [ pkgs."libossp_uuid" ];
136+
"vte-2.91" = [ pkgs."vte_291" ];
137+
"wayland-client" = [ pkgs."wayland" ];
138+
"wayland-cursor" = [ pkgs."wayland" ];
139+
"wayland-egl" = [ pkgs."libGL" ];
140+
"wayland-server" = [ pkgs."wayland" ];
141+
"webkit2gtk" = [ pkgs."webkitgtk" ];
142+
"webkit2gtk-4.0" = [ pkgs."webkitgtk" ];
143+
"webkit2gtk-web-extension-4.0" = [ pkgs."webkitgtk" ];
144+
"webkitgtk-3.0" = [ pkgs."webkitgtk24x-gtk3" ]; # These are the old APIs, of which 2.4 is the last provider, so map directly to that
145+
"X11" = [ pkgs."libX11" ];
146+
"x11" = [ pkgs."xlibsWrapper" ];
147+
"xau" = [ pkgs."libXau" ];
148+
"Xcursor" = [ pkgs."libXcursor" ];
149+
"xerces-c" = [ pkgs."xercesc" ];
150+
"Xext" = [ pkgs."libXext" ];
151+
"xft" = [ pkgs."libXft" ];
152+
"Xi" = [ pkgs."libXi" ];
153+
"Xinerama" = [ pkgs."libXinerama" ];
154+
"xkbcommon" = [ pkgs."libxkbcommon" ];
155+
"xml2" = [ pkgs."libxml2" ];
156+
"Xpm" = [ pkgs."libXpm" ];
157+
"Xrandr" = [ pkgs."libXrandr" ];
158+
"Xrender" = [ pkgs."libXrender" ];
159+
"Xss" = [ pkgs."libXScrnSaver" ];
160+
"Xtst" = [ pkgs."libXtst" ];
161+
"Xxf86vm" = [ pkgs."libXxf86vm" ];
162+
"yaml" = [ pkgs."libyaml" ];
163+
"yaml-0.1" = [ pkgs."libyaml" ];
164+
"z" = [ pkgs."zlib" ];
165+
"zmq" = [ pkgs."zeromq" ];
166+
}

modules/package.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ with types;
9696
default = [];
9797
};
9898
pkgconfig = mkOption {
99-
type = listOfFilteringNulls package;
99+
type = listOf (listOf package);
100100
default = [];
101101
};
102102
build-tools = mkOption {

0 commit comments

Comments
 (0)