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

Please unblock package drawtiming

[ Reason ]
Fixes RC bug #984038

[Tests]
autopkgtest & Piuparts testsed OK: 
https://piuparts.debian.org/sid/source/d/drawtiming.html
https://salsa.debian.org/electronics-team/drawtiming/-/pipelines/508918

[ Checklist ]
  [*] all changes are documented in the d/changelog
  [*] I reviewed all changes and I approve them
  [*] attach debdiff against the package in testing

unblock drawtiming/0.7.1-8

-- 
‎أحمد المحمودي (Ahmed El-Mahmoudy)
 Digital design engineer
GPG KeyIDs: 4096R/A7EF5671 2048R/EDDDA1B7
GPG Fingerprints:
 6E2E E4BB 72E2 F417 D066  6ABF 7B30 B496 A7EF 5761
 8206 A196 2084 7E6D 0DF8  B176 BC19 6A94 EDDD A1B7
diff --git a/debian/changelog b/debian/changelog
index 72d0df3..335b42e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,20 @@
+drawtiming (0.7.1-8) unstable; urgency=medium
+
+  [ Aymeric Agon-Rambosson ]
+  * Add repair-build-c++-17.patch (Closes: #984038).
+  * d/control:
+    - Add bison to Build-Depends (needed by upstream Makefile).
+    - Replace graphicsmagick with imagemagick to avoid segfault during
+      tests.
+    - Replace gsfonts with fonts-urw-base35 (transition), and add
+      fonts-urw-base35 as explicit runtime dependency to prevent segfault.
+
+  [ أحمد المحمودي (Ahmed El-Mahmoudy) ]
+  * Add gitlab-ci.yml
+  * d/gbp.conf: switch to bullseye branch
+
+ -- أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmo...@users.sourceforge.net>  
Sat, 04 Mar 2023 03:07:13 +0100
+
 drawtiming (0.7.1-7) unstable; urgency=medium
 
   [ Dima Kogan ]
diff --git a/debian/control b/debian/control
index ac4079c..5448bb6 100644
--- a/debian/control
+++ b/debian/control
@@ -3,7 +3,12 @@ Section: electronics
 Priority: optional
 Maintainer: Debian Electronics Team 
<pkg-electronics-de...@lists.alioth.debian.org>
 Uploaders: أحمد المحمودي (Ahmed El-Mahmoudy) 
<aelmahmo...@users.sourceforge.net>
-Build-Depends: debhelper (>= 10), graphicsmagick-libmagick-dev-compat, 
pkg-config, gsfonts
+Build-Depends:
+ debhelper (>= 10),
+ libmagick++-6.q16-dev,
+ fonts-urw-base35,
+ pkg-config,
+ bison
 Standards-Version: 4.1.5
 Homepage: http://drawtiming.sourceforge.net/
 Vcs-Git: https://salsa.debian.org/electronics-team/drawtiming.git
@@ -11,7 +16,7 @@ Vcs-Browser: 
https://salsa.debian.org/electronics-team/drawtiming
 
 Package: drawtiming
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}, fonts-urw-base35
 Description: tool for documenting hardware designs through timing diagrams
  Drawtiming is a command-line tool for documenting hardware designs through
  timing diagrams. In inputs textual signal descriptions and outputs image
diff --git a/debian/gbp.conf b/debian/gbp.conf
index f9636dc..c3d8c22 100644
--- a/debian/gbp.conf
+++ b/debian/gbp.conf
@@ -1,3 +1,3 @@
 [DEFAULT]
 pristine-tar = False
