Date: Tue, 29 Mar 2011 09:24:28 +0400 From: Pan Tsu <inyaoo@gmail.com> To: Matthias Andree <mandree@FreeBSD.org> Cc: Pavel Volkov <pavelivolkov@googlemail.com>, Beat Gaetzi <beat@FreeBSD.org>, bug-followup@FreeBSD.org, freebsd-python@FreeBSD.org Subject: Re: ports/155971: [PATCH] databases/sqlite3: always enable EXTENSIONS Message-ID: <868vvyfqib.fsf@gmail.com> References: <201103280800.p2S80NRT048809@freefall.freebsd.org> <4D90740E.9010305@FreeBSD.org> <0a97b224749efa1cae65845675036f4d.squirrel@wmail.chruetertee.ch> <4D909E08.2080006@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Matthias Andree <mandree@FreeBSD.org> writes: [...] > How about the attached patch to www/firefox? It performs this check in > pre-everything (in case sqlite3 is already installed) and again in > pre-build (if it got installed in the 'make depends' stage). Why are you trying to fix only firefox? Every user of py-sqlite3 is affected. $ python -c 'import sqlite3' Traceback (most recent call last): File "<string>", line 1, in <module> File "LOCALBASE/lib/python2.7/sqlite3/__init__.py", line 24, in <module> from dbapi2 import * File "LOCALBASE/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module> from _sqlite3 import * ImportError: LOCALBASE/lib/python2.7/site-packages/_sqlite3.so: Undefined symbol "sqlite3_load_extension" Most are run dependency, so they fail during run, e.g. $ flexget FATAL: Unable to use SQLite. Are you running Python 2.5.x or 2.6.x ? Python should normally have SQLite support built in. If you're running correct version of Python then it is not equipped with SQLite. Try installing `pysqlite` and / or if you have compiled python yourself, recompile it with SQLite support. # runs fine but the Library doesn't work $ comix ! Could neither find pysqlite2 nor sqlite3. load: 0.18 cmd: python 39505 [select] 1.55r 0.17u 0.06s 1% 42872k but some are not, e.g. $ make install [...] gmake[4]: Entering directory `/usr/ports/chinese/ibus-pinyin/work/ibus-pinyin-1.3.8/data/db/android' gmake[4]: Nothing to be done for `install-exec-am'. GEN android.db Traceback (most recent call last): File "./create_db.py", line 2, in <module> import sqlite3 File "LOCALBASE/lib/python2.7/sqlite3/__init__.py", line 24, in <module> from dbapi2 import * File "LOCALBASE/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module> from _sqlite3 import * ImportError: LOCALBASE/lib/python2.7/site-packages/_sqlite3.so: Undefined symbol "sqlite3_load_extension" test -z "PREFIX/share/ibus-pinyin/db" || ../../.././install-sh -c -d "PREFIX/share/ibus-pinyin/db" install -m 444 ./android.db 'PREFIX/share/ibus-pinyin/db' install: ./android.db: No such file or directory gmake[4]: *** [install-main_dbDATA] Error 71 As for slave port, if you make py-sqlite3 depend on PKGNAMESUFFIX (or absence) via RUN_DEPENDS it'd guarantee that the port always works even if PLIST is identical. $ cd py-sqlite3; make install [...] ===> sqlite3-3.7.5_1 conflicts with installed package(s): sqlite3-noext-3.7.5_1 # to resolve conflict $ cd sqlite3-noext; make deinstall $ cd sqlite3; make install $ cd py-sqlite3; make install Any dependent ports would fail to build/install because py-sqlite3 dependency cannot be satisfied. --- a.diff begins here --- Index: UPDATING =================================================================== RCS file: /a/.cvsup/ports/UPDATING,v retrieving revision 1.1047 diff -u -p -r1.1047 UPDATING --- UPDATING 25 Mar 2011 10:33:31 -0000 1.1047 +++ UPDATING 29 Mar 2011 05:05:29 -0000 @@ -5,6 +5,13 @@ they are unavoidable. You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +XXXXXXXX: + AFFECTS: databases/sqlite3 + AUTHOR: none@ + + EXTENSION was enabled unconditionally. For sqlite3 without its support + refer to databases/sqlite3-noext port. + 20110324: AFFECTS: users of KDE SC 4 AUTHOR: kde@FreeBSD.org Index: databases/Makefile =================================================================== RCS file: /a/.cvsup/ports/databases/Makefile,v retrieving revision 1.964 diff -u -p -r1.964 Makefile --- databases/Makefile 21 Mar 2011 20:41:48 -0000 1.964 +++ databases/Makefile 29 Mar 2011 03:07:56 -0000 @@ -785,6 +785,7 @@ SUBDIR += sqlite-ext-mobigroup SUBDIR += sqlite2 SUBDIR += sqlite3 + SUBDIR += sqlite3-noext SUBDIR += sqlite34 SUBDIR += sqliteman SUBDIR += sqlitemanager Index: databases/sqlite3/Makefile =================================================================== RCS file: /a/.cvsup/ports/databases/sqlite3/Makefile,v retrieving revision 1.55 diff -u -p -r1.55 Makefile --- databases/sqlite3/Makefile 4 Mar 2011 14:00:56 -0000 1.55 +++ databases/sqlite3/Makefile 29 Mar 2011 05:06:29 -0000 @@ -7,6 +7,7 @@ PORTNAME= sqlite3 PORTVERSION= 3.7.5 +PORTREVISION?= 1 CATEGORIES= databases MASTER_SITES= http://www.sqlite.org/ http://www2.sqlite.org/ DISTNAME= sqlite-src-3070500 @@ -19,7 +20,7 @@ LICENSE_NAME= Public Domain LICENSE_PERMS= ${_LICENSE_PERMS_DEFAULT} LICENSE_TEXT= Description of the license can be obtained from the following URL: http://www.sqlite.org/copyright.html -CONFLICTS= sqlite34-[0-9]* +CONFLICTS+= sqlite34-[0-9]* USE_ZIP= YES USE_GMAKE= YES @@ -50,7 +53,6 @@ OPTIONS= \ SECURE_DELETE "Overwrite deleted information with zeros" on \ UNLOCK_NOTIFY "Enable notification on unlocking" on \ THREADSAFE "Build thread-safe library" on \ - EXTENSION "Allow loadable extensions" on \ TCLWRAPPER "Enable TCL wrapper" off \ .include <bsd.port.options.mk> @@ -178,10 +180,13 @@ CONFIGURE_ARGS+= --enable-threadsafe CONFIGURE_ARGS+= --disable-threadsafe .endif -.if !defined(WITHOUT_EXTENSION) +.if ${SLAVE_PORT} == "no" CONFIGURE_ARGS+= --enable-load-extension +CONFLICTS+= sqlite3-noext-[0-9]* .else +. if defined(WITHOUT_EXTENSION) CONFIGURE_ARGS+= --disable-load-extension +. endif .endif CONFIGURE_ENV+= CPPFLAGS="-I. -I./src ${CPPFLAGS}" LDFLAGS="${LDFLAGS}" Index: databases/sqlite3-noext/Makefile =================================================================== RCS file: databases/sqlite3-noext/Makefile diff -N databases/sqlite3-noext/Makefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ databases/sqlite3-noext/Makefile 29 Mar 2011 05:23:20 -0000 @@ -0,0 +1,19 @@ +# Ports collection makefile for: sqlite3-noext +# Date created: 29 Mar 2011 +# Whom: none +# +# $FreeBSD$ +# + +PKGNAMESUFFIX= -noext + +WITHOUT_EXTENSION= yes +CONFLICTS= sqlite3-[0-9]* +LATEST_LINK= sqlite3-noext + +# force default options +#_OPTIONS_OK= yes + +MASTERDIR= ${.CURDIR}/../../databases/sqlite3 + +.include "${MASTERDIR}/Makefile" Index: databases/py-sqlite3/Makefile =================================================================== RCS file: /a/.cvsup/ports/databases/py-sqlite3/Makefile,v retrieving revision 1.8 diff -u -p -r1.8 Makefile --- databases/py-sqlite3/Makefile 28 Oct 2010 21:00:08 -0000 1.8 +++ databases/py-sqlite3/Makefile 29 Mar 2011 05:11:27 -0000 @@ -7,7 +7,7 @@ PORTNAME= sqlite3 PORTVERSION= ${PYTHON_PORTVERSION} -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= databases python MASTER_SITES= ${PYTHON_MASTER_SITES} MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR} @@ -18,6 +18,7 @@ MAINTAINER= python@FreeBSD.org COMMENT= Standard Python binding to the SQLite3 library LIB_DEPENDS= sqlite3.8:${PORTSDIR}/databases/sqlite3 +RUN_DEPENDS= sqlite3>=0:${PORTSDIR}/databases/sqlite3 PLIST_FILES= lib/%%PYTHON_VERSION%%/site-packages/_sqlite3.so DIST_SUBDIR= python --- a.diff ends here ---
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?868vvyfqib.fsf>