From: Daniele F. <df...@gm...> - 2012-07-08 13:01:58
|
Hello, When compiling libgpod on Debian unstable wheezy/sid I found that warnings are treated as errors and build fails because g_basename(), g_mapped_file_free() and gdk_pixbuf_unref() are deprecated, so I made the following patches and would like to know your opinion: shall I commit them or change something? Commit messages are long because of gcc error messages. Instead of g_basename() we can use g_path_get_basename() (as in the attached patch) or just use argv[0], which would be simpler and in most cases just as effective IMHO, or handle arguments with GOption which can be overkill for such small progams. Instead of g_mapped_file_free() we can add a preprocessor conditional (as in the attached patch) or bump the glib requirement to 2.22. Instead of gdk_pixbuf_unref we can use g_object_unref() (as in the attached patch) without conditionals because for what I understand requiring gdk-pixbuf-2.0 is enough. >From fc2ad71aa5ba6232edfe2c29d8bd0a19608109f1 Mon Sep 17 00:00:00 2001 From: Daniele Forsi <da...@fo...> Date: Sun, 8 Jul 2012 12:32:17 +0200 Subject: [PATCH 1/3] Conditionally replace deprecated glib function Use g_mapped_file_unref() instead of g_mapped_file_free(). Fixes: db-parse-context.c: In function 'db_parse_context_destroy': db-parse-context.c:67:3: error: 'g_mapped_file_free' is deprecated (declared at /usr/include/glib-2.0/glib/gmappedfile.h:48): Use 'g_mapped_file_unref' instead [-Werror=deprecated-declarations] db-parse-context.c: In function 'db_parse_context_new_from_file': db-parse-context.c:218:3: error: 'g_mapped_file_free' is deprecated (declared at /usr/include/glib-2.0/glib/gmappedfile.h:48): Use 'g_mapped_file_unref' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors --- src/db-parse-context.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/db-parse-context.c b/src/db-parse-context.c index 88009c9..3005753 100644 --- a/src/db-parse-context.c +++ b/src/db-parse-context.c @@ -64,7 +64,11 @@ db_parse_context_destroy (DBParseContext *ctx) g_return_if_fail (ctx != NULL); if (ctx->mapped_file) { +#if GLIB_CHECK_VERSION (2,22,0) + g_mapped_file_unref (ctx->mapped_file); +#else g_mapped_file_free(ctx->mapped_file); +#endif } g_free (ctx); @@ -215,7 +219,11 @@ db_parse_context_new_from_file (const char *filename, Itdb_DB *db) device->byte_order); if (ctx == NULL) { +#if GLIB_CHECK_VERSION (2,22,0) + g_mapped_file_unref (mapped_file); +#else g_mapped_file_free(mapped_file); +#endif return NULL; } ctx->db = db; -- 1.7.10.4 >From d90cb7b7eb004c241cfa121c9d6912064513ab56 Mon Sep 17 00:00:00 2001 From: Daniele Forsi <da...@fo...> Date: Sun, 8 Jul 2012 12:36:38 +0200 Subject: [PATCH 2/3] Replace deprecated gdk-pixbuf function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use g_object_unref() instead of gdk_pixbuf_unref() which is deprecated since gdk-pixbuf 2.0 and libgpod optionally depends on 2.6.0. Fixes: itdb_artwork.c: In function 'itdb_thumb_ipod_item_to_pixbuf': itdb_artwork.c:885:2: error: 'gdk_pixbuf_unref' is deprecated (declared at /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:243): Use 'g_object_unref' instead [-Werror=deprecated-declarations] itdb_artwork.c:886:2: error: 'gdk_pixbuf_unref' is deprecated (declared at /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:243): Use 'g_object_unref' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors test-covers.c: In function ‘save_itdb_thumb’: test-covers.c:56:9: error: ‘gdk_pixbuf_unref’ is deprecated (declared at /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:243): Use 'g_object_unref' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors test-photos.c: In function ‘dump_thumbs’: test-photos.c:84:3: error: ‘gdk_pixbuf_unref’ is deprecated (declared at /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:243): Use 'g_object_unref' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors --- src/itdb_artwork.c | 4 ++-- tests/test-covers.c | 2 +- tests/test-photos.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/itdb_artwork.c b/src/itdb_artwork.c index 2328840..54d6aae 100644 --- a/src/itdb_artwork.c +++ b/src/itdb_artwork.c @@ -882,8 +882,8 @@ gpointer itdb_thumb_ipod_item_to_pixbuf (Itdb_Device *device, pad_x, pad_y, width, height); pixbuf = gdk_pixbuf_copy (pixbuf_sub); - gdk_pixbuf_unref (pixbuf_full); - gdk_pixbuf_unref (pixbuf_sub); + g_object_unref (pixbuf_full); + g_object_unref (pixbuf_sub); return pixbuf; } diff --git a/tests/test-covers.c b/tests/test-covers.c index 20b4d7b..4d3a68f 100644 --- a/tests/test-covers.c +++ b/tests/test-covers.c @@ -53,7 +53,7 @@ save_itdb_thumb (Itdb_Track *track, GdkPixbuf *pixbuf, guint id) } g_print (" %s\n", filename); gdk_pixbuf_save (pixbuf, filename, "png", NULL, NULL); - gdk_pixbuf_unref (pixbuf); + g_object_unref (pixbuf); /* g_print ("Saved %s\n", filename); */ g_free (filename); } diff --git a/tests/test-photos.c b/tests/test-photos.c index 930e66b..b5bd89d 100644 --- a/tests/test-photos.c +++ b/tests/test-photos.c @@ -81,7 +81,7 @@ dump_thumbs (Itdb_PhotoDB *db, Itdb_Artwork *artwork, path = g_build_filename (dir, filename, NULL); g_free (filename); gdk_pixbuf_save (pixbuf, path, "png", NULL, NULL); - gdk_pixbuf_unref (pixbuf); + g_object_unref (pixbuf); g_free (path); } g_list_free (thumbnails); -- 1.7.10.4 >From f61b328c176bca8a42646a0553b3a4e4e0057eaf Mon Sep 17 00:00:00 2001 From: Daniele Forsi <da...@fo...> Date: Sun, 8 Jul 2012 13:52:59 +0200 Subject: [PATCH 3/3] Replace deprecated glib function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use g_path_get_basename() instead of g_basename() which is deprecated since glib 2.2 and libgpod depends on 2.16. Fixes: read-sysinfoextended.c: In function ‘main’: read-sysinfoextended.c:81:7: error: ‘g_basename’ is deprecated (declared at /usr/include/glib-2.0/glib/gfileutils.h:159): Use 'g_path_get_basename' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors itdb_main.c: In function ‘main’: itdb_main.c:58:7: error: ‘g_basename’ is deprecated (declared at /usr/include/glib-2.0/glib/gfileutils.h:159): Use 'g_path_get_basename' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors test-ls.c: In function ‘main’: test-ls.c:124:17: error: ‘g_basename’ is deprecated (declared at /usr/include/glib-2.0/glib/gfileutils.h:159): Use 'g_path_get_basename' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors test-fw-id.c: In function ‘main’: test-fw-id.c:45:9: error: ‘g_basename’ is deprecated (declared at /usr/include/glib-2.0/glib/gfileutils.h:159): Use 'g_path_get_basename' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors get-timezone.c: In function ‘main’: get-timezone.c:31:9: error: ‘g_basename’ is deprecated (declared at /usr/include/glib-2.0/glib/gfileutils.h:159): Use 'g_path_get_basename' instead [-Werror=deprecated-declarations] cc1: all warnings being treated as errors --- tests/get-timezone.c | 7 ++++++- tests/itdb_main.c | 7 ++++++- tests/test-fw-id.c | 7 ++++++- tests/test-ls.c | 7 ++++++- tools/read-sysinfoextended.c | 7 ++++++- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/tests/get-timezone.c b/tests/get-timezone.c index e453ca3..75d77bf 100644 --- a/tests/get-timezone.c +++ b/tests/get-timezone.c @@ -28,7 +28,12 @@ int main (int argc, char **argv) if (argc >= 2) { mountpoint = argv[1]; } else { - g_print ("Usage: %s <mountpoint>\n\n", g_basename(argv[0])); + gchar *basename; + + basename = g_path_get_basename (argv[0]); + g_print ("Usage: %s <mountpoint>\n\n", basename); + g_free (basename); + return -1; } diff --git a/tests/itdb_main.c b/tests/itdb_main.c index e7723bb..9ae9b94 100644 --- a/tests/itdb_main.c +++ b/tests/itdb_main.c @@ -55,7 +55,12 @@ main (int argc, char *argv[]) if (infile == 0) { - printf ("Usage: %s <infile> [<outfile>]\n", g_basename(argv[0])); + gchar *basename; + + basename = g_path_get_basename (argv[0]); + printf ("Usage: %s <infile> [<outfile>]\n", basename); + g_free (basename); + exit (0); } diff --git a/tests/test-fw-id.c b/tests/test-fw-id.c index 7490001..68232c5 100644 --- a/tests/test-fw-id.c +++ b/tests/test-fw-id.c @@ -42,7 +42,12 @@ main (int argc, char *argv[]) char *fwid; if (argc < 2) { - g_print ("Usage: %s <mountpoint>\n", g_basename (argv[0])); + gchar *basename; + + basename = g_path_get_basename (argv[0]); + g_print ("Usage: %s <mountpoint>\n", basename); + g_free (basename); + return 1; } diff --git a/tests/test-ls.c b/tests/test-ls.c index e28cd9c..6ab35aa 100644 --- a/tests/test-ls.c +++ b/tests/test-ls.c @@ -118,10 +118,15 @@ main (int argc, char *argv[]) if (mountpoint == NULL) { + gchar *basename; + + basename = g_path_get_basename (argv[0]); g_print ("Usage: %s <mountpoint>|-l [<playlistname>]\n\n" "-l - List from the local repository (~" LOCALDB ")\n" "<playlistname> - name of the playlist to list (optional)\n", - g_basename(argv[0])); + basename); + g_free (basename); + exit (0); } diff --git a/tools/read-sysinfoextended.c b/tools/read-sysinfoextended.c index b3afd2c..3397ac4 100644 --- a/tools/read-sysinfoextended.c +++ b/tools/read-sysinfoextended.c @@ -78,7 +78,12 @@ main (int argc, char **argv) char *xml; if (argc < 3) { - g_print (_("usage: %s <device|uuid|bus device> <mountpoint>\n"), g_basename (argv[0])); + gchar *basename; + + basename = g_path_get_basename (argv[0]); + g_print (_("usage: %s <device|uuid|bus device> <mountpoint>\n"), basename); + g_free (basename); + return 1; } -- 1.7.10.4 -- Daniele Forsi |