-debian-branch = pkg-debian
+debian-branch = bullseye
diff --git a/debian/gitlab-ci.yml b/debian/gitlab-ci.yml
new file mode 100644
index 0000000..5c575a1
--- /dev/null
+++ b/debian/gitlab-ci.yml
@@ -0,0 +1,6 @@
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+variables:
+ RELEASE: 'unstable'
diff --git a/debian/patches/repair-build-c++-17.patch 
b/debian/patches/repair-build-c++-17.patch
new file mode 100644
index 0000000..8c48ae4
--- /dev/null
+++ b/debian/patches/repair-build-c++-17.patch
@@ -0,0 +1,208 @@
+Description: Fix compile failures for newer g++ release
+Author: Thomas Sailer <sai...@ife.ee.ethz.ch>
+Forwarded: yes
+Comment: Found on https://sourceforge.net/p/drawtiming/patches/12/
+--- a/src/parser.yy
++++ b/src/parser.yy
+@@ -42,13 +42,13 @@ statements:
+ statement { $$ = $1; deps.push_back ($1); }
+ | statements ',' statement { $$ = $3; deps.push_back ($3); }
+ | statements ';' statement { $$ = $3; deps.clear (); deps.push_back ($3); }
+-| statements CAUSE statement { $$ = $3; data.add_dependencies ($3, deps); 
++| statements CAUSE statement { $$ = $3; data_.add_dependencies ($3, deps); 
+     deps.clear (); deps.push_back ($3); }
+-| statements DELAY statement { $$ = $3; data.add_delay ($3, $1, $2); }
++| statements DELAY statement { $$ = $3; data_.add_delay ($3, $1, $2); }
+ 
+ statement:
+-SYMBOL '=' SYMBOL { $$ = $1; data.set_value ($1, n, timing::sigvalue ($3)); }
+-| SYMBOL '=' STRING { $$ = $1; data.set_value ($1, n, timing::sigvalue ($3, 
timing::STATE)); }
++SYMBOL '=' SYMBOL { $$ = $1; data_.set_value ($1, n, timing::sigvalue ($3)); }
++| SYMBOL '=' STRING { $$ = $1; data_.set_value ($1, n, timing::sigvalue ($3, 
timing::STATE)); }
+ | SYMBOL { $$ = $1; };
+ 
+ %%
+--- a/src/globals.h
++++ b/src/globals.h
+@@ -22,7 +22,7 @@
+ #define YYSTYPE std::string
+ 
+ extern unsigned n;
+-extern timing::data data;
++extern timing::data data_;
+ extern timing::signal_sequence deps;
+ 
+ #endif
+--- a/src/timing.cc
++++ b/src/timing.cc
+@@ -113,16 +113,16 @@ sigdata &sigdata::operator= (const sigda
+ 
+ // ------------------------------------------------------------
+ 
+-data::data (void) : maxlen (0) {
++timing::data::data (void) : maxlen (0) {
+ }
+ 
+-data::data (const data &d) {
++timing::data::data (const timing::data &d) {
+   *this = d;
+ }
+ 
+ // ------------------------------------------------------------
+ 
+-data &data::operator= (const data &d) {
++timing::data &timing::data::operator= (const timing::data &d) {
+   maxlen = d.maxlen;
+   signals = d.signals;
+   sequence = d.sequence;
+@@ -132,7 +132,7 @@ data &data::operator= (const data &d) {
+ 
+ // ------------------------------------------------------------
+ 
+-sigdata &data::find_signal (const signame &name) {
++sigdata &timing::data::find_signal (const signame &name) {
+   signal_database::iterator i = signals.find (name);
+   if (i == signals.end ()) {
+     i = signals.insert (signal_database::value_type (name, sigdata ())).first;
+@@ -143,7 +143,7 @@ sigdata &data::find_signal (const signam
+ 
+ // ------------------------------------------------------------
+ 
+-const sigdata &data::find_signal (const signame &name) const {
++const sigdata &timing::data::find_signal (const signame &name) const {
+   signal_database::const_iterator i = signals.find (name);
+   if (i == signals.end ()) 
+     throw not_found (name);
+@@ -152,7 +152,7 @@ const sigdata &data::find_signal (const
+ 
+ // ------------------------------------------------------------
+ 
+-void data::add_dependency (const signame &name, const signame &dep) {
++void timing::data::add_dependency (const signame &name, const signame &dep) {
+   // find the signal
+   sigdata &sig = find_signal (name);
+   sigdata &trigger = find_signal (dep);
+@@ -168,14 +168,14 @@ void data::add_dependency (const signame
+ 
+ // ------------------------------------------------------------
+ 
+-void data::add_dependencies (const signame &name, const signal_sequence 
&deps) {
++void timing::data::add_dependencies (const signame &name, const 
signal_sequence &deps) {
+   for (signal_sequence::const_iterator j = deps.begin (); j != deps.end (); 
++ j) 
+     add_dependency (name, *j);
+ }
+ 
+ // ------------------------------------------------------------
+ 
+-void data::add_delay (const signame &name, const signame &dep, const string 
&text) {
++void timing::data::add_delay (const signame &name, const signame &dep, const 
string &text) {
+   // a delay always indicates a dependency
+   // (but would require a way to select which is rendered)
+   // add_dependency (name, dep);
+@@ -206,7 +206,7 @@ void data::add_delay (const signame &nam
+ 
+ // ------------------------------------------------------------
+ 
+-void data::set_value (const signame &name, unsigned n, const sigvalue &value) 
{
++void timing::data::set_value (const signame &name, unsigned n, const sigvalue 
&value) {
+   // find the signal
+   sigdata &sig = find_signal (name);
+ 
+@@ -228,7 +228,7 @@ void data::set_value (const signame &nam
+ 
+ // ------------------------------------------------------------
+ 
+-void data::pad (unsigned n) {
++void timing::data::pad (unsigned n) {
+   // pad all sequences to length n
+   if (n > maxlen)
+     maxlen = n;
+@@ -250,7 +250,7 @@ ostream &operator<< (ostream &f, const s
+ 
+ // ------------------------------------------------------------
+ 
+-ostream &operator<< (ostream &f, const data &data) {
++ostream &operator<< (ostream &f, const timing::data &data) {
+   f << "signals: " << endl;
+   for (signal_sequence::const_iterator i = data.sequence.begin ();
+        i != data.sequence.end (); ++ i) 
+@@ -288,7 +288,7 @@ ostream &operator<< (ostream &f, const d
+ // ------------------------------------------------------------
+ // calculate the required label width
+ 
+-static int label_width (const data &d) {
++static int label_width (const timing::data &d) {
+   int labelWidth = 0;
+ 
+ #ifndef LITE
+@@ -319,7 +319,7 @@ static int label_width (const data &d) {
+ // ------------------------------------------------------------
+ // calculate the basic height and width required before scaling
+ 
+-static void base_size (const data &d, int &w, int &h) {
++static void base_size (const timing::data &d, int &w, int &h) {
+ 
+   vCellHsep = vCellHt / 8;
+   vCellH=vCellHt-vCellHsep;
+@@ -596,7 +596,7 @@ static void draw_delay (gc &gc, int x0,
+ 
+ // ------------------------------------------------------------
+ 
+-static void render_common (gc& gc, const data &d,
++static void render_common (gc& gc, const timing::data &d,
+                          double hscale, double vscale) {
+ 
+   gc.push ();
+@@ -650,7 +650,7 @@ static void render_common (gc& gc, const
+ 
+ // ------------------------------------------------------------
+ 
+-void timing::render (gc &gc, const data &d, double scale) {
++void timing::render (gc &gc, const timing::data &d, double scale) {
+   int base_width, base_height;
+   base_size (d, base_width, base_height);
+ 
+@@ -662,7 +662,7 @@ void timing::render (gc &gc, const data
+ 
+ // ------------------------------------------------------------
+ 
+-void timing::render (gc &gc, const data &d, int w, int h, bool fixAspect) {
++void timing::render (gc &gc, const timing::data &d, int w, int h, bool 
fixAspect) {
+   int base_width, base_height;
+   base_size (d, base_width, base_height);
+ 
+--- a/src/main.cc
++++ b/src/main.cc
+@@ -44,7 +44,7 @@ static void banner (void);
+ static void freesoft (void);
+ 
+ unsigned n;
+-timing::data data;
++timing::data data_;
+ timing::signal_sequence deps;
+ string outfile;
+ int verbose = 0;
+@@ -87,9 +87,9 @@ static void render_it (timing::gc& gc, i
+                      int width, int height, double scale)
+ {
+   if (flags & FLAG_PAGESIZE)
+-    render (gc, data, width, height, (flags & FLAG_ASPECT));
++    render (gc, data_, width, height, (flags & FLAG_ASPECT));
+   else
+-    render (gc, data, scale);
++    render (gc, data_, scale);
+ }
+ 
+ int main (int argc, char *argv[]) {
+@@ -193,9 +193,9 @@ int main (int argc, char *argv[]) {
+       }
+     }
+ 
+-    data.pad (n);
++    data_.pad (n);
+     if (verbose)
+-      cout << data;
++      cout << data_;
+ 
+     if (outfile.empty ())
+       return 0;
diff --git a/debian/patches/series b/debian/patches/series
index 70f6873..a61e53a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,4 @@ manpage-fix.diff
 missing-includes.diff
 switch_LDFLAGS_LDADD.diff
 test_workaround.diff
+repair-build-c++-17.patch

Attachment: signature.asc
Description: PGP signature

Reply via email to