tag 629122 + patch
thanks

Hi Jakub (2011.06.03_19:32:34_+0200)
> Because of "2.6" hardcoded in debian/pyversions, this package will
> become uninstallable once we switch default Python version to 2.7.

The package is made to build with 2.7 relatively easily. However, I
don't think it makes any sense for it to be built for all current
supported versions of Python, as it will depend on libpython2.6 and
libpython2.7, thus requiring a binNMU after the transition, anyway.

So here are two patches (and some build system tweaks):
python-2.7.patch: Support building with Python2.7 (mostly taken from
upstream, but with the auto-generated scripts patched too)
python-default-only.patch: Build for the default version of python only.

While I'm here

Also note:
W: radare source: debian-rules-missing-recommended-target build-arch
W: radare source: debian-rules-missing-recommended-target build-indep

And, it could also be relatively easily converted to dh_python2:
* B-D on python-dev >= (2.6.6-3~)
* Drop B-D on python-support, and XS-P-V
* Replace dh_pysupport with dh_python2

SR

-- 
Stefano Rivera
  http://tumbleweed.org.za/
  H: +27 21 465 6908 C: +27 72 419 8559  UCT: x3127
commit a44baa2dd68219386bd7f48a86e9193e1da0e797
Author: Stefano Rivera <[email protected]>
Date:   Sun Jul 3 19:22:40 2011 +0200

    * Non-maintainer upload.
    * Add support for Python 2.7 (Closes: #629122)
      - Apply python-2.7.patch from upstream repository.
    * python-default-only.patch: Only install extensions for the current python
      default version.

diff --git a/debian/changelog b/debian/changelog
index e2163d7..ecb400c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+radare (1:1.5.2-3.2) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Add support for Python 2.7 (Closes: #629122)
+    - Apply python-2.7.patch from upstream repository.
+  * python-default-only.patch: Only install extensions for the current python
+    default version.
+
+ -- Stefano Rivera <[email protected]>  Sun, 03 Jul 2011 16:59:43 +0200
+
 radare (1:1.5.2-3.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff --git a/debian/control b/debian/control
index 41c7a6c..2430957 100644
--- a/debian/control
+++ b/debian/control
@@ -21,6 +21,7 @@ Build-Depends: autotools-dev,
                valac
 Standards-Version: 3.9.1
 Homepage: http://radare.org
+XS-Python-Version: current
 
 Package: radare
 Architecture: any
diff --git a/debian/patches/python-2.7.patch b/debian/patches/python-2.7.patch
new file mode 100644
index 0000000..6d8464b
--- /dev/null
+++ b/debian/patches/python-2.7.patch
@@ -0,0 +1,107 @@
+Description: Add support for python2.7
+ Modified version of 84107891680ff532189b9ddf9a9054633a69674c
+Author: @schrotthaufen
+Author: Stefano Rivera <[email protected]>
+Origin: http://radare.org/cgi-bin/hg/radare/rev/84107891680f
+Bug-Debian: http://bugs.debian.org/629122
+--- a/api/Makefile
++++ b/api/Makefile
+@@ -10,8 +10,10 @@
+ 	# python
+ 	-mkdir -p ${DESTDIR}${LIBDIR}/python2.5/site-packages
+ 	-mkdir -p ${DESTDIR}${LIBDIR}/python2.6/site-packages
++	-mkdir -p ${DESTDIR}${LIBDIR}/python2.7/site-packages
+ 	-cp -rf python/radare ${DESTDIR}${LIBDIR}/python2.5/site-packages
+ 	-cp -rf python/radare ${DESTDIR}${LIBDIR}/python2.6/site-packages
++	-cp -rf python/radare ${DESTDIR}${LIBDIR}/python2.7/site-packages
+ 	# XXX lua
+ 	-cp -rf lua/radare/api.lua ${DESTDIR}${LIBDIR}/radare/radare.lua
+ 
+--- a/configure.acr
++++ b/configure.acr
+@@ -104,6 +104,7 @@
+ 
+ CHKLIB python2.5
+ CHKLIB python2.6
++CHKLIB python2.7
+ 
+ ARG_WITH MAEMO maemo build hildon interface ;
+ 
+--- a/src/plug/hack/Makefile
++++ b/src/plug/hack/Makefile
+@@ -8,6 +8,8 @@
+ PY_LIBS=`python2.5-config --libs`
+ PY26_CFLAGS=`python2.6-config --cflags`
+ PY26_LIBS=`python2.6-config --libs`
++PY27_CFLAGS=`python2.7-config --cflags`
++PY27_LIBS=`python2.7-config --libs`
+ LUA_CFLAGS=`pkg-config --cflags lua5.1`
+ LUA_LIBS=`pkg-config --libs lua5.1`
+ RUBY_CFLAGS=-I/usr/lib/ruby/1.8/i386-linux
+@@ -17,7 +19,7 @@
+ 
+ CFLAGS+=-I../.. -g
+ 
+-all: hello.${SO} lua.${SO} gtk-hello.${SO} scriptedit.${SO} python25.${SO} ruby.${SO} gtk-prefs.${SO} gtk-topbar.${SO} perl.${SO} python26.${SO}
++all: hello.${SO} lua.${SO} gtk-hello.${SO} scriptedit.${SO} python25.${SO} ruby.${SO} gtk-prefs.${SO} gtk-topbar.${SO} perl.${SO} python26.${SO} python27.${SO}
+ 
+ hello.${SO}:
+ 	${CC} ${CFLAGS} ${SHARED_CFLAGS} hello.c -o hello.${SO}
+@@ -55,6 +57,11 @@
+ 	-${CC} python.c ${SHARED_CFLAGS} ${LDFLAGS} ${CFLAGS} ${PY26_CFLAGS} ${PY26_LIBS} -o python26.${SO}
+ endif
+ 
++python27.${SO}:
++ifeq ($(HAVE_LIB_PYTHON2_7),1)
++	-${CC} python.c ${SHARED_CFLAGS} ${LDFLAGS} ${CFLAGS} ${PY27_CFLAGS} ${PY27_LIBS} -o python27.${SO}
++endif
++
+ perl.${SO}:
+ 	-${CC} perl.c ${SHARED_CFLAGS} ${CFLAGS} ${PERL_CFLAGS} ${PERL_LIBS} -o perl.${SO}
+ 
+@@ -65,7 +72,7 @@
+ # Try with -llua and -llua5.1 (stupid ubuntu)
+ lua.${SO}:
+ ifeq ($(HAVE_LANG_LUA),1)
+-ifneq (,$(filter 1,$(HAVE_LIB_PYTHON2_5) $(HAVE_LIB_PYTHON2_6)))
++ifneq (,$(filter 1,$(HAVE_LIB_PYTHON2_5) $(HAVE_LIB_PYTHON2_6) $(HAVE_LIB_PYTHON2_7)))
+ ifneq ($(LUA_LIBS),)
+ 	-${CC} lua.c ${SHARED_CFLAGS} ${CFLAGS} ${LUA_CFLAGS} ${LUA_LIBS} -o lua.so
+ endif
+@@ -85,6 +92,7 @@
+ 	-[ -e ruby.${SO} ] && ${INSTALL_LIB} ruby.${SO} ${DESTDIR}/${LIBDIR}/radare
+ 	-[ -e python25.${SO} ] && ${INSTALL_LIB} python25.${SO} ${DESTDIR}/${LIBDIR}/radare
+ 	-[ -e python26.${SO} ] && ${INSTALL_LIB} python26.${SO} ${DESTDIR}/${LIBDIR}/radare
++	-[ -e python27.${SO} ] && ${INSTALL_LIB} python27.${SO} ${DESTDIR}/${LIBDIR}/radare
+ 
+ clean:
+ 	-rm -f *.${SO} *.o
+--- a/configure
++++ b/configure
+@@ -282,7 +282,7 @@
+ shift
+ done
+ 
+-ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS LDFLAGS HAVE_LANG_C CXX CXXFLAGS HAVE_LANG_CXX LIL_ENDIAN BIG_ENDIAN BYTEORDER HAVE_LIB_DL DL_LIBS SOLARIS DARWIN SHARED_EXT SHARED_CFLAGS WINDOWS READLINE HAVE_RL_COMPLETION_MATCHES RADARE_LIBS HAVE_LIB_READLINE HAVE_USB_H USBSNF NONFREE DEBUGGER JAVA WII W32 SYSPROXY RUBY RUBY_VERSION PYTHON HAVE_LANG_PYTHON HAVE_INSTALL VALA HAVE_VALAC VALAC HAVE_VALA_1_0_VERSION_0_5_0 _CFLAGS SIZEOF_OFF_T HAVE_LIB_EWF WANT_EWF HAVE_LIB_PYTHON2_5 HAVE_LIB_PYTHON2_6 MAEMO HAVE_GUI GTK_FLAGS GTK_LIBS HAVE_PKGCFG_GTK_2_0 VTE_FLAGS VTE_LIBS HAVE_PKGCFG_VTE HAVE_VALA HAVE_LUA_H LUA HAVE_LANG_LUA LUA_LIBS HAVE_LIB_LUA HAVE_LIB_LUA5_1"
++ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS LDFLAGS HAVE_LANG_C CXX CXXFLAGS HAVE_LANG_CXX LIL_ENDIAN BIG_ENDIAN BYTEORDER HAVE_LIB_DL DL_LIBS SOLARIS DARWIN SHARED_EXT SHARED_CFLAGS WINDOWS READLINE HAVE_RL_COMPLETION_MATCHES RADARE_LIBS HAVE_LIB_READLINE HAVE_USB_H USBSNF NONFREE DEBUGGER JAVA WII W32 SYSPROXY RUBY RUBY_VERSION PYTHON HAVE_LANG_PYTHON HAVE_INSTALL VALA HAVE_VALAC VALAC HAVE_VALA_1_0_VERSION_0_5_0 _CFLAGS SIZEOF_OFF_T HAVE_LIB_EWF WANT_EWF HAVE_LIB_PYTHON2_5 HAVE_LIB_PYTHON2_6 HAVE_LIB_PYTHON2_7 MAEMO HAVE_GUI GTK_FLAGS GTK_LIBS HAVE_PKGCFG_GTK_2_0 VTE_FLAGS VTE_LIBS HAVE_PKGCFG_VTE HAVE_VALA HAVE_LUA_H LUA HAVE_LANG_LUA LUA_LIBS HAVE_LIB_LUA HAVE_LIB_LUA5_1"
+ 
+ create_environ
+ 
+@@ -515,6 +515,7 @@
+ HAVE_LIB_EWF="0"; fi
+ check_library HAVE_LIB_PYTHON2_5 python2.5 0 
+ check_library HAVE_LIB_PYTHON2_6 python2.6 0 
++check_library HAVE_LIB_PYTHON2_7 python2.7 0 
+ printf 'checking pkg-config flags for gtk+-2.0... '
+ tmp=`pkg-config --cflags gtk+-2.0 2>/dev/null`
+ if [ $? = 1 ]; then echo no ; HAVE_PKGCFG_GTK_2_0=0; else 
+--- a/config.mk.acr
++++ b/config.mk.acr
+@@ -11,6 +11,7 @@
+ HAVE_LUA_H=@HAVE_LUA_H@
+ HAVE_LIB_PYTHON2_5=@HAVE_LIB_PYTHON2_5@
+ HAVE_LIB_PYTHON2_6=@HAVE_LIB_PYTHON2_6@
++HAVE_LIB_PYTHON2_7=@HAVE_LIB_PYTHON2_7@
+ 
+ W32=@W32@
+ DARWIN=@DARWIN@
diff --git a/debian/patches/python-default-only.patch b/debian/patches/python-default-only.patch
new file mode 100644
index 0000000..008b289
--- /dev/null
+++ b/debian/patches/python-default-only.patch
@@ -0,0 +1,36 @@
+Description: Only install plugins and libraries for the current default Python version
+ Debian-Specific.
+Author: Stefano Rivera <[email protected]>
+Forwarded: not-needed
+--- a/src/plug/hack/Makefile
++++ b/src/plug/hack/Makefile
+@@ -90,9 +90,9 @@
+ 	-[ -e scriptedit.${SO} ] && ${INSTALL_LIB} scriptedit.${SO} ${DESTDIR}/${LIBDIR}/radare
+ 	-[ -e perl.${SO} ] && ${INSTALL_LIB} perl.${SO} ${DESTDIR}/${LIBDIR}/radare
+ 	-[ -e ruby.${SO} ] && ${INSTALL_LIB} ruby.${SO} ${DESTDIR}/${LIBDIR}/radare
+-	-[ -e python25.${SO} ] && ${INSTALL_LIB} python25.${SO} ${DESTDIR}/${LIBDIR}/radare
+-	-[ -e python26.${SO} ] && ${INSTALL_LIB} python26.${SO} ${DESTDIR}/${LIBDIR}/radare
+-	-[ -e python27.${SO} ] && ${INSTALL_LIB} python27.${SO} ${DESTDIR}/${LIBDIR}/radare
++	-(pyversions -vd | grep -Fqx 2.5) && ${INSTALL_LIB} python25.${SO} ${DESTDIR}/${LIBDIR}/radare
++	-(pyversions -vd | grep -Fqx 2.6) && ${INSTALL_LIB} python26.${SO} ${DESTDIR}/${LIBDIR}/radare
++	-(pyversions -vd | grep -Fqx 2.7) && ${INSTALL_LIB} python27.${SO} ${DESTDIR}/${LIBDIR}/radare
+ 
+ clean:
+ 	-rm -f *.${SO} *.o
+--- a/api/Makefile
++++ b/api/Makefile
+@@ -8,12 +8,8 @@
+ 	-mkdir -p ${DESTDIR}${LIBDIR}/ruby/1.8
+ 	-cp -rf ruby/radare ${DESTDIR}${LIBDIR}/ruby/1.8
+ 	# python
+-	-mkdir -p ${DESTDIR}${LIBDIR}/python2.5/site-packages
+-	-mkdir -p ${DESTDIR}${LIBDIR}/python2.6/site-packages
+-	-mkdir -p ${DESTDIR}${LIBDIR}/python2.7/site-packages
+-	-cp -rf python/radare ${DESTDIR}${LIBDIR}/python2.5/site-packages
+-	-cp -rf python/radare ${DESTDIR}${LIBDIR}/python2.6/site-packages
+-	-cp -rf python/radare ${DESTDIR}${LIBDIR}/python2.7/site-packages
++	mkdir -p ${DESTDIR}${LIBDIR}/$(shell pyversions -d)/site-packages
++	cp -rf python/radare ${DESTDIR}${LIBDIR}/$(shell pyversions -d)/site-packages
+ 	# XXX lua
+ 	-cp -rf lua/radare/api.lua ${DESTDIR}${LIBDIR}/radare/radare.lua
+ 
diff --git a/debian/patches/series b/debian/patches/series
index d85e962..a0b7393 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,5 @@ fix-make-clean.dpatch
 fix-linking.dpatch
 fix-buffer-overflow.dpatch
 python-versions.dpatch
+python-2.7.patch
+python-default-only.patch
diff --git a/debian/pyversions b/debian/pyversions
deleted file mode 100644
index 5154b3f..0000000
--- a/debian/pyversions
+++ /dev/null
@@ -1 +0,0 @@
-2.6
diff --git a/debian/rules b/debian/rules
index 82b1389..c76c4fe 100755
--- a/debian/rules
+++ b/debian/rules
@@ -56,7 +56,6 @@ install: build
 	dh_installdirs
 
 	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-	rm -r $(CURDIR)/debian/tmp/usr/lib/python2.5
 
 binary-common:
 	dh_testdir
@@ -66,7 +65,7 @@ binary-common:
 	dh_installmenu
 	dh_installman
 	dh_installchangelogs
-	dh_pysupport
+	dh_pysupport -V $(shell pyversions -vd)
 	dh_strip
 	dh_compress
 	dh_fixperms

Reply via email to