diff options
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | sagemath-cremona.patch | 104 |
2 files changed, 8 insertions, 100 deletions
@@ -49,7 +49,7 @@ sha256sums=('SKIP' '7fcb52e96935dccb0f958d37c2f4e3918392480b9af53e08562f6cba6c68cb94' '93b4cbdf7f36287ad643853b99e77011fcf5bdcd17514f3bf6d2bd74a1c82fd2' 'a4a6c87b46ff23b89608aca66d00427334502e8bfb5dfe68b94497d19be1c7ae' - '71cc42d168545d460bc7f67a30486ff1534093e2b4deeb83deda8ff5bd081e7b' + 'f801be68d043f317cc2a85a5ca059010b68eaeafa3bbf5c9148f2c154e2a707d' '17397b8e1843b013ef5d2e083369109f0719651edd8ef0c8493cb49e2bc4324a' 'af22e1834997cb2740818cd4ef8ede0367b0aa237305e89b178614f35bdfcef8' '5114c912f821900e5bfae1e2cfeb7984de946d0b23e1182b0bf15be1d803dfd0' @@ -95,7 +95,7 @@ prepare(){ # Upstream patches # fix build against libfes 0.2 http://trac.sagemath.org/ticket/15209 patch -p1 -i ../fes02.patch -# use Features to detect Cremona databases https://trac.sagemath.org/ticket/24718 +# use Features to detect Cremona databases https://trac.sagemath.org/ticket/25825 patch -p1 -i ../sagemath-cremona.patch # use python2 diff --git a/sagemath-cremona.patch b/sagemath-cremona.patch index d21e3e5faa11..51e2a39867e4 100644 --- a/sagemath-cremona.patch +++ b/sagemath-cremona.patch @@ -1,122 +1,30 @@ diff --git a/src/sage/databases/cremona.py b/src/sage/databases/cremona.py -index 6e99f6c..b501a55 100644 +index 3f8dd62..ed5726a 100644 --- a/src/sage/databases/cremona.py +++ b/src/sage/databases/cremona.py -@@ -53,7 +53,6 @@ from sage.misc.prandom import randint +@@ -53,7 +53,7 @@ from sage.misc.prandom import randint import sage.schemes.elliptic_curves.constructor as elliptic from .sql_db import SQLDatabase, verify_column -from sage.misc.package import is_package_installed ++from sage.features.databases import DatabaseCremona from sage.env import SAGE_SHARE from sage.misc.all import walltime -@@ -606,24 +605,25 @@ class MiniCremonaDatabase(SQLDatabase): - sage: c.name - 'cremona mini' - """ -+ if name is None: -+ raise ValueError("name must not be None.") -+ if build and read_only: -+ raise ValueError("only one of build and read_only can be set at once.") -+ - self.name = name -- name = name.replace(' ','_') -- db_path = os.path.join(SAGE_SHARE, 'cremona', name+'.db') -+ - if build: -- if name is None: -- raise RuntimeError('The database must have a name.') -- if read_only: -- raise RuntimeError('The database must not be read_only.') -+ db_path = os.path.join(SAGE_SHARE, 'cremona', name.replace(' ','_')+'.db') - SQLDatabase.__init__(self, db_path, read_only=read_only, \ - skeleton=_miniCremonaSkeleton) -- return -- if not os.path.isfile(db_path): -- raise ValueError("Desired database (='%s') does not "%self.name \ -- + "exist") -- SQLDatabase.__init__(self, db_path, read_only=read_only) -- if self.get_skeleton() != _miniCremonaSkeleton: -- raise RuntimeError('Database at %s does '%(self.__dblocation__) \ -- + 'not appear to be a valid SQL Cremona database.') -+ else: -+ from sage.misc.feature_test import DatabaseCremona -+ database = DatabaseCremona(name) -+ database.require() -+ SQLDatabase.__init__(self, database.absolute_path(), read_only=read_only) -+ if self.get_skeleton() != _miniCremonaSkeleton: -+ raise RuntimeError('Database at %s does '%(self.__dblocation__) \ -+ + 'not appear to be a valid SQL Cremona database.') - - def __iter__(self): - """ -@@ -824,14 +824,15 @@ class MiniCremonaDatabase(SQLDatabase): +@@ -825,7 +825,7 @@ class MiniCremonaDatabase(SQLDatabase): if N < self.largest_conductor(): message = "There is no elliptic curve with label " + label \ + " in the database" - elif is_package_installed('database_cremona_ellcurve'): -+ from sage.misc.feature_test import DatabaseCremona -+ cremona_database_presence = DatabaseCremona().is_present() -+ if cremona_database_presence: ++ elif DatabaseCremona().is_present(): message = "There is no elliptic curve with label " + label \ + " in the currently available databases" else: - message = "There is no elliptic curve with label " \ -- + label + " in the default database; try installing " \ -- + "the optional package database_cremona_ellcurve which " \ -- + "contains the complete Cremona database" -+ + label + " in the default database. " \ -+ + cremona_database_presence.resolution - raise ValueError(message) - ainvs = eval(c[0]) - data = {'cremona_label': label, -@@ -1417,24 +1418,25 @@ class LargeCremonaDatabase(MiniCremonaDatabase): - sage: c.name # optional - database_cremona_ellcurve - 'cremona' - """ -+ if name is None: -+ raise ValueError("name must not be None.") -+ if build and read_only: -+ raise ValueError("only one of build and read_only can be set at once.") -+ - self.name = name -- name = name.replace(' ','_') -- db_path = os.path.join(SAGE_SHARE, 'cremona', name+'.db') -+ - if build: -- if name is None: -- raise RuntimeError('The database must have a name.') -- if read_only: -- raise RuntimeError('The database must not be read_only.') -+ db_path = os.path.join(SAGE_SHARE, 'cremona', name.replace(' ','_')+'.db') - SQLDatabase.__init__(self, db_path, read_only=read_only, \ -- skeleton=_cremonaSkeleton) -- return -- if not os.path.isfile(db_path): -- raise ValueError("Desired database (='%s') does not "%self.name \ -- + "exist") -- SQLDatabase.__init__(self, db_path, read_only=read_only) -- if self.get_skeleton() != _cremonaSkeleton: -- raise RuntimeError('Database at %s does '%(self.__dblocation__) \ -- + 'not appear to be a valid SQL Cremona database.') -+ skeleton=_miniCremonaSkeleton) -+ else: -+ from sage.misc.feature_test import DatabaseCremona -+ database = DatabaseCremona(name) -+ database.require() -+ SQLDatabase.__init__(self, database.absolute_path(), read_only=read_only) -+ if self.get_skeleton() != _cremonaSkeleton: -+ raise RuntimeError('Database at %s does '%(self.__dblocation__) \ -+ + 'not appear to be a valid SQL Cremona database.') - - def allbsd(self, N): - r""" -@@ -1672,7 +1674,8 @@ def CremonaDatabase(name=None,mini=None,set_global=None): +@@ -1673,7 +1673,7 @@ def CremonaDatabase(name=None,mini=None,set_global=None): if name is None and not set_global: return _db if set_global and name is None: - if is_package_installed('database_cremona_ellcurve'): -+ from sage.misc.feature_test import DatabaseCremona + if DatabaseCremona().is_present(): name = 'cremona' else: |