This is an automated email from the git hooks/post-receive script. zigo pushed a commit to branch master in repository antlr.
commit 8a22414f06dd2086134c7fb70f5088535f348a99 Author: Thomas Goirand <tho...@goirand.fr> Date: Wed Oct 25 16:12:45 2017 +0000 * Team upload. * Add Python 3 support: - Add a patch, half made with sixer, half by hand, to add support for Py3. - Add runtime depends on python-six in python-antlr. - Add a python3 package in debian/control. - Add build-depends to python3-all-dev in debian/control (do we really need the -dev part here?). - Insert correct code to install the Py2 & Py3 modules using setup.py, so we are packaging the antlr.py AND its corresponding generated egg-info. * Ran wrap-and-sort -bast to minimize git diff and have a cleaner debian/control. This was already partially done in 2.7.7+dfsg-8, probably by hand. * Removed ante-dilluvian Replaces:+Breaks:, now useless after a few releases of Debian. --- debian/changelog | 19 +++ debian/control | 89 ++++++----- debian/patches/python3-compat.patch | 297 ++++++++++++++++++++++++++++++++++++ debian/patches/series | 1 + debian/rules | 12 +- 5 files changed, 380 insertions(+), 38 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7673c77..bfdaea5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,22 @@ +antlr (2.7.7+dfsg-9) unstable; urgency=medium + + * Team upload. + * Add Python 3 support: + - Add a patch, half made with sixer, half by hand, to add support for Py3. + - Add runtime depends on python-six in python-antlr. + - Add a python3 package in debian/control. + - Add build-depends to python3-all-dev in debian/control (do we really need + the -dev part here?). + - Insert correct code to install the Py2 & Py3 modules using setup.py, so + we are packaging the antlr.py AND its corresponding generated egg-info. + * Ran wrap-and-sort -bast to minimize git diff and have a cleaner + debian/control. This was already partially done in 2.7.7+dfsg-8, probably + by hand. + * Removed ante-dilluvian Replaces:+Breaks:, now useless after a few releases + of Debian. + + -- Thomas Goirand <z...@debian.org> Wed, 25 Oct 2017 15:53:54 +0000 + antlr (2.7.7+dfsg-8) unstable; urgency=medium * Team upload. diff --git a/debian/control b/debian/control index 263476f..13a4e8e 100644 --- a/debian/control +++ b/debian/control @@ -2,15 +2,19 @@ Source: antlr Section: java Priority: optional Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org> -Uploaders: Torsten Werner <twer...@debian.org> +Uploaders: + Torsten Werner <twer...@debian.org>, Build-Depends: debhelper (>= 10), default-jdk, - python (>= 2.6.6-3~), - python-all-dev (>= 2.3.5-11), - sharutils + dh-python, + python-all-dev, + python-setuptools, + python3-all-dev, + python3-setuptools, + sharutils, Build-Depends-Indep: - maven-repo-helper + maven-repo-helper, Standards-Version: 4.1.1 Vcs-Git: https://anonscm.debian.org/git/pkg-java/antlr.git Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/antlr.git @@ -21,7 +25,7 @@ Architecture: all Depends: default-jre-headless | java5-runtime-headless | java6-runtime-headless, libantlr-java (= ${binary:Version}), - ${misc:Depends} + ${misc:Depends}, Description: language tool for constructing recognizers, compilers etc ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, @@ -37,22 +41,28 @@ Description: language tool for constructing recognizers, compilers etc files (e.g., HTML, SGML). ANTLR is designed to handle all of your translation tasks. -Package: libantlr-java +Package: antlr-doc +Section: doc Architecture: all -Depends: ${misc:Depends} -Replaces: antlr (<< 2.7.7-8) -Breaks: antlr (<< 2.7.7-8) -Description: language tool for constructing recognizers, compilers etc (java library) - ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is - a language tool that provides a framework for constructing recognizers, - compilers, and translators from grammatical descriptions containing C++ - or Java actions [You can use PCCTS 1.xx to generate C-based parsers]. +Depends: + ${misc:Depends}, +Description: language tool for constructing recognizers, compilers etc + This package contains the documentation and examples for antlr. + ANTLR stands for ANother Tool for Language Recognition, + (formerly PCCTS). It is a language tool that provides a framework + for constructing recognizers, compilers, and translators from + grammatical descriptions containing C++ or Java actions + [You can use PCCTS 1.xx to generate C-based parsers]. + . + See antlr package for a complete description Package: libantlr-dev Section: libdevel Architecture: any -Depends: ${misc:Depends} -Recommends: antlr +Depends: + ${misc:Depends}, +Recommends: + antlr, Description: language tool for constructing recognizers, compilers etc ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, @@ -61,29 +71,38 @@ Description: language tool for constructing recognizers, compilers etc . These are the static libraries for C++. -Package: antlr-doc -Section: doc +Package: libantlr-java Architecture: all -Depends: ${misc:Depends} -Conflicts: antlr (<< 2.7.6-8) -Description: language tool for constructing recognizers, compilers etc - This package contains the documentation and examples for antlr. - ANTLR stands for ANother Tool for Language Recognition, - (formerly PCCTS). It is a language tool that provides a framework - for constructing recognizers, compilers, and translators from - grammatical descriptions containing C++ or Java actions - [You can use PCCTS 1.xx to generate C-based parsers]. - . - See antlr package for a complete description +Depends: + ${misc:Depends}, +Description: language tool for constructing recognizers, compilers etc (java library) + ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is + a language tool that provides a framework for constructing recognizers, + compilers, and translators from grammatical descriptions containing C++ + or Java actions [You can use PCCTS 1.xx to generate C-based parsers]. Package: python-antlr Section: python Architecture: all -Depends: ${misc:Depends}, ${python:Depends} -Replaces: antlr (<< 2.7.7-10) -Breaks: antlr (<< 2.7.7-10) -Description: language tool for constructing recognizers, compilers etc - This package contains the Python version of antlr. ANTLR stands for +Depends: + python-six, + ${misc:Depends}, + ${python:Depends}, +Description: language tool for constructing recognizers, compilers etc - Python 2.7 + This package contains the Python 2.7 version of antlr. ANTLR stands for + ANother Tool for Language Recognition, (formerly PCCTS). + . + See antlr package for a complete description. + +Package: python3-antlr +Section: python +Architecture: all +Depends: + python3-six, + ${misc:Depends}, + ${python3:Depends}, +Description: language tool for constructing recognizers, compilers etc - Python 3.x + This package contains the Python 3.x version of antlr. ANTLR stands for ANother Tool for Language Recognition, (formerly PCCTS). . See antlr package for a complete description. diff --git a/debian/patches/python3-compat.patch b/debian/patches/python3-compat.patch new file mode 100644 index 0000000..1b0cb13 --- /dev/null +++ b/debian/patches/python3-compat.patch @@ -0,0 +1,297 @@ +Description: Python3 compat +Author: Thomas Goirand <z...@debian.org> +Bug-Debian: https://bugs.debian.org/614505 +Forwarded: no +Last-Update: 2017-10-24 + +--- antlr-2.7.7+dfsg.orig/lib/python/antlr/antlr.py ++++ antlr-2.7.7+dfsg/lib/python/antlr/antlr.py +@@ -2,13 +2,11 @@ + ## details..........Copyright (C) Wolfgang Haefelinger, 2004. + + ## get sys module ++from __future__ import print_function + import sys + +-version = sys.version.split()[0] +-if version < '2.2.1': +- False = 0 +-if version < '2.3': +- True = not False ++import six ++from six.moves import range + + ###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx### + ### global symbols ### +@@ -45,7 +43,7 @@ def version(): + + def error(fmt,*args): + if fmt: +- print "error: ", fmt % tuple(args) ++ print("error: ", fmt % tuple(args)) + + def ifelse(cond,_then,_else): + if cond : +@@ -55,7 +53,7 @@ def ifelse(cond,_then,_else): + return r + + def is_string_type(x): +- return (isinstance(x,str) or isinstance(x,unicode)) ++ return (isinstance(x,str) or isinstance(x,six.text_type)) + + def assert_string_type(x): + assert is_string_type(x) +@@ -549,9 +547,9 @@ class Token(object): + Token.badToken = Token( type=INVALID_TYPE, text="<no text>") + + if __name__ == "__main__": +- print "testing .." ++ print("testing ..") + T = Token.badToken +- print T ++ print(T) + + ###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx### + ### CommonToken ### +@@ -622,16 +620,16 @@ class CommonToken(Token): + + if __name__ == '__main__' : + T = CommonToken() +- print T ++ print(T) + T = CommonToken(col=15,line=1,text="some text", type=5) +- print T ++ print(T) + T = CommonToken() + T.setLine(1).setColumn(15).setText("some text").setType(5) +- print T +- print T.getLine() +- print T.getColumn() +- print T.getText() +- print T.getType() ++ print(T) ++ print(T.getLine()) ++ print(T.getColumn()) ++ print(T.getText()) ++ print(T.getType()) + + ###xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx### + ### CommonHiddenStreamToken ### +@@ -811,7 +809,7 @@ class CharBuffer(InputBuffer): + + ### use unicode chars instead of ASCII .. + self.queue.append(c) +- except Exception,e: ++ except Exception as e: + raise CharStreamIOException(e) + ##except: # (mk) Cannot happen ... + ##error ("unexpected exception caught ..") +@@ -901,7 +899,7 @@ class TokenStreamSelector(TokenStream): + while 1: + try: + return self._input.nextToken() +- except TokenStreamRetryException,r: ++ except TokenStreamRetryException as r: + ### just retry "forever" + pass + +@@ -1342,23 +1340,23 @@ class CharScanner(TokenStream): + self.setColumn(nc) + + def panic(self,s='') : +- print "CharScanner: panic: " + s ++ print("CharScanner: panic: " + s) + sys.exit(1) + + def reportError(self,ex) : +- print ex ++ print(ex) + + def reportError(self,s) : + if not self.getFilename(): +- print "error: " + str(s) ++ print("error: " + str(s)) + else: +- print self.getFilename() + ": error: " + str(s) ++ print(self.getFilename() + ": error: " + str(s)) + + def reportWarning(self,s) : + if not self.getFilename(): +- print "warning: " + str(s) ++ print("warning: " + str(s)) + else: +- print self.getFilename() + ": warning: " + str(s) ++ print(self.getFilename() + ": warning: " + str(s)) + + def resetText(self) : + self.text.setLength(0) +@@ -1418,16 +1416,16 @@ class CharScanner(TokenStream): + return c.__class__.lower() + + def traceIndent(self): +- print ' ' * self.traceDepth ++ print(' ' * self.traceDepth) + + def traceIn(self,rname): + self.traceDepth += 1 + self.traceIndent() +- print "> lexer %s c== %s" % (rname,self.LA(1)) ++ print("> lexer %s c== %s" % (rname,self.LA(1))) + + def traceOut(self,rname): + self.traceIndent() +- print "< lexer %s c== %s" % (rname,self.LA(1)) ++ print("< lexer %s c== %s" % (rname,self.LA(1))) + self.traceDepth -= 1 + + def uponEOF(self): +@@ -1492,7 +1490,7 @@ class CharScanner(TokenStream): + func=args[0] + args=args[1:] + apply(func,args) +- except RecognitionException, e: ++ except RecognitionException as e: + ## catastrophic failure + self.reportError(e); + self.consume(); +@@ -1548,7 +1546,7 @@ class BitSet(object): + + def __init__(self,data=None): + if not data: +- BitSet.__init__(self,[long(0)]) ++ BitSet.__init__(self,[0]) + return + if isinstance(data,int): + BitSet.__init__(self,[long(data)]) +@@ -1568,7 +1566,7 @@ class BitSet(object): + def __str__(self): + bits = len(self.data) * BitSet.BITS + s = "" +- for i in xrange(0,bits): ++ for i in range(0,bits): + if self.at(i): + s += "1" + else: +@@ -1607,7 +1605,7 @@ class BitSet(object): + + def bitMask(self,bit): + pos = bit & BitSet.MOD_MASK ## bit mod BITS +- return (1L << pos) ++ return (1 << pos) + + def set(self,bit,on=True): + # grow bitset as required (use with care!) +@@ -1615,8 +1613,8 @@ class BitSet(object): + mask = self.bitMask(bit) + if i>=len(self.data): + d = i - len(self.data) + 1 +- for x in xrange(0,d): +- self.data.append(0L) ++ for x in range(0,d): ++ self.data.append(0) + assert len(self.data) == i+1 + if on: + self.data[i] |= mask +@@ -1908,16 +1906,16 @@ class Parser(object): + col = x.getLine() + text = x.getText() + fmt = fmt + 'unexpected symbol at line %s (column %s) : "%s"' +- print >>sys.stderr, fmt % (line,col,text) ++ print(fmt % (line,col,text), file=sys.stderr) + else: +- print >>sys.stderr, fmt,str(x) ++ print(fmt,str(x), file=sys.stderr) + + def reportWarning(self,s): + f = self.getFilename() + if f: +- print "%s:warning: %s" % (f,str(x)) ++ print("%s:warning: %s" % (f,str(x))) + else: +- print "warning: %s" % (str(x)) ++ print("warning: %s" % (str(x))) + + def rewind(self, pos) : + self.inputState.input.rewind(pos) +@@ -1945,7 +1943,7 @@ class Parser(object): + self.inputState.input = t + + def traceIndent(self): +- print " " * self.traceDepth ++ print(" " * self.traceDepth) + + def traceIn(self,rname): + self.traceDepth += 1 +@@ -2034,20 +2032,20 @@ class LLkParser(Parser): + self.k = 1 + + def trace(self,ee,rname): +- print type(self) ++ print(type(self)) + self.traceIndent() + guess = "" + if self.inputState.guessing > 0: + guess = " [guessing]" + print(ee + rname + guess) +- for i in xrange(1,self.k+1): ++ for i in range(1,self.k+1): + if i != 1: + print(", ") + if self.LT(i) : + v = self.LT(i).getText() + else: + v = "null" +- print "LA(%s) == %s" % (i,v) ++ print("LA(%s) == %s" % (i,v)) + print("\n") + + def traceIn(self,rname): +@@ -2108,10 +2106,10 @@ class TreeParser(object): + raise MismatchedTokenException(getTokenNames(), t, ttype, True) + + def reportError(self,ex): +- print >>sys.stderr,"error:",ex ++ print("error:",ex, file=sys.stderr) + + def reportWarning(self, s): +- print "warning:",s ++ print("warning:",s) + + def setASTFactory(self,f): + self.astFactory = f +@@ -2123,7 +2121,7 @@ class TreeParser(object): + self.astFactory.setASTNodeType(nodeType) + + def traceIndent(self): +- print " " * self.traceDepth ++ print(" " * self.traceDepth) + + def traceIn(self,rname,t): + self.traceDepth += 1 +@@ -2683,7 +2681,7 @@ class ASTFactory(object): + + def error(self, e): + import sys +- print >> sys.stderr, e ++ print(e, file=sys.stderr) + + def setTokenTypeASTNodeType(self, tokenType, className): + """ +@@ -2770,7 +2768,7 @@ def make(*nodes): + if not nodes: + return None + +- for i in xrange(0,len(nodes)): ++ for i in range(0,len(nodes)): + node = nodes[i] + if node: + assert isinstance(node,AST) +@@ -2780,7 +2778,7 @@ def make(*nodes): + if root: + root.setFirstChild(None) + +- for i in xrange(1,len(nodes)): ++ for i in range(1,len(nodes)): + if not nodes[i]: + continue + if not root: diff --git a/debian/patches/series b/debian/patches/series index f61c4f1..02955a6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ gcc.diff bin___antlr.diff antlr-config.patch +python3-compat.patch diff --git a/debian/rules b/debian/rules index 547fb6b..781b18a 100755 --- a/debian/rules +++ b/debian/rules @@ -1,9 +1,11 @@ #!/usr/bin/make -f +PYTHON3S:=$(shell py3versions -vr 2>/dev/null) + include /usr/share/dpkg/pkg-info.mk %: - dh $@ --with maven-repo-helper --with python2 + dh $@ --with maven-repo-helper --with python2,python3 override_dh_auto_configure: cp /usr/share/misc/config.* scripts @@ -26,8 +28,10 @@ override_dh_auto_build-arch: override_dh_auto_test: override_dh_auto_install-indep: - mkdir -p debian/python-antlr/usr/lib/$$(pyversions -d)/dist-packages - install -m644 lib/python/antlr/antlr.py debian/python-antlr/usr/lib/$$(pyversions -d)/dist-packages/. + set -e && cd lib/python && python setup.py install --install-layout=deb --root $(CURDIR)/debian/python-antlr && cd .. + set -e && cd lib/python && for pyvers in $(PYTHON3S); do \ + python$$pyvers setup.py install --install-layout=deb --root $(CURDIR)/debian/python3-antlr ; \ + done && cd .. override_dh_auto_install-arch: $(MAKE) -C lib/cpp install prefix=`pwd`/debian/libantlr-dev/usr @@ -48,6 +52,8 @@ override_dh_installexamples: override_dh_auto_clean: -cd lib/cpp; $(MAKE) clean -find -name Makefile | xargs rm -f + -rm -rf lib/python/build + -rm -rf scripts/run-antlr get-orig-pom: wget -O debian/pom.xml http://repository.sonatype.org/service/local/repositories/central/content/antlr/antlr/$(DEB_VERSION_UPSTREAM)/antlr-$(DEB_VERSION_UPSTREAM).pom -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/antlr.git _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits