I have some partial success to report.
On Wed, Oct 08, 2003 at 11:23:00PM -0700, Ross Boylan wrote:
> apt-listchanges is one of my favorite utilities.  Thanks to all the
> developers.
> 
> This leads to my dilemma. I want it, but I don't have it.  I'm
> wondering if I could tweak the build process a bit and get it working.
> 
> Background
> 
> I recently updated apt to current testing (this was to fix a bug in
> aptitude), and this knocked out apt-listchanges.  I really would like
> to get it back.  It needs python 2.3, and that just won't migrate down
> (I was watching the clock tick down on it, but I see now it's held up
> because of build problems on various architectures.  I'm getting the
> feeling the long wait will continue).
> 
> My system is basically testing level, though with lots of packages
> less than current because of dependency issues.
> 
> I have python2.3 (2.2.106-2beta2) on my system.  It's just the python
> package itself is not at 2.3 (unless the needed 2.3 features were not
> present in the earlier releases?).
> 
> 
> Plan
> 
> So I'm wondering if there's a way to get a working apt-listchanges on
> my system with my current software.  I'm thinking of doing this
> (building from source): 
> 1) edit the control file to depend on python2.3 instead of python (>= 2.3).
> 2) maybe I need to update-alternatives to make 2.3 my default python?
> or edit /usr/bin/python -> /usr/bin/python2.3 in the opening #! of all
> the python files for apt-listchanges
> 3) build it and use it.
> 
> Nuts: I just noticed python-apt got zapped too; I guess I need to
> solve that for apt-listchanges to work.  Maybe a similar strategy for
> it? 
> 
> As you can see, my basic thought is that since I have python 2.3, I
> should be able to work around these problems.
> 
> Does this seem like a do-able strategy?  Or just asking for trouble?
> Any tips?
> 
> Thanks.
> 
> P.S. If you could cc me it would be great, as I'm not a subscriber to
> this list.  I will be checking it, though.
> 

I installed python2.3-dev in testing and applied the attached patches
(to the unstable sources) to try to get apt-listchanges and python-apt
to use python2.3 rather than python (>=2.3), since the latter is
unavailable in testing.  The build script for python-apt already
references python2.3 explicitly, so I made only  one change to that
package source.

I built the two packages and dpkg -i'd them.  When I tried to run apt
I got the following:

Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 35, in ?
    import apt_listchanges
  File "/usr/lib/python2.3/site-packages/apt_listchanges.py", line 9, in ?
    import email.Message
  File "/usr/lib/python2.3/email/Message.py", line 17, in ?
    from email import Charset
  File "/usr/lib/python2.3/email/Charset.py", line 6, in ?
    import email.base64MIME
  File "/usr/lib/python2.3/email/base64MIME.py", line 31, in ?
    from email._compat22 import _floordiv
ImportError: No module named _compat22
Preconfiguring packages ...

The python email package changes rapidly; I suspect what's happened is
that the the version in the testing python2.3  differs from that
in unstable.

