Your message dated Fri, 8 Mar 2019 23:29:05 +0000
with message-id <20190308232905.ga28...@powdarrmonkey.net>
and subject line Re: Bug#924023: unblock: gsequencer/2.1.53-2
has caused the Debian Bug report #924023,
regarding unblock: gsequencer/2.1.53-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
924023: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924023
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package gsequencer

gsequencer has a number of bugs that (occording to #923951) makes
it pretty much useless when it comes to automation (an important feature of a
music sequencer). Additionally, preference reading was somewhat broken leading
to a suboptimal user experience.

Upstream has provided a set of patches to fix these problems, which are included
in this upload.
gsequencer is a leaf package, so no side-effects on the archive are expected.

Thanks for considering.

unblock gsequencer/2.1.53-2

-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 
'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-3-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C.UTF-8 
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru gsequencer-2.1.53/debian/changelog gsequencer-2.1.53/debian/changelog
--- gsequencer-2.1.53/debian/changelog  2019-02-12 14:01:13.000000000 +0100
+++ gsequencer-2.1.53/debian/changelog  2019-03-07 17:14:05.000000000 +0100
@@ -1,3 +1,9 @@
+gsequencer (2.1.53-2) unstable; urgency=medium
+
+  * Fixes for automation and config-reading (Closes: #923951)
+
+ -- IOhannes m zmölnig (Debian/GNU) <umlae...@debian.org>  Thu, 07 Mar 2019 
17:14:05 +0100
+
 gsequencer (2.1.53-1) unstable; urgency=medium
 
   * New upstream version 2.1.53
diff -Nru gsequencer-2.1.53/debian/patches/ags_automation_get_value.patch 
gsequencer-2.1.53/debian/patches/ags_automation_get_value.patch
--- gsequencer-2.1.53/debian/patches/ags_automation_get_value.patch     
1970-01-01 01:00:00.000000000 +0100
+++ gsequencer-2.1.53/debian/patches/ags_automation_get_value.patch     
2019-03-07 17:14:05.000000000 +0100
@@ -0,0 +1,50 @@
+Description: The automation doesn't work correctly
+ The automation get value solves premature abort of bisect algorithm.
+Author: Joël Krähemann <jkraehem...@gmail.com>
+Origin: upstream
+Forwarded: not-needed
+Applied-Upstream: 2.1.58
+Last-Update: 2019-03-06
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- gsequencer.orig/ags/audio/ags_automation.c
++++ gsequencer/ags/audio/ags_automation.c
+@@ -3384,7 +3384,7 @@
+                "x", &current_start_x,
+                NULL);
+ 
+-    if(current_start_x < x){
++    if(current_start_x > x){
+       break;
+     }
+     
+@@ -3399,7 +3399,7 @@
+                "x", &current_end_x,
+                NULL);
+ 
+-    if(current_end_x > x){
++    if(current_end_x < x){
+       break;
+     }
+ 
+@@ -3477,15 +3477,17 @@
+     }
+   }else{
+     if(use_prev_on_failure){
+-      prev = current_start;
++      guint tmp_x;
++
++      prev = current_end;
+ 
+       while(prev != NULL){
+       g_object_get(prev->data,
+-                   "x", &current_start_x,
++                   "x", &tmp_x,
+                    NULL);
+ 
+       
+-      if(current_start_x < x){        
++      if(tmp_x < x){
+         matching_acceleration = prev->data;
+ 
+         break;
diff -Nru gsequencer-2.1.53/debian/patches/ags_simple_file_read_config.patch 
gsequencer-2.1.53/debian/patches/ags_simple_file_read_config.patch
--- gsequencer-2.1.53/debian/patches/ags_simple_file_read_config.patch  
1970-01-01 01:00:00.000000000 +0100
+++ gsequencer-2.1.53/debian/patches/ags_simple_file_read_config.patch  
2019-03-07 17:14:05.000000000 +0100
@@ -0,0 +1,119 @@
+Description: The configuration from file is broken
+ This patch does apply correct frequency to audio threads.
+Author: Joël Krähemann <jkraehem...@gmail.com>
+Origin: upstream
+Forwarded: not-needed
+Applied-Upstream: 2.1.54
+Last-Update: 2019-03-06
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- gsequencer.orig/ags/X/ags_xorg_application_context.c
++++ gsequencer/ags/X/ags_xorg_application_context.c
+@@ -1781,18 +1781,24 @@
+       
+       for(j = 0; j < xpath_object->nodesetval->nodeNr; j++){
+       if(node[j]->type == XML_ELEMENT_NODE){
++        ags_config_clear(config);
++        ags_simple_file_read_config(simple_file, node[j], &config);
++#if 0
+         buffer = xmlNodeGetContent(node[j]);
+         buffer_length = strlen(buffer);
++#endif
+         
+         break;
+       }
+       }
+       
++#if 0
+       if(buffer != NULL){
+       //      ags_config_clear(ags_config_get_instance());
+       ags_config_load_from_data(ags_config_get_instance(),
+                                 buffer, buffer_length);
+       }
++#endif
+ 
+       i++;
+       
+--- gsequencer.orig/ags/X/file/ags_simple_file.c
++++ gsequencer/ags/X/file/ags_simple_file.c
+@@ -1274,12 +1274,40 @@
+ void
+ ags_simple_file_read_config(AgsSimpleFile *simple_file, xmlNode *node, 
AgsConfig **ags_config)
+ {
++  AgsThread *main_loop;
++
++  AgsApplicationContext *application_context;
+   AgsConfig *gobject;
+ 
+   gchar *id;
++  gchar *str;
+ 
+   char *buffer;
+   gsize buffer_length;
++  gdouble samplerate;
++  guint buffer_size;
++  gdouble frequency;
++
++  auto void ags_simple_file_read_config_change_max_precision(AgsThread 
*thread,
++                                                           gdouble 
max_precision);
++
++  void ags_simple_file_read_config_change_max_precision(AgsThread *thread,
++                                                      gdouble max_precision)
++  {
++    AgsThread *current;
++
++    g_object_set(thread,
++               "max-precision", max_precision,
++               NULL);
++
++    current = g_atomic_pointer_get(&(thread->children));
++
++    while(current != NULL){
++      ags_simple_file_read_config_change_max_precision(current,
++                                                     max_precision);
++      current = g_atomic_pointer_get(&(thread->next));
++    }
++  }
+ 
+   gobject = *ags_config;
+   gobject->version = xmlGetProp(node,
+@@ -1288,6 +1316,8 @@
+   gobject->build_id = xmlGetProp(node,
+                                AGS_FILE_BUILD_ID_PROP);
+ 
++  application_context = ags_application_context_get_instance();
++
+   buffer = xmlNodeGetContent(node);
+   buffer_length = xmlStrlen(buffer);
+ 
+@@ -1295,6 +1325,30 @@
+   
+   ags_config_load_from_data(gobject,
+                           buffer, buffer_length);
++
++  /* max-precision */
++  main_loop = 
ags_concurrency_provider_get_main_loop(AGS_CONCURRENCY_PROVIDER(application_context));
++
++  str = ags_config_get_value(gobject,
++                           AGS_CONFIG_THREAD,
++                           "max-precision");
++  if(str != NULL){
++    gdouble max_precision;
++
++    /* change max precision */
++    max_precision = g_ascii_strtod(str,
++                                 NULL);
++
++    ags_simple_file_read_config_change_max_precision(main_loop,
++                                                   max_precision);
++  }
++
++  samplerate = ags_soundcard_helper_config_get_samplerate(gobject);
++  buffer_size = ags_soundcard_helper_config_get_buffer_size(gobject);
++
++  frequency = ceil((gdouble) samplerate / (gdouble) buffer_size) + 
AGS_SOUNDCARD_DEFAULT_OVERCLOCK;
++  ags_main_loop_change_frequency(AGS_MAIN_LOOP(main_loop),
++                               frequency);
+ }
+ 
+ void
diff -Nru gsequencer-2.1.53/debian/patches/ags_thread-posix-max-precision.patch 
gsequencer-2.1.53/debian/patches/ags_thread-posix-max-precision.patch
--- gsequencer-2.1.53/debian/patches/ags_thread-posix-max-precision.patch       
1970-01-01 01:00:00.000000000 +0100
+++ gsequencer-2.1.53/debian/patches/ags_thread-posix-max-precision.patch       
2019-03-07 17:14:05.000000000 +0100
@@ -0,0 +1,21 @@
+Description: fix wrong property spec of AgsThread
+ AgsThread:max-precision has got a wrong property specification. This patch 
fixes
+ it.
+Author: Joël Krähemann <jkraehem...@gmail.com>
+Origin: upstream
+Forwarded: not-needed
+Applied-Upstream: 2.1.54
+Last-Update: 2019-03-06
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/ags/thread/ags_thread-posix.c
++++ b/ags/thread/ags_thread-posix.c
+@@ -215,7 +215,7 @@
+                                  AGS_THREAD_DEFAULT_MAX_PRECISION,
+                                  G_PARAM_READABLE | G_PARAM_WRITABLE);
+   g_object_class_install_property(gobject,
+-                                PROP_FREQUENCY,
++                                PROP_MAX_PRECISION,
+                                 param_spec);
+ 
+   /* AgsThread */
diff -Nru gsequencer-2.1.53/debian/patches/series 
gsequencer-2.1.53/debian/patches/series
--- gsequencer-2.1.53/debian/patches/series     2019-02-12 14:01:13.000000000 
+0100
+++ gsequencer-2.1.53/debian/patches/series     2019-03-07 17:14:05.000000000 
+0100
@@ -1 +1,4 @@
+ags_automation_get_value.patch
+ags_simple_file_read_config.patch
+ags_thread-posix-max-precision.patch
 enable-integration-tests.patch

--- End Message ---
--- Begin Message ---
On Fri, Mar 08, 2019 at 01:44:37PM +0100, IOhannes m zmoelnig wrote:
> Please unblock package gsequencer
> 
> gsequencer has a number of bugs that (occording to #923951) makes
> it pretty much useless when it comes to automation (an important feature of a
> music sequencer). Additionally, preference reading was somewhat broken leading
> to a suboptimal user experience.

Unblocked; thanks.

-- 
Jonathan Wiltshire                                      j...@debian.org
Debian Developer                         http://people.debian.org/~jmw

4096R: 0xD3524C51 / 0A55 B7C5 1223 3942 86EC  74C3 5394 479D D352 4C51

--- End Message ---

Reply via email to