[ostree] gnomeos: Building gdm
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] gnomeos: Building gdm
- Date: Sun, 15 Jan 2012 22:07:06 +0000 (UTC)
commit e34b90453ca0f781c5f46eaa7cec810e1dba5eb4
Author: Colin Walters <walters verbum org>
Date: Sun Jan 15 17:06:18 2012 -0500
gnomeos: Building gdm
gnomeos/3.4/gdm-disable-documentation.patch | 55 ++++++++++
gnomeos/3.4/gnome-doc-utils-no-docs.patch | 52 +++++++++
gnomeos/3.4/libcanberra-autogen.patch | 25 +++++
gnomeos/3.4/libcanberra-no-lynx.patch | 61 +++++++++++
gnomeos/3.4/manifest.json | 61 +++++++++--
gnomeos/3.4/pango-querymodules-system.patch | 149 +++++++++++++++++++++++++++
gnomeos/3.4/pulseaudio-autogen.patch | 25 +++++
src/triggers/triggers.d/pango.trigger | 2 +-
8 files changed, 420 insertions(+), 10 deletions(-)
---
diff --git a/gnomeos/3.4/gdm-disable-documentation.patch b/gnomeos/3.4/gdm-disable-documentation.patch
new file mode 100644
index 0000000..a88efc3
--- /dev/null
+++ b/gnomeos/3.4/gdm-disable-documentation.patch
@@ -0,0 +1,55 @@
+From d2e7caf3b67bc76d7354a20344505ba22f877de7 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters verbum org>
+Date: Sun, 15 Jan 2012 16:49:07 -0500
+Subject: [PATCH] build: Add --disable-documentation
+
+Documentation is the source of many cyclical build loops. Allow
+operating system builders to manually cut these cycles initially
+by disabling documentation for a first pass.
+---
+ Makefile.am | 8 +++++++-
+ configure.ac | 4 ++++
+ 2 files changed, 11 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index f522f40..3f00a16 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -4,12 +4,18 @@ SUBDIRS = \
+ data \
+ common \
+ daemon \
+- docs \
+ gui \
+ utils \
+ po \
+ tests \
+ $(NULL)
++DIST_SUBDIRS =
++
++if ENABLE_DOCUMENTATION
++SUBDIRS += docs
++else
++DIST_SUBDIRS += docs
++endif
+
+ # add these when help gets added back
+ # omf-install
+diff --git a/configure.ac b/configure.ac
+index 30397c5..291627c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -44,6 +44,10 @@ AC_CONFIG_MACRO_DIR([m4])
+ IT_PROG_INTLTOOL([0.40.0])
+
+ GNOME_DOC_INIT
++AC_ARG_ENABLE([documentation],
++ AS_HELP_STRING([--enable-documentation], [enable man pages and HTML documentation]),
++ [], [enable_documentation=yes])
++AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes)
+
+ GETTEXT_PACKAGE=gdm
+ AC_SUBST(GETTEXT_PACKAGE)
+--
+1.7.6.4
+
diff --git a/gnomeos/3.4/gnome-doc-utils-no-docs.patch b/gnomeos/3.4/gnome-doc-utils-no-docs.patch
new file mode 100644
index 0000000..cb70768
--- /dev/null
+++ b/gnomeos/3.4/gnome-doc-utils-no-docs.patch
@@ -0,0 +1,52 @@
+From 8b4cb9d332b84db970bf446ad9576ad98ba448e5 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters verbum org>
+Date: Sat, 14 Jan 2012 21:45:18 -0500
+Subject: [PATCH] build: Add --disable-documentation option
+
+This may sound weird for gnome-doc-utils, but basically I need a
+way to bootstrap an operating system without documentation initially,
+because it's the source of big dependency cycles.
+
+This configure option is enough to get the m4 macros installed, and
+then move from there to building GDM without documentation too.
+---
+ configure.in | 5 +++++
+ xml2po/Makefile.am | 6 +++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 15d97a4..dd56f21 100644
+--- a/configure.in
++++ b/configure.in
+@@ -21,6 +21,11 @@ AC_PROG_LN_S
+ gdu_cv_have_gdu=yes
+ GNOME_DOC_DEFINES
+
++AC_ARG_ENABLE([documentation],
++ AS_HELP_STRING([--enable-documentation], [enable documentation generated via XSLT]),
++ [], [enable_documentation=yes])
++AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes)
++
+ AC_ARG_ENABLE([build-utils],
+ AC_HELP_STRING([--enable-build-utils],
+ [build and install the build utilities [default=yes]]),,
+diff --git a/xml2po/Makefile.am b/xml2po/Makefile.am
+index 2f17f0b..4aff003 100644
+--- a/xml2po/Makefile.am
++++ b/xml2po/Makefile.am
+@@ -3,7 +3,11 @@ SUBDIRS = xml2po examples
+ pkgconfigdir = $(datadir)/pkgconfig
+ pkgconfig_DATA = xml2po.pc
+
+-man_MANS = xml2po.1
++man_MANS =
++
++if ENABLE_DOCUMENTATION
++man_MANS += xml2po.1
++endif
+
+ $(srcdir)/README: README.in
+ sed -e "s/\ VERSION\@/@VERSION@/g" < README.in > README
+--
+1.7.6.4
+
diff --git a/gnomeos/3.4/libcanberra-autogen.patch b/gnomeos/3.4/libcanberra-autogen.patch
new file mode 100644
index 0000000..0612fe7
--- /dev/null
+++ b/gnomeos/3.4/libcanberra-autogen.patch
@@ -0,0 +1,25 @@
+From fb255dd0c00baf1666cd0f7bbe36acc4a1185870 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters verbum org>
+Date: Sun, 15 Jan 2012 16:16:50 -0500
+Subject: [PATCH] autogen: Honor NOCONFIGURE=1
+
+See http://people.gnome.org/~walters/docs/build-api.txt
+---
+ autogen.sh | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index e784d3a..630cb97 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -22,4 +22,6 @@
+
+ NOCONFIGURE=1 ./bootstrap.sh
+
+-exec ./configure "$@"
++if test -z "$NOCONFIGURE"; then
++ exec ./configure "$@"
++fi
+--
+1.7.6.4
+
diff --git a/gnomeos/3.4/libcanberra-no-lynx.patch b/gnomeos/3.4/libcanberra-no-lynx.patch
new file mode 100644
index 0000000..a4f8e8a
--- /dev/null
+++ b/gnomeos/3.4/libcanberra-no-lynx.patch
@@ -0,0 +1,61 @@
+From eea817d6dc89b1dfcf144c3a247a62da6be97a1c Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters verbum org>
+Date: Sun, 15 Jan 2012 16:35:43 -0500
+Subject: [PATCH] build: Fix build with no lynx installed
+
+---
+ Makefile.am | 8 +++++++-
+ doc/Makefile.am | 3 ++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ffa7265..794fe10 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -16,7 +16,11 @@
+ # License along with libcanberra. If not, see
+ # <http://www.gnu.org/licenses/>.
+
+-dist_doc_DATA = README
++dist_doc_DATA =
++
++if USE_LYNX
++dist_doc_DATA += README
++endif
+
+ EXTRA_DIST = \
+ bootstrap.sh \
+@@ -29,7 +33,9 @@ EXTRA_DIST = \
+ SUBDIRS = src gtkdoc doc
+
+ MAINTAINERCLEANFILES = README
++if USE_LYNX
+ noinst_DATA = README
++endif
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libcanberra.pc
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index fae9958..cb27f22 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -16,7 +16,7 @@
+ # License along with libcanberra. If not, see
+ # <http://www.gnu.org/licenses/>.
+
+-noinst_DATA = README.html README
++noinst_DATA = README.html
+ EXTRA_DIST = $(noinst_DATA) style.css README.html.in
+
+ MAINTAINERCLEANFILES = README.html
+@@ -26,6 +26,7 @@ if USE_LYNX
+ README: README.html
+ $(AM_V_GEN)lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@
+
++noinst_DATA += README
+ CLEANFILES += README
+ endif
+
+--
+1.7.6.4
+
diff --git a/gnomeos/3.4/manifest.json b/gnomeos/3.4/manifest.json
index fbe459d..d51e91c 100644
--- a/gnomeos/3.4/manifest.json
+++ b/gnomeos/3.4/manifest.json
@@ -10,6 +10,8 @@
"fd-dbus": "git:git://anongit.freedesktop.org/git/dbus/",
"fd-NM": "git:git://anongit.freedesktop.org/git/NetworkManager/",
"fd-mesa": "git:git://anongit.freedesktop.org/git/mesa/",
+ "fd-pulse": "git:git://anongit.freedesktop.org/git/pulseaudio/",
+ "0pointer": "git:git://git.0pointer.de/",
"fedora": "git:git://git.fedorahosted.org/",
"savannah": "git:git://git.savannah.gnu.org/",
"debian": "git:git://anonscm.debian.org/",
@@ -17,6 +19,13 @@
"cgwalters": "git:git://github.com/cgwalters/"},
"components": [
+ {"src": "gnome:gtk-doc-stub",
+ "component": "devel"},
+
+ {"src": "git:git://github.com/atgreen/libffi.git"},
+
+ {"src": "gnome:glib"},
+
{"src": "savannah:attr",
"branch": "v2.4.46",
"patches": ["attr-add-autogen.patch",
@@ -36,17 +45,10 @@
{"src": "gnome:ostree",
"config-opts": ["--disable-documentation"]},
- {"src": "gnome:gtk-doc-stub",
- "component": "devel"},
-
{"src": "gnome:libxml2"},
{"src": "gnome:libxslt"},
- {"src": "git:git://github.com/atgreen/libffi.git"},
-
- {"src": "gnome:glib"},
-
{"src": "fd:pixman"},
{"src": "git:git://git.sv.nongnu.org/freetype/freetype2.git",
@@ -387,7 +389,7 @@
{"src": "fd:PolicyKit",
"config-opts": ["--disable-man-pages"]},
- {"src": "git:git://git.0pointer.de/libatasmart.git",
+ {"src": "0pointer:libatasmart.git",
"patches": ["libatasmart-autogen.patch"]},
{"src": "fd:udisks",
@@ -398,6 +400,47 @@
{"src": "fd:upower",
"config-opts": ["--disable-man-pages"],
- "patches": ["upower-no-builddir.patch"]}
+ "patches": ["upower-no-builddir.patch"]},
+
+ {"src": "gnome:gnome-doc-utils",
+ "config-opts": ["--disable-scrollkeeper",
+ "--disable-documentation"],
+ "patches": ["gnome-doc-utils-no-docs.patch"]},
+
+ {"src": "gnome:gconf",
+ "config-opts": ["--disable-orbit",
+ "--disable-gtk",
+ "--disable-documentation"]},
+
+ {"src": "gnome:pango",
+ "patches": ["pango-querymodules-system.patch"]},
+
+ {"src": "gnome:atk"},
+
+ {"src": "gnome:gdk-pixbuf"},
+
+ {"src": "gnome:gtk+",
+ "name": "gtk2",
+ "branch": "gtk-2-24"},
+
+ {"src": "gnome:gtk+",
+ "name": "gtk3",
+ "branch": "3b6665aad2c895fc8bc308fc47628001bbc0b401"},
+
+ {"src": "fd:accountsservice"},
+
+ {"src": "fd-pulse:pulseaudio",
+ "branch": "v0.9.23",
+ "config-opts": ["--disable-openssl"],
+ "patches": ["pulseaudio-autogen.patch"]},
+
+ {"src": "0pointer:libcanberra",
+ "patches": ["libcanberra-autogen.patch",
+ "libcanberra-no-lynx.patch"]},
+
+ {"src": "gnome:gdm",
+ "config-opts": ["--disable-documentation"],
+ "patches": ["gdm-disable-documentation.patch"]}
+
]
}
diff --git a/gnomeos/3.4/pango-querymodules-system.patch b/gnomeos/3.4/pango-querymodules-system.patch
new file mode 100644
index 0000000..7fc8c40
--- /dev/null
+++ b/gnomeos/3.4/pango-querymodules-system.patch
@@ -0,0 +1,149 @@
+From 54798de50d8dca0f6834ffb9796fe47c5e04f31e Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters verbum org>
+Date: Sun, 15 Jan 2012 09:43:59 -0500
+Subject: [PATCH] querymodules: Add --system argument
+
+When run as a system trigger, we really don't want to be consulting
+e.g. /root/.pangorc. Also, the OSTree build system can run as
+non-root, but we don't in this case want to look at /home/user since
+the user may not even exist in the password database inside the
+chroot.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=667960
+---
+ pango/pango-utils.c | 67 +++++++++++++++++++++++++++++++++++++++----------
+ pango/querymodules.c | 9 ++++++-
+ 2 files changed, 61 insertions(+), 15 deletions(-)
+
+diff --git a/pango/pango-utils.c b/pango/pango-utils.c
+index 44ec353..8177dab 100644
+--- a/pango/pango-utils.c
++++ b/pango/pango-utils.c
+@@ -532,6 +532,7 @@ pango_scan_int (const char **pos, int *out)
+ }
+
+ static GHashTable *config_hash = NULL;
++static gboolean did_read_user_config = FALSE;
+
+ static void
+ read_config_file (const char *filename, gboolean enoent_error)
+@@ -604,23 +605,41 @@ read_config_file (const char *filename, gboolean enoent_error)
+ }
+
+ static void
+-read_config (void)
++ensure_config_hash (void)
+ {
+ if (!config_hash)
+- {
+- char *filename;
+- const char *home;
+- const char *envvar;
+-
+- config_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
+- (GDestroyNotify)g_free,
+- (GDestroyNotify)g_free);
+- filename = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pangorc",
+- NULL);
+- read_config_file (filename, FALSE);
+- g_free (filename);
++ config_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
++ (GDestroyNotify)g_free,
++ (GDestroyNotify)g_free);
++}
++
++static void
++read_config_system (void)
++{
++ char *filename;
++
++ ensure_config_hash ();
++
++ filename = g_build_filename (pango_get_sysconf_subdirectory (),
++ "pangorc",
++ NULL);
++ read_config_file (filename, FALSE);
++ g_free (filename);
++}
++
++static void
++read_config (void)
++{
++ char *filename;
++ const char *home;
++ const char *envvar;
+
++ read_config_system ();
++
++ if (!did_read_user_config)
++ {
++ did_read_user_config = TRUE;
++
+ home = g_get_home_dir ();
+ if (home && *home)
+ {
+@@ -636,6 +655,26 @@ read_config (void)
+ }
+
+ /**
++ * pango_config_key_get_system:
++ * @key: Key to look up, in the form "SECTION/KEY".
++ *
++ * Looks up a key, consulting only the Pango system config database
++ * in $sysconfdir/pango/pangorc.
++ *
++ * Return value: the value, if found, otherwise %NULL. The value is a
++ * newly-allocated string and must be freed with g_free().
++ **/
++char *
++pango_config_key_get_system (const char *key)
++{
++ g_return_val_if_fail (key != NULL, NULL);
++
++ read_config_system ();
++
++ return g_strdup (g_hash_table_lookup (config_hash, key));
++}
++
++/**
+ * pango_config_key_get:
+ * @key: Key to look up, in the form "SECTION/KEY".
+ *
+diff --git a/pango/querymodules.c b/pango/querymodules.c
+index ef2d09a..a1eec70 100644
+--- a/pango/querymodules.c
++++ b/pango/querymodules.c
+@@ -44,6 +44,8 @@
+ #endif
+ #define SOEXT_LEN ((int) strlen (SOEXT))
+
++static gboolean system_mode;
++
+ static gboolean
+ string_needs_escape (const char *str)
+ {
+@@ -205,6 +207,8 @@ main (int argc, char **argv)
+ {
+ {"version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, &show_version,
+ "Show version numbers", NULL},
++ {"system", 0, 0, G_OPTION_ARG_NONE, &system_mode,
++ "Do not load configuration from home directory", NULL},
+ {NULL}
+ };
+
+@@ -237,7 +241,10 @@ main (int argc, char **argv)
+ char **dirs;
+ int i;
+
+- path = pango_config_key_get ("Pango/ModulesPath");
++ if (system_mode)
++ path = pango_config_key_get_system ("Pango/ModulesPath");
++ else
++ path = pango_config_key_get ("Pango/ModulesPath");
+ if (!path)
+ path = g_build_filename (pango_get_lib_subdirectory (),
+ MODULE_VERSION,
+--
+1.7.6.4
+
diff --git a/gnomeos/3.4/pulseaudio-autogen.patch b/gnomeos/3.4/pulseaudio-autogen.patch
new file mode 100644
index 0000000..4a9ef1d
--- /dev/null
+++ b/gnomeos/3.4/pulseaudio-autogen.patch
@@ -0,0 +1,25 @@
+From 2be8c8bd092a0ee0f0354547f250c2ffd1edcae2 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters verbum org>
+Date: Sun, 15 Jan 2012 15:14:18 -0500
+Subject: [PATCH] autogen.sh: Honor NOCONFIGURE=1
+
+See http://people.gnome.org/~walters/docs/build-api.txt
+---
+ autogen.sh | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 4051a22..2fff570 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -20,4 +20,6 @@
+
+ NOCONFIGURE=1 ./bootstrap.sh
+
+-exec ./configure "$@"
++if test -z "$NOCONFIGURE"; then
++ exec ./configure "$@"
++fi
+--
+1.7.6.4
+
diff --git a/src/triggers/triggers.d/pango.trigger b/src/triggers/triggers.d/pango.trigger
index e5e19ce..6993546 100755
--- a/src/triggers/triggers.d/pango.trigger
+++ b/src/triggers/triggers.d/pango.trigger
@@ -23,4 +23,4 @@
# REMatch: /lib.*/pango/.*/modules/.*\.so
DEST=/etc/pango/pango.modules
-pango-querymodules > ${DEST}.tmp && mv ${DEST}.tmp ${DEST}
+pango-querymodules --system > ${DEST}.tmp && mv ${DEST}.tmp ${DEST}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]