There were also some compiler warnings that may indicate similar drift
at the C level (for python-apt).  I don't know if they're significant:
-------------------------------------------
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/sourcelist.cc -o 
build/temp.linux-i686-2.3/python/sourcelist.o
python/sourcelist.cc: In function `PyObject* PkgSourceListFindIndex(PyObject*, 
   PyObject*)':
python/sourcelist.cc:30: warning: unused variable `PkgSourceListStruct&Struct'
python/sourcelist.cc: In function `PyObject* GetPkgSourceList(PyObject*, 
   PyObject*)':
python/sourcelist.cc:76: warning: `PyObject*Owner' might be used uninitialized 
   in this function
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/apt_pkgmodule.cc 
-o build/temp.linux-i686-2.3/python/apt_pkgmodule.o
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/pkgsrcrecords.cc 
-o build/temp.linux-i686-2.3/python/pkgsrcrecords.o
python/pkgsrcrecords.cc: In function `PyObject* GetPkgSrcRecords(PyObject*, 
   PyObject*)':
python/pkgsrcrecords.cc:111: warning: `PyObject*Owner' might be used 
   uninitialized in this function
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/string.cc -o 
build/temp.linux-i686-2.3/python/string.o
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/configuration.cc 
-o build/temp.linux-i686-2.3/python/configuration.o
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/tag.cc -o 
build/temp.linux-i686-2.3/python/tag.o
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/cache.cc -o 
build/temp.linux-i686-2.3/python/cache.o
creating build/lib.linux-i686-2.3
gcc -pthread -shared build/temp.linux-i686-2.3/python/apt_pkgmodule.o 
build/temp.linux-i686-2.3/python/configuration.o 
build/temp.linux-i686-2.3/python/generic.o 
build/temp.linux-i686-2.3/python/tag.o 
build/temp.linux-i686-2.3/python/string.o 
build/temp.linux-i686-2.3/python/cache.o 
build/temp.linux-i686-2.3/python/pkgrecords.o 
build/temp.linux-i686-2.3/python/pkgsrcrecords.o 
build/temp.linux-i686-2.3/python/sourcelist.o -lapt-pkg -o 
build/lib.linux-i686-2.3/apt_pkg.so
building 'apt_inst' extension
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/apt_instmodule.cc 
-o build/temp.linux-i686-2.3/python/apt_instmodule.o
gcc -pthread -DNDEBUG -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fno-strict-aliasing -fPIC -I/usr/include/python2.3 -c python/tar.cc -o 
build/temp.linux-i686-2.3/python/tar.o
python/tar.cc: In member function `virtual bool 
   ProcessTar::DoItem(pkgDirStream::Item&, int&)':
python/tar.cc:45: warning: `const char*Type' might be used uninitialized in 
   this function
---------------------------------------------------

I'm cc'ing debian-python in hopes someone there might shed some light
on this.

