From owner-freebsd-ports@FreeBSD.ORG Tue Apr 8 21:13:59 2014 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 12B5FA37; Tue, 8 Apr 2014 21:13:59 +0000 (UTC) Received: from smtp.digiware.nl (unknown [IPv6:2001:4cb8:90:ffff::3]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 96B7E1628; Tue, 8 Apr 2014 21:13:58 +0000 (UTC) Received: from rack1.digiware.nl (unknown [127.0.0.1]) by smtp.digiware.nl (Postfix) with ESMTP id C7E421534C0; Tue, 8 Apr 2014 23:13:49 +0200 (CEST) X-Virus-Scanned: amavisd-new at digiware.nl Received: from smtp.digiware.nl ([127.0.0.1]) by rack1.digiware.nl (rack1.digiware.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r1cjXlGY43pW; Tue, 8 Apr 2014 23:13:43 +0200 (CEST) Received: from [IPv6:2001:4cb8:3:1:e0c6:3502:1f39:7022] (unknown [IPv6:2001:4cb8:3:1:e0c6:3502:1f39:7022]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.digiware.nl (Postfix) with ESMTPSA id A1D65153434; Tue, 8 Apr 2014 23:13:43 +0200 (CEST) Message-ID: <5344668C.4090803@digiware.nl> Date: Tue, 08 Apr 2014 23:13:48 +0200 From: Willem Jan Withagen User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: koobs@FreeBSD.org, Shane Ambler Subject: Re: Python install catch 22 References: <533EA19E.80905@digiware.nl> <533F7CF4.6070003@ShaneWare.Biz> <5340BA4E.7010306@FreeBSD.org> In-Reply-To: <5340BA4E.7010306@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "ports@freebsd.org" X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Apr 2014 21:13:59 -0000 On 6-4-2014 4:22, Kubilay Kocak wrote: > On 5/04/2014 9:12 PM, Willem Jan Withagen wrote: >> >> >> Op 5 apr. 2014 om 05:48 heeft Shane Ambler het volgende geschreven: >> >>> On 04/04/2014 22:42, Willem Jan Withagen wrote: >>>> Hi, >>>> >>>> I've tried to upgrade my python 2.7 which did not work. >>>> Then I deinstalled all python stuff and tried to install python3 (aka 3.3) >>> >>> You can install both versions of python (2.7 & 3.3) at the same time, >>> but currently you can only install a module to one of the versions at a >>> time. >> >> Sorry, >> >> I did not explain the situation clear enough. >> >> I was at 2.7, and wanted to install a 2.7 upgrade because of a bug. >> If memory serves me, from 2.7.3 to 2.7.6 >> >> But that started mounting about missing db stuff, and having to install a py/db of choice. >> That is where I ran into the catch22, installing a db required py-tools, which in turn starts to try to upgrade python from 2.7.3 to 2.7.6. > > Hi Willem, > > a) Can you clarify/confirm whether you tried installing/upgrading Python > via ports or packages. > > b) Tell us exactly (method & commands) how you attempted to upgrade > Python 2.7 to Python 3.3 > > b) If via ports, it would be helpful to know how and why the dbm module > fails to build for python33 > > Either attach a complete build log here, or join us on IRC > #freebsd-python on freenode so we can help you isolate. > > Koobs > > >> Then I cleaned/removed al python stuff, and tried again. >> First with 2.7 and when that did not work, I tried 3.3 with the same result. >> I tried with portinstall/portupgrade as well as make && make install, but both fail for the same reason. >> >> So atm I have no python at al. >> >>> So far there are still many modules that don't work with 3.x so you may >>> want to use 2.7 if you want python with more than the default modules. >>> >>> The default python is still 2.7, if you want to use 3.3 then you might >>> want to add >>> DEFAULT_VERSIONS=PYTHON=3.3 PYTHON3=3.3 >>> to your /etc/make.conf >>> >>>> The system everytime refuses to install because of missing a database: >>>> >>>> pkg-static: >>>> lstat(/home2/usr/ports/lang/python33/work/stage/usr/local/lib/python3.3/lib-dynload/_dbm.so): >>>> No such file or directory >>>> *** [fake-pkg] Error code 74 >>>> >>>> [ replace python33 by python27 te get the similar error for 2.7 ] >>> >>> This would indicate that the dbm module wasn't built. It should be built >>> and is a module that gives access to others that may be installed from >>> the list below. The db modules below don't need to be installed first >>> for _dbm.so to be built. >>> >>> This is an error compiling not related to the other modules. If your >>> using a gui then scrollback in the terminal to see the error - increase >>> scrollback limit if needed, from cli maybe use script to keep a log of >>> the build to look through. >> >> Using command line in putty. >> I will try again, and scan de build output for more errors. So there should be an error building the part in the stage tree? >> >> >>> >>> gettext libiconv and gmake are the only things that need to be installed >>> before python to build. >> >> So where does it get the DBMS stuff from? >> >>> Maybe there is an issue with you not building >>> from /usr/ports ? >> >> That would be a first. This config is like this for about 6 years. >> And /user/ports links to this tree. >> >>> >>>> And then hints: >>>> ==== >>>> Note that some of the standard modules are provided as separate >>>> ports since they require extra dependencies: >>>> >>>> gdbm databases/py-gdbm >>>> sqlite3 databases/py-sqlite3 >>>> tkinter x11-toolkits/py-tkinter >>>> >>>> Install them as needed. >>>> ==== >>>> >>>> Which is nasty catch22, because one needs a recent/working python to >>>> actually be able to do this. >>>> >>>> How do other cope with this? >>>> >>> >>> Could using pkg to install a prebuilt binary package be an option? >> >> That would be the alternative, but I only do that, if nothing else works. >> I've grown to always build my stuff. >> >>> >>> What FreeBSD version are you using? >> >> I386 9.2-STABLE Did a more thorow investigation during the build: ==== building 'dbm' extension cc -fPIC -fno-strict-aliasing -O2 -pipe -fno-strict-aliasing -DNDEBUG -DHAVE_NDBM_H -I. -IInclude -I./../Include -I/usr/local/include -I/home2/usr/ports/lang/python27/work/Python-2.7.6/Include -I/home2/usr/ports/lang/python27/work/Python-2.7.6/portbld.static -c /home2/usr/ports/lang/python27/work/Python-2.7.6/Modules/dbmmodule.c -o build/temp.freebsd-9.2-STABLE-i386-2.7/home2/usr/ports/lang/python27/work/Python-2.7.6/Modules/dbmmodule.o cc -shared -L/usr/local/lib -pthread -L/usr/local/lib -pthread -O2 -pipe -fno-strict-aliasing -I/usr/local/include build/temp.freebsd-9.2-STABLE-i386-2.7/home2/usr/ports/lang/python27/work/Python-2.7.6/Modules/dbmmodule.o -L/usr/local/lib -lgdbm_compat -o build/lib.freebsd-9.2-STABLE-i386-2.7/dbm.so *** WARNING: renaming "dbm" since importing it failed: /usr/local/lib/libgdbm_compat.so.4: Undefined symbol "gdbm_errno" Python build finished, but the necessary bits to build these modules were not found: linuxaudiodev spwd sunaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name. Failed to build these modules: dbm ====== But then the process wants to continue.... Which is rather useless. I'll see if upgrading gdbm fixes things. --WjW