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

