Your message dated Mon, 11 Aug 2025 05:42:18 +0000
with message-id <[email protected]>
and subject line Bug#947282: fixed in yapps2 2.2.1-4
has caused the Debian Bug report #947282,
regarding yapps2: diff for NMU version 2.2.1-3.1
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 [email protected]
immediately.)


-- 
947282: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=947282
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: yapps2
Version: 2.2.1-3
Severity: normal
Tags: patch pending

Dear maintainer,

I've prepared an NMU for yapps2 (versioned as 2.2.1-3.1) and uploaded it
to DELAYED/10.  Please feel free to tell me if I should delay it longer.

Regards,

-- 
Colin Watson                                       [[email protected]]
diff -u yapps2-2.2.1/debian/changelog yapps2-2.2.1/debian/changelog
--- yapps2-2.2.1/debian/changelog
+++ yapps2-2.2.1/debian/changelog
@@ -1,3 +1,14 @@
+yapps2 (2.2.1-3.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Drop Python 2 support (closes: #938864).
+  * Write __future__ import before preparser (closes: #911730).
+  * Convert Scanner.print_line_with_pointer to Python 3 print syntax
+    (closes: #911753).
+  * Port documentation and examples to Python 3 (closes: #911752).
+
+ -- Colin Watson <[email protected]>  Mon, 23 Dec 2019 22:05:40 +0000
+
 yapps2 (2.2.1-3) unstable; urgency=medium
 
   * yapps2 depends on python3-pkg-resources for the entry point wrapper
diff -u yapps2-2.2.1/debian/control yapps2-2.2.1/debian/control
--- yapps2-2.2.1/debian/control
+++ yapps2-2.2.1/debian/control
@@ -3,15 +3,15 @@
 Priority: optional
 Maintainer: Matthias Urlichs <[email protected]>
 Build-Depends: debhelper (>= 9~)
-Build-Depends-Indep: python-dev (>= 2.5.4-1~), python3-dev,
+Build-Depends-Indep: python3-dev,
   dh-python,
   hevea,
-  python-setuptools, python3-setuptools,
+  python3-setuptools,
 Standards-Version: 3.9.8
 
 Package: yapps2
 Architecture: all
-Depends: ${python:Depends}, python3-yapps (= ${binary:Version}), ${misc:Depends},
+Depends: ${python3:Depends}, python3-yapps (= ${binary:Version}), ${misc:Depends},
   python3-pkg-resources,
 Description: Yet Another Python Parser System
  YAPPS is an easy to use parser generator that is written in Python and
@@ -31,20 +31,6 @@
      - better error reporting
      - reads input incrementally
 
-Package: python-yapps
-Architecture: all
-Depends: ${python:Depends}, ${misc:Depends}
-Replaces: yapps2-runtime
-Conflicts: yapps2-runtime
-Description: Yet Another Python Parser System
- YAPPS is an easy to use parser generator that is written in Python and
- generates Python code.  There are several parser generator systems
- already available for Python, but this parser has different goals:
- Yapps is simple, very easy to use, and produces human-readable parsers.
- .
- This package contains the Python2 runtime support for parsers generated
- with yapps2.
-
 Package: python3-yapps
 Architecture: all
 Depends: ${python3:Depends}, ${misc:Depends}
reverted:
--- yapps2-2.2.1/debian/python-yapps.README
+++ yapps2-2.2.1.orig/debian/python-yapps.README
@@ -1,11 +0,0 @@
-The Debian Package python-yapps2
---------------------------------
-
-This package contains the new runtime Python code for the augmented
-yapps2 parser which is included in Debian.
-
-You need to depend on this package if you Debianize Python programs that
-contain a yapps2-built parser.
-
--- 
-Matthias Urlichs
reverted:
--- yapps2-2.2.1/debian/python-yapps2.dirs
+++ yapps2-2.2.1.orig/debian/python-yapps2.dirs
@@ -1 +0,0 @@
-usr/share/doc/python-yapps2
diff -u yapps2-2.2.1/debian/rules yapps2-2.2.1/debian/rules
--- yapps2-2.2.1/debian/rules
+++ yapps2-2.2.1/debian/rules
@@ -3,7 +3,7 @@
 export PYBUILD_NAME=yapps
 
 %:
-	dh $@ --with python2,python3 --buildsystem=pybuild
+	dh $@ --with python3 --buildsystem=pybuild
 
 override_dh_auto_build:
 	dh_auto_build
@@ -13,7 +13,6 @@
 override_dh_install:
 	mkdir -p debian/yapps2/usr/bin
 	mv debian/python3-yapps/usr/bin/yapps2 debian/yapps2/usr/bin
-	rm debian/python-yapps/usr/bin/yapps2
 	dh_install
 
 override_dh_auto_test:
diff -u yapps2-2.2.1/doc/yapps2.html yapps2-2.2.1/doc/yapps2.html
--- yapps2-2.2.1/doc/yapps2.html
+++ yapps2-2.2.1/doc/yapps2.html
@@ -554,7 +554,7 @@
 
 class MyX(Xparser.X):
     def printmsg(self):
-        print "Hello!"
+        print("Hello!")
 </pre>
 <!--TOC subsection id="sec15" Customizing Scanners-->
 <h3 id="sec15" class="subsection">4.2&#XA0;&#XA0;Customizing Scanners</h3><!--SEC END --><p>The generated parser class is not dependent on the generated scanner
@@ -645,7 +645,7 @@
       {{ start = self._scanner.pos }}
       a b c 
       {{ end = self._scanner.pos }}
-      {{ print 'Text is', self._scanner.input[start:end] }}
+      {{ print('Text is', self._scanner.input[start:end]) }}
 </pre>
 <!--TOC subsection id="sec20" Pre- and Post-Parser Code-->
 <h3 id="sec20" class="subsection">5.4&#XA0;&#XA0;Pre- and Post-Parser Code</h3><!--SEC END --><p>Sometimes the parser code needs to rely on helper variables,
only in patch2:
unchanged:
--- yapps2-2.2.1.orig/doc/yapps2.tex
+++ yapps2-2.2.1/doc/yapps2.tex
@@ -795,7 +795,7 @@
 
 class MyX(Xparser.X):
     def printmsg(self):
-        print "Hello!"
+        print("Hello!")
 \end{verbatim}
 
 \mysubsection{Customizing Scanners}
@@ -924,7 +924,7 @@
       {{ start = self._scanner.pos }}
       a b c 
       {{ end = self._scanner.pos }}
-      {{ print 'Text is', self._scanner.input[start:end] }}
+      {{ print('Text is', self._scanner.input[start:end]) }}
 \end{verbatim}
 
 \mysubsection{Pre- and Post-Parser Code}
only in patch2:
unchanged:
--- yapps2-2.2.1.orig/examples/calc.g
+++ yapps2-2.2.1/examples/calc.g
@@ -3,12 +3,12 @@
 def lookup(map, name):
     for x,v in map:  
         if x == name: return v
-    if not globalvars.has_key(name): print 'Undefined (defaulting to 0):', name
+    if name not in globalvars: print('Undefined (defaulting to 0):', name)
     return globalvars.get(name, 0)
 
 def stack_input(scanner,ign):
     """Grab more input"""
-    scanner.stack_input(raw_input(">?> "))
+    scanner.stack_input(input(">?> "))
 
 %%
 parser Calculator:
@@ -20,10 +20,10 @@
     token VAR: "[a-zA-Z_]+"
 
     # Each line can either be an expression or an assignment statement
-    rule goal:   expr<<[]>> END            {{ print '=', expr }}
+    rule goal:   expr<<[]>> END            {{ print('=', expr) }}
                                            {{ return expr }}
                | "set" VAR expr<<[]>> END  {{ globalvars[VAR] = expr }}
-                                           {{ print VAR, '=', expr }}
+                                           {{ print(VAR, '=', expr) }}
                                            {{ return expr }}
 
     # An expression is the sum and difference of factors
@@ -47,18 +47,18 @@
                  "in" expr<<V>>           {{ return expr }}
 %%
 if __name__=='__main__':
-    print 'Welcome to the calculator sample for Yapps 2.'
-    print '  Enter either "<expression>" or "set <var> <expression>",'
-    print '  or just press return to exit.  An expression can have'
-    print '  local variables:  let x = expr in expr'
+    print('Welcome to the calculator sample for Yapps 2.')
+    print('  Enter either "<expression>" or "set <var> <expression>",')
+    print('  or just press return to exit.  An expression can have')
+    print('  local variables:  let x = expr in expr')
     # We could have put this loop into the parser, by making the
     # `goal' rule use (expr | set var expr)*, but by putting the
     # loop into Python code, we can make it interactive (i.e., enter
     # one expression, get the result, enter another expression, etc.)
     while 1:
-        try: s = raw_input('>>> ')
+        try: s = input('>>> ')
         except EOFError: break
         if not s.strip(): break
         parse('goal', s)
-    print 'Bye.'
+    print('Bye.')
 
only in patch2:
unchanged:
--- yapps2-2.2.1.orig/examples/xml.g
+++ yapps2-2.2.1/examples/xml.g
@@ -54,13 +54,13 @@
              '<begin> middle </end>',
              '<begin> <nested attr=\'baz\' another="hey"> foo </nested> <nested> bar </nested> </begin>',
             ]
-    print
-    print '____Running tests_______________________________________'
+    print()
+    print('____Running tests_______________________________________')
     for test in tests:
-        print
+        print()
         try:
             parser = xml(xmlScanner(test))
             output = '%s ==> %s' % (repr(test), repr(parser.node()))
-        except (yappsrt.SyntaxError, AssertionError) as e:
+        except (runtime.SyntaxError, AssertionError) as e:
             output = '%s ==> FAILED ==> %s' % (repr(test), e)
-        print output
+        print(output)
only in patch2:
unchanged:
--- yapps2-2.2.1.orig/test.sh
+++ yapps2-2.2.1/test.sh
@@ -4,10 +4,10 @@
 trap 'echo ERROR' 0 
 
 export PYTHONPATH=$(pwd)
-for PY_G in python python3 ; do
+for PY_G in python3 ; do
 $PY_G ./yapps2 examples/expr.g examples/expr.py
 
-for PY_X in python python3 ; do
+for PY_X in python3 ; do
 test "$(echo "1+2*3+4" | $PY_X examples/expr.py goal)" = 11
 done
 
only in patch2:
unchanged:
--- yapps2-2.2.1.orig/yapps/parsetree.py
+++ yapps2-2.2.1/yapps/parsetree.py
@@ -270,9 +270,9 @@
 
     def generate_output(self):
         self.calculate()
+        self.write("from __future__ import print_function\n")
         self.write(self.preparser)
         self.write("# Begin -- grammar generated by Yapps\n")
-        self.write("from __future__ import print_function\n")
         self.write("import sys, re\n")
         self.write("from yapps import runtime\n")
         self.write("\n")
only in patch2:
unchanged:
--- yapps2-2.2.1.orig/yapps/runtime.py
+++ yapps2-2.2.1/yapps/runtime.py
@@ -175,7 +175,7 @@
         file,line,p = pos
         if file != self.filename:
             if self.stack: return self.stack.print_line_with_pointer(pos,length=length,out=out)
-            print >>out, "(%s: not in input buffer)" % file
+            print("(%s: not in input buffer)" % file, file=out)
             return
 
         text = self.input
@@ -198,7 +198,7 @@
                     break
                 spos = cr+1
         else:
-            print >>out, "(%s:%d not in input buffer)" % (file,origline)
+            print("(%s:%d not in input buffer)" % (file,origline), file=out)
             return
 
         # Now try printing part of the line
@@ -227,8 +227,8 @@
             p = p - 7
 
         # Now print the string, along with an indicator
-        print >>out, '> ',text
-        print >>out, '> ',' '*p + '^'
+        print('> ',text, file=out)
+        print('> ',' '*p + '^', file=out)
 
     def grab_input(self):
         """Get more input if possible."""
@@ -316,7 +316,7 @@
                     del self.tokens[0]
                 self.tokens.append(tok)
                 self.last_read_token = tok
-                # print repr(tok)
+                # print(repr(tok))
                 return tok
             else:
                 ignore = self.ignore[best_pat]

--- End Message ---
--- Begin Message ---
Source: yapps2
Source-Version: 2.2.1-4
Done: Andreas Tille <[email protected]>

We believe that the bug you reported is fixed in the latest version of
yapps2, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Andreas Tille <[email protected]> (supplier of updated yapps2 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Wed, 21 May 2025 11:41:11 +0200
Source: yapps2
Architecture: source
Version: 2.2.1-4
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <[email protected]>
Changed-By: Andreas Tille <[email protected]>
Closes: 947282 1083998
Changes:
 yapps2 (2.2.1-4) unstable; urgency=medium
 .
   * Team upload.
   * Maintain package in Debian Python team
     Closes: #947282
   * Add Homepage
   * d/copyright: DEP5
   * Standards-Version: 4.7.2 (routine-update)
   * debhelper-compat 13 (routine-update)
   * Testsuite: autopkgtest-pkg-python (routine-update)
   * Remove trailing whitespace in debian/copyright (routine-update)
   * Build-Depends: s/dh-python/dh-sequence-python3/ (routine-update)
   * Git add debian/upstream/metadata
   * Remove debian/pyversions
   * Build-Depends: s/python3-dev/python3/
   * Remove unneeded python3-pkg-resources from Depends
     Closes: #1083998
Checksums-Sha1:
 87dc7659bc28d0c160fb8e601b74d78daa963d54 2100 yapps2_2.2.1-4.dsc
 e04139b676ee773ee281024d6d40775e9f9c2d24 7732 yapps2_2.2.1-4.debian.tar.xz
 41a589646337f468e991882efbb8c0dca93e26b1 10117 yapps2_2.2.1-4_amd64.buildinfo
Checksums-Sha256:
 4262e11bcc3df5b7e004362030cc60ae60d9dcc626669cda66b606c6722801a7 2100 
yapps2_2.2.1-4.dsc
 680ff83566104ac2ebdc2a00017ace3d13ff04bd1bcf019fbf9762269a06c53d 7732 
yapps2_2.2.1-4.debian.tar.xz
 8f2158ac2bbdc2947f01af0d8d158990681330ea3edf6465e26f92aa381e441e 10117 
yapps2_2.2.1-4_amd64.buildinfo
Files:
 29dcb6341896ba63786be3bb5c115a13 2100 python optional yapps2_2.2.1-4.dsc
 01b3841a61863c72ad70225dd97bdf6f 7732 python optional 
yapps2_2.2.1-4.debian.tar.xz
 90dce16e2fddaa9261a3980f3c82b95c 10117 python optional 
yapps2_2.2.1-4_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEE8fAHMgoDVUHwpmPKV4oElNHGRtEFAmiFrdcRHHRpbGxlQGRl
Ymlhbi5vcmcACgkQV4oElNHGRtGgsBAAjZJnMkSzVa98BiAFhlUjqVZM0FuDzrBJ
uE+aua23+iFvffJusrUKv18jGOcSe/nMCbsLRQVWPbBKNLQ1dq+2B3lwGodGJt3b
lL5o7sykUIEWE88hqFjPV5kzWkSwQJDjug6TO7e4jQ7qLGUd0mfVvkASCsMfkT3H
jHINSfzVH35OvA8zOyPO1ohkixsQDm3RHYbaThBC/6loT5NOrUgBty0Tf1Sa+3P2
SYOu/kJqq66QpKaQYk3T+tYe+49jOZb7ZZcFg2LwMxjnDWg3Wk4ID93qx5wTxe3F
cQ14ejC6NZ5bjyec+gAGD+aVbHjxQxuOFYHkyJr6PeOtBlO1sbqHB5JdjhTylIrX
aANeXKutaz+xo9vWxj0ulsI6Kyfx1uL7wiigvOg5XGc/Fn1h/LHDCFwmiMAg5tAE
SDMGLXtzCLmCCUBBWd02nNFz+6iQ0iV9BtSTMccdR4PR3Gk16c3vSlvJjXpcYF5d
1FtuRYYjf1u1kYpDH4cc3rXs7yrpRRunl2xiUZ6e3bC5GuOFoN6UV4zUWxo94u01
PMWfamql5w5LaNuIShhvTkvv8kOU/y2IZ96qwHyQiBZKhAyvOkN2bdxTWXvRP7Oy
CLaP30RAl4OSJ2Dl89Xo33CG0Sj5/5TS6VwtkERGwwmQ0IFUfKm89o1VDDH79d5T
Scwqw/0BjHU=
=zzyH
-----END PGP SIGNATURE-----

Attachment: pgpdTlZWlyLa5.pgp
Description: PGP signature


--- End Message ---

Reply via email to