Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package pd-ggee

the uploaded package fixes two bugs that make parts of the package practically
unusable.

- #792720 makes two modules unusable on amd64
- #793827 makes one module unusable on Pd>=0.43 (and even oldstable includes
  0.43)

the upload fixes an additional recently found piuparts problem (dangling
symlink).

thanks for considering

unblock pd-ggee/0.26-5

-- System Information:
Debian Release: 9.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru pd-ggee-0.26/debian/changelog pd-ggee-0.26/debian/changelog
--- pd-ggee-0.26/debian/changelog       2015-06-03 19:57:20.000000000 +0200
+++ pd-ggee-0.26/debian/changelog       2017-03-13 15:14:16.000000000 +0100
@@ -1,3 +1,14 @@
+pd-ggee (0.26-5) unstable; urgency=medium
+
+  * Update Vcs-Browser stanza
+  * Added debian/git-tuneclone.sh script
+  * Canonical homepage for Pd-projects
+  * Drop symlink to non-existant examples (Closes: #857161)
+  * Updated "button" to Pd-GUI rewrite (Closes: #793827)
+  * Fixed access to tables on 64bit systems (Closes: #792720)
+
+ -- IOhannes m zmölnig (Debian/GNU) <umlae...@debian.org>  Mon, 13 Mar 2017 
15:14:16 +0100
+
 pd-ggee (0.26-4) unstable; urgency=medium
 
   [ Hans-Christoph Steiner ]
diff -Nru pd-ggee-0.26/debian/control pd-ggee-0.26/debian/control
--- pd-ggee-0.26/debian/control 2015-06-03 17:10:46.000000000 +0200
+++ pd-ggee-0.26/debian/control 2017-03-13 15:14:16.000000000 +0100
@@ -8,9 +8,9 @@
                puredata-dev,
                quilt (>= 0.46-7~)
 Standards-Version: 3.9.6
-Homepage: http://puredata.info
+Homepage: http://download.puredata.info/ggee
 Vcs-Git: git://anonscm.debian.org/pkg-multimedia/pd-ggee.git
-Vcs-Browser: http://git.debian.org/?p=pkg-multimedia/pd-ggee.git;a=summary
+Vcs-Browser: https://anonscm.debian.org/cgit/pkg-multimedia/pd-ggee.git
 
 Package: pd-ggee
 Architecture: any
diff -Nru pd-ggee-0.26/debian/git-tuneclone.sh 
pd-ggee-0.26/debian/git-tuneclone.sh
--- pd-ggee-0.26/debian/git-tuneclone.sh        1970-01-01 01:00:00.000000000 
+0100
+++ pd-ggee-0.26/debian/git-tuneclone.sh        2017-03-13 15:14:16.000000000 
+0100
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+## script to initialize a cloned repository
+## with per (local) repository settings.
+
+# - ignore quilt's .pc/ directory
+# - enable the "--follow-tags" mode for pushing
+
+error() {
+ echo "$@" 1>&2
+}
+
+NAME=$(dpkg-parsechangelog -S Source)
+
+if [ "x${NAME}" = "x" ]; then
+ error "unable to determine package name"
+ error "make sure you run this script within a source package dir"
+ exit 1
+fi
+
+if [ ! -d ".git" ]; then
+ error "it seems like this source package is not under git control"
+ exit 1
+fi
+
+echo "tuning git-repository for ${NAME}"
+git config push.followTags true && echo "enabled push.followTags"
+
+GITEXCLUDE=".git/info/exclude"
+egrep "^/?\.pc/?$" "${GITEXCLUDE}" >/dev/null 2>&1 \
+  || (echo "/.pc/" >> "${GITEXCLUDE}" && echo "ignoring /.pc/")
+
+for branch in pristine-tar upstream master; do
+ git checkout "${branch}"
+done
diff -Nru pd-ggee-0.26/debian/links pd-ggee-0.26/debian/links
--- pd-ggee-0.26/debian/links   2015-06-03 17:07:35.000000000 +0200
+++ pd-ggee-0.26/debian/links   2017-03-13 15:14:16.000000000 +0100
@@ -1,2 +1 @@
 usr/lib/pd/extra/ggee/README.txt        usr/share/doc/pd-ggee/README
-usr/lib/pd/extra/ggee/examples          usr/share/doc/pd-ggee/examples
diff -Nru pd-ggee-0.26/debian/patches/fix-64bit-arrays.patch 
pd-ggee-0.26/debian/patches/fix-64bit-arrays.patch
--- pd-ggee-0.26/debian/patches/fix-64bit-arrays.patch  1970-01-01 
01:00:00.000000000 +0100
+++ pd-ggee-0.26/debian/patches/fix-64bit-arrays.patch  2017-03-13 
15:14:16.000000000 +0100
@@ -0,0 +1,221 @@
+Description: fixing 64bit issues with table access
+ array_getfloatarray() is not 64bit-save, instead one must use
+ array_getfloatwords()
+Author: upstream
+Reviewed-by: IOhannes m zmölnig
+Last-Update: 2017-03-13
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- pd-ggee.orig/experimental/tabwrite4~.c
++++ pd-ggee/experimental/tabwrite4~.c
+@@ -12,9 +12,9 @@
+     t_object x_obj;
+     int x_phase;
+     int x_npoints;
+-    float *x_vec;
++    t_word *x_vec;
+     t_symbol *x_arrayname;
+-    float x_f;
++    t_float x_f;
+     t_sample x_1;
+     t_sample x_2;
+     t_sample x_3;
+@@ -22,8 +22,6 @@
+     float x_index;
+ } t_tabwrite4_tilde;
+ 
+-static void tabwrite4_tilde_tick(t_tabwrite4_tilde *x);
+-
+ static void *tabwrite4_tilde_new(t_symbol *s)
+ {
+     t_tabwrite4_tilde *x = (t_tabwrite4_tilde *)pd_new(tabwrite4_tilde_class);
+@@ -34,7 +32,7 @@
+     x->x_2 = 0.;
+     x->x_3 = 0.;
+     inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
+-    outlet_new(&x->x_obj, &s_signal);       
++    //outlet_new(&x->x_obj, &s_signal);
+     return (x);
+ }
+ 
+@@ -49,15 +47,15 @@
+ static t_int *tabwrite4_tilde_perform(t_int *w)
+ {
+     t_tabwrite4_tilde *x = (t_tabwrite4_tilde *)(w[1]);
+-    t_float *in1 = (t_float *)(w[2]);
+-    t_float *in2 = (t_float *)(w[3]);
+-    int n = (int)(w[4]);    
+-    t_float* end = in1 + n;
+-    t_float* end2 = in2 + n;
+-
+-    float *buf = x->x_vec, *fp, a,b,c,d;
+-    float findex = *in2;
+-    float frac;
++    t_sample *in1 = (t_sample *)(w[2]);
++    t_sample *in2 = (t_sample *)(w[3]);
++    int n = (int)(w[4]);
++    t_sample* end2 = in2 + n;
++
++    t_word *buf = x->x_vec;
++    t_sample a,b,c,d;
++    t_sample findex = *in2;
++    t_sample frac;
+     int iindex = (int)findex;
+     int wraparound = 0;
+     int maxindex = x->x_npoints-1;
+@@ -76,7 +74,7 @@
+ #if 0
+         while ((int)findex > iindex) {
+             iindex++;
+-            *(buf+iindex) = *(buf+iindex-1);
++            buf[iindex].w_float=buf[iindex-1].w_float;
+         }
+ #endif
+ 
+@@ -85,7 +83,7 @@
+ //        post("iindex %d, findex %f",iindex,findex);
+         if (in2 < end2 && findex > *in2) {
+             wraparound = 1;
+-            post("wraparound");
++            //post("wraparound");
+         }
+ 
+ 
+@@ -101,34 +99,33 @@
+             iindex += maxindex+1;
+         }
+         else if (iindex > maxindex) {
+-            iindex -= maxindex;          
++            iindex -= maxindex;
+         }
+ 
+-        fp = buf + iindex;
+         cminusb = c-b;
+ 
+-        *fp = b + frac * (
++        buf[iindex].w_float = b + frac * (
+                     cminusb - 0.1666667f * (1.-frac) * (
+                     (d - a - 3.0f * cminusb) * frac + (d + 2.0f*a - 3.0f*b)
+                     )
+                     );
+ 
+     }
+-    post("written to %d",iindex);
++    //post("written to %d",iindex);
+     x->x_1 = b;
+     x->x_2 = c;
+     x->x_3 = d;
+ 
+ #if 0
+-    buf[maxindex-2] = buf[maxindex-3]*0.5; 
+-    buf[maxindex-1] = buf[maxindex-2]*0.5; 
+-    buf[maxindex] = buf[maxindex-1]*0.5; 
+-    buf[2] = buf[3]*0.5; 
+-    buf[1] = buf[2]*0.5; 
+-    buf[0] = buf[1]*0.5; 
++    buf[maxindex-2].w_float = buf[maxindex-3].w_float*0.5;
++    buf[maxindex-1].w_float = buf[maxindex-2].w_float*0.5;
++    buf[maxindex].w_float = buf[maxindex-1].w_float*0.5;
++    buf[2].w_float = buf[3].w_float*0.5;
++    buf[1].w_float = buf[2].w_float*0.5;
++    buf[0].w_float = buf[1].w_float*0.5;
+ #endif
+ 
+-    if (wraparound)  tabwrite4_tilde_redraw(x);    
++    if (wraparound)  tabwrite4_tilde_redraw(x);
+ 
+     return (w+5);
+ }
+@@ -145,7 +142,7 @@
+             x->x_arrayname->s_name);
+         x->x_vec = 0;
+     }
+-    else if (!garray_getfloatarray(a, &x->x_npoints, &x->x_vec))
++    else if (!garray_getfloatwords(a, &x->x_npoints, &x->x_vec))
+     {
+         pd_error(x, "%s: bad template for tabwrite4~", 
x->x_arrayname->s_name);
+         x->x_vec = 0;
+--- pd-ggee.orig/experimental/fofsynth~.c
++++ pd-ggee/experimental/fofsynth~.c
+@@ -20,23 +20,22 @@
+ #define PD_PI 3.14159
+ 
+ 
+-#if PD_MINOR_VERSION < 38
+-static float* cos_table;
+-#endif
++static t_word* fofcos_table;
+ static float* halfcos_table;
+ static float* exp_table;
+ 
+ static void cos_maketable(void)
+ {
+      int i;
+-     float *fp, phase, phsinc = (2. * PD_PI) / COSTABSIZE;
++     t_word *fp;
++     float phase, phsinc = (2. * PD_PI) / COSTABSIZE;
+      
+-     if (cos_table) return;
+-     cos_table = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
++     if (fofcos_table) return;
++     fofcos_table = (t_word *)getbytes(sizeof(t_word) * (COSTABSIZE+1));
+      
+-     for (i = COSTABSIZE + 1, fp = cos_table, phase = 0; i--;
++     for (i = COSTABSIZE + 1, fp = fofcos_table, phase = 0; i--;
+         fp++, phase += phsinc) 
+-        *fp = cos(phase);
++        fp->w_float = cos(phase);
+      
+ }
+ 
+@@ -92,7 +91,7 @@
+      /* template */
+ 
+      int x_npoints;
+-     t_float *x_vec;
++     t_word *x_vec;
+      
+      /* fof */
+      int debug;
+@@ -202,7 +201,7 @@
+              float envelope;
+ 
+              float tph = (formphase - (float)((int) formphase));
+-             float val = *(x->x_vec + (int) (tph * x->x_npoints));
++             float val = x->x_vec[(int) (tph * x->x_npoints)].w_float;
+ 
+              /* Apply the envelope */
+ 
+@@ -255,12 +254,12 @@
+      return (w+5);
+ }
+ 
+-void fofsynth_usearray(t_symbol* s,int* points,t_float** vec)
++void fofsynth_usearray(t_symbol* s,int* points,t_word** vec)
+ {
+      t_garray *a;
+      if (!(a = (t_garray *)pd_findbyclass(s, garray_class))) 
+         error("%s: no such array", s->s_name);
+-     else if (!garray_getfloatarray(a,points,vec))
++     else if (!garray_getfloatwords(a,points,vec))
+         error("%s: bad template for fof~", s->s_name);
+      else
+         garray_usedindsp(a); 
+@@ -273,7 +272,7 @@
+         fofsynth_usearray(x->x_arrayname,&x->x_npoints, &x->x_vec);   
+      else {
+         x->x_npoints=COSTABSIZE;
+-        x->x_vec = cos_table;
++        x->x_vec = fofcos_table;
+      }
+                
+      dsp_add(fofsynth_perform, 4, x,
+@@ -342,7 +341,7 @@
+ 
+ void fofsynth_tilde_setup(void)
+ {
+-     cos_table = NULL;
++     fofcos_table = NULL;
+      halfcos_table = NULL;
+      fofsynth_class = class_new(gensym("fof~"), (t_newmethod) 
fofsynth_new,(t_method) fofsynth_free,
+                               sizeof(t_fofsynth), 0,A_DEFSYM, 
A_DEFFLOAT,A_DEFFLOAT,A_DEFFLOAT,A_DEFFLOAT,0);
diff -Nru pd-ggee-0.26/debian/patches/fix-pdsend.patch 
pd-ggee-0.26/debian/patches/fix-pdsend.patch
--- pd-ggee-0.26/debian/patches/fix-pdsend.patch        1970-01-01 
01:00:00.000000000 +0100
+++ pd-ggee-0.26/debian/patches/fix-pdsend.patch        2017-03-13 
15:14:16.000000000 +0100
@@ -0,0 +1,18 @@
+Description: use 'pdsend' rather than 'pd' in tcl-code
+ the refactoring of the Pd-GUI renamed the 'pd' proc to 'pdsend'
+Origin: upstream
+Reviewed-by: IOhannes m zmölnig
+Last-Update: 2017-03-13
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- pd-ggee.orig/gui/button.c
++++ pd-ggee/gui/button.c
+@@ -317,7 +317,7 @@
+ 
+ /* pipe startup code to tk */
+ 
+-    sys_vgui("proc button_cb%lx {} {pd [concat %s b \\;]}\n", x, buf);
++    sys_vgui("proc button_cb%lx {} {pdsend [concat %s b \\;]}\n", x, buf);
+ 
+     outlet_new(&x->x_obj, &s_float);
+     return (x);
diff -Nru pd-ggee-0.26/debian/patches/series pd-ggee-0.26/debian/patches/series
--- pd-ggee-0.26/debian/patches/series  2015-06-03 17:07:35.000000000 +0200
+++ pd-ggee-0.26/debian/patches/series  2017-03-13 15:14:16.000000000 +0100
@@ -1,2 +1,4 @@
 fix_Wreturn.patch
 update-makefile-for-hurd-and-kfreebsd
+fix-pdsend.patch
+fix-64bit-arrays.patch
diff -Nru pd-ggee-0.26/debian/README.source pd-ggee-0.26/debian/README.source
--- pd-ggee-0.26/debian/README.source   1970-01-01 01:00:00.000000000 +0100
+++ pd-ggee-0.26/debian/README.source   2017-03-13 15:14:16.000000000 +0100
@@ -0,0 +1,18 @@
+
+git-tuneclone.sh
+----------------
+
+This package comes with a script 'debian/git-tuneclone.sh'.
+Running it after a fresh clone of the packaging repository
+will fine-tune your local copy, namely:
+- make git ignore any .pc/ directory (created by quilt)
+- enable the "-follow-tags" when running 'git-push', so it's harder
+  to forget to push packaging tags along with the branches.
+- do an initial checkout of the 3 packaging branches (master, pristine-tar,
+  upstream)
+The script only needs to run once (though running it multiple times shouldn't
+matter).
+You are of course free to *not* run the script, if you prefer.
+
+ -- IOhannes m zmölnig (Debian/GNU) <umlae...@debian.org>  Tue, 11 Nov 2015 
11:11:03 +0100
+

Reply via email to