Package: gdpc
Version: 2.2.5-4
Severity: important
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu xenial ubuntu-patch

Hi,

As you can see in the build log checks for gdpc in Debian [1], the build logs
contain implicit function declarations due to the use of deprecated glib
functions. The implicit declaration of functions can cause problems on 64-bit
architectures, as described here [2].

Implicit function declarations actually cause an FTBFS on 64-bit architectures
in Ubuntu, which prompted the attached patch.

In Ubuntu, the attached patch was applied to achieve the following:

  * Merge from Debian unstable. Remaining changes:
    - debian/patches/41_glib_deprecated_funcs.patch: Converted uses of
      deprecated glib functions, fixing FTBFS on 64-bit buildds.

Thanks for considering the patch.

Logan Rosen

[1] https://qa.debian.org/bls/packages/g/gdpc.html
[2] https://wiki.debian.org/ImplicitPointerConversions

-- System Information:
Debian Release: stretch/sid
  APT prefers xenial-updates
  APT policy: (500, 'xenial-updates'), (500, 'xenial-security'), (500, 
'xenial'), (100, 'xenial-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.4.0-2-generic (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru gdpc-2.2.5/debian/patches/41_glib_deprecated_funcs.patch gdpc-2.2.5/debian/patches/41_glib_deprecated_funcs.patch
--- gdpc-2.2.5/debian/patches/41_glib_deprecated_funcs.patch	1969-12-31 19:00:00.000000000 -0500
+++ gdpc-2.2.5/debian/patches/41_glib_deprecated_funcs.patch	2013-12-20 21:16:20.000000000 -0500
@@ -0,0 +1,44 @@
+Index: gdpc-2.2.5/main.c
+===================================================================
+--- gdpc-2.2.5.orig/main.c	2009-04-21 14:03:07.000000000 -0400
++++ gdpc-2.2.5/main.c	2013-04-07 21:21:46.208492431 -0400
+@@ -848,9 +848,9 @@
+ #endif
+ 
+   for (i=0;i<NUMFRAMES;i++) {
+-	params->frameready[i] = g_mutex_new();
++	g_mutex_init (params->frameready[i]);
+ 	g_mutex_lock (params->frameready[i]);
+-	params->framedrawn[i] = g_mutex_new();
++	g_mutex_init (params->framedrawn[i]);
+ 	g_mutex_unlock (params->framedrawn[i]);
+ 	params->framedata[i] = NULL;
+     }
+@@ -860,15 +860,15 @@
+ printf("Initialising filewait/EOF semaphores.\n");
+ #endif
+ 
+-    params->filewait = g_mutex_new();
++    g_mutex_init (params->filewait);
+     g_mutex_lock (params->filewait);
+-    params->atEnd = g_mutex_new();
++    g_mutex_init (params->atEnd);
+ 
+ #if Debug 
+ printf("Starting filereading thread.\n");
+ #endif
+ 
+-    th_a = g_thread_create ((GThreadFunc) readinput, (gpointer) params, TRUE, NULL);
++    th_a = g_thread_try_new ("some_thread", (GThreadFunc) readinput, (gpointer) params, NULL);
+     if (th_a == NULL) {
+ 	fprintf(stderr, "Creating read thread failed.\n");
+ 	gtk_main_quit ();
+@@ -927,8 +927,6 @@
+ /* Start gtk initialization. */
+     gtk_init (&argc, &argv);
+ 
+-    g_thread_init(NULL);
+-
+     printf("\n gdpc version "GDPCVER", Copyright (C) 2000 Jonas Frantz\n");
+     printf(" gdpc comes with ABSOLUTELY NO WARRANTY; for details\n");
+     printf(" check out the documentation.  This is free software, and\n"); 
diff -Nru gdpc-2.2.5/debian/patches/series gdpc-2.2.5/debian/patches/series
--- gdpc-2.2.5/debian/patches/series	2016-01-24 15:50:17.000000000 -0500
+++ gdpc-2.2.5/debian/patches/series	2016-02-18 01:13:27.000000000 -0500
@@ -1,4 +1,5 @@
 20_Makefile_options.patch
 30_gdk_enable_deprecated.patch
 40_fix_gcc4.8_build.patch
+41_glib_deprecated_funcs.patch
 hardening.patch

Reply via email to