gnomeos: Building gdm

This commit is contained in:
Colin Walters 2012-01-15 17:06:18 -05:00
parent db8919a58a
commit e34b90453c
8 changed files with 420 additions and 10 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"]}
]
}

View File

@ -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

View File

@ -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

View File

@ -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}