diff --git a/amanda-3.2.0-glib.patch b/amanda-3.2.0-glib.patch new file mode 100644 index 0000000..b3f5519 --- /dev/null +++ b/amanda-3.2.0-glib.patch @@ -0,0 +1,320 @@ +diff --git a/client-src/client_util.c b/client-src/client_util.c +index 5dc4974..051a317 100644 +--- a/client-src/client_util.c ++++ b/client-src/client_util.c +@@ -1009,7 +1009,7 @@ run_client_script( + script->result = g_new0(client_script_result_t, 1); + script->result->proplist = + g_hash_table_new_full(g_str_hash, g_str_equal, +- &g_free, &g_slist_free_full_gpointer); ++ &g_free, &g_amanda_slist_free_full_gpointer); + script->result->output = g_ptr_array_new(); + script->result->err = g_ptr_array_new(); + +diff --git a/common-src/amxml.c b/common-src/amxml.c +index fedf5cc..8fa0d2b 100644 +--- a/common-src/amxml.c ++++ b/common-src/amxml.c +@@ -86,7 +86,7 @@ free_dle( + amfree(dle->device); + amfree(dle->program); + g_slist_free(dle->estimatelist); +- g_slist_free_full(dle->levellist); ++ g_amanda_slist_free_full(dle->levellist); + amfree(dle->dumpdate); + amfree(dle->compprog); + amfree(dle->srv_encrypt); +@@ -104,8 +104,8 @@ free_dle( + scriptlist = scriptlist->next) { + free_script_data((script_t *)scriptlist->data); + } +- g_slist_free_full(dle->scriptlist); +- g_slist_free_full(dle->directtcp_list); ++ g_amanda_slist_free_full(dle->scriptlist); ++ g_amanda_slist_free_full(dle->directtcp_list); + amfree(dle); + } + +diff --git a/common-src/conffile.c b/common-src/conffile.c +index 19d87da..c5ea1b8 100644 +--- a/common-src/conffile.c ++++ b/common-src/conffile.c +@@ -4668,7 +4668,7 @@ config_uninit(void) + free_val_t(&hd->value[i]); + } + } +- g_slist_free_full(holdinglist); ++ g_amanda_slist_free_full(holdinglist); + holdinglist = NULL; + + for(dp=dumplist; dp != NULL; dp = dpnext) { +@@ -4754,7 +4754,7 @@ config_uninit(void) + amfree(config_dir); + amfree(config_filename); + +- g_slist_free_full(seen_filenames); ++ g_amanda_slist_free_full(seen_filenames); + seen_filenames = NULL; + + config_client = FALSE; +@@ -5383,7 +5383,7 @@ free_property_t( + gpointer p) + { + property_t *propery = (property_t *)p; +- g_slist_free_full(propery->values); ++ g_amanda_slist_free_full(propery->values); + amfree(propery); + } + +@@ -6508,11 +6508,11 @@ free_val_t( + break; + + case CONFTYPE_IDENTLIST: +- g_slist_free_full(val->v.identlist); ++ g_amanda_slist_free_full(val->v.identlist); + break; + + case CONFTYPE_RECOVERY_LIMIT: +- g_slist_free_full(val->v.recovery_limit.match_pats); ++ g_amanda_slist_free_full(val->v.recovery_limit.match_pats); + break; + + case CONFTYPE_TIME: +@@ -7737,7 +7737,7 @@ config_errors(GSList **errstr) + void + config_clear_errors(void) + { +- g_slist_free_full(cfgerr_errors); ++ g_amanda_slist_free_full(cfgerr_errors); + + cfgerr_errors = NULL; + cfgerr_level = CFGERR_OK; +diff --git a/common-src/glib-util.c b/common-src/glib-util.c +index 38b3990..6c0317c 100644 +--- a/common-src/glib-util.c ++++ b/common-src/glib-util.c +@@ -106,7 +106,7 @@ GValue* g_value_unset_copy(const GValue * from, GValue * to) { + return to; + } + +-void g_list_free_full(GList * list) { ++void g_amanda_list_free_full(GList * list) { + GList * cur = list; + + while (cur != NULL) { +@@ -118,7 +118,7 @@ void g_list_free_full(GList * list) { + g_list_free(list); + } + +-void g_slist_free_full(GSList * list) { ++void g_amanda_slist_free_full(GSList * list) { + GSList * cur = list; + + while (cur != NULL) { +@@ -130,8 +130,8 @@ void g_slist_free_full(GSList * list) { + g_slist_free(list); + } + +-void g_slist_free_full_gpointer(gpointer list) { +- g_slist_free_full((GSList *)list); ++void g_amanda_slist_free_full_gpointer(gpointer list) { ++ g_amanda_slist_free_full((GSList *)list); + } + + void g_queue_free_full(GQueue * queue) { +diff --git a/common-src/glib-util.h b/common-src/glib-util.h +index 01f1331..cf4a9d3 100644 +--- a/common-src/glib-util.h ++++ b/common-src/glib-util.h +@@ -64,9 +64,9 @@ GValue* g_value_unset_copy(const GValue* from, GValue * to); + + /* These functions all take a GLib container, and call free() on all the + * pointers in the container before free()ing the container itself. */ +-void g_list_free_full(GList * list); +-void g_slist_free_full(GSList * list); +-void g_slist_free_full_gpointer(gpointer list); ++void g_amanda_list_free_full(GList * list); ++void g_amanda_slist_free_full(GSList * list); ++void g_amanda_slist_free_full_gpointer(gpointer list); + void g_queue_free_full(GQueue * queue); + void g_ptr_array_free_full(GPtrArray * array); + +diff --git a/recover-src/extract_list.c b/recover-src/extract_list.c +index baac507..27823f8 100644 +--- a/recover-src/extract_list.c ++++ b/recover-src/extract_list.c +@@ -2289,7 +2289,7 @@ extract_files(void) + all_level = g_slist_append(all_level, level); + } + if (dump_dle) { +- g_slist_free_full(dump_dle->levellist); ++ g_amanda_slist_free_full(dump_dle->levellist); + dump_dle->levellist = all_level; + run_client_scripts(EXECUTE_ON_PRE_RECOVER, &g_options, dump_dle, + stderr); +@@ -2337,7 +2337,7 @@ extract_files(void) + dump_dle->levellist = g_slist_append(dump_dle->levellist, level); + run_client_scripts(EXECUTE_ON_INTER_LEVEL_RECOVER, &g_options, + dump_dle, stderr); +- g_slist_free_full(dump_dle->levellist); ++ g_amanda_slist_free_full(dump_dle->levellist); + dump_dle->levellist = NULL; + } + +@@ -2373,7 +2373,7 @@ extract_files(void) + if (dump_dle) { + run_client_scripts(EXECUTE_ON_POST_LEVEL_RECOVER, &g_options, + dump_dle, stderr); +- g_slist_free_full(dump_dle->levellist); ++ g_amanda_slist_free_full(dump_dle->levellist); + dump_dle->levellist = NULL; + } + } +@@ -2381,7 +2381,7 @@ extract_files(void) + dump_dle->levellist = all_level; + run_client_scripts(EXECUTE_ON_POST_RECOVER, &g_options, dump_dle, + stderr); +- g_slist_free_full(dump_dle->levellist); ++ g_amanda_slist_free_full(dump_dle->levellist); + all_level = NULL; + dump_dle->levellist = NULL; + } +diff --git a/server-src/amadmin.c b/server-src/amadmin.c +index 96e117b..84a2ea9 100644 +--- a/server-src/amadmin.c ++++ b/server-src/amadmin.c +@@ -1492,7 +1492,7 @@ holding( + amfree(dumpstr); + dumpfile_free_data(&file); + } +- g_slist_free_full(file_list); ++ g_amanda_slist_free_full(file_list); + break; + + case HOLDING_DELETE: +@@ -1510,7 +1510,7 @@ holding( + error(_("Could not delete '%s'"), (char *)li->data); + } + } +- g_slist_free_full(file_list); ++ g_amanda_slist_free_full(file_list); + break; + } + } +diff --git a/server-src/amflush.c b/server-src/amflush.c +index 4d28e44..a18a528 100644 +--- a/server-src/amflush.c ++++ b/server-src/amflush.c +@@ -245,7 +245,7 @@ main( + stralloc((char *)datestamp->data), + g_compare_strings); + } +- g_slist_free_full(all_datestamps); ++ g_amanda_slist_free_full(all_datestamps); + } + else { + /* otherwise, in batch mode, use all datestamps */ +@@ -405,9 +405,9 @@ main( + } + } + +- g_slist_free_full(datestamp_list); ++ g_amanda_slist_free_full(datestamp_list); + datestamp_list = NULL; +- g_slist_free_full(holding_list); ++ g_amanda_slist_free_full(holding_list); + holding_list = NULL; + + if(redirect) { /* rename errfile */ +@@ -599,7 +599,7 @@ pick_datestamp(void) + } + chupper = (char)toupper(ch); + if (chupper < 'A' || chupper > max_char) { +- g_slist_free_full(r_datestamp_list); ++ g_amanda_slist_free_full(r_datestamp_list); + r_datestamp_list = NULL; + break; + } +@@ -607,7 +607,7 @@ pick_datestamp(void) + stralloc(datestamps[chupper - 'A'])); + } while ((ch = *a++) != '\0'); + if (r_datestamp_list && ch == '\0') { +- g_slist_free_full(datestamp_list); ++ g_amanda_slist_free_full(datestamp_list); + datestamp_list = r_datestamp_list; + break; + } +diff --git a/server-src/cmdline.c b/server-src/cmdline.c +index d29a4f3..4d42035 100644 +--- a/server-src/cmdline.c ++++ b/server-src/cmdline.c +@@ -247,7 +247,7 @@ cmdline_match_holding( + dumpfile_free_data(&file); + } + +- g_slist_free_full(holding_files); ++ g_amanda_slist_free_full(holding_files); + + return matching_files; + } +diff --git a/server-src/cmdline.h b/server-src/cmdline.h +index bd62e74..ee8625b 100644 +--- a/server-src/cmdline.h ++++ b/server-src/cmdline.h +@@ -158,7 +158,7 @@ cmdline_format_dumpspec_components( + * the dumpspec list contains a dumpspec with all blank + * entries, all holding files are returned. + * +- * Free the resulting list with g_slist_free_full() ++ * Free the resulting list with g_amanda_slist_free_full() + * + * @param dumpspec_list: a list of dumpspecs + * @returns: a list of holding disk filenames. +diff --git a/server-src/find.c b/server-src/find.c +index dadbd57..8829916 100644 +--- a/server-src/find.c ++++ b/server-src/find.c +@@ -287,7 +287,7 @@ search_holding_disk( + dumpfile_free_data(&file); + } + +- g_slist_free_full(holding_file_list); ++ g_amanda_slist_free_full(holding_file_list); + } + + static int +diff --git a/server-src/holding.c b/server-src/holding.c +index 15286bd..c3d0b85 100644 +--- a/server-src/holding.c ++++ b/server-src/holding.c +@@ -558,7 +558,7 @@ holding_get_files_for_flush( + dumpfile_free_data(&file); + } + +- if (file_list) g_slist_free_full(file_list); ++ if (file_list) g_amanda_slist_free_full(file_list); + + return result_list; + } +@@ -584,7 +584,7 @@ holding_get_all_datestamps(void) + dumpfile_free_data(&dfile); + } + +- g_slist_free_full(all_files); ++ g_amanda_slist_free_full(all_files); + + return datestamps; + } +diff --git a/server-src/planner.c b/server-src/planner.c +index fd18d84..10f8566 100644 +--- a/server-src/planner.c ++++ b/server-src/planner.c +@@ -462,7 +462,7 @@ main( + amfree(qhname); + dumpfile_free_data(&file); + } +- g_slist_free_full(holding_list); ++ g_amanda_slist_free_full(holding_list); + holding_list = NULL; + } + g_fprintf(stderr, _("ENDFLUSH\n")); diff --git a/amanda.spec b/amanda.spec index bc29787..1d734b7 100644 --- a/amanda.spec +++ b/amanda.spec @@ -20,6 +20,7 @@ Patch3: amanda-3.1.1-tcpport.patch Patch4: amanda-3.1.0-ftbfs.patch Patch5: amanda-3.1.1-bsd.patch Patch6: amanda-3.2.0-config-dir.patch +Patch7: amanda-3.2.0-glib.patch License: BSD and GPLv3+ and GPLv2+ and GPLv2 Group: Applications/System URL: http://www.amanda.org @@ -86,6 +87,7 @@ server also needs to have the amanda-client package installed. %patch4 -p1 -b .ftbfs %patch5 -p1 -b .bsd %patch6 -p1 -b .config +%patch7 -p1 -b .glib ./autogen %build @@ -419,6 +421,7 @@ rm -rf ${RPM_BUILD_ROOT} %changelog * Thu Nov 4 2010 Jan Görig - 3.2.0-1 - upgrade to new upstream release +- fixed build with new glib - changed owner of the most files to root - moved variable files from /etc/amanda to /var/lib/amanda - spec cleanups