I also see on python-devel references to python2.3 coming through on
Wed, so I might just wait for it.  The problem, at the moment, is that
even if python2.3 does migrate I'll have a huge (100 packages
currently) upgrade without the benefit of apt-listchanges, before a
working one gets reinstalled :(
diff -Naurx '*~' apt-listchanges-2.42/apt-listchanges 
apt-listchanges-2.42rb/apt-listchanges
--- apt-listchanges-2.42/apt-listchanges        2003-08-16 21:53:47.000000000 
-0700
+++ apt-listchanges-2.42rb/apt-listchanges      2003-10-13 23:09:19.000000000 
-0700
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python2.3
 
 #
 #      apt-listchanges - Show changelog entries between the installed versions
diff -Naurx '*~' apt-listchanges-2.42/debian/control 
apt-listchanges-2.42rb/debian/control
--- apt-listchanges-2.42/debian/control 2003-08-15 18:41:23.000000000 -0700
+++ apt-listchanges-2.42rb/debian/control       2003-10-13 23:10:28.000000000 
-0700
@@ -7,7 +7,7 @@
 
 Package: apt-listchanges
 Architecture: all
-Depends: python (>= 2.3), apt (>= 0.5.3), python-apt, debconf, ucf
+Depends: python2.3, apt (>= 0.5.3), python-apt, debconf, ucf
 Suggests: x-terminal-emulator, www-browser, debianutils
 Description: Display new Debian changelog entries from .deb archives
  apt-listchanges is a tool to show what has been changed in a new
diff -Naurx '*~' apt-listchanges-2.42/debian/prerm 
apt-listchanges-2.42rb/debian/prerm
--- apt-listchanges-2.42/debian/prerm   2002-02-16 10:36:59.000000000 -0800
+++ apt-listchanges-2.42rb/debian/prerm 2003-10-13 23:11:36.000000000 -0700
@@ -2,8 +2,8 @@
 
 set -e
 
-rm -f /usr/lib/site-python/DebianControlParser.pyc \
-      /usr/lib/site-python/apt_listchanges.pyc
+rm -f /usr/lib/python2.3/site-packages/DebianControlParser.pyc \
+      /usr/lib/python2.3/site-packages/apt_listchanges.pyc
 
 # dh_installdeb will replace this with shell code automatically
 # generated by other debhelper scripts.
diff -Naurx '*~' apt-listchanges-2.42/Makefile apt-listchanges-2.42rb/Makefile
--- apt-listchanges-2.42/Makefile       2003-08-15 18:41:22.000000000 -0700
+++ apt-listchanges-2.42rb/Makefile     2003-10-13 23:08:47.000000000 -0700
@@ -6,9 +6,9 @@
 install: all
        install -d $(DESTDIR)/usr/bin
        install -m 755 apt-listchanges $(DESTDIR)/usr/bin
-       install -d $(DESTDIR)/usr/lib/site-python
+       install -d $(DESTDIR)/usr/lib/python2.3/site-packages
        install -m 644 DebianControlParser.py apt_listchanges.py \
-               $(DESTDIR)/usr/lib/site-python
+               $(DESTDIR)/usr/lib/python2.3/site-packages
        install -d $(DESTDIR)/etc/apt/apt.conf.d
        install -m 644 debian/apt.conf \
                $(DESTDIR)/etc/apt/apt.conf.d/20listchanges
diff -Naurx '*~' apt-listchanges-2.42/po/Makefile 
apt-listchanges-2.42rb/po/Makefile
--- apt-listchanges-2.42/po/Makefile    2002-01-15 16:19:14.000000000 -0800
+++ apt-listchanges-2.42rb/po/Makefile  2003-10-13 23:06:50.000000000 -0700
@@ -22,7 +22,7 @@
 CC = gcc
 GENCAT = gencat
 MSGFMT = /usr/bin/msgfmt --statistics
-XGETTEXT = /usr/share/doc/python2.2/examples/Tools/i18n/pygettext.py
+XGETTEXT = /usr/share/doc/python2.3/examples/Tools/i18n/pygettext.py
 MSGMERGE = msgmerge
 
 POFILES =  $(wildcard *.po)
diff -Naurx '*~' python-apt-0.5.8/debian/control 
python-apt-0.5.8rb/debian/control
--- python-apt-0.5.8/debian/control     2003-08-08 06:01:59.000000000 -0700
+++ python-apt-0.5.8rb/debian/control   2003-10-13 23:51:32.000000000 -0700
@@ -4,7 +4,7 @@
 Maintainer: APT Development Team <[EMAIL PROTECTED]>
 Uploaders: Matt Zimmerman <[EMAIL PROTECTED]>
 Standards-Version: 3.1.1
-Build-Depends: debhelper, libapt-pkg-dev (>= 0.5.5), apt-utils, python-dev (>= 
2.3)
+Build-Depends: debhelper, libapt-pkg-dev (>= 0.5.5), apt-utils, python2.3-dev
 
 Package: python-apt
 Architecture: any
diff -Naurx '*~' python-apt-0.5.8/debian/python-dep 
python-apt-0.5.8rb/debian/python-dep
--- python-apt-0.5.8/debian/python-dep  2002-02-14 16:46:44.000000000 -0800
+++ python-apt-0.5.8rb/debian/python-dep        2003-10-14 00:01:07.000000000 
-0700
@@ -1,6 +1,7 @@
 import sys;
 
 if sys.version[:3] != "1.5":
-       print "python:Depends=python (>= %s), python (<< %s)" % 
(sys.version[:3],float(sys.version[:3])+0.1)
+       #print "python:Depends=python (>= %s), python (<< %s)" % 
(sys.version[:3],float(sys.version[:3])+0.1)
+       print "python:Depends=python2.3"  # hack
 else:
        print "python:Depends=python-base (>= 1.5) | python1.5"

Reply via email to