Skip to contentSkip to conversation

Enable gtk-doc

PATCH In review Alexander Kanavin 4 participants 34 messages Aug 26, 2016 – Sep 9, 2016

lore
Share & tools
lore
#0 lore raw

cover Enable gtk-doc

This patchset adds gtk-doc support to OE-core. It requires running transient binaries during build time, which is achieved via qemu, and so there are all the same caveats as with gobject-introspection.

Gtk-doc generation happens if 'api-documentation' distro feature is enabled (it is by default), and 'qemu-usermode' is in machine features. Disable the former if api documentation is not needed in your distro; disable the latter if qemu does not work correctly for your target machine.

Gtk-doc support is a part of a broader task to enable API documentation support in OE-core; later on I will add support for doxygen and docbook, enable more manpages, and clean up the legacy SGML stack if possible.

The following changes since commit a81b326933d15f08e06780f92d8dc0d4efb3cd23:

combo-layer: python3: fix UnicodeDecodeError (2016-08-24 13:58:28 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib akanavin/enable-documentation
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/enable-documentation

Alexander Kanavin (28):
source-highlight: add a recipe
gtk-doc: add a recipe, remove gtk-doc-stub bitbake.conf: add "api-documentation" to default distro features gtk-doc.bbclass: enable building gtk-doc based documentation
kmod: do not let gtkdocize fail
systemd: drop unused gtkdoc-related variable
libglade: remove the recipe
gstreamer1.0: enable gtk-doc support
webkitgtk: enable gtk-doc support
gcr: disable gtk-doc on x86_64
gcr, libsecret, webkitgtk: disable gtk-doc on mips64
webkitgtk: re-enable introspection on powerpc
dbus-glib: enable gtk-doc
orc: enable gtk-doc
libidn: enable gtk-doc
libuser: enable gtk-doc
gdk-pixbuf: enable gtk-doc
gnome-desktop3: enable gtk-doc
json-glib: enable gtk-doc
libgudev: enable gtk-doc
libenck3: enable gtk-doc
cairo: enable gtk-doc
harfbuzz: enable gtk-doc
gnutls: enable gtk-doc
libtasn1: enable gtk-doc
libsoup-2.4: enable gtk-doc
p11-kit: enable gtk-doc
util-linux: do not enable gtk-doc and explain why

 meta/classes/gtk-doc.bbclass                       |  72 ++-
 meta/conf/bitbake.conf                             |   2 +-
 meta/conf/distro/include/security_flags.inc        |   1 +
 meta/recipes-core/dbus/dbus-glib.inc               |   2 +-
 meta/recipes-core/systemd/systemd_230.bb           |   2 -
 meta/recipes-core/util-linux/util-linux.inc        |   1 +
 meta/recipes-devtools/orc/orc_0.4.25.bb            |   2 +-
 meta/recipes-extended/libidn/libidn_1.33.bb        |   2 +-
 meta/recipes-extended/libuser/libuser_0.62.bb      |   2 +-
 meta/recipes-gnome/gcr/gcr_3.20.0.bb               |   4 +-
 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb |   2 +-
 .../gnome-desktop/gnome-desktop3_3.20.2.bb         |   2 +-
 ...t-Import-introspection-stub-machinery-too.patch | 305 -------------
 .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb |  33 --
 meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb         |  37 ++
 meta/recipes-gnome/json-glib/json-glib_1.2.2.bb    |   2 +-
 .../libglade/libglade-2.6.4/glade-cruft.patch      | 102 -----
 .../libglade/libglade-2.6.4/no-xml2.patch          | 501 ---------------------
 .../libglade-2.6.4/python_environment.patch        |  14 -
 meta/recipes-gnome/libglade/libglade_2.6.4.bb      |  31 --
 meta/recipes-gnome/libgudev/libgudev_230.bb        |   2 +-
 meta/recipes-gnome/libsecret/libsecret_0.18.5.bb   |   2 +-
 meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb      |   2 +-
 meta/recipes-graphics/cairo/cairo.inc              |   2 +-
 meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb   |   2 +-
 meta/recipes-kernel/kmod/kmod.inc                  |   2 +-
 .../gstreamer/gstreamer1.0-libav.inc               |   2 +-
 .../gstreamer/gstreamer1.0-omx.inc                 |   2 +-
 .../gstreamer/gstreamer1.0-plugins.inc             |  14 +-
 .../gstreamer/gstreamer1.0-rtsp-server.inc         |  14 +-
 meta/recipes-multimedia/gstreamer/gstreamer1.0.inc |  16 +-
 ...c-settings-so-that-gtkdoc-generation-work.patch |  49 ++
 meta/recipes-sato/webkit/webkitgtk_2.12.3.bb       |  13 +-
 meta/recipes-support/gnutls/gnutls.inc             |   4 +-
 meta/recipes-support/gnutls/libtasn1_4.9.bb        |   2 +-
 meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb |   2 +-
 meta/recipes-support/p11-kit/p11-kit_0.22.1.bb     |  22 +-
 ...light.pc.in-do-not-add-Boost-s-libraries-.patch |  30 ++
 .../source-highlight/source-highlight_3.1.8.bb     |  28 ++
 39 files changed, 287 insertions(+), 1042 deletions(-)
 delete mode 100644 meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
 delete mode 100644 meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
 create mode 100644 meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb
 delete mode 100644 meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch
 delete mode 100644 meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch
 delete mode 100644 meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch
 delete mode 100644 meta/recipes-gnome/libglade/libglade_2.6.4.bb
 create mode 100644 meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
 create mode 100644 meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch
 create mode 100644 meta/recipes-support/source-highlight/source-highlight_3.1.8.bb
Signature · 1 line
2.9.3
#1 lore raw

PATCH 1/28 source-highlight: add a recipe

gtk-doc relies on this to highlight source code snippets

---
 meta/conf/distro/include/security_flags.inc        |  1 +
 ...light.pc.in-do-not-add-Boost-s-libraries-.patch | 30 ++++++++++++++++++++++
 .../source-highlight/source-highlight_3.1.8.bb     | 28 ++++++++++++++++++++
 3 files changed, 59 insertions(+)
 create mode 100644 meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch
 create mode 100644 meta/recipes-support/source-highlight/source-highlight_3.1.8.bb
meta/conf/distro/include/security_flags.inc +1 -0
index 20f48de..1c1e50b 100644
@@ -80,6 +80,7 @@ SECURITY_CFLAGS_pn-python3 = "${SECURITY_NO_PIE_CFLAGS}"
 SECURITY_CFLAGS_pn-rpm = "${lcl_maybe_fortify} -fstack-protector"
 SECURITY_CFLAGS_pn-syslinux = "${SECURITY_NO_PIE_CFLAGS}"
 SECURITY_CFLAGS_pn-slang = "${SECURITY_NO_PIE_CFLAGS}"
+SECURITY_CFLAGS_pn-source-highlight = "${SECURITY_NO_PIE_CFLAGS}"
 SECURITY_CFLAGS_pn-tcl = "${SECURITY_NO_PIE_CFLAGS}"
 SECURITY_CFLAGS_pn-tiff = "${SECURITY_NO_PIE_CFLAGS}"
 SECURITY_CFLAGS_pn-uclibc = ""
meta/recipes-support/source-highlight/files/0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch new file +30 -0
new file mode 100644
index 0000000..b0aa5d1
@@ -0,0 +1,30 @@
+From 9aa01fd5f9d8b2b98c34684dc8f68115750ef41c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <[email protected]>
+Date: Tue, 12 Jul 2016 17:15:13 +0300
+Subject: [PATCH] source-highlight.pc.in: do not add Boost's libraries and
+ includes
+
+This breaks when compiling in sysroots; a proper way is to use Depends
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <[email protected]>
+---
+ source-highlight.pc.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/source-highlight.pc.in b/source-highlight.pc.in
+index 79ab63e..64114a7 100644
+--- a/source-highlight.pc.in
++++ b/source-highlight.pc.in
+@@ -7,6 +7,6 @@ Name: libsource-highlight
+ Description: GNU Source-highlight library.
+ URL: http://www.gnu.org/software/src-highlite/
+ Version: @VERSION@
+-Libs: -L${libdir} -lsource-highlight @BOOST_LDFLAGS@ @BOOST_REGEX_LIB@
+-Cflags: -I${includedir} @BOOST_CPPFLAGS@
++Libs: -L${libdir} -lsource-highlight
++Cflags: -I${includedir}
+ 
+-- 
+2.8.1
+
meta/recipes-support/source-highlight/source-highlight_3.1.8.bb new file +28 -0
new file mode 100644
index 0000000..37d2fa9
@@ -0,0 +1,28 @@
+SUMMARY = "Syntax highlight utility"
+DESCRIPTION = "Source-highlight converts source code to formatted text with syntax highlighting."
+HOMEPAGE = "https://www.gnu.org/software/src-highlite/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff95bfe019feaf92f524b73dd79e76eb"
+
+SRC_URI = "${GNU_MIRROR}/src-highlite/${BPN}-${PV}.tar.gz \
+           file://0001-source-highlight.pc.in-do-not-add-Boost-s-libraries-.patch"
+SRC_URI[md5sum] = "3243470706ef5fefdc3e43b5306a4e41"
+SRC_URI[sha256sum] = "01336a7ea1d1ccc374201f7b81ffa94d0aecb33afc7d6903ebf9fbf33a55ada3"
+
+inherit autotools
+
+DEPENDS_append = " boost"
+
+DEPENDS_append_class-target = " source-highlight-native"
+
+EXTRA_OECONF = "--with-boost=${PKG_CONFIG_SYSROOT_DIR}/${prefix}"
+
+BBCLASSEXTEND = "native"
+
+# source-highlight is using its own binary from the build tree to make documentation
+# let's substitute the native binary instead
+do_configure_prepend_class-target () {
+        sed -i -e 's,^SRCHILITEEXE = $(top_builddir).*,SRCHILITEEXE = source-highlight,' ${S}/doc/Makefile.am
+}
+
+RDEPENDS_source-highlight += "bash"
Signature · 1 line
2.9.3
#2 lore raw

PATCH 2/28 gtk-doc: add a recipe, remove gtk-doc-stub

In reply to Alexander Kanavin
---
 ...t-Import-introspection-stub-machinery-too.patch | 305 ---------------------
 .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb |  33 ---
 meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb         |  37 +++
 3 files changed, 37 insertions(+), 338 deletions(-)
 delete mode 100644 meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
 delete mode 100644 meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
 create mode 100644 meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb
meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch deleted +0 -305
deleted file mode 100644
index 80b0521..0000000
@@ -1,305 +0,0 @@
-From d636be29bf95396b4e27fcd17ff84cb7091cca91 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <[email protected]>
-Date: Thu, 8 Oct 2015 15:37:40 +0300
-Subject: [PATCH] Revert "Import introspection stub machinery too"
-
-This reverts commit 3dfd0a09de696ec8c544762747f8a0f77153622e.
-As we provide the full introspection support, we need to remove
-the stubs from this package that conflict with it.
-
-Upstream-Status: Pending [review on oe-core list]
-Signed-off-by: Alexander Kanavin <[email protected]>
----
- Makefile               |   4 --
- Makefile.introspection | 163 -------------------------------------------------
- introspection.m4       |  96 -----------------------------
- 3 files changed, 263 deletions(-)
- delete mode 100644 Makefile.introspection
- delete mode 100644 introspection.m4
-
-diff --git a/Makefile b/Makefile
-index 7cb6ce5..ad4231a 100644
---- a/Makefile
-+++ b/Makefile
-@@ -23,7 +23,3 @@ install: $(bin_programs)
- 
- 	mkdir -p $(DESTDIR)$(datarootdir)/aclocal/
- 	install -m 0644 $(srcdir)/gtk-doc.m4 $(DESTDIR)$(datarootdir)/aclocal/gtk-doc.m4
--
--	mkdir -p $(DESTDIR)$(datarootdir)/gobject-introspection-1.0
--	install -m 0644 $(srcdir)/Makefile.introspection $(DESTDIR)$(datarootdir)/gobject-introspection-1.0/Makefile.introspection
--	install -m 0644 $(srcdir)/introspection.m4 $(DESTDIR)$(datarootdir)/aclocal/introspection.m4
-diff --git a/Makefile.introspection b/Makefile.introspection
-deleted file mode 100644
-index 755dd15..0000000
---- a/Makefile.introspection
-+++ /dev/null
-@@ -1,163 +0,0 @@
--# -*- Mode: make -*-
--# Copyright 2009-2010 Johan Dahlin
--#
--# This file is free software; the author(s) gives unlimited
--# permission to copy and/or distribute it, with or without
--# modifications, as long as this notice is preserved.
--#
--# * Input variables:
--#
--#   INTROSPECTION_GIRS - List of GIRS that should be generated
--#   INTROSPECTION_SCANNER - Command to invoke scanner, normally set by
--#      GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
--#   INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner
--#   INTROSPECTION_SCANNER_ENV - Environment variables to set before running
--#      the scanner
--#   INTROSPECTION_COMPILER - Command to invoke compiler, normally set by
--#      GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
--#   INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler
--#
--# * Simple tutorial
--#
--# Add this to configure.ac:
--#   -Wno-portability to AM_INIT_AUTOMAKE
--#   GOBJECT_INTROSPECTION_CHECK([0.6.7])
--#
--# Add this to Makefile.am where your library/program is built:
--#   include $(INTROSPECTION_MAKEFILE)
--#   INTROSPECTION_GIRS = YourLib-1.0.gir
--#   YourLib_1_0_gir_NAMESPACE = YourLib
--#   YourLib_1_0_gir_VERSION = 1.0
--#   YourLib_1_0_gir_LIBS = libyourlib.la
--#   YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES)
--#   girdir = $(datadir)/gir-1.0
--#   dist_gir_DATA = YourLib-1.0.gir
--#   typelibdir = $(libdir)/girepository-1.0
--#   typelib_DATA = YourLib-1.0.typelib
--#   CLEANFILES = $(dist_gir_DATA) $(typelib_DATA)
--#
--
--# Make sure the required variables are set, these should under normal
--# circumstances come from introspection.m4
--$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER))
--$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER))
--
--# Private functions
--
--## Transform the gir filename to something which can reference through a variable
--## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir
--_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1))))
--
--# Namespace and Version is either fetched from the gir filename
--# or the _NAMESPACE/_VERSION variable combo
--_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1)))))
--_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=))))
--
--# _PROGRAM is an optional variable which needs it's own --program argument
--_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM))
--
--# Variables which provides a list of things
--_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib))
--_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg))
--_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include))
--_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg))
--
--# Reuse the LIBTOOL variable from automake if it's set, but
--# work around MSYS weirdness: When running g-ir-scanner, MSYS changes
--# a command-line argument --libtool="/bin/sh ../../libtool" into
--# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path
--# because we already "know" where the libtool configure produced is.
--_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)"))
--
--# Macros for AM_SILENT_RULES prettiness
--_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
--
--_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V))
--_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity))
--_gir_silent_scanner_prefix_0 = @echo "  GISCAN $(1)";
--_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V))
--_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity))
--_gir_silent_scanner_opts_0 = --quiet
--
--_gir_silent_compiler = $(_gir_silent_compiler_$(V))
--_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity))
--_gir_silent_compiler_0 = @echo "  GICOMP $(1)";
--
--#
--# Creates a GIR by scanning C headers/sources
--# $(1) - Name of the gir file (output)
--#
--# If output is Gtk-2.0.gir then you should name the variables like
--# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc.
--# Required variables:
--# FILES - C sources and headers which should be scanned
--#
--# One of these variables are required:
--# LIBS - Library where the symbol represented in the gir can be found
--# PROGRAM - Program where the symbol represented in the gir can be found
--#
--# Optional variables
--# NAMESPACE - Namespace of the gir, first letter capital,
--#   rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'.
--#   If not present the namespace will be fetched from the gir filename,
--#   the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'.
--# VERSION - Version of the gir, if not present, will be fetched from gir
--# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'.
--# LIBTOOL - Command to invoke libtool, usually set by automake
--# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list
--# CFLAGS - Flags to pass in to the parser when scanning headers
--# LDFLAGS - Linker flags used by the scanner
--# PACKAGES - list of pkg-config names which cflags are required to parse
--#   the headers of this gir
--# INCLUDES - Gir files to include without the .gir suffix, for instance
--#   GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that
--#   provides introspection information.
--# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir.
--#   By default the names in the PACKAGES variable will be used.
--#
--
--define introspection-scanner
--
--# Basic sanity check, to make sure required variables are set
--$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES))
--$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)),
--          $($(_gir_name)_LIBS),
--          $($(_gir_name)_PROGRAM)),,
--    $(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM))
--
--# Only dependencies we know are actually filenames goes into _FILES, make
--# sure these are built before running the scanner. Libraries and programs
--# needs to be added manually.
--$(1): $$($(_gir_name)_FILES)
--	@ $(MKDIR_P) $(dir $(1))
--	$(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \
--	$(INTROSPECTION_SCANNER_ARGS) \
--	  --namespace=$(_gir_namespace) \
--	  --nsversion=$(_gir_version) \
--	  $(_gir_libtool) \
--	  $(_gir_packages) \
--	  $(_gir_includes) \
--	  $(_gir_export_packages) \
--	  $(_gir_program) \
--	  $(_gir_libraries) \
--	  $($(_gir_name)_SCANNERFLAGS) \
--	  $($(_gir_name)_CFLAGS) \
--	  $($(_gir_name)_LDFLAGS) \
--	  $$^ \
--	  --output $(1)
--endef
--
--$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir))))
--
--#
--# Compiles a gir into a typelib
--# $(1): gir filename (input)
--# $(2): typelib filename (output)
--#
--define introspection-compiler
--$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2)
--endef
--
--# Simple rule to compile a typelib.
--%.typelib: %.gir
--	$(call introspection-compiler,$<,$@)
-diff --git a/introspection.m4 b/introspection.m4
-deleted file mode 100644
-index d89c3d9..0000000
---- a/introspection.m4
-+++ /dev/null
-@@ -1,96 +0,0 @@
--dnl -*- mode: autoconf -*-
--dnl Copyright 2009 Johan Dahlin
--dnl
--dnl This file is free software; the author(s) gives unlimited
--dnl permission to copy and/or distribute it, with or without
--dnl modifications, as long as this notice is preserved.
--dnl
--
--# serial 1
--
--m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
--[
--    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
--    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
--    AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
--
--    dnl enable/disable introspection
--    m4_if([$2], [require],
--    [dnl
--        enable_introspection=yes
--    ],[dnl
--        AC_ARG_ENABLE(introspection,
--                  AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
--                                 [Enable introspection for this build]),, 
--                                 [enable_introspection=auto])
--    ])dnl
--
--    AC_MSG_CHECKING([for gobject-introspection])
--
--    dnl presence/version checking
--    AS_CASE([$enable_introspection],
--    [no], [dnl
--        found_introspection="no (disabled, use --enable-introspection to enable)"
--    ],dnl
--    [yes],[dnl
--        PKG_CHECK_EXISTS([gobject-introspection-1.0],,
--                         AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
--        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
--                         found_introspection=yes,
--                         AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
--    ],dnl
--    [auto],[dnl
--        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
--	dnl Canonicalize enable_introspection
--	enable_introspection=$found_introspection
--    ],dnl
--    [dnl	
--        AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
--    ])dnl
--
--    AC_MSG_RESULT([$found_introspection])
--
--    INTROSPECTION_SCANNER=
--    INTROSPECTION_COMPILER=
--    INTROSPECTION_GENERATE=
--    INTROSPECTION_GIRDIR=
--    INTROSPECTION_TYPELIBDIR=
--    if test "x$found_introspection" = "xyes"; then
--       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
--       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
--       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
--       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
--       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
--       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
--       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
--       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
--    fi
--    AC_SUBST(INTROSPECTION_SCANNER)
--    AC_SUBST(INTROSPECTION_COMPILER)
--    AC_SUBST(INTROSPECTION_GENERATE)
--    AC_SUBST(INTROSPECTION_GIRDIR)
--    AC_SUBST(INTROSPECTION_TYPELIBDIR)
--    AC_SUBST(INTROSPECTION_CFLAGS)
--    AC_SUBST(INTROSPECTION_LIBS)
--    AC_SUBST(INTROSPECTION_MAKEFILE)
--
--    AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
--])
--
--
--dnl Usage:
--dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
--
--AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
--[
--  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
--])
--
--dnl Usage:
--dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
--
--
--AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
--[
--  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
--])
--- 
-2.1.4
-
meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb deleted +0 -33
deleted file mode 100644
index 84e49c1..0000000
@@ -1,33 +0,0 @@
-SUMMARY = "Stub implementation of gtk-doc"
-DESCRIPTION = "Stub implementation of gtk-doc, as we don't want to build the API documentation"
-SECTION = "x11/base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-PROVIDES = "gtk-doc"
-
-SRCREV = "1dea266593edb766d6d898c79451ef193eb17cfa"
-PV = "1.1+git${SRCPV}"
-
-SRC_URI = "git://git.gnome.org/${BPN} \
-	   file://0001-Revert-Import-introspection-stub-machinery-too.patch \
-	  "
-
-S = "${WORKDIR}/git"
-
-do_configure() {
-	./configure --prefix=${prefix} \
-                    --sysconfdir=${sysconfdir} \
-                    --bindir=${bindir} \
-                    --libdir=${libdir} \
-                    --datadir=${datadir} \
-                    --datarootdir=${datadir}
-}
-
-do_install() {
-	oe_runmake install DESTDIR="${D}"
-}
-
-FILES_${PN} += "${datadir}"
-
-BBCLASSEXTEND = "native"
meta/recipes-gnome/gtk-doc/gtk-doc_1.25.bb new file +37 -0
new file mode 100644
index 0000000..0585ca9
@@ -0,0 +1,37 @@
+SUMMARY = "Documentation generator for glib-based software"
+DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \
+               from glib-based software and produce a set of html documentation files from them"
+HOMEPAGE = "http://www.gtk.org/gtk-doc/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit gnomebase pythonnative perlnative
+DEPENDS_append = "libxslt xmlto source-highlight-native"
+EXTRA_OECONF_append = " --with-highlight=source-highlight"
+EXTRA_OECONF_append_class-native = " --with-xml-catalog=${sysconfdir}/xml/catalog.xml"
+
+SRC_URI[archive.md5sum] = "0dc6570953112a464a409fb99258ccbc"
+SRC_URI[archive.sha256sum] = "1ea46ed400e6501f975acaafea31479cea8f32f911dca4dff036f59e6464fd42"
+
+BBCLASSEXTEND = "native"
+
+# do not check for XML catalogs when building for target because
+# they are not installed into target sysroot, and are not used
+# for anything during build
+do_configure_prepend_class-target() {
+        sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac
+}
+
+FILES_${PN} += "${datadir}/sgml"
+FILES_${PN}-dev += "${libdir}/cmake"
+FILES_${PN}-doc = ""
+
+SYSROOT_PREPROCESS_FUNCS_append_class-native = " gtkdoc_makefiles_sysroot_preprocess"
+gtkdoc_makefiles_sysroot_preprocess() {
+        # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+        # instead of libtool wrapper or running them directly
+        sed -i \
+           -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+           ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make
+}
+
Signature · 1 line
2.9.3
#3 lore raw

