on iko/ghcjs-patch-master help sign in
Add more pkgconf mappings (#126)
commit7b438d8d746b0cf5ef1804e10d2c30fa2a8ec198 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateFri 17 May 2019, 19:59 (7 years ago) parent3907718
3 files changed+167−12
builder/comp-builder.nix+1−1 lib/pkgconf-nixpkgs-map.nix+165−10 modules/package.nix+1−1
builder/comp-builder.nix+1−1
@@ -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+165−10
@@ -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+1−1
@@ -96,7 +96,7 @@ with types;
9696 default = [];
9797 };
9898 pkgconfig = mkOption {
99− type = listOfFilteringNulls package;
99+ type = listOf (listOfFilteringNulls package);
100100 default = [];
101101 };
102102 build-tools = mkOption {