diff --git a/gnomeos/3.4/gdm-disable-documentation.patch b/gnomeos/3.4/gdm-disable-documentation.patch new file mode 100644 index 00000000..a88efc35 --- /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 +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 00000000..cb707687 --- /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 +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 00000000..0612fe70 --- /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 +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 00000000..a4f8e8a0 --- /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 +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 + # . + +-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 + # . + +-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 fbe459d3..d51e91c1 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 00000000..7fc8c406 --- /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 +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 00000000..4a9ef1de --- /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 +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 e5e19cee..69935464 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}