PATCH 3/28 bitbake.conf: add "api-documentation" to default distro features

In reply to Alexander Kanavin
---
 meta/conf/bitbake.conf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/conf/bitbake.conf +1 -1
index c32a3f8..7ce8f67 100644
@@ -764,7 +764,7 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
 EXTRA_IMAGE_FEATURES ??= ""
 IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
 
-DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data"
+DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data api-documentation"
 MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
 
 COMBINED_FEATURES = "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
Signature · 1 line
2.9.3
#4 lore raw

PATCH 4/28 gtk-doc.bbclass: enable building gtk-doc based documentation

In reply to Alexander Kanavin

This is done similarly to gobject-introspection, but with much less delicate hacking around the upstream way of working.

---
 meta/classes/gtk-doc.bbclass | 72 +++++++++++++++++++++++++++++++++++---------
 1 file changed, 58 insertions(+), 14 deletions(-)
meta/classes/gtk-doc.bbclass +58 -14
index e32f98d..d41c80b 100644
@@ -1,25 +1,69 @@
-# Helper class to pull in the right gtk-doc dependencies and disable
-# gtk-doc.
+# Helper class to pull in the right gtk-doc dependencies and configure
+# gtk-doc to enable or disable documentation building (which requries the
+# use of usermode qemu).
+
+# This variable is set to True if api-documentation is in
+# DISTRO_FEATURES and qemu-usermode is in MACHINE_FEATURES, and False otherwise.
 #
