-
-
Notifications
You must be signed in to change notification settings - Fork 18k
gobject-introspection: clean-ups & build docs #87904
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
1bc7b68
fbb86b1
e4a009a
fd5ea9d
c9857de
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,61 +1,97 @@ | ||
| { stdenv, fetchurl, glib, flex, bison, meson, ninja, pkgconfig, libffi, python3 | ||
| , libintl, cctools, cairo, gnome3, glibcLocales | ||
| , substituteAll, nixStoreDir ? builtins.storeDir | ||
| { stdenv | ||
| , fetchurl | ||
| , glib | ||
| , flex | ||
| , bison | ||
| , meson | ||
| , ninja | ||
| , gtk-doc | ||
| , docbook-xsl-nons | ||
| , docbook_xml_dtd_43 | ||
| , docbook_xml_dtd_45 | ||
| , pkg-config | ||
| , libffi | ||
| , python3 | ||
| , cctools | ||
| , cairo | ||
| , gnome3 | ||
| , substituteAll | ||
| , nixStoreDir ? builtins.storeDir | ||
| , x11Support ? true | ||
| }: | ||
|
|
||
| # now that gobject-introspection creates large .gir files (eg gtk3 case) | ||
| # it may be worth thinking about using multiple derivation outputs | ||
| # In that case its about 6MB which could be separated | ||
|
|
||
| with stdenv.lib; | ||
| stdenv.mkDerivation rec { | ||
| pname = "gobject-introspection"; | ||
| version = "1.64.1"; | ||
|
|
||
| # outputs TODO: share/gobject-introspection-1.0/tests is needed during build | ||
| # by pygobject3 (and maybe others), but it's only searched in $out | ||
| outputs = [ "out" "dev" "devdoc" "man" ]; | ||
| outputBin = "dev"; | ||
|
|
||
| src = fetchurl { | ||
| url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; | ||
| sha256 = "19vz7vp10h0zj3f491yk72dp89bix6rgkzxg4qcm4d6151ksxgl0"; | ||
| }; | ||
|
|
||
| outputs = [ "out" "dev" "man" ]; | ||
| outputBin = "dev"; | ||
| patches = [ | ||
| # Make g-ir-scanner put absolute path to GIR files it generates | ||
| # so that programs can just dlopen them without having to muck | ||
| # with LD_LIBRARY_PATH environment variable. | ||
| (substituteAll { | ||
| src = ./absolute_shlib_path.patch; | ||
| inherit nixStoreDir; | ||
| }) | ||
| ] ++ stdenv.lib.optionals x11Support [ | ||
| # Hardcode the cairo shared library path in the Cairo gir shipped with this package. | ||
| # https://github.com/NixOS/nixpkgs/issues/34080 | ||
| (substituteAll { | ||
| src = ./absolute_gir_path.patch; | ||
| cairoLib = "${stdenv.lib.getLib cairo}/lib"; | ||
| }) | ||
| ]; | ||
|
|
||
| LC_ALL = "en_US.UTF-8"; # for tests | ||
| nativeBuildInputs = [ | ||
| meson | ||
| ninja | ||
| pkg-config | ||
| flex | ||
| bison | ||
| gtk-doc | ||
| docbook-xsl-nons | ||
| docbook_xml_dtd_43 # FIXME: remove in next release | ||
| docbook_xml_dtd_45 | ||
| python3 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah. It's in both. That would be fine I suppose. |
||
| setupHook # move .gir files | ||
| ]; | ||
|
|
||
| nativeBuildInputs = [ meson ninja pkgconfig libintl glibcLocales ]; | ||
| buildInputs = [ flex bison python3 setupHook/*move .gir*/ ] | ||
| ++ stdenv.lib.optional stdenv.isDarwin cctools; | ||
| propagatedBuildInputs = [ libffi glib ]; | ||
| buildInputs = [ | ||
| python3 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. cc @FRidh from a cross-compiling perspective we usually used the build-native python interpreter to build python packages, no?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yes, the build-native one is used in
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe they link against the interpreter, that is, use the C API?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Build scripts need build python and some gobject utils are written in python so they need host python. |
||
| ]; | ||
|
|
||
| checkInputs = stdenv.lib.optionals stdenv.isDarwin [ | ||
| cctools # for otool | ||
| ]; | ||
jtojnar marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| propagatedBuildInputs = [ | ||
| libffi | ||
| glib | ||
| ]; | ||
|
|
||
| mesonFlags = [ | ||
| "--datadir=${placeholder "dev"}/share" | ||
| "-Ddoctool=disabled" | ||
| "-Dcairo=disabled" | ||
| "-Dgtk_doc=true" | ||
| ]; | ||
|
|
||
| # outputs TODO: share/gobject-introspection-1.0/tests is needed during build | ||
| # by pygobject3 (and maybe others), but it's only searched in $out | ||
|
|
||
| setupHook = ./setup-hook.sh; | ||
|
|
||
| patches = [ | ||
| (substituteAll { | ||
| src = ./test_shlibs.patch; | ||
| inherit nixStoreDir; | ||
| }) | ||
| (substituteAll { | ||
| src = ./absolute_shlib_path.patch; | ||
| inherit nixStoreDir; | ||
| }) | ||
| ] ++ stdenv.lib.optional x11Support # https://github.com/NixOS/nixpkgs/issues/34080 | ||
| (substituteAll { | ||
| src = ./absolute_gir_path.patch; | ||
| cairoLib = "${getLib cairo}/lib"; | ||
| }); | ||
|
|
||
| doCheck = !stdenv.isAarch64; | ||
|
|
||
| preBuild = '' | ||
| preCheck = '' | ||
| # Our gobject-introspection patches make the shared library paths absolute | ||
| # in the GIR files. When running tests, the library is not yet installed, | ||
| # though, so we need to replace the absolute path with a local one during build. | ||
|
|
@@ -64,10 +100,12 @@ stdenv.mkDerivation rec { | |
| ln -s $PWD/tests/scanner/libregress-1.0${stdenv.targetPlatform.extensions.sharedLibrary} $out/lib/libregress-1.0${stdenv.targetPlatform.extensions.sharedLibrary} | ||
| ''; | ||
|
|
||
| preInstall = '' | ||
| postCheck = '' | ||
| rm $out/lib/libregress-1.0${stdenv.targetPlatform.extensions.sharedLibrary} | ||
| ''; | ||
|
|
||
| setupHook = ./setup-hook.sh; | ||
|
|
||
| passthru = { | ||
| updateScript = gnome3.updateScript { | ||
| packageName = pname; | ||
|
|
@@ -76,9 +114,9 @@ stdenv.mkDerivation rec { | |
|
|
||
| meta = with stdenv.lib; { | ||
| description = "A middleware layer between C libraries and language bindings"; | ||
| homepage = "http://live.gnome.org/GObjectIntrospection"; | ||
| maintainers = with maintainers; [ lovek323 lethalman ]; | ||
| platforms = platforms.unix; | ||
| homepage = "https://gi.readthedocs.io/"; | ||
| maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 ]); | ||
| platforms = platforms.unix; | ||
| license = with licenses; [ gpl2 lgpl2 ]; | ||
|
|
||
| longDescription = '' | ||
|
|
||
This file was deleted.
Uh oh!
There was an error while loading. Please reload this page.