From 4bfb8f151f2b61c7f9794f405a6530a63d46b6fe Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Dec 04 2007 22:38:44 +0000 Subject: Patch valaprojectgenerator.c as well, so build system does not need to depend on an older copy of vala to bootstrap --- diff --git a/vala-0.1.5-gen-project.patch b/vala-0.1.5-gen-project.patch index 2a1b96f..4bc63eb 100644 --- a/vala-0.1.5-gen-project.patch +++ b/vala-0.1.5-gen-project.patch @@ -50,3 +50,178 @@ static void main (string[] args) { Gtk.init (ref args); +--- vala-0.1.5/gen-project/valaprojectgenerator.c.orig 2007-11-25 11:50:27.000000000 -0500 ++++ vala-0.1.5/gen-project/valaprojectgenerator.c 2007-12-04 17:33:21.000000000 -0500 +@@ -77,11 +77,13 @@ + static void vala_project_generator_write_linguas (ValaProjectGenerator* self, GError** error); + static void vala_project_generator_write_authors (ValaProjectGenerator* self, GError** error); + static void vala_project_generator_write_maintainers (ValaProjectGenerator* self, GError** error); ++static char* vala_project_generator_get_automake_path (ValaProjectGenerator* self); + static void vala_project_generator_main (int args_length1, char** args); + static GObject * vala_project_generator_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); + static gpointer vala_project_generator_parent_class = NULL; + static void vala_project_generator_dispose (GObject * obj); + static GType vala_project_generator_get_type (void); ++static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); + + + static ValaProjectGenerator* vala_project_generator_new (void) { +@@ -206,7 +208,7 @@ + char* _tmp22; + char* _tmp23; + char* s; +- char* _tmp24; ++ char* automake_path; + char* license_filename; + vala_project_generator_write_autogen_sh (self, &inner_error); + if (inner_error != NULL) { +@@ -332,29 +334,40 @@ + } + (_tmp23 = (g_free (_tmp23), NULL)); + s = NULL; +- g_file_get_contents ("/usr/share/automake/INSTALL", &s, NULL, &inner_error); +- if (inner_error != NULL) { +- if (inner_error->domain == G_FILE_ERROR) { +- goto __catch0_g_file_error; +- } +- g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); +- g_clear_error (&inner_error); +- } +- _tmp24 = NULL; +- g_file_set_contents ((_tmp24 = g_strconcat (self->priv->project_path, "/INSTALL", NULL)), s, -1, &inner_error); +- if (inner_error != NULL) { +- if (inner_error->domain == G_FILE_ERROR) { +- goto __catch0_g_file_error; ++ automake_path = vala_project_generator_get_automake_path (self); ++ if (automake_path != NULL) { ++ char* install_filename; ++ install_filename = g_strconcat (automake_path, "/INSTALL", NULL); ++ if (g_file_test (install_filename, G_FILE_TEST_EXISTS)) { ++ char* _tmp24; ++ g_file_get_contents (install_filename, &s, NULL, &inner_error); ++ if (inner_error != NULL) { ++ if (inner_error->domain == G_FILE_ERROR) { ++ goto __catch0_g_file_error; ++ } ++ g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); ++ g_clear_error (&inner_error); ++ } ++ _tmp24 = NULL; ++ g_file_set_contents ((_tmp24 = g_strconcat (self->priv->project_path, "/INSTALL", NULL)), s, -1, &inner_error); ++ if (inner_error != NULL) { ++ if (inner_error->domain == G_FILE_ERROR) { ++ goto __catch0_g_file_error; ++ } ++ g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); ++ g_clear_error (&inner_error); ++ } ++ (_tmp24 = (g_free (_tmp24), NULL)); + } +- g_critical ("file %s: line %d: uncaught error: %s", __FILE__, __LINE__, inner_error->message); +- g_clear_error (&inner_error); ++ (install_filename = (g_free (install_filename), NULL)); + } +- (_tmp24 = (g_free (_tmp24), NULL)); + license_filename = NULL; + if (self->priv->project_license == VALA_PROJECT_LICENSE_GPL2) { +- char* _tmp25; +- _tmp25 = NULL; +- license_filename = (_tmp25 = g_strdup ("/usr/share/automake/COPYING"), (license_filename = (g_free (license_filename), NULL)), _tmp25); ++ if (automake_path != NULL) { ++ char* _tmp25; ++ _tmp25 = NULL; ++ license_filename = (_tmp25 = g_strconcat (automake_path, "/COPYING", NULL), (license_filename = (g_free (license_filename), NULL)), _tmp25); ++ } + } else { + if (self->priv->project_license == VALA_PROJECT_LICENSE_LGPL2) { + char* _tmp26; +@@ -362,7 +375,7 @@ + license_filename = (_tmp26 = g_strdup ("/usr/share/libtool/libltdl/COPYING.LIB"), (license_filename = (g_free (license_filename), NULL)), _tmp26); + } + } +- if (license_filename != NULL) { ++ if (license_filename != NULL && g_file_test (license_filename, G_FILE_TEST_EXISTS)) { + char* _tmp27; + g_file_get_contents (license_filename, &s, NULL, &inner_error); + if (inner_error != NULL) { +@@ -384,6 +397,7 @@ + (_tmp27 = (g_free (_tmp27), NULL)); + } + (s = (g_free (s), NULL)); ++ (automake_path = (g_free (automake_path), NULL)); + (license_filename = (g_free (license_filename), NULL)); + } + goto __finally0; +@@ -393,7 +407,7 @@ + e = inner_error; + inner_error = NULL; + { +- g_critical ("/home/juerg/svn/vala/gen-project/valaprojectgenerator.vala:210: Error while creating project: %s", e->message); ++ g_critical ("/local/data/builder/packages/vala/vala-0.1.5/gen-project/valaprojectgenerator.vala:218: Error while creating project: %s", e->message); + } + } + __finally0: +@@ -861,6 +875,40 @@ + } + + ++static char* vala_project_generator_get_automake_path (ValaProjectGenerator* self) { ++ char** _tmp1; ++ gint automake_paths_length1; ++ char** _tmp0; ++ char** automake_paths; ++ gpointer _tmp4; ++ g_return_val_if_fail (VALA_IS_PROJECT_GENERATOR (self), NULL); ++ _tmp1 = NULL; ++ _tmp0 = NULL; ++ automake_paths = (_tmp1 = (_tmp0 = g_new0 (char*, 3 + 1), _tmp0[0] = g_strdup ("/usr/share/automake"), _tmp0[1] = g_strdup ("/usr/share/automake-1.10"), _tmp0[2] = g_strdup ("/usr/share/automake-1.9"), _tmp0), automake_paths_length1 = 3, _tmp1); ++ { ++ char** automake_path_collection; ++ int automake_path_it; ++ automake_path_collection = automake_paths; ++ for (automake_path_it = 0; (automake_paths_length1 != -1 && automake_path_it < automake_paths_length1) || (automake_paths_length1 == -1 && automake_path_collection[automake_path_it] != NULL); automake_path_it = automake_path_it + 1) { ++ const char* _tmp3; ++ char* automake_path; ++ _tmp3 = NULL; ++ automake_path = (_tmp3 = automake_path_collection[automake_path_it], (_tmp3 == NULL ? NULL : g_strdup (_tmp3))); ++ { ++ if (g_file_test (automake_path, G_FILE_TEST_IS_DIR)) { ++ char* _tmp2; ++ _tmp2 = NULL; ++ return (_tmp2 = automake_path, (automake_paths = (_vala_array_free (automake_paths, automake_paths_length1, ((GDestroyNotify) g_free)), NULL)), _tmp2); ++ } ++ (automake_path = (g_free (automake_path), NULL)); ++ } ++ } ++ } ++ return (_tmp4 = NULL, (automake_paths = (_vala_array_free (automake_paths, automake_paths_length1, ((GDestroyNotify) g_free)), NULL)), _tmp4); ++ (automake_paths = (_vala_array_free (automake_paths, automake_paths_length1, ((GDestroyNotify) g_free)), NULL)); ++} ++ ++ + static void vala_project_generator_main (int args_length1, char** args) { + ValaProjectGenerator* generator; + gtk_init (&args_length1, &args); +@@ -1038,5 +1086,22 @@ + } + + ++static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { ++ if (array != NULL && destroy_func != NULL) { ++ int i; ++ if (array_length >= 0) ++ for (i = 0; i < array_length; i = i + 1) { ++ if (((gpointer*) array)[i] != NULL) ++ destroy_func (((gpointer*) array)[i]); ++ } ++ else ++ for (i = 0; ((gpointer*) array)[i] != NULL; i = i + 1) { ++ destroy_func (((gpointer*) array)[i]); ++ } ++ } ++ g_free (array); ++} ++ ++ + +