-# Long-term it would be great if this class could be toggled between
-# gtk-doc-stub-native and the real gtk-doc-native, which would enable
-# re-generation of documentation.  For now, we'll make do with this which
-# packages up any existing documentation (so from tarball builds).
+# It should be used in recipes to determine whether gtk-doc based documentation should be built,
+# so that qemu use can be avoided when necessary.
+GTKDOC_ENABLED = "${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', \
+                      bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d), 'False', d)}"
+
+EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-gtk-doc --enable-gtk-doc-html --disable-gtk-doc-pdf', \
+                                                                                    '--disable-gtk-doc', d)} "
+
+# When building native recipes, disable gtkdoc, as it is not necessary,
+# pulls in additional dependencies, and makes build times longer
+EXTRA_OECONF_prepend_class-native = "--disable-gtk-doc "
+EXTRA_OECONF_prepend_class-nativesdk = "--disable-gtk-doc "
+
+DEPENDS_append_class-target = " gtk-doc-native qemu-native gtk-doc"
+
+# Even though gtkdoc is disabled on -native, gtk-doc package is still
+# needed for m4 macros.
+DEPENDS_append_class-native = " gtk-doc-native"
+DEPENDS_append_class-nativesdk = " gtk-doc-native"
 
 # The documentation directory, where the infrastructure will be copied.
 # gtkdocize has a default of "." so to handle out-of-tree builds set this to $S.
 GTKDOC_DOCDIR ?= "${S}"
 
