Open worldofpeace opened 5 years ago
[root@mother rave]# dnf provides */gio/gunixfdlist.h
Letzte Prüfung auf abgelaufene Metadaten: vor 14:42:56 am Di 15 Jan 2019 19:39:10 CET.
glib2-devel-2.56.4-1.fc28.x86_64 : A library of handy utility functions
Quelle : @System
Übereinstimmung von:
Dateiname : /usr/include/gio-unix-2.0/gio/gunixfdlist.h
You need to set/install glib2-devel as build requires/dependency.
This is something that shouldn't be left up to the package manager to ensure.
Certain software require gio/gdesktopappinfo.h header, which is provided by gio-unix-2.0 and shouldn't be satisfied transitively.
If you read our downstream issue we've been pretty successful in fixing this in upstream gnome.
We actually do have glib.dev
in build dependencies, it is just that the compiler is not passed -I/usr/include/gio-unix-2.0/
. pkg-config --cflags gio-unix-2.0
needs to be explicitly added to CFLAGS
in order for headers to be found.
Yes, we should add gio-unix-2.0 check in configure.ac.
We actually do have
glib.dev
in build dependencies, it is just that the compiler is not passed-I/usr/include/gio-unix-2.0/
.pkg-config --cflags gio-unix-2.0
needs to be explicitly added toCFLAGS
in order for headers to be found.
Weird, i never had such a problem if i build atril on fedora koji build-server. https://src.fedoraproject.org/cgit/rpms/atril.git/tree/atril.spec#n32 glib2-devel is one the packages which will be include by fedora for every rpm. But Ok, if it is needed for your distro......
IIRC fedora gets pkg-config --cflags gio-unix-2.0
from some other package (maybe pkg-config --cflags gtk-3.0
).
After checking it again, I think it's a distribution issue. It seems that the gtk3 packaged by nixos is incorrect.
Normally packaged gtk3 adds a dependency on gio-unix-2.0
, unless the environment for compiling gtk3 is incomplete.
The gtk-3.24.2 used by nixos is also depends on gio-unix-2.0
: https://gitlab.gnome.org/GNOME/gtk/blob/3.24.2/configure.ac#L1417
Please confirm whether -I/usr/include/gio-unix-2.0
is included in the output of the following commands on nixos? If not, please report bugs to nixos.
pkg-config --cflags gtk+-3.0
I guess the main problem stems from pkgconfig#7. We have decided to interpret the pkg-config
specification to not include Requires.private
in --cflags
to avoid the pkgconfig#7 and also pkgconfig#28.
$ nix-shell --pure -p gtk3 pkgconfig --run "pkg-config --cflags gtk+-3.0"
-I/nix/store/gs5zdwrvvfk6gzl5bmdanaf27pl37zhd-gtk+3-3.24.2-dev/include/gtk-3.0 -I/nix/store/1hy3jy3bkz84yjg1vvdw1jyl6bpjm9bg-glib-2.58.2-dev/include -I/nix/store/1hy3jy3bkz84yjg1vvdw1jyl6bpjm9bg-glib-2.58.2-dev/include/glib-2.0 -I/nix/store/8q73aw4x32izb0gvzadjvj3a298bbwyy-glib-2.58.2/lib/glib-2.0/include -I/nix/store/yz1m10kz4v4k44q1l691s9lj7xcd29dq-cairo-1.16.0-dev/include/cairo -I/nix/store/67zcs5qzkc6i2mkj2pchma40754y0k5k-freetype-2.9-dev/include/freetype2 -I/nix/store/67zcs5qzkc6i2mkj2pchma40754y0k5k-freetype-2.9-dev/include -I/nix/store/v53bn3zha26plk7wmzsqxzv5ziwbwbkv-pango-1.42.4-dev/include/pango-1.0 -I/nix/store/42w7jqb64mvyz9l1m36577bdibxaqah6-gdk-pixbuf-2.38.0-dev/include/gdk-pixbuf-2.0 -I/nix/store/scklfi0dyfyg5kpirj81jz6jdpw3q2b1-atk-2.30.0-dev/include/atk-1.0
Nevertheless, I would expect us to directly depend on all libraries whose headers we include. See, for example, that we depend on gio-2.0
, even though it is already in Requires
of gtk3. Transitive dependencies may be in theory removed any time so relying on them might be unsafe.
I am building atril 1.20.3 on NixOS and getting the following error:
Downstream issue: NixOS/nixpkgs#36468