-DEPENDS_append = " gtk-doc-stub-native"
+do_configure_prepend () {
+	( cd ${S}; gtkdocize --docdir ${GTKDOC_DOCDIR} || true )
+}
+
+inherit qemu
 
-EXTRA_OECONF_append = "\
-  --disable-gtk-doc \
-  --disable-gtk-doc-html \
-  --disable-gtk-doc-pdf \
-"
+export STAGING_DIR_HOST
 
-do_configure_prepend () {
-	( cd ${S}; gtkdocize --docdir ${GTKDOC_DOCDIR} )
+do_compile_prepend_class-target () {
+
+        # Write out a qemu wrapper that will be given to gtkdoc-scangobj so that it
+        # can run target helper binaries through that.
+        qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
+        cat > ${B}/gtkdoc-qemuwrapper << EOF
+#!/bin/sh
+# Use a modules directory which doesn't exist so we don't load random things
+# which may then get deleted (or their dependencies) and potentially segfault
+export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
+
+GIR_EXTRA_LIBS_PATH=\`find ${B} -name .libs| tr '\n' ':'\`\$GIR_EXTRA_LIBS_PATH
+
+if test -d ".libs"; then
+    $qemu_binary ".libs/\$@"
+else
+    $qemu_binary "\$@"
+fi
+
+if [ \$? -ne 0 ]; then
+    echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
+    echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )"
+    exit 1
+fi
+EOF
+        chmod +x ${B}/gtkdoc-qemuwrapper
 }
 
+
 inherit pkgconfig
Signature · 1 line
2.9.3
#5 lore raw

PATCH 5/28 kmod: do not let gtkdocize fail

In reply to Alexander Kanavin
---
 meta/recipes-kernel/kmod/kmod.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-kernel/kmod/kmod.inc +1 -1
index 99c4a8f..d4c7b18 100644
@@ -35,7 +35,7 @@ PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
 PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
 
 do_configure_prepend () {
-        gtkdocize --docdir ${S}/libkmod/docs || touch ${S}/libkmod/docs/gtk-doc.make
+        gtkdocize --docdir ${S}/libkmod/docs --srcdir ${S}
 }
 
 do_configure_append () {
Signature · 1 line
2.9.3
#6 lore raw

PATCH 6/28 systemd: drop unused gtkdoc-related variable

In reply to Alexander Kanavin
---
 meta/recipes-core/systemd/systemd_230.bb | 2 --
 1 file changed, 2 deletions(-)
meta/recipes-core/systemd/systemd_230.bb +0 -2
index 374a197..ee2bb7b 100644
@@ -42,8 +42,6 @@ SRC_URI_append_libc-uclibc = "\
 "
 SRC_URI_append_qemuall = " file://0001-core-device.c-Change-the-default-device-timeout-to-2.patch"
 
-GTKDOC_DOCDIR = "${S}/docs/"
-
 PACKAGECONFIG ??= "xz \
                    ldconfig \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
Signature · 1 line
2.9.3
#7 lore raw

PATCH 7/28 libglade: remove the recipe

In reply to Alexander Kanavin

Libglade has been obsolete for several years and is used by nothing in oe-core; it will be moved to meta-oe so that old recipes still present there continue to build.

---
 .../libglade/libglade-2.6.4/glade-cruft.patch      | 102 -----
 .../libglade/libglade-2.6.4/no-xml2.patch          | 501 ---------------------
 .../libglade-2.6.4/python_environment.patch        |  14 -
 meta/recipes-gnome/libglade/libglade_2.6.4.bb      |  31 --
 4 files changed, 648 deletions(-)
 delete mode 100644 meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch
 delete mode 100644 meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch
 delete mode 100644 meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch
 delete mode 100644 meta/recipes-gnome/libglade/libglade_2.6.4.bb
meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch deleted +0 -102
deleted file mode 100644
index c5d5864..0000000
@@ -1,102 +0,0 @@
-Upstream-Status: Pending
-
-diff -ur libglade-2.4.0~/configure.in libglade-2.4.0/configure.in
---- libglade-2.4.0~/configure.in	2004-05-17 12:38:31.000000000 +0100
-+++ libglade-2.4.0/configure.in	2004-07-28 16:53:09.000000000 +0100
-@@ -147,6 +147,18 @@
- AM_CONDITIONAL(HAVE_PYTHON, $have_python)
- AC_SUBST(PYTHON)
- 
-+AC_MSG_CHECKING([for cruft in libgtk])
-+AC_TRY_LINK([
-+#include <gtk/gtk.h>
-+#include <stdio.h>
-+],      [ gtk_tree_get_type (); return 0; ],
-+        [ AC_MSG_RESULT(yes)
-+          have_cruft=yes ],
-+        [ AC_MSG_RESULT(no)
-+	  AC_DEFINE(DISABLE_CRUFT,,[leave out support for old, broken widgets])
-+          have_cruft=no ])
-+AC_SUBST(DISABLE_CRUFT)
-+
- dnl add debugging options ...
- changequote(,)dnl
- if test "x$GCC" = xyes; then
-Only in libglade-2.4.0: configure.in.orig
-diff -ur libglade-2.4.0~/glade/glade-gtk.c libglade-2.4.0/glade/glade-gtk.c
---- libglade-2.4.0~/glade/glade-gtk.c	2004-03-13 13:47:35.000000000 +0000
-+++ libglade-2.4.0/glade/glade-gtk.c	2004-07-28 16:53:52.000000000 +0100
-@@ -213,6 +213,8 @@
- 	gtk_clist_column_titles_hide (GTK_CLIST (w));
- }
- 
-+#ifndef DISABLE_CRUFT
-+
- static void
- tree_set_selection_mode (GladeXML *xml, GtkWidget *w,
- 			 const char *name, const char *value)
-@@ -238,6 +240,8 @@
-     gtk_tree_set_view_lines (GTK_TREE (w), BOOL (value));
- }
- 
-+#endif
-+
- static void
- list_set_selection_mode (GladeXML *xml, GtkWidget *w,
- 			 const char *name, const char *value)
-@@ -254,6 +258,7 @@
-     gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (w), BOOL (value));
- }
- 
-+#ifndef DISABLE_CRUFT
- static void
- text_set_text (GladeXML *xml, GtkWidget *w,
- 	       const char *name, const char *value)
-@@ -262,6 +267,7 @@
- 
-     gtk_editable_insert_text (GTK_EDITABLE (w), value, -1, &pos);
- }
-+#endif
- 
- static void
- radio_menu_item_set_group (GladeXML *xml, GtkWidget *w,
-@@ -1125,13 +1131,17 @@
-     glade_register_custom_prop (GTK_TYPE_CLIST, "selection_mode", clist_set_selection_mode);
-     glade_register_custom_prop (GTK_TYPE_CLIST, "shadow_type", clist_set_shadow_type);
-     glade_register_custom_prop (GTK_TYPE_CLIST, "show_titles", clist_set_show_titles);
-+#ifndef DISABLE_CRUFT
-     glade_register_custom_prop (GTK_TYPE_TREE, "selection_mode", tree_set_selection_mode);
-     glade_register_custom_prop (GTK_TYPE_TREE, "view_mode", tree_set_view_mode);
-     glade_register_custom_prop (GTK_TYPE_TREE, "view_line", tree_set_view_line);
-+#endif
-     glade_register_custom_prop (GTK_TYPE_LIST, "selection_mode", list_set_selection_mode);
-     glade_register_custom_prop (GTK_TYPE_CHECK_MENU_ITEM, "always_show_toggle",
- 				check_menu_item_set_always_show_toggle);
-+#ifndef DISABLE_CRUFT
-     glade_register_custom_prop (GTK_TYPE_TEXT, "text", text_set_text);
-+#endif
-     glade_register_custom_prop (GTK_TYPE_RADIO_MENU_ITEM, "group",
- 				radio_menu_item_set_group);
-     glade_register_custom_prop (GTK_TYPE_TOOLBAR, "tooltips", toolbar_set_tooltips);
-@@ -1288,8 +1298,10 @@
- 			   glade_standard_build_children, NULL);
-     glade_register_widget (GTK_TYPE_TEAROFF_MENU_ITEM, glade_standard_build_widget,
- 			   NULL, NULL);
-+#ifndef DISABLE_CRUFT
-     glade_register_widget (GTK_TYPE_TEXT, glade_standard_build_widget,
- 			   NULL, NULL);
-+#endif
-     glade_register_widget (GTK_TYPE_TEXT_VIEW, glade_standard_build_widget,
- 			   NULL, NULL);
-     glade_register_widget (GTK_TYPE_TIPS_QUERY, glade_standard_build_widget,
-@@ -1304,8 +1316,10 @@
- 			   glade_standard_build_children, NULL);
-     glade_register_widget (GTK_TYPE_TOOL_BUTTON, glade_standard_build_widget,
- 			   NULL, NULL);
-+#ifndef DISABLE_CRUFT
-     glade_register_widget (GTK_TYPE_TREE, glade_standard_build_widget,
- 			   NULL, NULL);
-+#endif
-     glade_register_widget (GTK_TYPE_TREE_VIEW, glade_standard_build_widget,
- 			   NULL, NULL);
-     glade_register_widget (GTK_TYPE_VBUTTON_BOX, glade_standard_build_widget,
meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch deleted +0 -501

501 lines not on this page · raw message

meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch deleted +0 -14
deleted file mode 100644
index b5b2ec4..0000000
@@ -1,14 +0,0 @@
-Using @PYTHON@ for this path would result in the build system python being 
-referred to. Instead we want to locate python from the environment.
-
-Upstream-Status: Inappropriate [configuration]
-
-diff -ruN libglade-2.6.4-orig//libglade-convert.in libglade-2.6.4/libglade-convert.in
---- libglade-2.6.4-orig//libglade-convert.in	2011-09-22 10:18:28.991164003 +0800
-+++ libglade-2.6.4/libglade-convert.in	2011-09-22 10:18:55.431164003 +0800
-@@ -1,4 +1,4 @@
--#!@PYTHON@
-+#!/usr/bin/env python
- # -*- mode: python -*-
- 
- # yes, this requires python 2.x and an XML parser module (eg. PyExpat)
meta/recipes-gnome/libglade/libglade_2.6.4.bb deleted +0 -31
deleted file mode 100644
index 553e19c..0000000
@@ -1,31 +0,0 @@
-SUMMARY = "Runtime support for the GTK+ interface builder"
-HOMEPAGE = "http://library.gnome.org/devel/libglade/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
-                    file://glade/glade.h;endline=22;md5=a04f461c964ba4b57a172d1fbcd8f8fc \
-                    file://glade/glade-gtk.c;endline=22;md5=766f993433e2642fec87936d319990ff"
-
-SECTION = "libs"
-PR = "r5"
-DEPENDS = "zlib gdk-pixbuf gtk+"
-
-inherit autotools pkgconfig gnomebase gtk-doc distro_features_check
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-GNOME_COMPRESS_TYPE="bz2"
-
-SRC_URI += "file://glade-cruft.patch file://no-xml2.patch file://python_environment.patch"
-
-SRC_URI[archive.md5sum] = "d1776b40f4e166b5e9c107f1c8fe4139"
-SRC_URI[archive.sha256sum] = "64361e7647839d36ed8336d992fd210d3e8139882269bed47dc4674980165dec"
-
-EXTRA_OECONF += "--without-libxml2"
-
-CFLAGS += "-lz"
-
-PACKAGES += " ${PN}-data"
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-data = "${datadir}/xml/libglade/glade-2.0.dtd"
-FILES_${PN}-dev += "${bindir}/libglade-convert"
-#RDEPENDS_${PN} = "${PN}-data"
Signature · 1 line
2.9.3
#8 lore raw

PATCH 8/28 gstreamer1.0: enable gtk-doc support

In reply to Alexander Kanavin

check support is no longer disabled by default because it is a requirement of gtk-doc support in gstreamer.

---
 meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc |  2 +-
 meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc   |  2 +-
 .../gstreamer/gstreamer1.0-plugins.inc                   | 14 ++++++++++++--
 .../gstreamer/gstreamer1.0-rtsp-server.inc               | 14 ++++++++++++--
 meta/recipes-multimedia/gstreamer/gstreamer1.0.inc       | 16 ++++++++++++----
 5 files changed, 38 insertions(+), 10 deletions(-)
meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc +1 -1
index 363101e..b24de62 100644
@@ -7,7 +7,7 @@ LICENSE_FLAGS = "commercial"
 
 DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2 xz"
 
-inherit autotools pkgconfig upstream-version-is-even
+inherit autotools pkgconfig upstream-version-is-even gtk-doc
 
 # CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
 # compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc +1 -1
index 0fff612..41059d7 100644
@@ -7,7 +7,7 @@ LICENSE_FLAGS = "commercial"
 
 DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
 
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext gtk-doc
 
 acpaths = "-I ${S}/common/m4 -I ${S}/m4"
 
meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc +12 -2
index 2dcec50..e29a25f 100644
@@ -5,7 +5,7 @@ SECTION = "multimedia"
 
 DEPENDS = "gstreamer1.0 glib-2.0-native"
 
-inherit autotools pkgconfig upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc
 
 acpaths = "-I ${S}/common/m4 -I ${S}/m4"
 
@@ -35,6 +35,16 @@ delete_pkg_m4_file() {
 	rm "${S}/common/m4/pkg.m4" || true
 }
 
-do_configure[prefuncs] += " delete_pkg_m4_file"
+# gstreamer is not using system-wide makefiles (which we patch in gtkdoc recipe,
+# but its own custom ones, which we have to patch here
+patch_gtk_doc_makefiles() {
+        # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+        # instead of libtool wrapper or running them directly
+        sed -i \
+           -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+           ${S}/common/gtk-doc*mak
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
 
 PACKAGES_DYNAMIC = "^${PN}-.*"
meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc +12 -2
index 8fc90f1..13ba40d 100644
@@ -13,7 +13,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz
 
 S = "${WORKDIR}/${PNREAL}-${PV}"
 
-inherit autotools pkgconfig upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig upstream-version-is-even gobject-introspection gtk-doc
 
 # Starting with 1.8.0 gst-rtsp-server includes dependency-less plugins as well
 LIBV = "1.0"
@@ -24,5 +24,15 @@ delete_pkg_m4_file() {
         rm "${S}/common/m4/pkg.m4" || true
 }
 
-do_configure[prefuncs] += " delete_pkg_m4_file"
+# gstreamer is not using system-wide makefiles (which we patch in gtkdoc recipe,
+# but its own custom ones, which we have to patch here
+patch_gtk_doc_makefiles() {
+        # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+        # instead of libtool wrapper or running them directly
+        sed -i \
+           -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+           ${S}/common/gtk-doc*mak
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
 
meta/recipes-multimedia/gstreamer/gstreamer1.0.inc +12 -4
index 86ac10c..c8af539 100644
@@ -8,7 +8,7 @@ LICENSE = "LGPLv2+"
 
 DEPENDS = "glib-2.0 glib-2.0-native libcap libxml2 bison-native flex-native"
 
-inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig gettext upstream-version-is-even gobject-introspection gtk-doc
 
 # This way common/m4/introspection.m4 will come first
 # (it has a custom INTROSPECTION_INIT macro, and so must be used instead of our common introspection.m4 file)
@@ -20,7 +20,6 @@ SRC_URI_append = " \
 
 PACKAGECONFIG ??= ""
 
-PACKAGECONFIG[check] = "--enable-check,--disable-check"
 PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests"
 PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind,"
@@ -31,7 +30,6 @@ EXTRA_OECONF = " \
     --disable-dependency-tracking \
     --disable-docbook \
     --disable-examples \
-    --disable-gtk-doc \
 "
 
 CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
@@ -53,7 +51,17 @@ delete_pkg_m4_file() {
         rm "${S}/common/m4/pkg.m4" || true
 }
 
-do_configure[prefuncs] += " delete_pkg_m4_file"
+# gstreamer is not using system-wide makefiles (which we patch in gtkdoc recipe,
+# but its own custom ones, which we have to patch here
+patch_gtk_doc_makefiles() {
+        # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries
+        # instead of libtool wrapper or running them directly
+        sed -i \
+           -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \
+           ${S}/common/gtk-doc*mak
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file patch_gtk_doc_makefiles"
 
 do_compile_prepend() {
         export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs:${B}/libs/gst/base/.libs"
Signature · 1 line
2.9.3
#9 lore raw

PATCH 9/28 webkitgtk: enable gtk-doc support

In reply to Alexander Kanavin
---
 ...c-settings-so-that-gtkdoc-generation-work.patch | 49 ++++++++++++++++++++++
 meta/recipes-sato/webkit/webkitgtk_2.12.3.bb       |  5 ++-
 2 files changed, 52 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch
meta/recipes-sato/webkit/files/0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch new file +49 -0
new file mode 100644
index 0000000..586dd23
@@ -0,0 +1,49 @@
+From 4eeeaec775e190cf3f5885d7c6717acebd0201a8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <[email protected]>
+Date: Thu, 11 Aug 2016 17:13:51 +0300
+Subject: [PATCH] Tweak gtkdoc settings so that gtkdoc generation works under
+ OpenEmbedded build system
+
+This requires setting a few environment variables so that the transient
+binary is build and linked correctly, and disabling the tweaks to RUN
+variable from gtkdoc.py script so that our qemu wrapper is taken into use.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alexander Kanavin <[email protected]>
+---
+ Source/PlatformGTK.cmake | 2 +-
+ Tools/gtk/gtkdoc.py      | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Source/PlatformGTK.cmake b/Source/PlatformGTK.cmake
+index af4d2e3..b7b93c7 100644
+--- a/Source/PlatformGTK.cmake
++++ b/Source/PlatformGTK.cmake
+@@ -25,7 +25,7 @@ macro(ADD_GTKDOC_GENERATOR _stamp_name _extra_args)
+     add_custom_command(
+         OUTPUT "${CMAKE_BINARY_DIR}/${_stamp_name}"
+         DEPENDS ${DocumentationDependencies}
+-        COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} ${CMAKE_SOURCE_DIR}/Tools/gtk/generate-gtkdoc ${_extra_args}
++        COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} LD=${CMAKE_C_COMPILER} LDFLAGS=${CMAKE_C_LINK_FLAGS} RUN=${CMAKE_BINARY_DIR}/gtkdoc-qemuwrapper GIR_EXTRA_LIBS_PATH=${CMAKE_BINARY_DIR}/lib ${CMAKE_SOURCE_DIR}/Tools/gtk/generate-gtkdoc ${_extra_args}
+         COMMAND touch ${_stamp_name}
+         WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+     )
+diff --git a/Tools/gtk/gtkdoc.py b/Tools/gtk/gtkdoc.py
+index 4c8237b..c0205f0 100644
+--- a/Tools/gtk/gtkdoc.py
++++ b/Tools/gtk/gtkdoc.py
+@@ -318,9 +318,9 @@ class GTKDoc(object):
+                     additional_ldflags = '%s %s' % (additional_ldflags, arg)
+             ldflags = ' "-L%s" %s ' % (self.library_path, additional_ldflags) + ldflags
+             current_ld_library_path = env.get('LD_LIBRARY_PATH')
+-            if current_ld_library_path:
++            if current_ld_library_path and 'RUN' not in env:
+                 env['RUN'] = 'LD_LIBRARY_PATH="%s:%s" ' % (self.library_path, current_ld_library_path)
+-            else:
++            elif 'RUN' not in env:
+                 env['RUN'] = 'LD_LIBRARY_PATH="%s" ' % self.library_path
+ 
+         if ldflags:
+-- 
+2.8.1
+
meta/recipes-sato/webkit/webkitgtk_2.12.3.bb +3 -2
index d9f1c30..263992b 100644
@@ -18,11 +18,12 @@ SRC_URI = "\
   file://0001-WebKitMacros-Append-to-I-and-not-to-isystem.patch \
   file://musl-fixes.patch \
   file://ppc-musl-fix.patch \
+  file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
   "
 SRC_URI[md5sum] = "aebb4029c09dd81664aa830e4a584c85"
 SRC_URI[sha256sum] = "173cbb9a2eca23eee52e99965483ab25aa9c0569ef5b57041fc0c129cc26c307"
 
-inherit cmake lib_package pkgconfig gobject-introspection perlnative distro_features_check upstream-version-is-even
+inherit cmake lib_package pkgconfig gobject-introspection perlnative distro_features_check upstream-version-is-even gtk-doc
 
 # We cannot inherit pythonnative because that would conflict with inheriting python3native
 # (which is done by gobject-introspection). But webkit only needs the path to native Python 2.x binary
@@ -59,7 +60,7 @@ EXTRA_OECMAKE = " \
 		-DPORT=GTK \
 		-DCMAKE_BUILD_TYPE=Release \
 		${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
-		-DENABLE_GTKDOC=OFF \
+		${@bb.utils.contains('GTKDOC_ENABLED', 'True', '-DENABLE_GTKDOC=ON', '-DENABLE_GTKDOC=OFF', d)} \
 		-DENABLE_MINIBROWSER=ON \
 		"
 
Signature · 1 line
2.9.3
#10 lore raw

PATCH 10/28 gcr: disable gtk-doc on x86_64

In reply to Alexander Kanavin

For same reason that introspection is disabled: the transient binary goes into infinite loop.

---
 meta/recipes-gnome/gcr/gcr_3.20.0.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-gnome/gcr/gcr_3.20.0.bb +1 -1
index bcce57d..11bca0f 100644
@@ -33,7 +33,7 @@ ARM_INSTRUCTION_SET = "arm"
 # gcrypt-Message: select() error: Bad address
 #
 # This will be investigated later.
-EXTRA_OECONF_append_x86-64 = " --disable-introspection"
+EXTRA_OECONF_append_x86-64 = " --disable-introspection --disable-gtk-doc"
 
 # Gcr-3.broken: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
 # qemu: uncaught target signal 6 (Aborted) - core dumped
Signature · 1 line
2.9.3
#11 lore raw

PATCH 11/28 gcr, libsecret, webkitgtk: disable gtk-doc on mips64

In reply to Alexander Kanavin

It fails with the same error as gobject-introspection

---
 meta/recipes-gnome/gcr/gcr_3.20.0.bb             | 2 +-
 meta/recipes-gnome/libsecret/libsecret_0.18.5.bb | 2 +-
 meta/recipes-sato/webkit/webkitgtk_2.12.3.bb     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-gnome/gcr/gcr_3.20.0.bb +1 -1
index 11bca0f..b32a455 100644
@@ -37,4 +37,4 @@ EXTRA_OECONF_append_x86-64 = " --disable-introspection --disable-gtk-doc"
 
 # Gcr-3.broken: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
 # qemu: uncaught target signal 6 (Aborted) - core dumped
-EXTRA_OECONF_append_mips64 = " --disable-introspection"
+EXTRA_OECONF_append_mips64 = " --disable-introspection --disable-gtk-doc"
meta/recipes-gnome/libsecret/libsecret_0.18.5.bb +1 -1
index e4d316b..bcb3046 100644
@@ -21,5 +21,5 @@ do_configure_prepend() {
 
 # Secret-1: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
 # qemu: uncaught target signal 6 (Aborted) - core dumped
-EXTRA_OECONF_append_mips64 = " --disable-introspection"
+EXTRA_OECONF_append_mips64 = " --disable-introspection --disable-gtk-doc"
 
meta/recipes-sato/webkit/webkitgtk_2.12.3.bb +1 -1
index 263992b..0b355c3 100644
@@ -110,4 +110,4 @@ EXTRA_OECMAKE_append_powerpc = " -DENABLE_INTROSPECTION=OFF "
 
 # WebKit2-4.0: ../../libgpg-error-1.21/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
 # qemu: uncaught target signal 6 (Aborted) - core dumped
-EXTRA_OECMAKE_append_mips64 = " -DENABLE_INTROSPECTION=OFF "
+EXTRA_OECMAKE_append_mips64 = " -DENABLE_INTROSPECTION=OFF -DENABLE_GTKDOC=OFF"
Signature · 1 line
2.9.3
#12 lore raw

PATCH 12/28 webkitgtk: re-enable introspection on powerpc

In reply to Alexander Kanavin

It seems to work under qemu-ppc now.

---
 meta/recipes-sato/webkit/webkitgtk_2.12.3.bb | 6 ------
 1 file changed, 6 deletions(-)
meta/recipes-sato/webkit/webkitgtk_2.12.3.bb +0 -6
index 0b355c3..f7bdf7f 100644
@@ -102,12 +102,6 @@ ARM_INSTRUCTION_SET_armv7a = "thumb"
 ARM_INSTRUCTION_SET_armv7r = "thumb"
 ARM_INSTRUCTION_SET_armv7ve = "thumb"
 
-# Invalid data memory access: 0x00000000
-# ...
-# qemu: uncaught target signal 11 (Segmentation fault) - core dumped
-# Segmentation fault
-EXTRA_OECMAKE_append_powerpc = " -DENABLE_INTROSPECTION=OFF "
-
 # WebKit2-4.0: ../../libgpg-error-1.21/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
 # qemu: uncaught target signal 6 (Aborted) - core dumped
 EXTRA_OECMAKE_append_mips64 = " -DENABLE_INTROSPECTION=OFF -DENABLE_GTKDOC=OFF"
Signature · 1 line
2.9.3
#13 lore raw

PATCH 13/28 dbus-glib: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-core/dbus/dbus-glib.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-core/dbus/dbus-glib.inc +1 -1
index 4661e3a..55f710f 100644
@@ -15,7 +15,7 @@ SRC_URI = "http://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-${PV}.tar.gz
            file://test-install-makefile.patch \
 "
 
-inherit autotools pkgconfig gettext bash-completion
+inherit autotools pkgconfig gettext bash-completion gtk-doc
 
 #default disable regression tests, some unit test code in non testing code
 #PACKAGECONFIG_pn-${PN} = "tests" enable regression tests local.conf
Signature · 1 line
2.9.3
#14 lore raw

PATCH 14/28 orc: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-devtools/orc/orc_0.4.25.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/orc/orc_0.4.25.bb +1 -1
index f3bde46..897493a 100644
@@ -8,7 +8,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/orc/orc-${PV}.tar.xz"
 SRC_URI[md5sum] = "8582a28b15f53110c88d8043d9f55bcf"
 SRC_URI[sha256sum] = "c1b1d54a58f26d483f0b3881538984789fe5d5460ab8fab74a1cacbd3d1c53d1"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig gtk-doc
 
 BBCLASSEXTEND = "native nativesdk"
 
Signature · 1 line
2.9.3
#15 lore raw

PATCH 15/28 libidn: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-extended/libidn/libidn_1.33.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-extended/libidn/libidn_1.33.bb +1 -1
index 26cabd6..d3d0f55 100644
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=df4be47940a91ee69556f5f71eed4aec \
                     file://src/idn.c;endline=20;md5=09e97034a8877b3451cb65065fc2c06e"
 DEPENDS = "virtual/libiconv"
 
-inherit pkgconfig autotools gettext texinfo
+inherit pkgconfig autotools gettext texinfo gtk-doc
 
 SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz \
            file://libidn_fix_for_automake-1.12.patch \
Signature · 1 line
2.9.3
#16 lore raw

PATCH 16/28 libuser: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-extended/libuser/libuser_0.62.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-extended/libuser/libuser_0.62.bb +1 -1
index 960f789..3d0b516 100644
@@ -22,7 +22,7 @@ SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3c
 
 DEPENDS = "popt libpam glib-2.0 docbook-utils-native linuxdoc-tools-native python3"
 
-inherit autotools gettext python3native python3-dir pkgconfig
+inherit autotools gettext python3native python3-dir pkgconfig gtk-doc
 
 EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
 
Signature · 1 line
2.9.3
#17 lore raw

PATCH 17/28 gdk-pixbuf: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.34.0.bb +1 -1
index c24ec12..4f39494 100644
@@ -22,7 +22,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
 SRC_URI[md5sum] = "63cb19f92cf7709ccf44bbb6fe1ff70c"
 SRC_URI[sha256sum] = "d55e5b383ee219bd0e23bf6ed4427d56a7db5379729a6e3e0a0e0eba9a8d8879"
 
-inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection
+inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc
 
 LIBV = "2.10.0"
 
Signature · 1 line
2.9.3
#18 lore raw

PATCH 18/28 gnome-desktop3: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.20.2.bb +1 -1
index a58585b..eb061b2 100644
@@ -12,7 +12,7 @@ SRC_URI[archive.sha256sum] = "492c2da7aa8c3a8b65796e8171fc8f0dfb5d322dd2799c0d76
 
 DEPENDS += "intltool-native gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes"
 
-inherit distro_features_check
+inherit distro_features_check gtk-doc
 REQUIRED_DISTRO_FEATURES = "x11"
 
 EXTRA_OECONF = "--disable-desktop-docs"
Signature · 1 line
2.9.3
#19 lore raw

PATCH 19/28 json-glib: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-gnome/json-glib/json-glib_1.2.2.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-gnome/json-glib/json-glib_1.2.2.bb +1 -1
index 1203a6a..8df2a42 100644
@@ -13,6 +13,6 @@ DEPENDS = "glib-2.0"
 SRC_URI[archive.md5sum] = "c1daefb8d0fb59612af0c072c8aabb58"
 SRC_URI[archive.sha256sum] = "ea128ab52a824fcd06e5448fbb2bd8d9a13740d51c66d445828edba71321a621"
 
-inherit gnomebase gettext lib_package gobject-introspection
+inherit gnomebase gettext lib_package gobject-introspection gtk-doc
 
 BBCLASSEXTEND = "native"
Signature · 1 line
2.9.3
#20 lore raw

PATCH 20/28 libgudev: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-gnome/libgudev/libgudev_230.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-gnome/libgudev/libgudev_230.bb +1 -1
index f9e1d23..709553b 100644
@@ -10,7 +10,7 @@ RCONFLICTS_${PN} = "systemd (<= 220)"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-inherit gnomebase gobject-introspection
+inherit gnomebase gobject-introspection gtk-doc
 
 UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))"
Signature · 1 line
2.9.3
#21 lore raw

PATCH 21/28 libenck3: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-gnome/libwnck/libwnck3_3.20.1.bb +1 -1
index d3c3a86..fd4ef69 100644
@@ -10,7 +10,7 @@ DEPENDS = "intltool-native gtk+3 gdk-pixbuf-native libxres"
 PACKAGECONFIG ??= "startup-notification"
 PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
 
-inherit gnomebase gobject-introspection
+inherit gnomebase gobject-introspection gtk-doc
 SRC_URI[archive.md5sum] = "487938d65d4bfae1f2501052b1bd7492"
 SRC_URI[archive.sha256sum] = "1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72"
 
Signature · 1 line
2.9.3
#22 lore raw

PATCH 22/28 cairo: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-graphics/cairo/cairo.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +1 -1
index e5fe308..c4b6f32 100644
@@ -36,7 +36,7 @@ EXTRA_OECONF += "${@get_cairo_fpu_setting(bb, d)} \
                  --enable-tee \
                 "
 
-inherit autotools pkgconfig upstream-version-is-even
+inherit autotools pkgconfig upstream-version-is-even gtk-doc
 
 # We don't depend on binutils so we need to disable this
 export ac_cv_lib_bfd_bfd_openr="no"
Signature · 1 line
2.9.3
#23 lore raw

PATCH 23/28 harfbuzz: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-graphics/harfbuzz/harfbuzz_1.3.0.bb +1 -1
index e99a0a9..f24c443 100644
@@ -15,7 +15,7 @@ SRC_URI = "http://www.freedesktop.org/software/harfbuzz/release/${BP}.tar.bz2"
 SRC_URI[md5sum] = "a82d49ff67197bc3c96ea34b98880c52"
 SRC_URI[sha256sum] = "b04be31633efee2cae1d62d46434587302554fa837224845a62565ec68a0334d"
 
-inherit autotools pkgconfig lib_package
+inherit autotools pkgconfig lib_package gtk-doc
 
 PACKAGECONFIG ??= "icu"
 PACKAGECONFIG[icu] = "--with-icu,--without-icu,icu"
Signature · 1 line
2.9.3
#24 lore raw

PATCH 24/28 gnutls: enable gtk-doc

In reply to Alexander Kanavin

gtk-doc also requires --enable-doc, so that is no longer configurable.

---
 meta/recipes-support/gnutls/gnutls.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
meta/recipes-support/gnutls/gnutls.inc +2 -2
index 0ac7c37..51b9d2b 100644
@@ -19,11 +19,10 @@ SHRT_VER = "${@d.getVar('PV', True).split('.')[0]}.${@d.getVar('PV', True).split
 
 SRC_URI = "ftp://ftp.gnutls.org/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz"
 
-inherit autotools texinfo binconfig pkgconfig gettext lib_package
+inherit autotools texinfo binconfig pkgconfig gettext lib_package gtk-doc
 
 PACKAGECONFIG ??= "libidn zlib"
 
-PACKAGECONFIG[docs] = "--enable-doc,--disable-doc"
 PACKAGECONFIG[libidn] = "--with-idn,--without-idn,libidn"
 PACKAGECONFIG[libtasn1] = "--with-included-libtasn1=no,--with-included-libtasn1,libtasn1"
 PACKAGECONFIG[p11-kit] = "--with-p11-kit,--without-p11-kit,p11-kit"
@@ -31,6 +30,7 @@ PACKAGECONFIG[tpm] = "--with-tpm,--without-tpm,trousers"
 PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
 
 EXTRA_OECONF = " \
+    --enable-doc \
     --disable-libdane \
     --disable-guile \
     --disable-rpath \
Signature · 1 line
2.9.3
#25 lore raw

PATCH 25/28 libtasn1: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-support/gnutls/libtasn1_4.9.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-support/gnutls/libtasn1_4.9.bb +1 -1
index 9a5c557..b8ff9ea 100644
@@ -19,6 +19,6 @@ SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
 SRC_URI[md5sum] = "3018d0f466a32b66dde41bb122e6cab6"
 SRC_URI[sha256sum] = "4f6f7a8fd691ac2b8307c8ca365bad711db607d4ad5966f6938a9d2ecd65c920"
 
-inherit autotools texinfo binconfig lib_package
+inherit autotools texinfo binconfig lib_package gtk-doc
 
 BBCLASSEXTEND = "native"
Signature · 1 line
2.9.3
#26 lore raw

PATCH 26/28 libsoup-2.4: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-support/libsoup/libsoup-2.4_2.54.1.bb +1 -1
index f243cbc..b93a9fd 100644
@@ -16,7 +16,7 @@ SRC_URI[sha256sum] = "47b42c232034734d66e5f093025843a5d8cc4b2357c011085a2fd04ef0
 
 S = "${WORKDIR}/libsoup-${PV}"
 
-inherit autotools gettext pkgconfig upstream-version-is-even gobject-introspection
+inherit autotools gettext pkgconfig upstream-version-is-even gobject-introspection gtk-doc
 
 # libsoup-gnome is entirely deprecated and just stubs in 2.42 onwards. Disable by default.
 PACKAGECONFIG ??= ""
Signature · 1 line
2.9.3
#27 lore raw

PATCH 27/28 p11-kit: enable gtk-doc

In reply to Alexander Kanavin
---
 meta/recipes-support/p11-kit/p11-kit_0.22.1.bb | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)
meta/recipes-support/p11-kit/p11-kit_0.22.1.bb +21 -1
index a4efff1..38fa09b 100644
@@ -2,7 +2,7 @@ SUMMARY = "Provides a way to load and enumerate PKCS#11 modules"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=02933887f609807fbb57aa4237d14a50"
 
-inherit autotools gettext pkgconfig upstream-version-is-even
+inherit autotools gettext pkgconfig upstream-version-is-even gtk-doc
 
 DEPENDS = "libtasn1 libffi"
 
@@ -12,6 +12,26 @@ SRC_URI[sha256sum] = "ef3a339fcf6aa0e32c8c23f79ba7191e57312be2bda8b24e6d121c2670
 
 EXTRA_OECONF = "--without-trust-paths"
 
+# This recipe does not use the standard gtk-doc m4 macros, and so the ./configure flags
+# that control gtk-doc build are non-standard
+EXTRA_OECONF_prepend_class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-doc --enable-doc-html --disable-doc-pdf', \
+                                                                                    '--disable-doc', d)} "
+
+# When building native recipes, disable gtkdoc, as it is not necessary,
+# pulls in additional dependencies, and makes build times longer
+EXTRA_OECONF_prepend_class-native = "--disable-doc "
+EXTRA_OECONF_prepend_class-nativesdk = "--disable-doc "
+
+UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-gtk-doc-html --disable-gtk-doc-pdf --enable-gtk-doc --disable-gtk-doc"
+
+# p11-kit relies on these two being copied from source tree
+# instead of being regenerated by gtkdoc-scan, but doesn't setup
+# dependencies correctly when there is a parallel build. Let's pre-copy
+# them instead.
+do_compile_prepend () {
+        cp ${S}/doc/manual/p11-kit-overrides.txt ${S}/doc/manual/p11-kit-sections.txt ${B}/doc/manual/
+}
+
 FILES_${PN} += " \
     ${libdir}/p11-kit-proxy.so \
     ${libdir}/pkcs11/*.so \
Signature · 1 line
2.9.3
#28 lore raw

PATCH 28/28 util-linux: do not enable gtk-doc and explain why

In reply to Alexander Kanavin
---
 meta/recipes-core/util-linux/util-linux.inc | 1 +
 1 file changed, 1 insertion(+)
meta/recipes-core/util-linux/util-linux.inc +1 -0
index 5236209..bf770d8 100644
@@ -17,6 +17,7 @@ LIC_FILES_CHKSUM = "file://README.licensing;md5=1715f5ee3e01203ca1e1e0b9ee65918c
                     file://libmount/COPYING;md5=fb93f01d4361069c5616327705373b16 \
                     file://libblkid/COPYING;md5=fb93f01d4361069c5616327705373b16"
 
+#gtk-doc is not enabled as it requires xmlto which requires util-linux
 inherit autotools gettext pkgconfig systemd update-alternatives python3-dir bash-completion ptest
 DEPENDS = "zlib ncurses"
 DEPENDS_append_class-native = " lzo-native"
Signature · 1 line
2.9.3
#29 lore raw
In reply to Alexander Kanavin
Quoted 12 lines · Alexander Kanavin

This patchset adds gtk-doc support to OE-core. It requires running transient binaries during build time, which is achieved via qemu, and so there are all the same caveats as with gobject-introspection.

Gtk-doc generation happens if 'api-documentation' distro feature is enabled
(it is by default), and 'qemu-usermode' is in machine features. Disable
the former if api documentation is not needed in your distro; disable the latter
if qemu does not work correctly for your target machine.

Quoted 5 lines

Gtk-doc support is a part of a broader task to enable API documentation
support in OE-core; later on I will add support for doxygen and docbook, enable
more manpages, and clean up the legacy SGML stack if possible.

There were a lot of similar look failures on the autobuilder:

http://errors.yoctoproject.org/Errors/Details/81392/
http://errors.yoctoproject.org/Errors/Details/81397/
http://errors.yoctoproject.org/Errors/Details/81393/
http://errors.yoctoproject.org/Errors/Details/81390/
http://errors.yoctoproject.org/Errors/Details/81391/
http://errors.yoctoproject.org/Errors/Details/81383/

Cheers,

Richard

#30 lore raw
In reply to Alexander Kanavin
Quoted 4 lines · Alexander Kanavin

This patchset adds gtk-doc support to OE-core. It requires running transient binaries during build time, which is achieved via qemu, and so there are all the same caveats as with gobject-introspection.

Cool but...

Quoted 2 lines

Gtk-doc generation happens if 'api-documentation' distro feature is enabled (it is by default), and 'qemu-usermode' is in machine features.

Should this really be enabled by default? What does it do to a typical build wrt time and space?

../Randy

Signature · 2 lines
# Randy MacLeod. SMTS, Linux, Wind River
Direct: 613.963.1350 | 350 Terry Fox Drive, Suite 200, Ottawa, ON, Canada, K2K 2W5
#31 lore raw
Quoted 6 lines · Randy MacLeod
Quoted 3 lines

Gtk-doc generation happens if 'api-documentation' distro feature is enabled
(it is by default), and 'qemu-usermode' is in machine features.

Should this really be enabled by default? What does it do to a typical build wrt time and space?

The default distro feature list also includes all of the available communication stacks, full x11 stack, pulseaudio etc. It seems to me that the aim is to enable as many various features as possible by default. Distros can and should trim the list to their specific needs.

Space isn't affected much on build host, and if you don't install -doc packages it's not affected on the target at all. Build time is somewhat longer for specific packages (those which have gtk-doc support), but whether the overall, parallelized build is affected I don't know - I think RP asked someone to do a test for master-next vs. master now (with all the other stuff that went in recently).

Alex

#32 lore raw
Quoted 5 lines · Alexander Kanavin
Quoted 3 lines · Randy MacLeod
Quoted 3 lines

Gtk-doc generation happens if 'api-documentation' distro feature is enabled
(it is by default), and 'qemu-usermode' is in machine features.

Quoted 7 lines
Quoted 2 lines

Should this really be enabled by default? What does it do to a typical build wrt time and space?

The default distro feature list also includes all of the available communication stacks, full x11 stack, pulseaudio etc. It seems to me that the aim is to enable as many various features as possible by default. Distros can and should trim the list to their specific needs.

Sure, but as far as I remember, doc building is disabled in most cases. And personally, I'd prefer to have the doc-generation disabled per default. (As usually, most people I've met, won't use the doc's built here anyway).

Signature · 2 lines
Anders Darander, Senior System Architect
ChargeStorm AB / eStorm AB
#33 lore raw
Quoted 22 lines · Anders Darander

* Alexander Kanavin <[email protected]> [160902 17:08]:

Quoted 13 lines · Randy MacLeod
Quoted 10 lines
Quoted 6 lines

Gtk-doc generation happens if 'api-documentation' distro feature is
enabled
(it is by default), and 'qemu-usermode' is in machine features.

Should this really be enabled by default? What does it do to a typical build wrt time and space?

Quoted 6 lines

The default distro feature list also includes all of the available communication stacks, full x11 stack, pulseaudio etc. It seems to me that
the aim is to enable as many various features as possible by default.
Distros can and should trim the list to their specific needs.

Quoted 5 lines

Sure, but as far as I remember, doc building is disabled in most cases.
And personally, I'd prefer to have the doc-generation disabled per default. (As usually, most people I've met, won't use the doc's built here anyway).

There is a fairly big performance hit to enabling gtk-doc. We've adjusted the patchset so when disabled, there isn't much of a performance hit and I've merged things with the default being "off" for now. We can then work through the other details and see if there is anything we can do about the performance.

This is one of the reasons the patch series has taken a while to merge and there were a number of issues trying to make the M3 build work and pass testing (see the weekly status reports).

Cheers,

Richard