diff --git a/Makefile b/Makefile index 39753370e37..1340431efe2 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ build: all-build %:: @if [ -x relocate-once.py ]; then ./relocate-once.py; fi $(MAKE) build/make/Makefile - +build/bin/sage-logger -p \ + +build/bin/sage-logger \ "cd build/make && ./install '$@'" logs/install.log # If configure was run before, rerun it with the old arguments. diff --git a/README.md b/README.md index 70ed8d6548b..50fbdaf766e 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > "Creating a Viable Open Source Alternative to > Magma, Maple, Mathematica, and MATLAB" -> Copyright (C) 2005-2014 The Sage Development Team +> Copyright (C) 2005-2016 The Sage Development Team http://www.sagemath.org @@ -67,7 +67,7 @@ source. More detailed instructions, including how to build faster on multicore machines, are contained later in this README and in the Installation Guide: - http://www.sagemath.org/doc/installation + http://doc.sagemath.org/html/en/installation __1. Make sure you have the dependencies and 5 GB of free disk space.__ @@ -110,6 +110,11 @@ __3. cd into the Sage directory and type make:__ should work fine on all fully supported platforms. If it does not, we want to know! + If you'd like to contribute to Sage, be sure to read the + Developer's Guide: + + http://doc.sagemath.org/html/en/developer/index.html + Environment Variables --------------------- @@ -117,7 +122,7 @@ Environment Variables There are a lot of environment variables which control the install process of Sage, see: - http://sagemath.org/doc/installation/source.html#environment-variables + http://doc.sagemath.org/html/en/installation/source.html#environment-variables Implementation @@ -325,7 +330,7 @@ SAGE_ROOT Root directory (sage-x.y.z in Sage tarball) ``` For more details, see: - http://sagemath.org/doc/developer/coding_basics.html#files-and-directory-structure + http://doc.sagemath.org/html/en/developer/coding_basics.html#files-and-directory-structure Relocation @@ -343,7 +348,7 @@ Sage as root at least once prior to using the system-wide Sage as a normal user. See the Installation Guide for further information on performing a system-wide installation: - http://www.sagemath.org/doc/installation/source.html#installation-in-a-multiuser-environment + http://doc.sagemath.org/html/en/installation/source.html#installation-in-a-multiuser-environment If you find anything that doesn't work correctly after you moved the directory, please email the sage-support mailing list. diff --git a/VERSION.txt b/VERSION.txt index dd9f874a91d..62b1ea0a550 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -SageMath version 7.3.beta2, Release Date: 2016-05-28 +SageMath version 7.3.beta8, Release Date: 2016-07-14 diff --git a/build/bin/sage-download-file b/build/bin/sage-download-file index 24750aa5e8f..df5ab3a37f3 100755 --- a/build/bin/sage-download-file +++ b/build/bin/sage-download-file @@ -24,5 +24,5 @@ except ImportError: sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import sage_bootstrap -from sage_bootstrap.cmdline import SageDownloadFileApplication -SageDownloadFileApplication().run() +from sage_bootstrap.download.cmdline import run_safe +run_safe() diff --git a/build/bin/sage-logger b/build/bin/sage-logger index dfaf96a1cb3..5b30980fab7 100755 --- a/build/bin/sage-logger +++ b/build/bin/sage-logger @@ -41,13 +41,24 @@ else prefix="" fi +# Use sed option to reduce buffering, to make the output appear more +# smoothly. For GNU sed, this is the --unbuffered option. +# For BSD sed (which is also on OS X), this is the -l option. +if sed /dev/null --unbuffered ""; then + SED="sed --unbuffered" +elif sed /dev/null -l ""; then + SED="sed -l" +else + SED="sed" +fi + mkdir -p "$logdir" # Redirect stdout and stderr to a subprocess running tee. # We trap SIGINT such that SIGINT interrupts the main process being # run, not the logging. -( exec 2>&1; eval "$cmd" ) | ( trap '' SIGINT; tee -a "$logfile" ) | \ - (while read line; do echo "${prefix}${line}"; done) +( exec 2>&1; eval "$cmd" ) | \ + ( trap '' SIGINT; tee -a "$logfile" | $SED "s/^/$prefix/" ) pipestatus=(${PIPESTATUS[*]}) diff --git a/build/bin/sage-package b/build/bin/sage-package index a8d21612366..9509750ff3f 100755 --- a/build/bin/sage-package +++ b/build/bin/sage-package @@ -38,5 +38,5 @@ except ImportError: sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) import sage_bootstrap -from sage_bootstrap.cmdline import SagePkgApplication -SagePkgApplication().run() +from sage_bootstrap.cmdline import run +run() diff --git a/build/bin/sage-spkg b/build/bin/sage-spkg index 98d593c057c..b5609848f59 100755 --- a/build/bin/sage-spkg +++ b/build/bin/sage-spkg @@ -520,44 +520,36 @@ fi ################################################################## if [ "$USE_LOCAL_SCRIPTS" = yes ]; then + # New-style package echo "Setting up build directory for $PKG_NAME" cp -Rp "$PKG_SCRIPTS" "$PKG_NAME" cd "$PKG_NAME" || exit $? + + sage-uncompress-spkg -d src "$PKG_SRC" + if [ $? -ne 0 ]; then + echo >&2 "Error: failed to extract $PKG_SRC" + exit 1 + fi else + # Old-style package (deprecated) echo "Extracting package $PKG_SRC" ls -l "$PKG_SRC" -fi -sage-uncompress-spkg "$PKG_SRC" -if [ $? -ne 0 ]; then - echo >&2 "Error: failed to extract $PKG_SRC" - exit 1 -fi - -if [ "$USE_LOCAL_SCRIPTS" = yes ]; then - shopt -s nocaseglob # see trac:16415 - # Strip file extension from the archive file and hope (as per - # automake standards) that this is the same as the directory name - # inside; move the directory to "src". (This goes wrong for - # upstream package archives that have been renamed to appease some - # other Sage script, such as "latte-int", whose archive is renamed - # to "latte_int".) - mv "$(echo "$PKG_NAME_UPSTREAM" | sed 's/\.zip$//g;s/\.tgz$//g;s/\.tar\.gz$//g;s/\.tar\.xz$//g;s/\.tar\.lz$//g;s/\.tar\.bz2$//g;s/\.tar$//g')"* src - # Do not check for errors here; the "mv" fails in the situation - # mentioned above, and the package-specific script needs to do - # this work itself. - shopt -u nocaseglob - echo "Finished set up" -else - echo "Finished extraction" + sage-uncompress-spkg "$PKG_SRC" + if [ $? -ne 0 ]; then + echo >&2 "Error: failed to extract $PKG_SRC" + exit 1 + fi cd "$PKG_NAME" if [ $? -ne 0 ]; then - echo >&2 "Error: after extracting, the directory $PKG_NAME does not exist" + echo >&2 "Error: after extracting, the directory '$PKG_NAME' does not exist" exit 1 fi fi +echo "Finished extraction" + ################################################################## # The package has been extracted, prepare for installation ################################################################## diff --git a/build/bin/sage-uncompress-spkg b/build/bin/sage-uncompress-spkg index f56344c52b6..8d750278ddb 100755 --- a/build/bin/sage-uncompress-spkg +++ b/build/bin/sage-uncompress-spkg @@ -1,74 +1,264 @@ #!/usr/bin/env python -# USAGE: -# -# sage-uncompress-spkg PKG [FILE] -# -# With a single argument, unpack the file PKG to the current directory. -# -# If FILE is specified, extract FILE from PKG and send it to -# stdout. (This option is present only for backwards compatibility: -# printing the SPKG.txt file from an old-style spkg.) +""" +USAGE: + sage-uncompress-spkg [-d DIR] PKG [FILE] + +With a single argument, unpack the file PKG to the current directory. + +If a directory is specified with the -d option the contents of +the archive are extracted into that directory using the following +rules: + + 1. If the archive contains (like most) a top-level directory + which contains all other files in the archive, the contents + of that directory are extracted into DIR, ignoring the name + of the top-level directory in the archive. + + 2. If the archive does not contain a single top-level directory + then all the contents of the archive are extracted into DIR. + +The directory must not already exist. + +If FILE is specified, extract FILE from PKG and send it to +stdout. (This option is present only for backwards compatibility: +printing the SPKG.txt file from an old-style spkg.) +""" + +from __future__ import print_function + +import argparse import copy import os +import stat import sys import tarfile import zipfile -class UmaskExtractTarFile(tarfile.TarFile): +def filter_os_files(filenames): + """ + Given a list of filenames, returns a filtered list with OS-specific + special files removed. + + Currently removes OSX .DS_Store files and AppleDouble format ._ files. + """ + + files_set = set(filenames) + + def is_os_file(path): + dirname, name = os.path.split(path) + + if name == '.DS_Store': + return True + + if name.startswith('._'): + name = os.path.join(dirname, name[2:]) + # These files store extended attributes on OSX + # In principle this could be a false positive but it's + # unlikely, and to be really sure we'd have to extract the file + # (or at least the first four bytes to check for the magic number + # documented in + # http://kaiser-edv.de/documents/AppleSingle_AppleDouble.pdf) + if name in files_set or os.path.normpath(name) in files_set: + return True + + return False + + filenames = filter(lambda f: not is_os_file(f), filenames) + + if sys.version_info[0] == 2: + return filenames + else: + # Make sure to return a list on Python >= 3 + return list(filenames) + + +class SageTarFile(tarfile.TarFile): """ Sage as tarfile.TarFile, but applies the user's current umask to the - permissions of al extracted files and directories. + permissions of all extracted files and directories. This mimics the default behavior of the ``tar`` utility. See http://trac.sagemath.org/ticket/20218#comment:16 for more background. """ - def __init__(self, *args, **kwargs): - super(UmaskExtractTarFile, self).__init__(*args, **kwargs) + def __new__(cls, *args, **kwargs): + # This is is that SageTarFile() is equivalent to TarFile.open() which + # is more flexible than the basic TarFile.__init__ + inst = tarfile.TarFile.open(*args, **kwargs) + inst.__class__ = cls + return inst + def __init__(self, *args, **kwargs): # Unfortunately the only way to get the current umask is to set it # and then restore it - self.umask = os.umask(0777) + self.umask = os.umask(0o777) os.umask(self.umask) + @classmethod + def can_read(cls, filename): + """ + Given an archive filename, returns True if this class can read and + process the archive format of that file. + """ + + return tarfile.is_tarfile(filename) + + @property + def names(self): + """ + List of filenames in the archive. + + Filters out names of OS-related files that shouldn't be in the + archive (.DS_Store, etc.) + """ + + return filter_os_files(self.getnames()) + def chmod(self, tarinfo, target): tarinfo = copy.copy(tarinfo) tarinfo.mode &= ~self.umask - return super(UmaskExtractTarFile, self).chmod(tarinfo, target) + tarinfo.mode &= ~(stat.S_ISUID | stat.S_ISGID) + return super(SageTarFile, self).chmod(tarinfo, target) + def extractall(self, path='.', members=None): + """ + Same as tarfile.TarFile.extractall but allows filenames for + the members argument (like zipfile.ZipFile). + """ + if members: + name_to_member = dict([member.name, member] for member in self.getmembers()) + members = [m if isinstance(m, tarfile.TarInfo) + else name_to_member[m] + for m in members] + return super(SageTarFile, self).extractall(path=path, members=members) -if __name__ == '__main__': - filename = sys.argv[1] - if tarfile.is_tarfile(filename): - # tar file, possibly compressed: - archive = UmaskExtractTarFile.open(filename, 'r:*') - if len(sys.argv) == 2: - archive.extractall() + def extractbytes(self, member): + """ + Return the contents of the specified archive member as bytes. + + If the member does not exist, returns None. + """ + + if member in self.getnames(): + reader = self.extractfile(member) + return reader.read() + + +class SageZipFile(zipfile.ZipFile): + """ + Wrapper for zipfile.ZipFile to provide better API fidelity with + SageTarFile insofar as it's used by this script. + """ + + @classmethod + def can_read(cls, filename): + """ + Given an archive filename, returns True if this class can read and + process the archive format of that file. + """ + + return zipfile.is_zipfile(filename) + + @property + def names(self): + """ + List of filenames in the archive. + + Filters out names of OS-related files that shouldn't be in the + archive (.DS_Store, etc.) + """ + + return filter_os_files(self.namelist()) + + def extractbytes(self, member): + """ + Return the contents of the specified archive member as bytes. + + If the member does not exist, returns None. + """ + + if member in self.namelist(): + return self.read(member) + + +ARCHIVE_TYPES = [SageTarFile, SageZipFile] + + +def main(argv=None): + parser = argparse.ArgumentParser() + parser.add_argument('-d', dest='dir', metavar='DIR', + help='directory to extract archive contents into') + parser.add_argument('pkg', nargs=1, metavar='PKG', + help='the archive to extract') + parser.add_argument('file', nargs='?', metavar='FILE', + help='(deprecated) print the contents of the given ' + 'archive member to stdout') + + args = parser.parse_args(argv) + + filename = args.pkg[0] + dirname = args.dir + + for cls in ARCHIVE_TYPES: + if cls.can_read(filename): + break + else: + print('Error: Unknown file type: {}'.format(filename), + file=sys.stderr) + return 1 + + # For now ZipFile and TarFile both have default open modes that are + # acceptable + archive = cls(filename) + + if args.file: + contents = archive.extractbytes(args.file) + if contents: + print(contents, end='') + return 0 else: - member = sys.argv[2] - if member in archive.getnames(): - SPKG_TXT = archive.extractfile(member) - sys.stdout.write(SPKG_TXT.read()) - exit(1) - archive.close() - exit(0) - if zipfile.is_zipfile(filename): - # zip file: - archive = zipfile.ZipFile(filename, 'r') - if len(sys.argv) == 2: - archive.extractall() + return 1 + + top_level = None + + if dirname: + if os.path.exists(dirname): + print('Error: Directory {} already exists'.format(dirname), + file=sys.stderr) + return 1 + + top_levels = set() + for member in archive.names: + # Zip and tar files all use forward slashes as separators + # internally + top_levels.add(member.split('/', 1)[0]) + + if len(top_levels) == 1: + top_level = top_levels.pop() else: - member = sys.argv[2] - if member in archive.namelist(): - sys.stdout.write(archive.read(member)) - else: - exit(1) - archive.close() - exit(0) - else: - print ('Error: Unknown file type: {}'.format(filename)) - exit(1) + os.makedirs(dirname) + + prev_cwd = os.getcwd() + + if dirname and not top_level: + # We want to extract content into dirname, but there is not + # a single top-level directory for the tarball, so we cd into + # the extraction target first + os.chdir(dirname) + + try: + archive.extractall(members=archive.names) + if dirname and top_level: + os.rename(top_level, dirname) + finally: + os.chdir(prev_cwd) + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/build/pkgs/4ti2/dependencies b/build/pkgs/4ti2/dependencies new file mode 100644 index 00000000000..e9c206ff16e --- /dev/null +++ b/build/pkgs/4ti2/dependencies @@ -0,0 +1,5 @@ +$(MP_LIBRARY) glpk + +---------- +All lines of this file are ignored except the first. +It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile. diff --git a/build/pkgs/atlas/spkg-install b/build/pkgs/atlas/spkg-install index 50c884d2658..da965931818 100755 --- a/build/pkgs/atlas/spkg-install +++ b/build/pkgs/atlas/spkg-install @@ -143,6 +143,7 @@ if 'SAGE_ATLAS_LIB' in os.environ: paths = [ ATLAS_LIB, os.path.join(ATLAS_LIB, 'lib64'), os.path.join(ATLAS_LIB, 'lib') ] ATLAS_LIB = None + libraries = [] for libs in libraries_sets: for path in paths: if is_atlas_lib_path(path, libs): @@ -209,7 +210,7 @@ if 'SAGE_ATLAS_LIB' in os.environ: for lib in libraries + libraries_optional: symlinkOSlibrary(prefix+lib) - if 'atlas' in libs: + if 'atlas' in libraries: write_pc_file(['cblas', 'atlas'], 'cblas') write_pc_file(['f77blas', 'atlas'], 'blas') # The inclusion of cblas is not a mistake. ATLAS' lapack include diff --git a/build/pkgs/boost/SPKG.txt b/build/pkgs/boost/SPKG.txt new file mode 100644 index 00000000000..950edcbbcea --- /dev/null +++ b/build/pkgs/boost/SPKG.txt @@ -0,0 +1,17 @@ += boost = + +== Description == + +Boost provides free peer-reviewed portable C++ source libraries. + +== License == + +Boost software license (GPL compatible) + +== Upstream Contact == + +Home page: http://boost.org + +== Dependencies == + +None diff --git a/build/pkgs/boost/checksums.ini b/build/pkgs/boost/checksums.ini new file mode 100644 index 00000000000..0abdd71adb6 --- /dev/null +++ b/build/pkgs/boost/checksums.ini @@ -0,0 +1,4 @@ +tarball=boost_VERSION.tar.bz2 +sha1=f84b1a1ce764108ec3c2b7bd7704cf8dfd3c9d01 +md5=6095876341956f65f9d35939ccea1a9f +cksum=2563896741 diff --git a/build/pkgs/boost/dependencies b/build/pkgs/boost/dependencies new file mode 100644 index 00000000000..6a9b467fe73 --- /dev/null +++ b/build/pkgs/boost/dependencies @@ -0,0 +1,5 @@ +iconv zlib + +---------- +All lines of this file are ignored except the first. +It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile. diff --git a/build/pkgs/boost/package-version.txt b/build/pkgs/boost/package-version.txt new file mode 100644 index 00000000000..28d3126d141 --- /dev/null +++ b/build/pkgs/boost/package-version.txt @@ -0,0 +1 @@ +1_61_0 diff --git a/build/pkgs/boost/spkg-install b/build/pkgs/boost/spkg-install new file mode 100755 index 00000000000..e2d68f4137d --- /dev/null +++ b/build/pkgs/boost/spkg-install @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +if [ "$SAGE_LOCAL" = "" ]; then + echo "SAGE_LOCAL undefined ... exiting"; + echo "Maybe run 'sage -sh'?" + exit 1 +fi + +cd src + +echo "Running boost bootstrap" +./bootstrap.sh +if [[ $? -ne 0 ]]; then + echo >&2 "Failed to bootstrap boost." + exit 1 +fi + +echo "Building boost" +# By default this is populated by a system value. +# If the boost build system (b2, bjam and associated files under /usr/share/boost-build) +# has been installed system wide it can cause interference. +# The build will fail purely and simply without much of an explanation. +# see http://trac.sagemath.org/ticket/20776 for details. +export BOOST_BUILD_PATH="${SAGE_LOCAL}"/share/boost-build +./b2 +if [[ $? -ne 0 ]]; then + echo >&2 "Failed to build boost." + exit 1 +fi + +echo "Clean out old boost headers and libraries" +rm -rf "$SAGE_LOCAL"/include/boost +rm -rf "$SAGE_LOCAL"/lib/libboost* + +echo "Installing boost" +./b2 install --prefix="$SAGE_LOCAL" +if [[ $? -ne 0 ]]; then + echo >&2 "Failed to install boost." + exit 1 +fi + diff --git a/build/pkgs/boost/type b/build/pkgs/boost/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/boost/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/brial/checksums.ini b/build/pkgs/brial/checksums.ini index 3c43fcb5c59..d92959393df 100644 --- a/build/pkgs/brial/checksums.ini +++ b/build/pkgs/brial/checksums.ini @@ -1,4 +1,4 @@ tarball=brial-VERSION.tar.bz2 -sha1=8b30a7b331323eae094752dd7f88b398e6ed742a -md5=66275eea0654cb1eb6438a6262140885 -cksum=2952216147 +sha1=12ef021fc1236e25ff0b46680720918489fb4931 +md5=f332eaa0378e9b630f958e4dcd4ea6e8 +cksum=2509320148 diff --git a/build/pkgs/brial/package-version.txt b/build/pkgs/brial/package-version.txt index 6f890028057..7ada0d303f3 100644 --- a/build/pkgs/brial/package-version.txt +++ b/build/pkgs/brial/package-version.txt @@ -1 +1 @@ -0.8.4.3 +0.8.5 diff --git a/build/pkgs/brial/patches/build/cygwin-gnucpp.patch b/build/pkgs/brial/patches/build/cygwin-gnucpp.patch deleted file mode 100644 index 6fe26c130dd..00000000000 --- a/build/pkgs/brial/patches/build/cygwin-gnucpp.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/common.mk 2016-04-07 15:53:44.907758600 +0200 -+++ b/common.mk 2016-04-07 15:54:02.599770500 +0200 -@@ -3,6 +3,6 @@ - -I$(top_srcdir)/libpolybori/include - - AM_CFLAGS = -std=c99 --AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100 -+AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100 - - AM_DEFAULT_SOURCE_EXT = .cc diff --git a/build/pkgs/brial/patches/build/no-undefined.patch b/build/pkgs/brial/patches/build/no-undefined.patch deleted file mode 100755 index d57baa2e042..00000000000 --- a/build/pkgs/brial/patches/build/no-undefined.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index a194bd5..1038934 100755 ---- a/Makefile.am -+++ b/Makefile.am -@@ -8,8 +8,12 @@ libpolybori_la_SOURCES = - libpolybori_la_LIBADD = \ - Cudd/cudd/libcudd.la \ - libpolybori/src/libpolybori_base.la -+libpolybori_la_LDFLAGS = -no-undefined $(AM_LDFLAGS) - - EXTRA_DIST = \ - Cudd/LICENSE \ - LICENSE \ - README -+# Dummy C++ source to cause C++ linking. -+nodist_EXTRA_libpolybori_la_SOURCES = dummy.cc -+ -diff --git a/groebner/src/Makefile.am b/groebner/src/Makefile.am -index 68c7df5..d044ab8 100755 ---- a/groebner/src/Makefile.am -+++ b/groebner/src/Makefile.am -@@ -10,6 +10,8 @@ libpolybori_groebner_la_LIBADD = \ - $(M4RI_LIBS) \ - $(GD_LIBS) - -+libpolybori_groebner_la_LDFLAGS = -no-undefined $(AM_LDFLAGS) -+ - libpolybori_groebner_la_SOURCES = \ - dlex4data.cc \ - dp_asc4data.cc \ - diff --git a/build/pkgs/brial/patches/cygwin-gnucpp.patch b/build/pkgs/brial/patches/cygwin-gnucpp.patch deleted file mode 100644 index 13593a51267..00000000000 --- a/build/pkgs/brial/patches/cygwin-gnucpp.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/Cudd/cudd/Makefile.in b/Cudd/cudd/Makefile.in -index 645eb7d..760278b ---- a/Cudd/cudd/Makefile.in -+++ b/Cudd/cudd/Makefile.in -@@ -350,7 +350,7 @@ AM_CPPFLAGS = \ - -I$(top_srcdir)/libpolybori/include - - AM_CFLAGS = -std=c99 --AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100 -+AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100 - AM_DEFAULT_SOURCE_EXT = .cc - noinst_LTLIBRARIES = libcudd.la - libcudd_la_SOURCES = \ -diff --git a/common.mk b/common.mk -index 7915587..0afda02 100755 ---- a/common.mk -+++ b/common.mk -@@ -3,6 +3,6 @@ AM_CPPFLAGS = \ - -I$(top_srcdir)/libpolybori/include - - AM_CFLAGS = -std=c99 --AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100 -+AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100 - - AM_DEFAULT_SOURCE_EXT = .cc -diff --git a/groebner/src/Makefile.in b/groebner/src/Makefile.in -index ef7882c..cb3b04f ---- a/groebner/src/Makefile.in -+++ b/groebner/src/Makefile.in -@@ -372,7 +372,7 @@ AM_CPPFLAGS = \ - -I$(top_srcdir)/libpolybori/include - - AM_CFLAGS = -std=c99 --AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100 -+AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100 - AM_DEFAULT_SOURCE_EXT = .cc - lib_LTLIBRARIES = libpolybori_groebner.la - libpolybori_groebner_la_CXXFLAGS = $(AM_CXXFLAGS) $(SIMMD_CFLAGS) -diff --git a/libpolybori/src/Makefile.in b/libpolybori/src/Makefile.in -index 4e4e60a..4d110c2 ---- a/libpolybori/src/Makefile.in -+++ b/libpolybori/src/Makefile.in -@@ -323,7 +323,7 @@ AM_CPPFLAGS = \ - -I$(top_srcdir)/libpolybori/include - - AM_CFLAGS = -std=c99 --AM_CXXFLAGS = -std=c++98 -ftemplate-depth-100 -+AM_CXXFLAGS = -std=gnu++98 -ftemplate-depth-100 - AM_DEFAULT_SOURCE_EXT = .cc - noinst_LTLIBRARIES = libpolybori_base.la - libpolybori_base_la_SOURCES = \ diff --git a/build/pkgs/brial/patches/no-undefined.patch b/build/pkgs/brial/patches/no-undefined.patch deleted file mode 100755 index b0ed2470d23..00000000000 --- a/build/pkgs/brial/patches/no-undefined.patch +++ /dev/null @@ -1,190 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am -index a194bd5..1038934 100755 ---- a/Makefile.am -+++ b/Makefile.am -@@ -8,8 +8,12 @@ libpolybori_la_SOURCES = - libpolybori_la_LIBADD = \ - Cudd/cudd/libcudd.la \ - libpolybori/src/libpolybori_base.la -+libpolybori_la_LDFLAGS = -no-undefined $(AM_LDFLAGS) - - EXTRA_DIST = \ - Cudd/LICENSE \ - LICENSE \ - README -+# Dummy C++ source to cause C++ linking. -+nodist_EXTRA_libpolybori_la_SOURCES = dummy.cc -+ -diff --git a/Makefile.in b/Makefile.in -index 1091361..d09bc99 100755 ---- a/Makefile.in -+++ b/Makefile.in -@@ -141,6 +141,10 @@ AM_V_lt = $(am__v_lt_@AM_V@) - am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) - am__v_lt_0 = --silent - am__v_lt_1 = -+libpolybori_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ -+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ -+ $(AM_CXXFLAGS) $(CXXFLAGS) $(libpolybori_la_LDFLAGS) \ -+ $(LDFLAGS) -o $@ - AM_V_P = $(am__v_P_@AM_V@) - am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) - am__v_P_0 = false -@@ -154,25 +158,29 @@ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) - am__v_at_0 = @ - am__v_at_1 = - DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/libpolybori/include/polybori --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -- $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ -+depcomp = $(SHELL) $(top_srcdir)/depcomp -+am__depfiles_maybe = depfiles -+am__mv = mv -f -+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ -+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -+LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ -- $(AM_CFLAGS) $(CFLAGS) --AM_V_CC = $(am__v_CC_@AM_V@) --am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) --am__v_CC_0 = @echo " CC " $@; --am__v_CC_1 = --CCLD = $(CC) --LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ -- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ -- $(AM_LDFLAGS) $(LDFLAGS) -o $@ --AM_V_CCLD = $(am__v_CCLD_@AM_V@) --am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) --am__v_CCLD_0 = @echo " CCLD " $@; --am__v_CCLD_1 = --SOURCES = $(libpolybori_la_SOURCES) -+ $(AM_CXXFLAGS) $(CXXFLAGS) -+AM_V_CXX = $(am__v_CXX_@AM_V@) -+am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -+am__v_CXX_0 = @echo " CXX " $@; -+am__v_CXX_1 = -+CXXLD = $(CXX) -+CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ -+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ -+ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -+AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -+am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -+am__v_CXXLD_0 = @echo " CXXLD " $@; -+am__v_CXXLD_1 = -+SOURCES = $(libpolybori_la_SOURCES) \ -+ $(nodist_EXTRA_libpolybori_la_SOURCES) - DIST_SOURCES = $(libpolybori_la_SOURCES) - RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ -@@ -410,14 +418,18 @@ libpolybori_la_LIBADD = \ - Cudd/cudd/libcudd.la \ - libpolybori/src/libpolybori_base.la - -+libpolybori_la_LDFLAGS = -no-undefined $(AM_LDFLAGS) - EXTRA_DIST = \ - Cudd/LICENSE \ - LICENSE \ - README - -+# Dummy C++ source to cause C++ linking. -+nodist_EXTRA_libpolybori_la_SOURCES = dummy.cc - all: all-recursive - - .SUFFIXES: -+.SUFFIXES: .cc .lo .o .obj - am--refresh: Makefile - @: - $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -@@ -503,7 +515,7 @@ clean-libLTLIBRARIES: - } - - libpolybori.la: $(libpolybori_la_OBJECTS) $(libpolybori_la_DEPENDENCIES) $(EXTRA_libpolybori_la_DEPENDENCIES) -- $(AM_V_CCLD)$(LINK) -rpath $(libdir) $(libpolybori_la_OBJECTS) $(libpolybori_la_LIBADD) $(LIBS) -+ $(AM_V_CXXLD)$(libpolybori_la_LINK) -rpath $(libdir) $(libpolybori_la_OBJECTS) $(libpolybori_la_LIBADD) $(LIBS) - - mostlyclean-compile: - -rm -f *.$(OBJEXT) -@@ -511,6 +523,29 @@ mostlyclean-compile: - distclean-compile: - -rm -f *.tab.c - -+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dummy.Plo@am__quote@ -+ -+.cc.o: -+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< -+ -+.cc.obj: -+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -+ -+.cc.lo: -+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -+ - mostlyclean-libtool: - -rm -f *.lo - -@@ -859,6 +894,7 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - - distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) -+ -rm -rf ./$(DEPDIR) - -rm -f Makefile - distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-libtool distclean-tags -@@ -906,6 +942,7 @@ installcheck-am: - maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache -+ -rm -rf ./$(DEPDIR) - -rm -f Makefile - maintainer-clean-am: distclean-am maintainer-clean-generic - -diff --git a/groebner/src/Makefile.am b/groebner/src/Makefile.am -index 68c7df5..d044ab8 100755 ---- a/groebner/src/Makefile.am -+++ b/groebner/src/Makefile.am -@@ -10,6 +10,8 @@ libpolybori_groebner_la_LIBADD = \ - $(M4RI_LIBS) \ - $(GD_LIBS) - -+libpolybori_groebner_la_LDFLAGS = -no-undefined $(AM_LDFLAGS) -+ - libpolybori_groebner_la_SOURCES = \ - dlex4data.cc \ - dp_asc4data.cc \ -diff --git a/groebner/src/Makefile.in b/groebner/src/Makefile.in -index ef7882c..7687a38 100755 ---- a/groebner/src/Makefile.in -+++ b/groebner/src/Makefile.in -@@ -162,8 +162,8 @@ am__v_lt_0 = --silent - am__v_lt_1 = - libpolybori_groebner_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ -- $(libpolybori_groebner_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ -- $(LDFLAGS) -o $@ -+ $(libpolybori_groebner_la_CXXFLAGS) $(CXXFLAGS) \ -+ $(libpolybori_groebner_la_LDFLAGS) $(LDFLAGS) -o $@ - AM_V_P = $(am__v_P_@AM_V@) - am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) - am__v_P_0 = false -@@ -382,6 +382,7 @@ libpolybori_groebner_la_LIBADD = \ - $(M4RI_LIBS) \ - $(GD_LIBS) - -+libpolybori_groebner_la_LDFLAGS = -no-undefined $(AM_LDFLAGS) - libpolybori_groebner_la_SOURCES = \ - dlex4data.cc \ - dp_asc4data.cc \ diff --git a/build/pkgs/brial/spkg-install b/build/pkgs/brial/spkg-install index 9e96bb22502..627e294f9c6 100755 --- a/build/pkgs/brial/spkg-install +++ b/build/pkgs/brial/spkg-install @@ -22,8 +22,6 @@ for patch in ../patches/*.patch; do fi done -touch aclocal.m4 configure Makefile.in - ./configure \ --prefix="$SAGE_LOCAL" \ --libdir="$SAGE_LOCAL/lib" \ diff --git a/build/pkgs/cddlib/package-version.txt b/build/pkgs/cddlib/package-version.txt index 16d9b92a12c..d0188e61702 100644 --- a/build/pkgs/cddlib/package-version.txt +++ b/build/pkgs/cddlib/package-version.txt @@ -1 +1 @@ -094g.p0 +094g.p1 diff --git a/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.am.patch b/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.am.patch index 786a2f8429a..ec0be4208c8 100644 --- a/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.am.patch +++ b/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.am.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/lib-src-gmp/Makefile.am b/src/lib-src-gmp/Makefile.am +diff --git a/lib-src-gmp/Makefile.am b/lib-src-gmp/Makefile.am index b3ab11a..a9673b8 100644 ---- a/src.bak/lib-src-gmp/Makefile.am -+++ b/src/lib-src-gmp/Makefile.am +--- a/lib-src-gmp/Makefile.am ++++ b/lib-src-gmp/Makefile.am @@ -13,7 +13,8 @@ cddmp_f.c \ cddio_f.c \ cddlib_f.c \ diff --git a/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch b/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch index 4ceaa5775f5..1c83482d60f 100644 --- a/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch +++ b/build/pkgs/cddlib/patches/lib-src-gmp_Makefile.in.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/lib-src-gmp/Makefile.in b/src/lib-src-gmp/Makefile.in +diff --git a/lib-src-gmp/Makefile.in b/lib-src-gmp/Makefile.in index 4ab9342..93ff335 100644 ---- a/src.bak/lib-src-gmp/Makefile.in -+++ b/src/lib-src-gmp/Makefile.in +--- a/lib-src-gmp/Makefile.in ++++ b/lib-src-gmp/Makefile.in @@ -54,7 +54,7 @@ libcddgmp_la_LIBADD = am_libcddgmp_la_OBJECTS = cddcore.lo cddlp.lo cddmp.lo cddio.lo \ diff --git a/build/pkgs/cddlib/patches/lib-src_Makefile.am.patch b/build/pkgs/cddlib/patches/lib-src_Makefile.am.patch index e3df16691b0..d5a1062fe58 100644 --- a/build/pkgs/cddlib/patches/lib-src_Makefile.am.patch +++ b/build/pkgs/cddlib/patches/lib-src_Makefile.am.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/lib-src/Makefile.am b/src/lib-src/Makefile.am +diff --git a/lib-src/Makefile.am b/lib-src/Makefile.am index fe08dc3..5b964c6 100644 ---- a/src.bak/lib-src/Makefile.am -+++ b/src/lib-src/Makefile.am +--- a/lib-src/Makefile.am ++++ b/lib-src/Makefile.am @@ -7,7 +7,8 @@ cddmp.c \ cddio.c \ cddlib.c \ diff --git a/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch b/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch index d374a70ac0c..bfe6c1c46a9 100644 --- a/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch +++ b/build/pkgs/cddlib/patches/lib-src_Makefile.in.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/lib-src/Makefile.in b/src/lib-src/Makefile.in +diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in index bd3c2b5..ccf4a6c 100644 ---- a/src.bak/lib-src/Makefile.in -+++ b/src/lib-src/Makefile.in +--- a/lib-src/Makefile.in ++++ b/lib-src/Makefile.in @@ -53,7 +53,7 @@ libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) libcdd_la_LIBADD = diff --git a/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch b/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch index 96b12ce1a41..9fea06fe085 100644 --- a/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch +++ b/build/pkgs/cddlib/patches/lib-src_cddcore.c.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/lib-src/cddcore.c b/src/lib-src/cddcore.c +diff --git a/lib-src/cddcore.c b/lib-src/cddcore.c index 9644788..a029bc3 100644 ---- a/src.bak/lib-src/cddcore.c -+++ b/src/lib-src/cddcore.c +--- a/lib-src/cddcore.c ++++ b/lib-src/cddcore.c @@ -17,6 +17,7 @@ #include #include diff --git a/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch b/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch index deabc6eeeab..ea054f03e1a 100644 --- a/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch +++ b/build/pkgs/cddlib/patches/lib-src_cddlp.c.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/lib-src/cddlp.c b/src/lib-src/cddlp.c +diff --git a/lib-src/cddlp.c b/lib-src/cddlp.c index 855b197..dd1268b 100644 ---- a/src.bak/lib-src/cddlp.c -+++ b/src/lib-src/cddlp.c +--- a/lib-src/cddlp.c ++++ b/lib-src/cddlp.c @@ -13,6 +13,7 @@ #include "setoper.h" /* set operation library header (Ver. May 18, 2000 or later) */ diff --git a/build/pkgs/cddlib/patches/src-gmp_Makefile.am.patch b/build/pkgs/cddlib/patches/src-gmp_Makefile.am.patch index 3b500872206..e6065d828c2 100644 --- a/build/pkgs/cddlib/patches/src-gmp_Makefile.am.patch +++ b/build/pkgs/cddlib/patches/src-gmp_Makefile.am.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/src-gmp/Makefile.am b/src/src-gmp/Makefile.am +diff --git a/src-gmp/Makefile.am b/src-gmp/Makefile.am index e4dbb86..e579d71 100644 ---- a/src.bak/src-gmp/Makefile.am -+++ b/src/src-gmp/Makefile.am +--- a/src-gmp/Makefile.am ++++ b/src-gmp/Makefile.am @@ -11,7 +11,8 @@ testcdd2_gmp \ testlp1_gmp \ diff --git a/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch b/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch index 815391bf8ae..ac6955009f2 100644 --- a/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch +++ b/build/pkgs/cddlib/patches/src-gmp_Makefile.in.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/src-gmp/Makefile.in b/src/src-gmp/Makefile.in +diff --git a/src-gmp/Makefile.in b/src-gmp/Makefile.in index f88c83f..3470dc9 100644 ---- a/src.bak/src-gmp/Makefile.in -+++ b/src/src-gmp/Makefile.in +--- a/src-gmp/Makefile.in ++++ b/src-gmp/Makefile.in @@ -37,7 +37,8 @@ projection_gmp$(EXEEXT) adjacency_gmp$(EXEEXT) \ allfaces_gmp$(EXEEXT) testshoot_gmp$(EXEEXT) \ diff --git a/build/pkgs/cddlib/patches/src_Makefile.am.patch b/build/pkgs/cddlib/patches/src_Makefile.am.patch index 80fe39f1e62..d339bfdb265 100644 --- a/build/pkgs/cddlib/patches/src_Makefile.am.patch +++ b/build/pkgs/cddlib/patches/src_Makefile.am.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/src/Makefile.am b/src/src/Makefile.am +diff --git a/src/Makefile.am b/src/Makefile.am index 17f8625..ad50af2 100644 ---- a/src.bak/src/Makefile.am -+++ b/src/src/Makefile.am +--- a/src/Makefile.am ++++ b/src/Makefile.am @@ -11,7 +11,8 @@ testshoot \ testcdd2 \ testlp1 \ diff --git a/build/pkgs/cddlib/patches/src_Makefile.in.patch b/build/pkgs/cddlib/patches/src_Makefile.in.patch index 91f80b61f7a..b7dd74c08bd 100644 --- a/build/pkgs/cddlib/patches/src_Makefile.in.patch +++ b/build/pkgs/cddlib/patches/src_Makefile.in.patch @@ -1,7 +1,7 @@ -diff --git a/src.bak/src/Makefile.in b/src/src/Makefile.in +diff --git a/src/Makefile.in b/src/Makefile.in index 8385e4d..b9f6a26 100644 ---- a/src.bak/src/Makefile.in -+++ b/src/src/Makefile.in +--- a/src/Makefile.in ++++ b/src/Makefile.in @@ -36,7 +36,7 @@ bin_PROGRAMS = scdd$(EXEEXT) lcdd$(EXEEXT) redcheck$(EXEEXT) \ fourier$(EXEEXT) projection$(EXEEXT) adjacency$(EXEEXT) \ allfaces$(EXEEXT) testcdd1$(EXEEXT) testshoot$(EXEEXT) \ diff --git a/build/pkgs/cddlib/spkg-install b/build/pkgs/cddlib/spkg-install index a36d9de6684..d70d31b0c07 100755 --- a/build/pkgs/cddlib/spkg-install +++ b/build/pkgs/cddlib/spkg-install @@ -38,7 +38,7 @@ for patch in ../patches/*.patch; do if echo "$patch" | grep 'Makefile.am.patch$' > /dev/null; then continue fi - patch -p2 < "$patch" || + patch -p1 < "$patch" || die "Error patching cddlib" done diff --git a/build/pkgs/configure/checksums.ini b/build/pkgs/configure/checksums.ini index 8f58dc383f6..8cd82771687 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=6e250d8c145ce4d2561d0e33c01f26f08bf3b561 -md5=955f5d5678d0276c9b9b2181963bc7ec -cksum=3564541652 +sha1=9bea2597a9ed11310446ffb2fef3f8df71893e75 +md5=aefa1d5044a5ed8eda8236bb637bb74c +cksum=3931049725 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index f2c1eeebb3f..c4597e53752 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -167 +173 diff --git a/build/pkgs/ecl/package-version.txt b/build/pkgs/ecl/package-version.txt index 38dc13a4277..750c3957660 100644 --- a/build/pkgs/ecl/package-version.txt +++ b/build/pkgs/ecl/package-version.txt @@ -1 +1 @@ -16.1.2.p0 +16.1.2.p1 diff --git a/build/pkgs/ecl/patches/16.1.2-getcwd.patch b/build/pkgs/ecl/patches/16.1.2-getcwd.patch new file mode 100644 index 00000000000..6e186a1d627 --- /dev/null +++ b/build/pkgs/ecl/patches/16.1.2-getcwd.patch @@ -0,0 +1,14 @@ +Backport of fix in master ecl repo. See trac 20845. +diff --git a/src/c/unixfsys.d b/src/c/unixfsys.d +index d3dd4d1..287eded 100644 +--- a/src/c/unixfsys.d ++++ b/src/c/unixfsys.d +@@ -158,7 +158,7 @@ current_dir(void) { + output = ecl_alloc_adjustable_base_string(size); + ecl_disable_interrupts(); + ok = getcwd((char*)output->base_string.self, size); +- if (ok == NULL && errno != ENAMETOOLONG) { ++ if (ok == NULL && errno != ERANGE) { + perror("ext::getcwd error"); + ecl_internal_error("Can't work without CWD"); + } diff --git a/build/pkgs/flask_autoindex/spkg-install b/build/pkgs/flask_autoindex/spkg-install index 2ae379ae348..afb3f302fd1 100755 --- a/build/pkgs/flask_autoindex/spkg-install +++ b/build/pkgs/flask_autoindex/spkg-install @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd Flask* && python setup.py install +cd src && python setup.py install diff --git a/build/pkgs/flask_babel/spkg-install b/build/pkgs/flask_babel/spkg-install index 2ae379ae348..afb3f302fd1 100755 --- a/build/pkgs/flask_babel/spkg-install +++ b/build/pkgs/flask_babel/spkg-install @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd Flask* && python setup.py install +cd src && python setup.py install diff --git a/build/pkgs/flask_oldsessions/spkg-install b/build/pkgs/flask_oldsessions/spkg-install index 56301585aa0..afb3f302fd1 100755 --- a/build/pkgs/flask_oldsessions/spkg-install +++ b/build/pkgs/flask_oldsessions/spkg-install @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd *flask-oldsessions* && python setup.py install +cd src && python setup.py install diff --git a/build/pkgs/flask_openid/spkg-install b/build/pkgs/flask_openid/spkg-install index 2ae379ae348..afb3f302fd1 100755 --- a/build/pkgs/flask_openid/spkg-install +++ b/build/pkgs/flask_openid/spkg-install @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd Flask* && python setup.py install +cd src && python setup.py install diff --git a/build/pkgs/flask_silk/spkg-install b/build/pkgs/flask_silk/spkg-install index 2ae379ae348..afb3f302fd1 100755 --- a/build/pkgs/flask_silk/spkg-install +++ b/build/pkgs/flask_silk/spkg-install @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd Flask* && python setup.py install +cd src && python setup.py install diff --git a/build/pkgs/frobby/SPKG.txt b/build/pkgs/frobby/SPKG.txt new file mode 100644 index 00000000000..b135875b602 --- /dev/null +++ b/build/pkgs/frobby/SPKG.txt @@ -0,0 +1,55 @@ += Frobby = + +== Description == +The software package Frobby provides a number of computations on +monomial ideals. The current main feature is the socle of a monomial +ideal, which is largely equivalent to computing the maximal standard +monomials, the Alexander dual or the irreducible decomposition. + +Operations on monomial ideals are much faster than algorithms designed +for ideals in general, which is what makes a specialized library for +these operations on monomial ideals useful. + +== License == + * GPL version 2.0 or later + +== Maintainers == + * Bjarke Hammersholt Roune (www.broune.com) + +== Upstream Contact == + * Bjarke Hammersholt Roune (www.broune.com) + +== Dependencies == + * GMP built with support for C++ + +== Special Update/Build instructions == +Download Frobby at www.broune.com/ and then type "make spkg VER=blah" which wil create an spkg +named frobby-VER.spkg in bin/. The files related to doing this is in the sage/ sub-directory of the +Frobby source distribution. + +== Changelog == + +=== frobby-0.9.0.p2 (Dima Pasechnik, Jun 30, 2016) === + * convertion to new-style package + * integration of Macaulay2 patches + * fix linking (rpath) + +=== frobby-0.9.0.p1 (Dima Pasechnik, Sept 7, 2013) === + * added for getpid() + +=== frobby-0.9.0 (Mike Hansen, May 24th, 2012) === + * #13007: Update to 0.9.0. + * Add a patch to the Makefile so that the build succeeds with SAGE_CHECK="yes" + +=== frobby-0.7.6 (Bjarke Hammersholt Roune, May 20th, 2008) === + * Move to Frobby 0.7.6 with Makefile improvements by Michale Abshoff. + +=== frobby-0.7.5.p1 (Michael Abshoff, May 19th, 2008) === + * fix the main Makefile to set include and library directories correctly when some env variables are defined + +=== frobby-0.7.5.p0 (Michael Abshoff, May 19th, 2008) === + * various cleanups, i.e. repo, .hgignore, missing SPKG.txt sections + * move all sources into src + +=== frobby-0.7.5 (Bjarke Hammersholt Roune) === + * initial version diff --git a/build/pkgs/frobby/checksums.ini b/build/pkgs/frobby/checksums.ini new file mode 100644 index 00000000000..8d2575db5d2 --- /dev/null +++ b/build/pkgs/frobby/checksums.ini @@ -0,0 +1,4 @@ +tarball=frobby_v0.9.0.tar.gz +sha1=513b6e2ef8e8670c0518d168c2e554df1f8d79b4 +md5=2204f340dad8fb7be156f9f7c403c4a0 +cksum=2889611419 diff --git a/build/pkgs/frobby/dependencies b/build/pkgs/frobby/dependencies new file mode 100644 index 00000000000..a66f97e718b --- /dev/null +++ b/build/pkgs/frobby/dependencies @@ -0,0 +1 @@ +$(MP_LIBRARY) diff --git a/build/pkgs/frobby/package-version.txt b/build/pkgs/frobby/package-version.txt new file mode 100644 index 00000000000..53ce79ccae7 --- /dev/null +++ b/build/pkgs/frobby/package-version.txt @@ -0,0 +1 @@ +0.9.0.p2 diff --git a/build/pkgs/frobby/patches/HashMap.h.patch b/build/pkgs/frobby/patches/HashMap.h.patch new file mode 100644 index 00000000000..894ecf8f407 --- /dev/null +++ b/build/pkgs/frobby/patches/HashMap.h.patch @@ -0,0 +1,31 @@ +--- /tmp/HashMap.h 2011-09-23 16:09:12.000000000 -0400 ++++ src/HashMap.h 2015-06-06 12:56:15.000000000 -0400 +@@ -35,10 +35,16 @@ + class FrobbyHash {}; + + // ********************************************************* +-#ifdef __GNUC__ // Only GCC defines this macro ++#if defined(__GNUC__) || defined(__clang__) ++#if 0 + #include "hash_map/hash_map" + #include ++#endif ++#include ++template ++ class HashMap : public std::unordered_map> { }; + ++#if 0 + template<> + class FrobbyHash : public __gnu_cxx::hash { + }; +@@ -47,9 +53,8 @@ + class HashMap : public __gnu_cxx::hash_map > { + }; +- ++#endif + #else +- + // ********************************************************* + #ifdef _MSC_VER // Only Microsoft C++ defines this macro + #include diff --git a/build/pkgs/frobby/patches/Makefile.patch b/build/pkgs/frobby/patches/Makefile.patch new file mode 100644 index 00000000000..cdc97c192d4 --- /dev/null +++ b/build/pkgs/frobby/patches/Makefile.patch @@ -0,0 +1,30 @@ +--- Makefile.orig 2011-09-23 21:09:12.000000000 +0100 ++++ Makefile 2016-06-30 07:47:38.314034517 +0100 +@@ -70,8 +70,8 @@ + BIN_INSTALL_DIR = "/usr/local/bin/" + endif + +-cflags = $(CFLAGS) $(CPPFLAGS) -Wall -ansi -pedantic -I $(GMP_INC_DIR) \ +- -Wno-uninitialized -Wno-unused-parameter ++cflags = $(CFLAGS) $(CPPFLAGS) -Wall -I $(GMP_INC_DIR) \ ++ -Wno-uninitialized -Wno-unused-parameter -std=c++11 + program = frobby + library = libfrobby.a + benchArgs = $(FROBBYARGS) +@@ -93,7 +93,7 @@ + ifeq ($(MODE), debug) + rawSources := $(rawSources) $(rawTests) + outdir = bin/debug/ +- cflags += -g -D DEBUG -fno-inline -Werror -Wextra -Wno-uninitialized \ ++ cflags += -g -D DEBUG -fno-inline -Wextra -Wno-uninitialized \ + -Wno-unused-parameter + MATCH=true + endif +@@ -217,6 +217,7 @@ + $(patsubst $(outdir)main.o,,$(objs)) + else + ar crs bin/$(library) $(patsubst $(outdir)main.o,,$(objs)) ++ $(RANLIB) bin/$(library) + endif + + # Compile and output object files. diff --git a/build/pkgs/frobby/patches/StatisticsStrategy.cpp.patch b/build/pkgs/frobby/patches/StatisticsStrategy.cpp.patch new file mode 100644 index 00000000000..a07e1fdcd99 --- /dev/null +++ b/build/pkgs/frobby/patches/StatisticsStrategy.cpp.patch @@ -0,0 +1,11 @@ +--- /tmp/StatisticsStrategy.cpp 2011-09-23 16:09:12.000000000 -0400 ++++ src/StatisticsStrategy.cpp 2013-05-18 17:22:09.000000000 -0400 +@@ -140,7 +140,7 @@ + if (_nodeCount == 0) + return 0.0; + else { +- mpz_class q = mpq_class(_subGenSum) / _nodeCount; ++ mpq_class q = mpq_class(_subGenSum) / _nodeCount; + return q.get_d(); + } + } diff --git a/build/pkgs/frobby/patches/StringStream.patch b/build/pkgs/frobby/patches/StringStream.patch new file mode 100644 index 00000000000..39ca718ecb5 --- /dev/null +++ b/build/pkgs/frobby/patches/StringStream.patch @@ -0,0 +1,24 @@ +--- /tmp/FrobbyStringStream.cpp 2011-09-23 15:09:12.000000000 -0500 ++++ src/FrobbyStringStream.cpp 2013-05-10 11:42:01.840492200 -0500 +@@ -41,6 +41,11 @@ + return *this; + } + ++FrobbyStringStream& FrobbyStringStream::operator<<(unsigned long long integer) { ++ appendIntegerToString(_str, integer); ++ return *this; ++} ++ + FrobbyStringStream& FrobbyStringStream::operator<<(unsigned long integer) { + appendIntegerToString(_str, integer); + return *this; +--- /tmp/FrobbyStringStream.h 2011-09-23 15:09:12.000000000 -0500 ++++ src/FrobbyStringStream.h 2013-05-10 11:42:01.843492400 -0500 +@@ -25,6 +25,7 @@ + used for operations that need to be efficient. */ + class FrobbyStringStream { + public: ++ FrobbyStringStream& operator<<(unsigned long long integer); + FrobbyStringStream& operator<<(unsigned long integer); + FrobbyStringStream& operator<<(unsigned int integer); + FrobbyStringStream& operator<<(const mpz_class& integer); diff --git a/build/pkgs/frobby/patches/Term.h.patch b/build/pkgs/frobby/patches/Term.h.patch new file mode 100644 index 00000000000..03ff5ea4215 --- /dev/null +++ b/build/pkgs/frobby/patches/Term.h.patch @@ -0,0 +1,24 @@ +--- /tmp/Term.h 2011-09-23 15:09:12.000000000 -0500 ++++ src/Term.h 2013-05-10 11:42:01.846492600 -0500 +@@ -99,6 +99,10 @@ + ASSERT(offset < _varCount); + return _exponents[offset]; + } ++ Exponent operator[](unsigned long long offset) const { ++ ASSERT(offset < _varCount); ++ return _exponents[offset]; ++ } + + Exponent& operator[](int offset) { + ASSERT(0 <= offset); +@@ -113,6 +117,10 @@ + ASSERT(offset < _varCount); + return _exponents[offset]; + } ++ Exponent& operator[](unsigned long long offset) { ++ ASSERT(offset < _varCount); ++ return _exponents[offset]; ++ } + + bool operator==(const Term& term) const { + ASSERT(_varCount == term._varCount); diff --git a/build/pkgs/frobby/patches/VarNames.h.patch b/build/pkgs/frobby/patches/VarNames.h.patch new file mode 100644 index 00000000000..234ceb2c0d0 --- /dev/null +++ b/build/pkgs/frobby/patches/VarNames.h.patch @@ -0,0 +1,21 @@ +--- /tmp/VarNames.h 2011-09-23 16:09:12.000000000 -0400 ++++ src/VarNames.h 2015-06-06 12:36:28.000000000 -0400 +@@ -21,7 +21,7 @@ + + #include + #include +- ++#include + class Scanner; + + /** Defines the variables of a polynomial ring and facilities IO +@@ -102,7 +102,8 @@ + private: + static bool compareNames(const string* a, const string* b); + +- typedef HashMap VarNameMap; ++ typedef unordered_map VarNameMap; ++ //typedef HashMap VarNameMap; + VarNameMap _nameToIndex; + vector _indexToName; + }; diff --git a/build/pkgs/frobby/patches/main.cpp.patch b/build/pkgs/frobby/patches/main.cpp.patch new file mode 100644 index 00000000000..9bc117ca17e --- /dev/null +++ b/build/pkgs/frobby/patches/main.cpp.patch @@ -0,0 +1,13 @@ +*** /tmp/main.cpp Sat Sep 7 14:09:12 2013 +--- src/main.cpp Sat Sep 7 14:09:44 2013 +*************** +*** 24,29 **** +--- 24,31 ---- + + #include + #include ++ #include /* needed for getpid */ ++ + + /** This function runs the Frobby console interface. the ::main + function calls this function after having set up DEBUG-specific diff --git a/build/pkgs/frobby/patches/randomDataGenerators.cpp.patch b/build/pkgs/frobby/patches/randomDataGenerators.cpp.patch new file mode 100644 index 00000000000..d65d3aa77a6 --- /dev/null +++ b/build/pkgs/frobby/patches/randomDataGenerators.cpp.patch @@ -0,0 +1,12 @@ +*** /tmp/randomDataGenerators.cpp Sat Sep 7 14:09:19 2013 +--- src/randomDataGenerators.cpp Sat Sep 7 14:10:19 2013 +*************** +*** 25,30 **** +--- 25,31 ---- + + #include + #include ++ #include /* needed for getpid */ + + void generateLinkedListIdeal(BigIdeal& ideal, size_t variableCount) { + VarNames names(variableCount); diff --git a/build/pkgs/frobby/patches/stdinc.h.patch b/build/pkgs/frobby/patches/stdinc.h.patch new file mode 100644 index 00000000000..3744f21da9d --- /dev/null +++ b/build/pkgs/frobby/patches/stdinc.h.patch @@ -0,0 +1,10 @@ +--- /tmp/stdinc.h 2011-09-23 16:09:12.000000000 -0400 ++++ src/stdinc.h 2015-06-02 21:27:34.000000000 -0400 +@@ -29,6 +29,7 @@ + // Some versions of GMP do not define gmp_fprintf unless cstdio is + // included first, so we have to include it here. + #include ++#include + + #include + #include diff --git a/build/pkgs/frobby/patches/tests.patch b/build/pkgs/frobby/patches/tests.patch new file mode 100644 index 00000000000..81e02cef181 --- /dev/null +++ b/build/pkgs/frobby/patches/tests.patch @@ -0,0 +1,53 @@ +--- /tmp/test/messages/runtest 2011-09-23 15:09:12.000000000 -0500 ++++ test/messages/runtest 2013-05-10 11:42:01.825491400 -0500 +@@ -9,7 +9,7 @@ + action="$1" + shift + +-tmpFile="/tmp/errorTestHelperTmp" ++tmpFile="./errorTestHelperTmp" + echo "$1" > $tmpFile + shift + +--- /tmp/test/testScripts/run_euler_test 2011-09-23 15:09:13.000000000 -0500 ++++ test/testScripts/run_euler_test 2013-05-10 11:42:01.829491600 -0500 +@@ -3,9 +3,9 @@ + frobby=../../bin/frobby + testhelper=../testScripts/testhelper + test="$1" +-tmpFile=/tmp/frobbyEulerRadicalTmp +-tmpFileInverted=/tmp/frobbyEulerRadicalInvertedTmp +-tmpFileTransposed=/tmp/frobbyEulerRadicalTransposedTmp ++tmpFile=./frobbyEulerRadicalTmp ++tmpFileInverted=./frobbyEulerRadicalInvertedTmp ++tmpFileTransposed=./frobbyEulerRadicalTransposedTmp + genPivots="rarevar popvar maxsupp minsupp any random rarest raremax" + stdPivots="popvar rarevar popgcd any random" + shift +--- /tmp/test/testScripts/testhelper 2011-09-23 15:09:13.000000000 -0500 ++++ test/testScripts/testhelper 2013-05-10 11:42:01.833491800 -0500 +@@ -57,10 +57,10 @@ + + origParams="$*" # used for debug output below + origFrobby="../../bin/frobby" +-origFrobbyOut="/tmp/frobbyTestScriptTemporary_standardOutput" +-origFrobbyErr="/tmp/frobbyTestScriptTemporary_standardError" +-frobbyChangedErr="/tmp/frobbyTestScriptTemporary_standardErrorChanged" +-frobbyChangedInput="/tmp/frobbyTestScriptTemporary_standardInput" ++origFrobbyOut="./frobbyTestScriptTemporary_standardOutput" ++origFrobbyErr="./frobbyTestScriptTemporary_standardError" ++frobbyChangedErr="./frobbyTestScriptTemporary_standardErrorChanged" ++frobbyChangedInput="./frobbyTestScriptTemporary_standardInput" + + frobby="$origFrobby" + frobbyOut="$origFrobbyOut" +--- /tmp/test/internal/runtests 2011-09-23 13:09:12.000000000 -0700 ++++ test/internal/runtests 2014-07-30 10:46:31.033944047 -0700 +@@ -7,6 +7,6 @@ + fi + + $frobby test 2> /dev/null > /dev/null +-if [ $? == 0 ]; then exit 0; fi ++if [ $? = 0 ]; then exit 0; fi + echo "*** Internal test failed, rerunning tests with output ***" + $frobby test diff --git a/build/pkgs/frobby/spkg-check b/build/pkgs/frobby/spkg-check new file mode 100755 index 00000000000..9717d90400b --- /dev/null +++ b/build/pkgs/frobby/spkg-check @@ -0,0 +1,14 @@ +#!/usr/bin/env sh + +if [ "$SAGE_LOCAL" = "" ]; then + echo "SAGE_LOCAL undefined ... exiting"; + echo "Maybe run 'sage -sh'?" + exit 1 +fi + +GMP_INC_DIR="$SAGE_LOCAL/include"; export GMP_INC_DIR +ldflags="-L$SAGE_LOCAL/lib/ -lgmpxx -lgmp"; export ldflags + +cd src/ +$MAKE test MODE=debug # run tests with assertions turned on +$MAKE test MODE=release # test the binaries used by Sage diff --git a/build/pkgs/frobby/spkg-install b/build/pkgs/frobby/spkg-install new file mode 100755 index 00000000000..056665be8d7 --- /dev/null +++ b/build/pkgs/frobby/spkg-install @@ -0,0 +1,44 @@ +#!/usr/bin/env sh + +if [ "$SAGE_LOCAL" = "" ]; then + echo "SAGE_LOCAL undefined ... exiting"; + echo "Maybe run 'sage -sh'?" + exit 1 +fi + +rm -rf "$SAGE_LOCAL/bin/frobby" + +GMP_INC_DIR="$SAGE_LOCAL/include"; export GMP_INC_DIR +ldflags="-Wl,-rpath,$SAGE_LOCAL/lib -L$SAGE_LOCAL/lib/ -lgmpxx -lgmp"; export ldflags + +cd src + +# Apply fixes to upstream source +echo "Applying patches..." +for patch in ../patches/*.patch; do + [ -r "$patch" ] || continue # Skip non-existing or non-readable patches + patch -p0 <"$patch" + if [ $? -ne 0 ]; then + echo >&2 "Error applying '$patch'" + exit 1 + fi +done + +$MAKE MODE=release + +if [ $? -ne 0 ]; then + echo "Error building Frobby." + exit 1 +fi + +if [ ! -f bin/release/frobby ]; then + echo "Frobby executable not found." + exit 1 +fi + +$CP bin/release/frobby "$SAGE_LOCAL/bin/" + +if [ ! -f "$SAGE_LOCAL/bin/frobby" ]; then + echo "Frobby executable not copied." + exit 1 +fi diff --git a/build/pkgs/frobby/type b/build/pkgs/frobby/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/frobby/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/gc/spkg-check b/build/pkgs/gc/spkg-check index d16a6fc71e5..4cbee345046 100755 --- a/build/pkgs/gc/spkg-check +++ b/build/pkgs/gc/spkg-check @@ -6,7 +6,7 @@ if [ -z "$SAGE_LOCAL" ]; then exit 1 fi -cd gc-* +cd src if [ "$SAGE_DEBUG" = "yes" ]; then export CFLAGS="-O0 -g $CFLAGS" diff --git a/build/pkgs/gc/spkg-install b/build/pkgs/gc/spkg-install index 64ece6bdbe2..0498faa4dc9 100755 --- a/build/pkgs/gc/spkg-install +++ b/build/pkgs/gc/spkg-install @@ -6,7 +6,7 @@ if [ -z "$SAGE_LOCAL" ]; then exit 1 fi -cd gc-* +cd src # Apply patches. for patch in ../patches/*.patch; do diff --git a/build/pkgs/gfan/package-version.txt b/build/pkgs/gfan/package-version.txt index 77c6d1f5d01..b29450b8d51 100644 --- a/build/pkgs/gfan/package-version.txt +++ b/build/pkgs/gfan/package-version.txt @@ -1 +1 @@ -0.5.p0 +0.5.p1 diff --git a/build/pkgs/gfan/patches/Makefile.patch b/build/pkgs/gfan/patches/Makefile.patch index 7fec31f427e..804315ecfc2 100644 --- a/build/pkgs/gfan/patches/Makefile.patch +++ b/build/pkgs/gfan/patches/Makefile.patch @@ -1,5 +1,5 @@ ---- Makefile.orig 2012-07-11 11:50:44.733022911 +1200 -+++ Makefile 2012-07-11 12:20:02.644997882 +1200 +--- a/Makefile.orig 2012-07-11 11:50:44.733022911 +1200 ++++ b/Makefile 2012-07-11 12:20:02.644997882 +1200 @@ -75,18 +75,10 @@ MKDIR=mkdir -p diff --git a/build/pkgs/gfan/patches/app_minkowski.cpp.patch b/build/pkgs/gfan/patches/app_minkowski.cpp.patch index 799fd371e0c..0ca809b09b8 100644 --- a/build/pkgs/gfan/patches/app_minkowski.cpp.patch +++ b/build/pkgs/gfan/patches/app_minkowski.cpp.patch @@ -1,5 +1,5 @@ ---- app_minkowski.cpp.orig 2011-01-24 06:21:47.000000000 +1300 -+++ app_minkowski.cpp 2012-07-23 11:43:29.172776129 +1200 +--- a/app_minkowski.cpp.orig 2011-01-24 06:21:47.000000000 +1300 ++++ b/app_minkowski.cpp 2012-07-23 11:43:29.172776129 +1200 @@ -64,9 +64,9 @@ registerOptions(); optionPartOne.hide(); diff --git a/build/pkgs/gfan/spkg-install b/build/pkgs/gfan/spkg-install index 75245f4d9f1..a33cf66b865 100755 --- a/build/pkgs/gfan/spkg-install +++ b/build/pkgs/gfan/spkg-install @@ -33,14 +33,14 @@ cd src # Patch the Makefile so it can build in Sage: echo "Copying a revised Makefile, to improve portability..." -patch -p0 <../patches/Makefile.patch +patch -p1 <../patches/Makefile.patch if [[ $? -ne 0 ]]; then echo >&2 "Error: Patch to improve portability did not copy correctly." exit 1 fi echo "Copying patched file to fix an issue with GCC 4.7.0..." -patch -p0 <../patches/app_minkowski.cpp.patch +patch -p1 <../patches/app_minkowski.cpp.patch if [[ $? -ne 0 ]]; then echo >&2 "Error: Patch to fix GCC 4.7.0 issue did not copy correctly." exit 1 diff --git a/build/pkgs/git_trac/checksums.ini b/build/pkgs/git_trac/checksums.ini index 4a77276e95b..454c11bad69 100644 --- a/build/pkgs/git_trac/checksums.ini +++ b/build/pkgs/git_trac/checksums.ini @@ -1,4 +1,4 @@ tarball=git_trac-VERSION.tar.bz2 -sha1=90c1e2c279fcac22b050c62253cfb53c8fe9c9c1 -md5=1f6e913132aa16b19cb5c99ee921f3f5 -cksum=774035580 +sha1=137c70eb041c62de31e543e5b76fb6d30d044a58 +md5=7783a2da02dbb9156ccb0ff5b7cff9bc +cksum=2994355167 diff --git a/build/pkgs/git_trac/package-version.txt b/build/pkgs/git_trac/package-version.txt index 86c0d2d21a8..50c46623b4c 100644 --- a/build/pkgs/git_trac/package-version.txt +++ b/build/pkgs/git_trac/package-version.txt @@ -1 +1 @@ -20150522 +20160625 diff --git a/build/pkgs/ipython/checksums.ini b/build/pkgs/ipython/checksums.ini index 3cc855b975f..0bc3c31724d 100644 --- a/build/pkgs/ipython/checksums.ini +++ b/build/pkgs/ipython/checksums.ini @@ -1,4 +1,4 @@ tarball=ipython-VERSION.tar.gz -sha1=2ecca6a1ecd44dd913bec6a6d3da03c97abd44ec -md5=9c7c28eddbc39eb874d2c22025772d63 -cksum=3491671312 +sha1=96ce4c5e9ae63c6749f338c4ce758198a63cbf41 +md5=f86f4fe7a80997704294383ea775627d +cksum=1557806209 diff --git a/build/pkgs/ipython/package-version.txt b/build/pkgs/ipython/package-version.txt index 6aba2b245a8..fae6e3d04b2 100644 --- a/build/pkgs/ipython/package-version.txt +++ b/build/pkgs/ipython/package-version.txt @@ -1 +1 @@ -4.2.0 +4.2.1 diff --git a/build/pkgs/ipywidgets/checksums.ini b/build/pkgs/ipywidgets/checksums.ini index b3a1b0b3ac5..b1181a1b762 100644 --- a/build/pkgs/ipywidgets/checksums.ini +++ b/build/pkgs/ipywidgets/checksums.ini @@ -1,4 +1,4 @@ tarball=ipywidgets-VERSION.tar.gz -sha1=30191ce2a84025c937342478e72d323ae8378157 -md5=db52e27769c1a3b615e72521409f3646 -cksum=3666200318 +sha1=e950ddb5e83753b677aed497b4c8bc0bcf2b1dbc +md5=7016f12e633d0f7c91d968eb8c8330d1 +cksum=4232718564 diff --git a/build/pkgs/ipywidgets/package-version.txt b/build/pkgs/ipywidgets/package-version.txt index 76e9e619d63..220d8e0a460 100644 --- a/build/pkgs/ipywidgets/package-version.txt +++ b/build/pkgs/ipywidgets/package-version.txt @@ -1 +1 @@ -5.1.4 +5.1.5 diff --git a/build/pkgs/jupyter_client/checksums.ini b/build/pkgs/jupyter_client/checksums.ini index d47d5085aa5..71529ccca98 100644 --- a/build/pkgs/jupyter_client/checksums.ini +++ b/build/pkgs/jupyter_client/checksums.ini @@ -1,4 +1,4 @@ tarball=jupyter_client-VERSION.tar.gz -sha1=7a1c20000f7e088e65f35e7fc994d1240b4b148d -md5=f887b2c076297ed8216d89b17a2000ea -cksum=4189008094 +sha1=909b47a92960364300765a36963c8c9bf9c179ab +md5=4ae3d5e04baea1e8fa8d3ec24c600c17 +cksum=854482584 diff --git a/build/pkgs/jupyter_client/package-version.txt b/build/pkgs/jupyter_client/package-version.txt index af8c8ec7c13..80895903a15 100644 --- a/build/pkgs/jupyter_client/package-version.txt +++ b/build/pkgs/jupyter_client/package-version.txt @@ -1 +1 @@ -4.2.2 +4.3.0 diff --git a/build/pkgs/latte_int/dependencies b/build/pkgs/latte_int/dependencies new file mode 100644 index 00000000000..af4589f3c69 --- /dev/null +++ b/build/pkgs/latte_int/dependencies @@ -0,0 +1,5 @@ +$(MP_LIBRARY) ntl 4ti2 cddlib + +---------- +All lines of this file are ignored except the first. +It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile. diff --git a/build/pkgs/latte_int/spkg-check b/build/pkgs/latte_int/spkg-check index 7c03a3445aa..ee8e59d671a 100755 --- a/build/pkgs/latte_int/spkg-check +++ b/build/pkgs/latte_int/spkg-check @@ -16,8 +16,7 @@ fi export CFLAGS -LATTE_VERSION="$(cat ${SAGE_ROOT}/build/pkgs/latte_int/package-version.txt)" -dirsr="$CUR"/latte-int-${LATTE_VERSION} +dirsr="$CUR"/src echo "Testing in $dirsr" cd "$dirsr" $MAKE check diff --git a/build/pkgs/latte_int/spkg-install b/build/pkgs/latte_int/spkg-install index d325e1124cc..8c3239f25d5 100755 --- a/build/pkgs/latte_int/spkg-install +++ b/build/pkgs/latte_int/spkg-install @@ -7,8 +7,7 @@ if [ "$SAGE_LOCAL" = "" ]; then fi -LATTE_VERSION="$(cat ${SAGE_ROOT}/build/pkgs/latte_int/package-version.txt)" -cd "latte-int-${LATTE_VERSION}" +cd src #CFLAGS="-I $SAGE_LOCAL/include -L$SAGE_LOCAL/lib $CFLAGS" diff --git a/build/pkgs/libbraiding/SPKG.txt b/build/pkgs/libbraiding/SPKG.txt new file mode 100644 index 00000000000..4afec494530 --- /dev/null +++ b/build/pkgs/libbraiding/SPKG.txt @@ -0,0 +1,17 @@ += LIBBRAIDING = + +== Description == + +libbraiding is a library to compute several properties of braids, including centralizer and conjugacy check. + +== License == + +GPLv3+ + +== SPKG Maintainers == + +* Miguel Marco + +== Upstream Contact == + +Miguel Marco (mmarco@unizar.es) diff --git a/build/pkgs/libbraiding/checksums.ini b/build/pkgs/libbraiding/checksums.ini new file mode 100644 index 00000000000..9e726e3a7fb --- /dev/null +++ b/build/pkgs/libbraiding/checksums.ini @@ -0,0 +1,4 @@ +tarball=libbraiding-VERSION.tar.gz +sha1=849d146abc03f0773a74e41351711b56b6bfc5d3 +md5=969f2f1f412c60e8ff1ea107f00a25b1 +cksum=357804794 diff --git a/build/pkgs/libbraiding/package-version.txt b/build/pkgs/libbraiding/package-version.txt new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/build/pkgs/libbraiding/package-version.txt @@ -0,0 +1 @@ +1.0 diff --git a/build/pkgs/libbraiding/spkg-install b/build/pkgs/libbraiding/spkg-install new file mode 100644 index 00000000000..640be67c1b9 --- /dev/null +++ b/build/pkgs/libbraiding/spkg-install @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +cd src + +./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib" +if [ $? -ne 0 ]; then + echo >&2 "Error configuring libbraiding." + exit 1 +fi + +$MAKE +if [ $? -ne 0 ]; then + echo >&2 "Error building libbraiding." + exit 1 +fi + +$MAKE -j1 install +if [ $? -ne 0 ]; then + echo >&2 "Error installing libbraiding." + exit 1 +fi diff --git a/build/pkgs/libbraiding/type b/build/pkgs/libbraiding/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/libbraiding/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/libhomfly/SPKG.txt b/build/pkgs/libhomfly/SPKG.txt new file mode 100644 index 00000000000..be89a132edf --- /dev/null +++ b/build/pkgs/libhomfly/SPKG.txt @@ -0,0 +1,22 @@ += LIBHOMFLY = + +== Description == + +libhomfly is a library to compute the homfly polynomial of knots and links. + +== License == + +Public domain + +== SPKG Maintainers == + +* Miguel Marco + +== Upstream Contact == + +Miguel Marco (mmarco@unizar.es) + +== Dependencies == + +* gcc +* boehmgc diff --git a/build/pkgs/libhomfly/checksums.ini b/build/pkgs/libhomfly/checksums.ini new file mode 100644 index 00000000000..0e437774dbc --- /dev/null +++ b/build/pkgs/libhomfly/checksums.ini @@ -0,0 +1,4 @@ +tarball=libhomfly-VERSION.tar.gz +sha1=65c1ffc5814061323534e79d9ea5d523adb3ec57 +md5=1d56c477a1f5e4f934c3fccf5d560948 +cksum=233275648 diff --git a/build/pkgs/libhomfly/dependencies b/build/pkgs/libhomfly/dependencies new file mode 100644 index 00000000000..65b64fcf3f4 --- /dev/null +++ b/build/pkgs/libhomfly/dependencies @@ -0,0 +1 @@ +gc diff --git a/build/pkgs/libhomfly/package-version.txt b/build/pkgs/libhomfly/package-version.txt new file mode 100644 index 00000000000..d3827e75a5c --- /dev/null +++ b/build/pkgs/libhomfly/package-version.txt @@ -0,0 +1 @@ +1.0 diff --git a/build/pkgs/libhomfly/spkg-check b/build/pkgs/libhomfly/spkg-check new file mode 100755 index 00000000000..35f04fc8862 --- /dev/null +++ b/build/pkgs/libhomfly/spkg-check @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +cd src +$MAKE check diff --git a/build/pkgs/libhomfly/spkg-install b/build/pkgs/libhomfly/spkg-install new file mode 100755 index 00000000000..adc2ea9106b --- /dev/null +++ b/build/pkgs/libhomfly/spkg-install @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +cd src + +./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib" +if [ $? -ne 0 ]; then + echo >&2 "Error configuring libhomfly." + exit 1 +fi + +$MAKE +if [ $? -ne 0 ]; then + echo >&2 "Error building libhomfly." + exit 1 +fi + +$MAKE -j1 install +if [ $? -ne 0 ]; then + echo >&2 "Error installing libhomfly." + exit 1 +fi diff --git a/build/pkgs/libhomfly/type b/build/pkgs/libhomfly/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/libhomfly/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/lie/spkg-install b/build/pkgs/lie/spkg-install index 6653a832852..3668c4c8966 100755 --- a/build/pkgs/lie/spkg-install +++ b/build/pkgs/lie/spkg-install @@ -6,7 +6,8 @@ die () { } # patching -cd LiE/ +cd src + chmod -R a+rX . patch -p1 <../patches/00-string.h.patch && patch -p1 <../patches/01-libs.patch && @@ -26,10 +27,10 @@ $MAKE CC="$CC" || die "Error building LiE. Did you install bison?" # "install" the LiE package by moving over the complete build # directory to $SAGE_LOCAL/lib/lie cd .. -sed -e "s'$PWD/LiE'$SAGE_LOCAL/lib/LiE'" LiE/lie > LiE/lie~ -mv LiE/lie~ LiE/lie -chmod +x LiE/lie +sed -e "s'$PWD/LiE'$SAGE_LOCAL/lib/LiE'" src/lie > src/lie~ +mv src/lie~ src/lie +chmod +x src/lie rm -rf "$SAGE_LOCAL"/lib/lie # clean up old versions rm -rf "$SAGE_LOCAL"/bin/lie "$SAGE_LOCAL"/lib/LiE -mv LiE/lie "$SAGE_LOCAL"/bin/ -mv LiE/ "$SAGE_LOCAL"/lib/LiE +mv src/lie "$SAGE_LOCAL"/bin/ +mv src/ "$SAGE_LOCAL"/lib/LiE diff --git a/build/pkgs/lrslib/SPKG.txt b/build/pkgs/lrslib/SPKG.txt index ad485cf3da3..95f734ce163 100644 --- a/build/pkgs/lrslib/SPKG.txt +++ b/build/pkgs/lrslib/SPKG.txt @@ -4,7 +4,9 @@ lrslib implements the linear reverse search algorithm of Avis and Fukuda. -See the homepage (http://cgm.cs.mcgill.ca/~avis/C/lrs.html) for details. +See the homepage (http://cgm.cs.mcgill.ca/~avis/C/lrs.html) for details. + +We use an autotoolized version from https://github.com/mkoeppe/lrslib/tree/autoconfiscation == License == lrslib is released under a GPL v2+ license. @@ -15,9 +17,14 @@ David Avis, avis at cs dot mcgill dot edu. == Dependencies == -No dependencies. +To build and install the "plrs" binary, a multi-thread version of lrs, +need to first install the full Boost package ("sage -i boost"). -== Special Update/Build Instructions == +If the package finds an MPI C++ compiler script (mpic++), it also +builds and installs the "mplrs" binary, a distributed version of lrs +using MPI. -The only patch is the makefile, which has been cleaned up for Sage using our environmental variables and with an added "make check" section. +(Sage currently does not make use of plrs and mplrs.) + +== Special Update/Build Instructions == diff --git a/build/pkgs/lrslib/checksums.ini b/build/pkgs/lrslib/checksums.ini index 4eeded80fa5..2ddbe3dd862 100644 --- a/build/pkgs/lrslib/checksums.ini +++ b/build/pkgs/lrslib/checksums.ini @@ -1,4 +1,4 @@ tarball=lrslib-VERSION.tar.gz -sha1=8c4db17a4d385d4d916268347ac64c309a9ced9e -md5=cca323eee8bf76f598a13d7bf67cc13d -cksum=2550957470 +sha1=36a439d74fe3743dc318239e8bf2382c3a3c3af3 +md5=8a34b136cd2baeb6fc8b4fef5ed64759 +cksum=1002336091 diff --git a/build/pkgs/lrslib/dependencies b/build/pkgs/lrslib/dependencies new file mode 100644 index 00000000000..9a77ea16f78 --- /dev/null +++ b/build/pkgs/lrslib/dependencies @@ -0,0 +1,5 @@ +$(MP_LIBRARY) + +---------- +All lines of this file are ignored except the first. +It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile. diff --git a/build/pkgs/lrslib/package-version.txt b/build/pkgs/lrslib/package-version.txt index 0448f1c18d7..a13163b44e0 100644 --- a/build/pkgs/lrslib/package-version.txt +++ b/build/pkgs/lrslib/package-version.txt @@ -1 +1 @@ -051 +062+autotools-2016-07-05 diff --git a/build/pkgs/lrslib/patches/makefile.patch b/build/pkgs/lrslib/patches/makefile.patch deleted file mode 100644 index 14d30a6f24b..00000000000 --- a/build/pkgs/lrslib/patches/makefile.patch +++ /dev/null @@ -1,148 +0,0 @@ -Find includes and libs in the tree, install there. -Use cp instead of 'install -t', which does not work on Mac OS X. -Disable plrs build. -Use LDFLAGS - - ---- patches/makefile 2015-01-21 07:36:46.000000000 +0100 -+++ patches/makefile 2015-12-29 19:09:22.428735582 +0100 -@@ -25,8 +25,8 @@ - #Select a path below to give location of gmp library - - #cygwin --INCLUDEDIR = /usr/include --LIBDIR = /usr/lib -+INCLUDEDIR = ${SAGE_LOCAL}/include -+LIBDIR = ${SAGE_LOCAL}/lib - - #linux at mcgill with gmp version 3 - #INCLUDEDIR = /usr/local/include -@@ -45,7 +45,7 @@ - LIBRARIES=$(LIB) $(SHLIB) $(SHLINK) - - # where to install binaries, libraries, include files --prefix := /usr/local -+prefix := ${SAGE_LOCAL} - - # Shared library - SONAME ?=liblrsgmp.so.0 -@@ -57,11 +57,11 @@ - - # rule to build gmp arithmetic using object files. - %-GMP.o: %.c lrsgmp.h -- $(CC) -c $(CFLAGS) $(CPPFLAGS) -DGMP -o $@ $< -+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -DGMP -o $@ $< - - # rule to build gmp arithmetic and relocatable object files. - %-GMP-SHR.o: %.c lrsgmp.h -- $(CC) -c -fPIC $(CFLAGS) $(CPPFLAGS) -DGMP -o $@ $< -+ $(CC) -c -fPIC $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -DGMP -o $@ $< - - # Cancel built in rules - %: %.c -@@ -69,7 +69,7 @@ - - # How to build a gmp arithmetic using tool - %: %-GMP.o $(LRSGMPLIB) -- $(CC) $< -L. -llrsgmp -L${LIBDIR} -lgmp -o $@ -+ $(CC) $< -L. -llrsgmp -L${LIBDIR} -lgmp $(LDFLAGS) -o $@ - - all: $(BINARIES) - -@@ -86,62 +86,73 @@ - $(RANLIB) $@ - - $(SHLIB): lrslib-GMP-SHR.o lrsgmp-GMP-SHR.o -- $(CC) -shared -Wl,-soname=$(SONAME) $(SHLIBFLAGS) -o $@ $^ -lgmp -+ $(CC) -shared -Wl,-soname=$(SONAME) $(SHLIBFLAGS) $(LDFLAGS) -o $@ $^ -lgmp - - $(SHLINK): $(SHLIB) - ln -sf $< $@ - - lrs1: lrs.c lrslib.c lrslib.c lrslong.c -- $(CC) $(CFLAGS) $(CPPFLAGS) -DLONG -o lrs1 lrs.c lrslib.c lrslong.c -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -DLONG -o lrs1 lrs.c lrslib.c lrslong.c - - redund1: redund.c lrslib.c lrslib.c lrslong.c -- $(CC) $(CFLAGS) $(CPPFLAGS) -DLONG -o redund1 redund.c lrslib.c lrslong.c -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -DLONG -o redund1 redund.c lrslib.c lrslong.c - - setnash: setupnash.c lrslib.c lrsmp.c -- $(CC) $(CFLAGS) $(CPPFLAGS) -o setnash setupnash.c lrslib.c lrsmp.c -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o setnash setupnash.c lrslib.c lrsmp.c - - setnash2: setupnash2.c lrslib.c lrsmp.c -- $(CC) $(CFLAGS) $(CPPFLAGS) -o setnash2 setupnash2.c lrslib.c lrsmp.c -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o setnash2 setupnash2.c lrslib.c lrsmp.c - - install: install-static - - install-shared: all-shared install-common - mkdir -p $(DESTDIR)${prefix}/lib -- install -t $(DESTDIR)${prefix}/lib $(SHLIB) -+ cp $(SHLIB) $(DESTDIR)${prefix}/lib - cd $(DESTDIR)${prefix}/lib && ln -sf $(SHLIB) $(SHLINK) - cd $(DESTDIR)${prefix}/lib && ln -sf $(SHLIB) $(SONAME) - - install-static: all-static install-common - mkdir -p $(DESTDIR)${prefix}/lib -- install -t $(DESTDIR)${prefix}/lib $(LIB) -+ cp $(LIB) $(DESTDIR)${prefix}/lib - - install-common: - mkdir -p $(DESTDIR)${prefix}/bin -- install -t $(DESTDIR)${prefix}/bin $(BINARIES) -+ cp $(BINARIES) $(DESTDIR)${prefix}/bin - mkdir -p $(DESTDIR)${prefix}/include -- install -t $(DESTDIR)${prefix}/include lrslib.h lrsgmp.h -+ cp lrslib.h lrsgmp.h $(DESTDIR)${prefix}/include - - fourier: fourier.c lrslib.h lrslib.c lrsgmp.h lrsgmp.c -- gcc -O3 -DTIMES -DSIGNALS -DGMP -I${INCLUDEDIR} fourier.c lrslib.c lrsgmp.c -L${LIBDIR} -lgmp -o fourier -+ gcc -O3 -DTIMES -DSIGNALS -DGMP -I${INCLUDEDIR} fourier.c lrslib.c lrsgmp.c -L${LIBDIR} $(LDFLAGS) -lgmp -o fourier - - - plrs: plrs.cpp plrs.hpp lrslib.c lrslib.h lrsmp.c lrsmp.h -- g++ -DGMP -Wall -Wno-write-strings -Wno-sign-compare -I${BOOSTINC} -Wl,-rpath=${BOOSTLIB} -O3 -DPLRS -DGMP -o plrs plrs.cpp lrslib.c lrsgmp.c -L${BOOSTLIB} -lboost_thread -lboost_system -lgmp -+ g++ -DGMP -Wall -Wno-write-strings -Wno-sign-compare -I${BOOSTINC} -Wl,-rpath=${BOOSTLIB} $(LDFLAGS) -O3 -DPLRS -DGMP -o plrs plrs.cpp lrslib.c lrsgmp.c -L${BOOSTLIB} -lboost_thread -lboost_system -lgmp - - plrsmp: plrs.cpp plrs.hpp lrslib.c lrslib.h lrsmp.c lrsmp.h -- g++ -Wall -Wno-write-strings -Wno-sign-compare -Wno-unused-variable -I${BOOSTINC} -L${BOOSTLIB} -Wl,-rpath=${BOOSTLIB} -O3 -DPLRS -DLONG -o plrs1 plrs.cpp lrslib.c lrslong.c -lboost_thread -lboost_system -- g++ -Wall -Wno-write-strings -Wno-sign-compare -Wno-unused-variable -I${BOOSTINC} -L${BOOSTLIB} -Wl,-rpath=${BOOSTLIB} -O3 -DPLRS -o plrsmp plrs.cpp lrslib.c lrsmp.c -lboost_thread -lboost_system -+ g++ -Wall -Wno-write-strings -Wno-sign-compare -Wno-unused-variable -I${BOOSTINC} -L${BOOSTLIB} -Wl,-rpath=${BOOSTLIB} $(LDFLAGS) -O3 -DPLRS -DLONG -o plrs1 plrs.cpp lrslib.c lrslong.c -lboost_thread -lboost_system -+ g++ -Wall -Wno-write-strings -Wno-sign-compare -Wno-unused-variable -I${BOOSTINC} -L${BOOSTLIB} -Wl,-rpath=${BOOSTLIB} $(LDFLAGS) -O3 -DPLRS -o plrsmp plrs.cpp lrslib.c lrsmp.c -lboost_thread -lboost_system - - allmp: lrs.c lrslib.c lrslib.h lrsmp.c lrsmp.h -- gcc -Wall -O3 -DTIMES -DSIGNALS -o lrs lrs.c lrslib.c lrsmp.c -- gcc -Wall -O3 -DTIMES -DSIGNALS -DLONG -o lrs1 lrs.c lrslib.c lrslong.c -- gcc -O3 -DTIMES -DSIGNALS -o redund redund.c lrslib.c lrsmp.c -- gcc -O3 -DTIMES -DSIGNALS -DLONG -o redund1 redund.c lrslib.c lrslong.c -- gcc -O3 -DLRS_QUIET -DTIMES -DSIGNALS -o nash nash.c lrslib.c lrsmp.c -- gcc -O3 -o setnash setupnash.c lrslib.c lrsmp.c -- gcc -O3 -o setnash2 setupnash2.c lrslib.c lrsmp.c -- gcc -O3 -o 2nash 2nash.c -- -+ gcc $(LDFLAGS) -Wall -O3 -DTIMES -DSIGNALS -o lrs lrs.c lrslib.c lrsmp.c -+ gcc $(LDFLAGS) -Wall -O3 -DTIMES -DSIGNALS -DLONG -o lrs1 lrs.c lrslib.c lrslong.c -+ gcc $(LDFLAGS) -O3 -DTIMES -DSIGNALS -o redund redund.c lrslib.c lrsmp.c -+ gcc $(LDFLAGS) -O3 -DTIMES -DSIGNALS -DLONG -o redund1 redund.c lrslib.c lrslong.c -+ gcc $(LDFLAGS) -O3 -DLRS_QUIET -DTIMES -DSIGNALS -o nash nash.c lrslib.c lrsmp.c -+ gcc $(LDFLAGS) -O3 -o setnash setupnash.c lrslib.c lrsmp.c -+ gcc $(LDFLAGS) -O3 -o setnash2 setupnash2.c lrslib.c lrsmp.c -+ gcc $(LDFLAGS) -O3 -o 2nash 2nash.c -+ -+check: -+ lrs ext/test/cut16_11.ext > testout1 -+ echo `grep -G Volume testout1` > testout1 -+ echo "*Volume= 32768/14175" > testout2 -+ diff testout1 testout2 -+ lrs ine/test/cyclic17_8.ine > testout1 -+ echo `grep -G Totals testout1` > testout1 -+ echo "*Totals: vertices=935 rays=0 bases=935 integer_vertices=0" > testout2 -+ diff testout1 testout2 -+ rm testout1 -+ rm testout2 - - clean: -- rm -f $(BINARIES) $(LIBRARIES) plrs *.o *.exe -+ rm -f $(BINARIES) $(LIBRARIES) plrs *.o *.exe testout1 testout2 diff --git a/build/pkgs/lrslib/spkg-install b/build/pkgs/lrslib/spkg-install index b51bdd526b5..41bdce6f6e9 100755 --- a/build/pkgs/lrslib/spkg-install +++ b/build/pkgs/lrslib/spkg-install @@ -17,15 +17,17 @@ for patch in ../patches/*.patch; do fi done -$MAKE all-static +./configure --prefix=$SAGE_LOCAL + +$MAKE if [ $? -ne 0 ]; then - echo "Error building lrs" + echo "Error building lrslib" exit 1 fi -$MAKE install-static +$MAKE install if [ $? -ne 0 ]; then - echo "Error installing lrs" + echo "Error installing lrslib" exit 1 fi diff --git a/build/pkgs/mathjax/checksums.ini b/build/pkgs/mathjax/checksums.ini index 77800e9ff6a..df335856f1d 100644 --- a/build/pkgs/mathjax/checksums.ini +++ b/build/pkgs/mathjax/checksums.ini @@ -1,4 +1,4 @@ tarball=mathjax-VERSION.tar.gz -sha1=0c0583818959817306e89eee1c34be967f374024 -md5=f98ff60cfc5c38da45d9980896454190 -cksum=484358625 +sha1=369bfdc1a39be3d36ded61b3537085fd0848595e +md5=5cb9274be7162d088dfc3410740ed0cc +cksum=1385967993 diff --git a/build/pkgs/mathjax/package-version.txt b/build/pkgs/mathjax/package-version.txt index 95e3ba81920..6a6a3d8e35c 100644 --- a/build/pkgs/mathjax/package-version.txt +++ b/build/pkgs/mathjax/package-version.txt @@ -1 +1 @@ -2.5 +2.6.1 diff --git a/build/pkgs/mistune/checksums.ini b/build/pkgs/mistune/checksums.ini index c191c2b76f8..a25e365f843 100644 --- a/build/pkgs/mistune/checksums.ini +++ b/build/pkgs/mistune/checksums.ini @@ -1,4 +1,4 @@ tarball=mistune-VERSION.tar.gz -sha1=ba1691f290b496dd12b1ad518a2c521367c7ce28 -md5=ed9ac03c99261bd1803e44ddaa4f87cb -cksum=1329307472 +sha1=0623556c560a41c27249d47c7002b0e5a1fa7fbd +md5=4eba50bd121b83716fa4be6a4049004b +cksum=4179355858 diff --git a/build/pkgs/mistune/package-version.txt b/build/pkgs/mistune/package-version.txt index 7486fdbc50b..f38fc5393ff 100644 --- a/build/pkgs/mistune/package-version.txt +++ b/build/pkgs/mistune/package-version.txt @@ -1 +1 @@ -0.7.2 +0.7.3 diff --git a/build/pkgs/nauty/spkg-check b/build/pkgs/nauty/spkg-check index 6056627125e..e2522084f19 100755 --- a/build/pkgs/nauty/spkg-check +++ b/build/pkgs/nauty/spkg-check @@ -6,7 +6,7 @@ if [ "$SAGE_LOCAL" = "" ]; then exit 1 fi -cd nauty* +cd src # runalltests doesn't exit with a zero status. # So we check $fails instead. diff --git a/build/pkgs/nauty/spkg-install b/build/pkgs/nauty/spkg-install index e9795f67f11..bb3c014f225 100755 --- a/build/pkgs/nauty/spkg-install +++ b/build/pkgs/nauty/spkg-install @@ -6,7 +6,7 @@ if [ "$SAGE_LOCAL" = "" ]; then exit 1 fi -cd nauty* +cd src # Nauty doesn't have an install target # passing a prefix to configure is useless diff --git a/build/pkgs/notebook/checksums.ini b/build/pkgs/notebook/checksums.ini index 8ba4997e1b6..c0e19e9e103 100644 --- a/build/pkgs/notebook/checksums.ini +++ b/build/pkgs/notebook/checksums.ini @@ -1,4 +1,4 @@ tarball=notebook-VERSION.tar.gz -sha1=f5466b2f04e1b9c913dcf79f7e03812eba718d0d -md5=3a72bb93f6f01caec69e5e65718f5f7f -cksum=3858938777 +sha1=cec36e2d1aa7835f2b4dda7dde8455d33a06361a +md5=09e727ba598ab1848327d211fd2ad057 +cksum=2780054946 diff --git a/build/pkgs/notebook/package-version.txt b/build/pkgs/notebook/package-version.txt index 6aba2b245a8..fae6e3d04b2 100644 --- a/build/pkgs/notebook/package-version.txt +++ b/build/pkgs/notebook/package-version.txt @@ -1 +1 @@ -4.2.0 +4.2.1 diff --git a/build/pkgs/numpy/checksums.ini b/build/pkgs/numpy/checksums.ini index 33d0cc00e8d..4a1b6ad42f5 100644 --- a/build/pkgs/numpy/checksums.ini +++ b/build/pkgs/numpy/checksums.ini @@ -1,4 +1,4 @@ tarball=numpy-VERSION.tar.gz -sha1=3e43596cba1d5df4002dd0c87d4041f31ea6e1b5 -md5=bc56fb9fc2895aa4961802ffbdb31d0b -cksum=906704492 +sha1=5fbfde55b1d4b07cc449b10395472ffa41ec00c1 +md5=2f44a895a8104ffac140c3a70edbd450 +cksum=4092335543 diff --git a/build/pkgs/numpy/package-version.txt b/build/pkgs/numpy/package-version.txt index fb9af4473bb..720c7384c61 100644 --- a/build/pkgs/numpy/package-version.txt +++ b/build/pkgs/numpy/package-version.txt @@ -1 +1 @@ -1.11.0.p0 +1.11.1 diff --git a/build/pkgs/numpy/spkg-install b/build/pkgs/numpy/spkg-install index 86f2f4a3805..40b8b5c81d3 100755 --- a/build/pkgs/numpy/spkg-install +++ b/build/pkgs/numpy/spkg-install @@ -59,7 +59,10 @@ rm -rf "$SAGE_LOCAL/lib/python/site-packages/numpy" # Program around a bug in SciPY's distutils. unset CFLAGS -python setup.py install ${NUMPY_FCONFIG} +python setup.py install \ + --single-version-externally-managed \ + --record /dev/null \ + ${NUMPY_FCONFIG} # Touch all includes such that dependency checking works properly: # the timestamp of the includes should be *now*, not the time when diff --git a/build/pkgs/openblas/spkg-check b/build/pkgs/openblas/spkg-check index 6afa5cc99aa..d57f448fbfd 100755 --- a/build/pkgs/openblas/spkg-check +++ b/build/pkgs/openblas/spkg-check @@ -5,7 +5,7 @@ if [ "$SAGE_LOCAL" = "" ]; then exit 1 fi -cd xianyi-OpenBLAS* +cd src $MAKE tests if [ $? -ne 0 ]; then diff --git a/build/pkgs/openblas/spkg-install b/build/pkgs/openblas/spkg-install index 50ae2aeb568..656e94164ac 100755 --- a/build/pkgs/openblas/spkg-install +++ b/build/pkgs/openblas/spkg-install @@ -6,7 +6,7 @@ if [ -z "$SAGE_LOCAL" ]; then exit 1 fi -cd xianyi-OpenBLAS* +cd src # Patch sources for patch in ../patches/*.patch; do diff --git a/build/pkgs/pari/checksums.ini b/build/pkgs/pari/checksums.ini index 39db207d6d2..ccbfa9e208c 100644 --- a/build/pkgs/pari/checksums.ini +++ b/build/pkgs/pari/checksums.ini @@ -1,4 +1,4 @@ tarball=pari-VERSION.tar.gz -sha1=0f8221f5052610c1e6826852ab29ecb1e1cddeec -md5=03b83e4af898f456cae16c9ade1e1cb5 -cksum=3725243671 +sha1=a936e0ed661c8e453578f3c129c3a454e2039e3e +md5=59f2e4c3c51f7652182400489cd76e6a +cksum=1366291737 diff --git a/build/pkgs/pari/package-version.txt b/build/pkgs/pari/package-version.txt index bd07947c430..f9e24123df3 100644 --- a/build/pkgs/pari/package-version.txt +++ b/build/pkgs/pari/package-version.txt @@ -1 +1 @@ -2.8-2341-g61b65cc.p0 +2.8-2771-gb70b447.p0 diff --git a/build/pkgs/pari_galdata/spkg-install b/build/pkgs/pari_galdata/spkg-install index 7d5fe4a9369..766d7f4856a 100755 --- a/build/pkgs/pari_galdata/spkg-install +++ b/build/pkgs/pari_galdata/spkg-install @@ -1,4 +1,4 @@ #!/bin/sh mkdir -p "$SAGE_SHARE/pari" -cd data && cp -R * "$SAGE_SHARE/pari" +cd src && cp -R * "$SAGE_SHARE/pari" diff --git a/build/pkgs/pari_seadata_small/spkg-install b/build/pkgs/pari_seadata_small/spkg-install index 7d5fe4a9369..766d7f4856a 100755 --- a/build/pkgs/pari_seadata_small/spkg-install +++ b/build/pkgs/pari_seadata_small/spkg-install @@ -1,4 +1,4 @@ #!/bin/sh mkdir -p "$SAGE_SHARE/pari" -cd data && cp -R * "$SAGE_SHARE/pari" +cd src && cp -R * "$SAGE_SHARE/pari" diff --git a/build/pkgs/perl_term_readline_gnu/SPKG.txt b/build/pkgs/perl_term_readline_gnu/SPKG.txt new file mode 100644 index 00000000000..02fd66662ef --- /dev/null +++ b/build/pkgs/perl_term_readline_gnu/SPKG.txt @@ -0,0 +1,19 @@ += perl_term_readline_gnu = + +== Description == + +Perl extension for the GNU Readline/History Library + +Available on CPAN + +== License == + +The Perl 5 License (Artistic 1 & GPL 1) + +== Upstream Contact == + +Hiroo HAYASHI + +== Dependencies == + +readline diff --git a/build/pkgs/perl_term_readline_gnu/checksums.ini b/build/pkgs/perl_term_readline_gnu/checksums.ini new file mode 100644 index 00000000000..01825859f68 --- /dev/null +++ b/build/pkgs/perl_term_readline_gnu/checksums.ini @@ -0,0 +1,4 @@ +tarball=Term-ReadLine-Gnu-VERSION.tar.gz +sha1=8052543fcdf3ab5ae44a385224d92b8337dd5125 +md5=c3afcf3fc989b2c0a5b6676c65d3a58e +cksum=3006163947 diff --git a/build/pkgs/perl_term_readline_gnu/dependencies b/build/pkgs/perl_term_readline_gnu/dependencies new file mode 100644 index 00000000000..6a04d4dc1ff --- /dev/null +++ b/build/pkgs/perl_term_readline_gnu/dependencies @@ -0,0 +1,5 @@ +readline + +---------- +All lines of this file are ignored except the first. +It is copied by SAGE_ROOT/build/make/install into SAGE_ROOT/build/make/Makefile. diff --git a/build/pkgs/perl_term_readline_gnu/package-version.txt b/build/pkgs/perl_term_readline_gnu/package-version.txt new file mode 100644 index 00000000000..cfe5aeafa6c --- /dev/null +++ b/build/pkgs/perl_term_readline_gnu/package-version.txt @@ -0,0 +1 @@ +1.34 diff --git a/build/pkgs/perl_term_readline_gnu/spkg-install b/build/pkgs/perl_term_readline_gnu/spkg-install new file mode 100755 index 00000000000..ee637e431ff --- /dev/null +++ b/build/pkgs/perl_term_readline_gnu/spkg-install @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +if [ "$SAGE_LOCAL" = "" ]; then + echo "SAGE_LOCAL undefined ... exiting"; + echo "Maybe run 'sage -sh'?" + exit 1 +fi + +cd src + +case `uname` in + Darwin ) + ARCHFLAGS="-arch `uname -m`" + export ARCHFLAGS + ;; +esac +perl Makefile.PL --prefix=$SAGE_LOCAL INSTALL_BASE=$SAGE_LOCAL +$MAKE install diff --git a/build/pkgs/perl_term_readline_gnu/type b/build/pkgs/perl_term_readline_gnu/type new file mode 100644 index 00000000000..9839eb20815 --- /dev/null +++ b/build/pkgs/perl_term_readline_gnu/type @@ -0,0 +1 @@ +experimental diff --git a/build/pkgs/pexpect/checksums.ini b/build/pkgs/pexpect/checksums.ini index bb8153af4ab..c63f6416572 100644 --- a/build/pkgs/pexpect/checksums.ini +++ b/build/pkgs/pexpect/checksums.ini @@ -1,4 +1,4 @@ tarball=pexpect-VERSION.tar.gz -sha1=fcaa594dd1ea97f1200b6b2819811231f69ec186 -md5=056df81e6ca7081f1015b4b147b977b7 -cksum=762875584 +sha1=bb0dc8c8d1bbd87a9bd0bbf6b93923071630b095 +md5=562a1a21f2a60b36dfd5d906dbf0943e +cksum=2524487897 diff --git a/build/pkgs/pexpect/package-version.txt b/build/pkgs/pexpect/package-version.txt index fdfbd2cdbfc..ee74734aa22 100644 --- a/build/pkgs/pexpect/package-version.txt +++ b/build/pkgs/pexpect/package-version.txt @@ -1 +1 @@ -4.0.1.p1 +4.1.0 diff --git a/build/pkgs/pexpect/patches/none_delaybeforesend.patch b/build/pkgs/pexpect/patches/none_delaybeforesend.patch deleted file mode 100644 index 2ce546d5d34..00000000000 --- a/build/pkgs/pexpect/patches/none_delaybeforesend.patch +++ /dev/null @@ -1,43 +0,0 @@ -commit 617d25553196aa58a3d8a2987008c22c73a86b19 -Author: Jeroen Demeyer -Date: Wed Dec 9 22:46:54 2015 +0100 - - Allow delaybeforesend=None to skip the sleep completely - -diff --git a/doc/commonissues.rst b/doc/commonissues.rst -index d3aa9d0..f60085e 100644 ---- a/doc/commonissues.rst -+++ b/doc/commonissues.rst -@@ -47,7 +47,7 @@ not be an issue for most users. For some applications you might with to turn it - off:: - - child = pexpect.spawn ("ssh user@example.com") -- child.delaybeforesend = 0 -+ child.delaybeforesend = None - - Truncated output just before child exits - ---------------------------------------- -diff --git a/pexpect/pty_spawn.py b/pexpect/pty_spawn.py -index 299016c..1e9a032 100644 ---- a/pexpect/pty_spawn.py -+++ b/pexpect/pty_spawn.py -@@ -144,8 +144,7 @@ class spawn(SpawnBase): - many users that I decided that the default pexpect behavior should be - to sleep just before writing to the child application. 1/20th of a - second (50 ms) seems to be enough to clear up the problem. You can set -- delaybeforesend to 0 to return to the old behavior. Most Linux machines -- don't like this to be below 0.03. I don't know why. -+ delaybeforesend to None to return to the old behavior. - - Note that spawn is clever about finding commands on your path. - It uses the same logic that "which" uses to find executables. -@@ -511,7 +510,8 @@ class spawn(SpawnBase): - >>> bash.sendline('x' * 5000) - ''' - -- time.sleep(self.delaybeforesend) -+ if self.delaybeforesend is not None: -+ time.sleep(self.delaybeforesend) - - s = self._coerce_send_string(s) - self._log(s, 'send') diff --git a/build/pkgs/pexpect/patches/optimize_sendline.patch b/build/pkgs/pexpect/patches/optimize_sendline.patch deleted file mode 100644 index de050a86e39..00000000000 --- a/build/pkgs/pexpect/patches/optimize_sendline.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit 1ac02c5709288a84aa95e09a7a203887459aa60b -Author: Jeroen Demeyer -Date: Sun Dec 13 10:15:40 2015 +0100 - - Call send() just once in sendline() - -See https://github.com/pexpect/pexpect/pull/311 - -diff --git a/pexpect/pty_spawn.py b/pexpect/pty_spawn.py -index 299016c..b8ee09f 100644 ---- a/pexpect/pty_spawn.py -+++ b/pexpect/pty_spawn.py -@@ -525,10 +525,8 @@ class spawn(SpawnBase): - written. Only a limited number of bytes may be sent for each - line in the default terminal mode, see docstring of :meth:`send`. - ''' -- -- n = self.send(s) -- n = n + self.send(self.linesep) -- return n -+ s = self._coerce_send_string(s) -+ return self.send(s + self.linesep) - - def _log_control(self, s): - """Write control characters to the appropriate log files""" diff --git a/build/pkgs/pexpect/patches/pexpect-4.0.1_superfluous_sleep.patch b/build/pkgs/pexpect/patches/pexpect-4.0.1_superfluous_sleep.patch deleted file mode 100644 index e3a38197b5c..00000000000 --- a/build/pkgs/pexpect/patches/pexpect-4.0.1_superfluous_sleep.patch +++ /dev/null @@ -1,38 +0,0 @@ -Patch taken from https://github.com/pexpect/pexpect/pull/291 - -diff --git a/pexpect/expect.py b/pexpect/expect.py -index 6fde9e8..1c7a163 100644 ---- a/pexpect/expect.py -+++ b/pexpect/expect.py -@@ -95,7 +95,8 @@ class Expecter(object): - return self.timeout() - # Still have time left, so read more data - incoming = spawn.read_nonblocking(spawn.maxread, timeout) -- time.sleep(0.0001) -+ if self.spawn.delayafterread is not None: -+ time.sleep(self.spawn.delayafterread) - if timeout is not None: - timeout = end_time - time.time() - except EOF as e: -@@ -294,4 +295,4 @@ class searcher_re(object): - self.start = first_match - self.match = the_match - self.end = self.match.end() -- return best_index -\ No newline at end of file -+ return best_index -diff --git a/pexpect/spawnbase.py b/pexpect/spawnbase.py -index 0518d83..4664884 100644 ---- a/pexpect/spawnbase.py -+++ b/pexpect/spawnbase.py -@@ -70,6 +70,10 @@ class SpawnBase(object): - # Used by terminate() to give kernel time to update process status. - # Time in seconds. - self.delayafterterminate = 0.1 -+ # After each call to read_nonblocking(), pexpect releases the GIL -+ # through a time.sleep(0.0001) call by default since version 2.1. -+ # When set as value 'None', the old 2.0 behavior is restored. -+ self.delayafterread = 0.0001 - self.softspace = False - self.name = '<' + repr(self) + '>' - self.closed = True diff --git a/build/pkgs/pexpect/patches/spawnpty.patch b/build/pkgs/pexpect/patches/spawnpty.patch deleted file mode 100644 index 5ac85760c93..00000000000 --- a/build/pkgs/pexpect/patches/spawnpty.patch +++ /dev/null @@ -1,63 +0,0 @@ -Allow overriding the call to PtyProcess.spawn() -See https://github.com/pexpect/pexpect/pull/303/ - -commit c1fa69bc90eef9e680e5daac0ebd9d07b57817b5 -Author: Jeroen Demeyer -Date: Fri Dec 4 11:48:57 2015 +0100 - - Allow overriding the call to PtyProcess.spawn() - -diff --git a/pexpect/pty_spawn.py b/pexpect/pty_spawn.py -index 299016c..bb0c099 100644 ---- a/pexpect/pty_spawn.py -+++ b/pexpect/pty_spawn.py -@@ -290,8 +290,8 @@ class spawn(SpawnBase): - self.args = [a if isinstance(a, bytes) else a.encode(self.encoding) - for a in self.args] - -- self.ptyproc = ptyprocess.PtyProcess.spawn(self.args, env=self.env, -- cwd=self.cwd, **kwargs) -+ self.ptyproc = self.spawnpty(self.args, env=self.env, -+ cwd=self.cwd, **kwargs) - - self.pid = self.ptyproc.pid - self.child_fd = self.ptyproc.fd -@@ -300,6 +300,10 @@ class spawn(SpawnBase): - self.terminated = False - self.closed = False - -+ def spawnpty(self, args, **kwargs): -+ '''Spawn a pty and return an instance of PtyProcess.''' -+ return ptyprocess.PtyProcess.spawn(args, **kwargs) -+ - def close(self, force=True): - '''This closes the connection with the child application. Note that - calling close() more than once is valid. This emulates standard Python -commit ddd4bfd4258eb080c128713600aaee95fee66b85 -Author: Jeroen Demeyer -Date: Wed Dec 16 22:38:29 2015 +0100 - - Rename spawnpty to _spawnpty - -diff --git a/pexpect/pty_spawn.py b/pexpect/pty_spawn.py -index bb0c099..2855cfa 100644 ---- a/pexpect/pty_spawn.py -+++ b/pexpect/pty_spawn.py -@@ -290,7 +290,7 @@ class spawn(SpawnBase): - self.args = [a if isinstance(a, bytes) else a.encode(self.encoding) - for a in self.args] - -- self.ptyproc = self.spawnpty(self.args, env=self.env, -+ self.ptyproc = self._spawnpty(self.args, env=self.env, - cwd=self.cwd, **kwargs) - - self.pid = self.ptyproc.pid -@@ -300,7 +300,7 @@ class spawn(SpawnBase): - self.terminated = False - self.closed = False - -- def spawnpty(self, args, **kwargs): -+ def _spawnpty(self, args, **kwargs): - '''Spawn a pty and return an instance of PtyProcess.''' - return ptyprocess.PtyProcess.spawn(args, **kwargs) - diff --git a/build/pkgs/pillow/checksums.ini b/build/pkgs/pillow/checksums.ini index 1d6e55ce60d..c696e70c1a0 100644 --- a/build/pkgs/pillow/checksums.ini +++ b/build/pkgs/pillow/checksums.ini @@ -1,4 +1,4 @@ tarball=Pillow-VERSION.tar.gz -sha1=5381cdd06dc00a86b0221110c768d7b49c27dc56 -md5=7cfd093c11205d9e2ebe3c51dfcad510 -cksum=4253553307 +sha1=b115d02fde8e3df7feb2e17c98b5689cade49a89 +md5=b5a15b03bf402fe254636c015fcf04da +cksum=3163839681 diff --git a/build/pkgs/pillow/package-version.txt b/build/pkgs/pillow/package-version.txt index 944880fa15e..15a27998172 100644 --- a/build/pkgs/pillow/package-version.txt +++ b/build/pkgs/pillow/package-version.txt @@ -1 +1 @@ -3.2.0 +3.3.0 diff --git a/build/pkgs/pip/package-version.txt b/build/pkgs/pip/package-version.txt index 6b409d977b8..b6444a45e79 100644 --- a/build/pkgs/pip/package-version.txt +++ b/build/pkgs/pip/package-version.txt @@ -1 +1 @@ -8.1.2 +8.1.2.p0 diff --git a/build/pkgs/pip/patches/distlib-ssl.patch b/build/pkgs/pip/patches/distlib-ssl.patch new file mode 100644 index 00000000000..c8d2fdb96df --- /dev/null +++ b/build/pkgs/pip/patches/distlib-ssl.patch @@ -0,0 +1,348 @@ +# Patch needed for pip to be usable without the ssl module in Python +# This can be removed once pip releases a version with this patch +# applied; see https://github.com/pypa/pip/issues/1165 +diff --git a/pip/_vendor/distlib/__init__.py b/pip/_vendor/distlib/__init__.py +index 7026860..35af72f 100644 +--- a/pip/_vendor/distlib/__init__.py ++++ b/pip/_vendor/distlib/__init__.py +@@ -6,7 +6,7 @@ + # + import logging + +-__version__ = '0.2.3' ++__version__ = '0.2.4.dev0' + + class DistlibException(Exception): + pass +diff --git a/pip/_vendor/distlib/compat.py b/pip/_vendor/distlib/compat.py +index 069ec77..1dae5f3 100644 +--- a/pip/_vendor/distlib/compat.py ++++ b/pip/_vendor/distlib/compat.py +@@ -10,6 +10,11 @@ import os + import re + import sys + ++try: ++ import ssl ++except ImportError: ++ ssl = None ++ + if sys.version_info[0] < 3: # pragma: no cover + from StringIO import StringIO + string_types = basestring, +@@ -30,8 +35,10 @@ if sys.version_info[0] < 3: # pragma: no cover + import urllib2 + from urllib2 import (Request, urlopen, URLError, HTTPError, + HTTPBasicAuthHandler, HTTPPasswordMgr, +- HTTPSHandler, HTTPHandler, HTTPRedirectHandler, ++ HTTPHandler, HTTPRedirectHandler, + build_opener) ++ if ssl: ++ from urllib2 import HTTPSHandler + import httplib + import xmlrpclib + import Queue as queue +@@ -66,8 +73,10 @@ else: # pragma: no cover + from urllib.request import (urlopen, urlretrieve, Request, url2pathname, + pathname2url, + HTTPBasicAuthHandler, HTTPPasswordMgr, +- HTTPSHandler, HTTPHandler, HTTPRedirectHandler, ++ HTTPHandler, HTTPRedirectHandler, + build_opener) ++ if ssl: ++ from urllib.request import HTTPSHandler + from urllib.error import HTTPError, URLError, ContentTooShortError + import http.client as httplib + import urllib.request as urllib2 +diff --git a/pip/_vendor/distlib/metadata.py b/pip/_vendor/distlib/metadata.py +index 71525dd..2677eb3 100644 +--- a/pip/_vendor/distlib/metadata.py ++++ b/pip/_vendor/distlib/metadata.py +@@ -676,7 +676,6 @@ class Metadata(object): + self._legacy = None + self._data = None + self.scheme = scheme +- #import pdb; pdb.set_trace() + if mapping is not None: + try: + self._validate_mapping(mapping, scheme) +diff --git a/pip/_vendor/distlib/util.py b/pip/_vendor/distlib/util.py +index 7e209ec..34314f0 100644 +--- a/pip/_vendor/distlib/util.py ++++ b/pip/_vendor/distlib/util.py +@@ -15,7 +15,10 @@ import py_compile + import re + import shutil + import socket +-import ssl ++try: ++ import ssl ++except ImportError: ++ ssl = None + import subprocess + import sys + import tarfile +@@ -31,10 +34,8 @@ import time + from . import DistlibException + from .compat import (string_types, text_type, shutil, raw_input, StringIO, + cache_from_source, urlopen, urljoin, httplib, xmlrpclib, +- splittype, HTTPHandler, HTTPSHandler as BaseHTTPSHandler, +- BaseConfigurator, valid_ident, Container, configparser, +- URLError, match_hostname, CertificateError, ZipFile, +- fsdecode) ++ splittype, HTTPHandler, BaseConfigurator, valid_ident, ++ Container, configparser, URLError, ZipFile, fsdecode) + + logger = logging.getLogger(__name__) + +@@ -1257,99 +1258,102 @@ def _iglob(path_glob): + for fn in _iglob(os.path.join(path, radical)): + yield fn + ++if ssl: ++ from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, ++ CertificateError) + + + # + # HTTPSConnection which verifies certificates/matches domains + # + +-class HTTPSConnection(httplib.HTTPSConnection): +- ca_certs = None # set this to the path to the certs file (.pem) +- check_domain = True # only used if ca_certs is not None +- +- # noinspection PyPropertyAccess +- def connect(self): +- sock = socket.create_connection((self.host, self.port), self.timeout) +- if getattr(self, '_tunnel_host', False): +- self.sock = sock +- self._tunnel() +- +- if not hasattr(ssl, 'SSLContext'): +- # For 2.x +- if self.ca_certs: +- cert_reqs = ssl.CERT_REQUIRED ++ class HTTPSConnection(httplib.HTTPSConnection): ++ ca_certs = None # set this to the path to the certs file (.pem) ++ check_domain = True # only used if ca_certs is not None ++ ++ # noinspection PyPropertyAccess ++ def connect(self): ++ sock = socket.create_connection((self.host, self.port), self.timeout) ++ if getattr(self, '_tunnel_host', False): ++ self.sock = sock ++ self._tunnel() ++ ++ if not hasattr(ssl, 'SSLContext'): ++ # For 2.x ++ if self.ca_certs: ++ cert_reqs = ssl.CERT_REQUIRED ++ else: ++ cert_reqs = ssl.CERT_NONE ++ self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ++ cert_reqs=cert_reqs, ++ ssl_version=ssl.PROTOCOL_SSLv23, ++ ca_certs=self.ca_certs) + else: +- cert_reqs = ssl.CERT_NONE +- self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, +- cert_reqs=cert_reqs, +- ssl_version=ssl.PROTOCOL_SSLv23, +- ca_certs=self.ca_certs) +- else: +- context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) +- context.options |= ssl.OP_NO_SSLv2 +- if self.cert_file: +- context.load_cert_chain(self.cert_file, self.key_file) +- kwargs = {} ++ context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) ++ context.options |= ssl.OP_NO_SSLv2 ++ if self.cert_file: ++ context.load_cert_chain(self.cert_file, self.key_file) ++ kwargs = {} ++ if self.ca_certs: ++ context.verify_mode = ssl.CERT_REQUIRED ++ context.load_verify_locations(cafile=self.ca_certs) ++ if getattr(ssl, 'HAS_SNI', False): ++ kwargs['server_hostname'] = self.host ++ self.sock = context.wrap_socket(sock, **kwargs) ++ if self.ca_certs and self.check_domain: ++ try: ++ match_hostname(self.sock.getpeercert(), self.host) ++ logger.debug('Host verified: %s', self.host) ++ except CertificateError: ++ self.sock.shutdown(socket.SHUT_RDWR) ++ self.sock.close() ++ raise ++ ++ class HTTPSHandler(BaseHTTPSHandler): ++ def __init__(self, ca_certs, check_domain=True): ++ BaseHTTPSHandler.__init__(self) ++ self.ca_certs = ca_certs ++ self.check_domain = check_domain ++ ++ def _conn_maker(self, *args, **kwargs): ++ """ ++ This is called to create a connection instance. Normally you'd ++ pass a connection class to do_open, but it doesn't actually check for ++ a class, and just expects a callable. As long as we behave just as a ++ constructor would have, we should be OK. If it ever changes so that ++ we *must* pass a class, we'll create an UnsafeHTTPSConnection class ++ which just sets check_domain to False in the class definition, and ++ choose which one to pass to do_open. ++ """ ++ result = HTTPSConnection(*args, **kwargs) + if self.ca_certs: +- context.verify_mode = ssl.CERT_REQUIRED +- context.load_verify_locations(cafile=self.ca_certs) +- if getattr(ssl, 'HAS_SNI', False): +- kwargs['server_hostname'] = self.host +- self.sock = context.wrap_socket(sock, **kwargs) +- if self.ca_certs and self.check_domain: +- try: +- match_hostname(self.sock.getpeercert(), self.host) +- logger.debug('Host verified: %s', self.host) +- except CertificateError: +- self.sock.shutdown(socket.SHUT_RDWR) +- self.sock.close() +- raise +- +-class HTTPSHandler(BaseHTTPSHandler): +- def __init__(self, ca_certs, check_domain=True): +- BaseHTTPSHandler.__init__(self) +- self.ca_certs = ca_certs +- self.check_domain = check_domain +- +- def _conn_maker(self, *args, **kwargs): +- """ +- This is called to create a connection instance. Normally you'd +- pass a connection class to do_open, but it doesn't actually check for +- a class, and just expects a callable. As long as we behave just as a +- constructor would have, we should be OK. If it ever changes so that +- we *must* pass a class, we'll create an UnsafeHTTPSConnection class +- which just sets check_domain to False in the class definition, and +- choose which one to pass to do_open. +- """ +- result = HTTPSConnection(*args, **kwargs) +- if self.ca_certs: +- result.ca_certs = self.ca_certs +- result.check_domain = self.check_domain +- return result +- +- def https_open(self, req): +- try: +- return self.do_open(self._conn_maker, req) +- except URLError as e: +- if 'certificate verify failed' in str(e.reason): +- raise CertificateError('Unable to verify server certificate ' +- 'for %s' % req.host) +- else: +- raise ++ result.ca_certs = self.ca_certs ++ result.check_domain = self.check_domain ++ return result + +-# +-# To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- +-# Middle proxy using HTTP listens on port 443, or an index mistakenly serves +-# HTML containing a http://xyz link when it should be https://xyz), +-# you can use the following handler class, which does not allow HTTP traffic. +-# +-# It works by inheriting from HTTPHandler - so build_opener won't add a +-# handler for HTTP itself. +-# +-class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): +- def http_open(self, req): +- raise URLError('Unexpected HTTP request on what should be a secure ' +- 'connection: %s' % req) ++ def https_open(self, req): ++ try: ++ return self.do_open(self._conn_maker, req) ++ except URLError as e: ++ if 'certificate verify failed' in str(e.reason): ++ raise CertificateError('Unable to verify server certificate ' ++ 'for %s' % req.host) ++ else: ++ raise ++ ++ # ++ # To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- ++ # Middle proxy using HTTP listens on port 443, or an index mistakenly serves ++ # HTML containing a http://xyz link when it should be https://xyz), ++ # you can use the following handler class, which does not allow HTTP traffic. ++ # ++ # It works by inheriting from HTTPHandler - so build_opener won't add a ++ # handler for HTTP itself. ++ # ++ class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): ++ def http_open(self, req): ++ raise URLError('Unexpected HTTP request on what should be a secure ' ++ 'connection: %s' % req) + + # + # XML-RPC with timeouts +@@ -1365,11 +1369,12 @@ if _ver_info == (2, 6): + self._setup(self._connection_class(host, port, **kwargs)) + + +- class HTTPS(httplib.HTTPS): +- def __init__(self, host='', port=None, **kwargs): +- if port == 0: # 0 means use port 0, not the default port +- port = None +- self._setup(self._connection_class(host, port, **kwargs)) ++ if ssl: ++ class HTTPS(httplib.HTTPS): ++ def __init__(self, host='', port=None, **kwargs): ++ if port == 0: # 0 means use port 0, not the default port ++ port = None ++ self._setup(self._connection_class(host, port, **kwargs)) + + + class Transport(xmlrpclib.Transport): +@@ -1388,25 +1393,26 @@ class Transport(xmlrpclib.Transport): + result = self._connection[1] + return result + +-class SafeTransport(xmlrpclib.SafeTransport): +- def __init__(self, timeout, use_datetime=0): +- self.timeout = timeout +- xmlrpclib.SafeTransport.__init__(self, use_datetime) +- +- def make_connection(self, host): +- h, eh, kwargs = self.get_host_info(host) +- if not kwargs: +- kwargs = {} +- kwargs['timeout'] = self.timeout +- if _ver_info == (2, 6): +- result = HTTPS(host, None, **kwargs) +- else: +- if not self._connection or host != self._connection[0]: +- self._extra_headers = eh +- self._connection = host, httplib.HTTPSConnection(h, None, +- **kwargs) +- result = self._connection[1] +- return result ++if ssl: ++ class SafeTransport(xmlrpclib.SafeTransport): ++ def __init__(self, timeout, use_datetime=0): ++ self.timeout = timeout ++ xmlrpclib.SafeTransport.__init__(self, use_datetime) ++ ++ def make_connection(self, host): ++ h, eh, kwargs = self.get_host_info(host) ++ if not kwargs: ++ kwargs = {} ++ kwargs['timeout'] = self.timeout ++ if _ver_info == (2, 6): ++ result = HTTPS(host, None, **kwargs) ++ else: ++ if not self._connection or host != self._connection[0]: ++ self._extra_headers = eh ++ self._connection = host, httplib.HTTPSConnection(h, None, ++ **kwargs) ++ result = self._connection[1] ++ return result + + + class ServerProxy(xmlrpclib.ServerProxy): diff --git a/build/pkgs/pip/spkg-install b/build/pkgs/pip/spkg-install index 472cca5ecb2..2389e74f6e4 100755 --- a/build/pkgs/pip/spkg-install +++ b/build/pkgs/pip/spkg-install @@ -2,4 +2,14 @@ cd src +# Apply patches +for patch in ../patches/*.patch; do + [ -r "$patch" ] || continue # Skip non-existing or non-readable patches + patch -p1 <"$patch" + if [ $? -ne 0 ]; then + echo >&2 "Error applying '$patch'" + exit 1 + fi +done + python setup.py install diff --git a/build/pkgs/ppl/checksums.ini b/build/pkgs/ppl/checksums.ini index 519204c0aa9..ba15444f72f 100644 --- a/build/pkgs/ppl/checksums.ini +++ b/build/pkgs/ppl/checksums.ini @@ -1,4 +1,4 @@ tarball=ppl-VERSION.tar.bz2 -sha1=f76fbc2d374170771fed030b79a5ffac08d907bf -md5=98be3e1a272bd5337fbadabb0d3f3d20 -cksum=3014134315 +sha1=727ac98a9365a617dc26bfd7961417d9d3ff4e74 +md5=50a757d37cced76e51b97709a4cf455a +cksum=158857820 diff --git a/build/pkgs/ppl/package-version.txt b/build/pkgs/ppl/package-version.txt index 9459d4ba2a0..5625e59da88 100644 --- a/build/pkgs/ppl/package-version.txt +++ b/build/pkgs/ppl/package-version.txt @@ -1 +1 @@ -1.1 +1.2 diff --git a/build/pkgs/ppl/patches/ptrdiff_t-ppl-1.1.patch b/build/pkgs/ppl/patches/ptrdiff_t-ppl-1.1.patch deleted file mode 100644 index 57c86332a93..00000000000 --- a/build/pkgs/ppl/patches/ptrdiff_t-ppl-1.1.patch +++ /dev/null @@ -1,155 +0,0 @@ ---- ppl-1.1-vanilla/src/Congruence_System_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Congruence_System_defs.hh 2014-04-20 20:40:41.839919465 +0200 -@@ -249,7 +249,7 @@ - class const_iterator - : public std::iterator { - public: ---- ppl-1.1-vanilla/src/Constraint_System_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Constraint_System_defs.hh 2014-04-20 20:35:12.263921783 +0200 -@@ -609,7 +609,7 @@ - class Parma_Polyhedra_Library::Constraint_System_const_iterator - : public std::iterator { - public: ---- ppl-1.1-vanilla/src/CO_Tree.cc 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/CO_Tree.cc 2014-04-20 20:25:35.311925841 +0200 -@@ -954,7 +954,7 @@ - --subtree_size; - } - -- const ptrdiff_t distance = first_unused_index - indexes; -+ const std::ptrdiff_t distance = first_unused_index - indexes; - PPL_ASSERT(distance >= 0); - return static_cast(distance); - } ---- ppl-1.1-vanilla/src/CO_Tree_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/CO_Tree_defs.hh 2014-04-20 20:10:58.843932005 +0200 -@@ -159,7 +159,7 @@ - - typedef std::bidirectional_iterator_tag iterator_category; - typedef const data_type value_type; -- typedef ptrdiff_t difference_type; -+ typedef std::ptrdiff_t difference_type; - typedef value_type* pointer; - typedef data_type_const_reference reference; - -@@ -314,7 +314,7 @@ - - typedef std::bidirectional_iterator_tag iterator_category; - typedef data_type value_type; -- typedef ptrdiff_t difference_type; -+ typedef std::ptrdiff_t difference_type; - typedef value_type* pointer; - typedef value_type& reference; - ---- ppl-1.1-vanilla/src/CO_Tree_inlines.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/CO_Tree_inlines.hh 2014-04-20 20:13:40.099930871 +0200 -@@ -31,7 +31,7 @@ - PPL_ASSERT(itr.current_index != 0); - PPL_ASSERT(itr.current_index >= indexes + 1); - PPL_ASSERT(itr.current_index <= indexes + reserved_size); -- const ptrdiff_t index = itr.current_index - indexes; -+ const std::ptrdiff_t index = itr.current_index - indexes; - return static_cast(index); - } - -@@ -40,7 +40,7 @@ - PPL_ASSERT(itr.current_index != 0); - PPL_ASSERT(itr.current_index >= indexes + 1); - PPL_ASSERT(itr.current_index <= indexes + reserved_size); -- const ptrdiff_t index = itr.current_index - indexes; -+ const std::ptrdiff_t index = itr.current_index - indexes; - return static_cast(index); - } - -@@ -772,7 +772,7 @@ - p -= (offset - 1); - while (*p == unused_index) - ++p; -- const ptrdiff_t distance = p - tree.indexes; -+ const std::ptrdiff_t distance = p - tree.indexes; - PPL_ASSERT(distance >= 0); - i = static_cast(distance); - offset = least_significant_one_mask(i); -@@ -787,7 +787,7 @@ - p += (offset - 1); - while (*p == unused_index) - --p; -- const ptrdiff_t distance = p - tree.indexes; -+ const std::ptrdiff_t distance = p - tree.indexes; - PPL_ASSERT(distance >= 0); - i = static_cast(distance); - offset = least_significant_one_mask(i); ---- ppl-1.1-vanilla/src/Dense_Row_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Dense_Row_defs.hh 2014-04-20 20:09:14.611932740 +0200 -@@ -433,7 +433,7 @@ - - typedef std::bidirectional_iterator_tag iterator_category; - typedef Coefficient value_type; -- typedef ptrdiff_t difference_type; -+ typedef std::ptrdiff_t difference_type; - typedef value_type* pointer; - typedef value_type& reference; - -@@ -474,7 +474,7 @@ - public: - - typedef const Coefficient value_type; -- typedef ptrdiff_t difference_type; -+ typedef std::ptrdiff_t difference_type; - typedef value_type* pointer; - typedef Coefficient_traits::const_reference reference; - ---- ppl-1.1-vanilla/src/Generator_System_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Generator_System_defs.hh 2014-04-20 20:45:38.327917382 +0200 -@@ -679,7 +679,7 @@ - class Parma_Polyhedra_Library::Generator_System_const_iterator - : public std::iterator { - public: ---- ppl-1.1-vanilla/src/Grid_Generator_System_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Grid_Generator_System_defs.hh 2014-04-20 20:52:48.503914356 +0200 -@@ -277,7 +277,7 @@ - class const_iterator - : public std::iterator { - public: ---- ppl-1.1-vanilla/src/Linear_Expression_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Linear_Expression_defs.hh 2014-04-20 20:19:47.831928285 +0200 -@@ -381,7 +381,7 @@ - public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef const Coefficient value_type; -- typedef ptrdiff_t difference_type; -+ typedef std::ptrdiff_t difference_type; - typedef value_type* pointer; - typedef Coefficient_traits::const_reference reference; - ---- ppl-1.1-vanilla/src/Linear_Expression_Interface_defs.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1-fixed-gcc-4.9/src/Linear_Expression_Interface_defs.hh 2014-04-20 20:16:01.107929880 +0200 -@@ -65,7 +65,7 @@ - public: - typedef std::bidirectional_iterator_tag iterator_category; - typedef const Coefficient value_type; -- typedef ptrdiff_t difference_type; -+ typedef std::ptrdiff_t difference_type; - typedef value_type* pointer; - typedef Coefficient_traits::const_reference reference; - diff --git a/build/pkgs/ppl/patches/weak.patch b/build/pkgs/ppl/patches/weak.patch deleted file mode 100644 index 60d27d8576b..00000000000 --- a/build/pkgs/ppl/patches/weak.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -druN ppl-1.1.orig/src/assert.hh ppl-1.1/src/assert.hh ---- ppl-1.1.orig/src/assert.hh 2013-10-28 13:38:33.000000000 +0100 -+++ ppl-1.1/src/assert.hh 2014-04-08 11:40:48.924491100 +0200 -@@ -98,7 +98,7 @@ - - namespace Parma_Polyhedra_Library { - --#if PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK -+#if PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK && ! (defined(__CYGWIN__) && defined(__x86_64__)) - #define PPL_WEAK_NORETURN __attribute__((weak, noreturn)) - #else - #define PPL_WEAK_NORETURN __attribute__((noreturn)) -diff -druN ppl-1.1.orig/src/ppl.hh.dist ppl-1.1/src/ppl.hh.dist ---- ppl-1.1.orig/src/ppl.hh.dist 2013-10-28 13:47:20.000000000 +0100 -+++ ppl-1.1/src/ppl.hh.dist 2014-04-08 11:01:13.361991100 +0200 -@@ -1739,7 +1739,7 @@ - - namespace Parma_Polyhedra_Library { - --#if PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK -+#if PPL_CXX_SUPPORTS_ATTRIBUTE_WEAK && ! (defined(__CYGWIN__) && defined(__x86_64__)) - #define PPL_WEAK_NORETURN __attribute__((weak, noreturn)) - #else - #define PPL_WEAK_NORETURN __attribute__((noreturn)) diff --git a/build/pkgs/pygments/package-version.txt b/build/pkgs/pygments/package-version.txt index ac2cdeba013..f91508fe534 100644 --- a/build/pkgs/pygments/package-version.txt +++ b/build/pkgs/pygments/package-version.txt @@ -1 +1 @@ -2.1.3 +2.1.3.p0 diff --git a/build/pkgs/pygments/spkg-install b/build/pkgs/pygments/spkg-install index 3046dd88242..a13a45231ff 100755 --- a/build/pkgs/pygments/spkg-install +++ b/build/pkgs/pygments/spkg-install @@ -9,19 +9,19 @@ fi #Remove old version rm -rf "$SAGE_LOCAL"/lib/python/site-packages/Pygments-* +#Install new version +cd src + # Apply patches echo "Patching Pygments..." -for p in patches/*.patch; do - patch -p0 <$p +for p in ../patches/*.patch; do + patch -p1 <$p if [ $? -ne 0 ]; then echo "Error applying patch $p" exit 1 fi done -#Install new version -cd src - python setup.py install if [ $? -ne 0 ]; then echo "Error installing Pygments." diff --git a/build/pkgs/pynac/checksums.ini b/build/pkgs/pynac/checksums.ini index 4fee5a349e6..9c9012461d0 100644 --- a/build/pkgs/pynac/checksums.ini +++ b/build/pkgs/pynac/checksums.ini @@ -1,4 +1,4 @@ tarball=pynac-VERSION.tar.bz2 -sha1=e43d1e78a3558d4bf1f8c1ca71cc95a2c4758868 -md5=5435ea1568cad643a490bd8cb8b6c1e2 -cksum=3626141660 +sha1=58ac340027fe440389e21f8ea9b824876adf1429 +md5=f78724485c8438bc931966f0a0fd0061 +cksum=3600148331 diff --git a/build/pkgs/pynac/package-version.txt b/build/pkgs/pynac/package-version.txt index ef5e4454454..2228cad41f3 100644 --- a/build/pkgs/pynac/package-version.txt +++ b/build/pkgs/pynac/package-version.txt @@ -1 +1 @@ -0.6.5 +0.6.7 diff --git a/build/pkgs/pynac/spkg-install b/build/pkgs/pynac/spkg-install index 3a0e16d47d4..44c3ecb81d7 100755 --- a/build/pkgs/pynac/spkg-install +++ b/build/pkgs/pynac/spkg-install @@ -33,7 +33,7 @@ build_pynac() { cd ${PYNACDIR} PKG_CONFIG_PATH=${SAGE_LOCAL}/lib/pkgconfig; export PKG_CONFIG_PATH - ./configure --disable-static --prefix=${SAGE_LOCAL} --libdir="$SAGE_LOCAL/lib" + ./configure --disable-static --prefix=${SAGE_LOCAL} --with-giac=no --libdir="$SAGE_LOCAL/lib" $MAKE if [ $? -ne 0 ]; then echo "Error building pynac." diff --git a/build/pkgs/pyparsing/checksums.ini b/build/pkgs/pyparsing/checksums.ini index ff2d409f1ee..afec245e4d1 100644 --- a/build/pkgs/pyparsing/checksums.ini +++ b/build/pkgs/pyparsing/checksums.ini @@ -1,4 +1,4 @@ tarball=pyparsing-VERSION.tar.gz -sha1=d8a758393368b118636c82546cc09e19b5447207 -md5=322059c57f0c9f11da1c6c06a2ba2197 -cksum=3465103187 +sha1=22ac5350c295b4b465904eb3ce592ea8cf3520f6 +md5=28d0c3cf39ee5859d408d2b4d311a9c2 +cksum=1885483516 diff --git a/build/pkgs/pyparsing/package-version.txt b/build/pkgs/pyparsing/package-version.txt index 7d2ed7c7020..cd57a8b95d6 100644 --- a/build/pkgs/pyparsing/package-version.txt +++ b/build/pkgs/pyparsing/package-version.txt @@ -1 +1 @@ -2.1.4 +2.1.5 diff --git a/build/pkgs/python2/package-version.txt b/build/pkgs/python2/package-version.txt index 705a0a22acf..b097ea47ca8 100644 --- a/build/pkgs/python2/package-version.txt +++ b/build/pkgs/python2/package-version.txt @@ -1 +1 @@ -2.7.10.p1 +2.7.10.p2 diff --git a/build/pkgs/python2/patches/re_match_index.patch b/build/pkgs/python2/patches/re_match_index.patch new file mode 100644 index 00000000000..0a6997642c7 --- /dev/null +++ b/build/pkgs/python2/patches/re_match_index.patch @@ -0,0 +1,37 @@ +Fix http://bugs.python.org/issue27177 +diff -ru Python-2.7.10/Lib/test/test_index.py Python-2.7.10-fix-re//Lib/test/test_index.py +--- Python-2.7.10/Lib/test/test_index.py 2015-05-23 18:09:11.000000000 +0200 ++++ Python-2.7.10-fix-re//Lib/test/test_index.py 2016-06-01 15:50:07.274162354 +0200 +@@ -246,6 +246,20 @@ + self.assertEqual(xrange(1, 20)[n], 6) + self.assertEqual(xrange(1, 20).__getitem__(n), 6) + ++class MatchGroupTestCase(unittest.TestCase): ++ ++ def test_re_group(self): ++ n = newstyle() ++ n.ind = 0 ++ o = oldstyle() ++ o.ind = 1 ++ ++ import re ++ p = re.compile('(a)(b)') ++ m = p.match('ab') ++ self.assertEqual(m.group(0), m.group(n)) ++ self.assertEqual(m.group(1), m.group(o)) ++ + class OverflowTestCase(unittest.TestCase): + + def setUp(self): +diff -ru Python-2.7.10/Modules/_sre.c Python-2.7.10-fix-re//Modules/_sre.c +--- Python-2.7.10/Modules/_sre.c 2015-05-23 18:09:19.000000000 +0200 ++++ Python-2.7.10-fix-re//Modules/_sre.c 2016-06-01 15:50:58.614165047 +0200 +@@ -3303,6 +3303,8 @@ + + if (PyInt_Check(index) || PyLong_Check(index)) + return PyInt_AsSsize_t(index); ++ if (PyIndex_Check(index)) ++ return PyNumber_AsSsize_t(index, PyExc_IndexError); + + i = -1; + diff --git a/build/pkgs/python2/spkg-install b/build/pkgs/python2/spkg-install index db35674f8fe..e679291b7ec 100755 --- a/build/pkgs/python2/spkg-install +++ b/build/pkgs/python2/spkg-install @@ -108,14 +108,15 @@ build() fi } - build +PYTHON_VERSION=$("$SAGE_LOCAL/bin/python" -c 'import sys; print("%d.%d" % sys.version_info[:2])') + cd "$SAGE_LOCAL/lib" # Make symbolic link (after removing old link first) rm -f python -ln -s python2.7 python +ln -s python${PYTHON_VERSION} python if [ $? -ne 0 ]; then echo >&2 "Error creating symbolic link" exit 1 @@ -128,7 +129,10 @@ fi # x.y.z with x >= 10). if [ "$UNAME" = "Darwin" ] && \ [ `uname -r | cut '-d.' -f1` -gt 9 ]; then - rm -f "$SAGE_LOCAL/lib/python2.7/config/libpython2.7.a" + rm -f "$SAGE_LOCAL/lib/python$PYTHON_VERSION/config/libpython${PYTHON_VERSION}.a" +elif [ "$UNAME" = "CYGWIN" ]; then + # See http://trac.sagemath.org/ticket/20437 + ln -sf "python/config/libpython${PYTHON_VERSION}.dll.a" "$SAGE_LOCAL/lib/libpython${PYTHON_VERSION}.dll.a" fi # Make sure extension modules were built correctly. diff --git a/build/pkgs/python3/spkg-install b/build/pkgs/python3/spkg-install index 6d1ac4c2608..946ae213356 100755 --- a/build/pkgs/python3/spkg-install +++ b/build/pkgs/python3/spkg-install @@ -109,14 +109,19 @@ if [ $? -ne 0 ]; then exit 1 fi +PYTHON_VERSION=$("$SAGE_LOCAL/bin/python" -c 'import sys; print("%d.%d" % sys.version_info[:2])') + # On OS X with XCode 4, the presence of -# $SAGE_LOCAL/lib/python/config/libpython2.7.a causes problems with +# $SAGE_LOCAL/lib/python/config/libpython3.x.a causes problems with # GiNaC -- see #11967. It is easiest to test the version of OS X; we # delete this file if using OS X 10.6 or later (so `uname -r` returns # x.y.z with x >= 10). if [ "$UNAME" = "Darwin" ] && \ [ `uname -r | cut '-d.' -f1` -gt 9 ]; then - rm -f "$SAGE_LOCAL"/lib/python*/config/libpython*.a + rm -f "$SAGE_LOCAL/lib/python$PYTHON_VERSION/config/libpython${PYTHON_VERSION}.a" +elif [ "$UNAME" = "CYGWIN" ]; then + # See http://trac.sagemath.org/ticket/20437 + ln -sf "python/config/libpython${PYTHON_VERSION}.dll.a" "$SAGE_LOCAL/lib/libpython${PYTHON_VERSION}.dll.a" fi # Make sure extension modules were built correctly. diff --git a/build/pkgs/python_openid/spkg-install b/build/pkgs/python_openid/spkg-install index 9d8788038ec..afb3f302fd1 100755 --- a/build/pkgs/python_openid/spkg-install +++ b/build/pkgs/python_openid/spkg-install @@ -1,3 +1,3 @@ #!/usr/bin/env bash -cd python-openid-* && python setup.py install +cd src && python setup.py install diff --git a/build/pkgs/qepcad/spkg-install b/build/pkgs/qepcad/spkg-install index b63aae757d6..babef7eb95a 100755 --- a/build/pkgs/qepcad/spkg-install +++ b/build/pkgs/qepcad/spkg-install @@ -7,7 +7,7 @@ if [ "$SAGE_LOCAL" = "" ]; then fi -cd qesource +cd src # Apply patches. echo 'Patching qepcad' diff --git a/build/pkgs/r/spkg-check b/build/pkgs/r/spkg-check index 871bc56b750..798e2984284 100755 --- a/build/pkgs/r/spkg-check +++ b/build/pkgs/r/spkg-check @@ -5,9 +5,6 @@ if [ "$SAGE_LOCAL" = "" ]; then exit 1 fi -## Saturday night special for the ill-formed R-3.2.4-revised.tar.gz release -ln -s R-revised src - cd src $MAKE check if [ $? -ne 0 ]; then diff --git a/build/pkgs/r/spkg-install b/build/pkgs/r/spkg-install index abd6f0aa0e1..86011089d81 100755 --- a/build/pkgs/r/spkg-install +++ b/build/pkgs/r/spkg-install @@ -105,10 +105,7 @@ elif [ "$UNAME" = "SunOS" ]; then R_CONFIGURE="--without-ICU $R_CONFIGURE" fi -## cd src -## Saturday night special : quick and dirty fix for the ill-formed -## R-3.2.4-revised.tar.gz release -cd R-revised +cd src # Apply patches. See SPKG.txt for information about what each patch # does. diff --git a/build/pkgs/rpy2/checksums.ini b/build/pkgs/rpy2/checksums.ini index 31a67403dd2..34924fda9bd 100644 --- a/build/pkgs/rpy2/checksums.ini +++ b/build/pkgs/rpy2/checksums.ini @@ -1,4 +1,4 @@ tarball=rpy2-VERSION.tar.gz -sha1=c53d22fac3699c7abe54f86bda8363ae166fcc9e -md5=4315a3fbe765cea54d252899384390c8 -cksum=2858964315 +sha1=51803517898340eb4fe4eec89daee76f08f60c74 +md5=dd6dc7198e27a4771e66af022ab6bcf2 +cksum=2373424952 diff --git a/build/pkgs/rpy2/package-version.txt b/build/pkgs/rpy2/package-version.txt index 3e651609d62..dbe59006547 100644 --- a/build/pkgs/rpy2/package-version.txt +++ b/build/pkgs/rpy2/package-version.txt @@ -1 +1 @@ -2.7.9 +2.8.1 diff --git a/build/pkgs/saclib/spkg-install b/build/pkgs/saclib/spkg-install index d2a8ae71bd1..621003fb5d1 100755 --- a/build/pkgs/saclib/spkg-install +++ b/build/pkgs/saclib/spkg-install @@ -9,7 +9,8 @@ fi # build saclib -cd saclib* +cd src + saclib=$(pwd -P) export saclib bin/sconf && bin/mkproto && bin/mkmake && bin/mklib all @@ -22,5 +23,5 @@ fi # install saclib to the Sage tree cd .. rm -rf $SAGE_LOCAL/lib/saclib -mv saclib* $SAGE_LOCAL/lib/saclib +mv src $SAGE_LOCAL/lib/saclib diff --git a/build/pkgs/setuptools/checksums.ini b/build/pkgs/setuptools/checksums.ini index 6ebed48615b..7d0bebf5526 100644 --- a/build/pkgs/setuptools/checksums.ini +++ b/build/pkgs/setuptools/checksums.ini @@ -1,4 +1,4 @@ tarball=setuptools-VERSION.tar.gz -sha1=38f9bd98b2c36bd4bae64ea06495e35e43b09b43 -md5=81964fdb89534118707742e6d1a1ddb4 -cksum=2850250678 +sha1=0f3cbf3b92d321e0d25dc100eb3f0ebd09984b02 +md5=f7f447663f7d5e17c84be10dc6b195fd +cksum=2622458560 diff --git a/build/pkgs/setuptools/package-version.txt b/build/pkgs/setuptools/package-version.txt index fb5b513039e..f8aed3e0b7a 100644 --- a/build/pkgs/setuptools/package-version.txt +++ b/build/pkgs/setuptools/package-version.txt @@ -1 +1 @@ -21.0.0 +23.1.0 diff --git a/build/pkgs/setuptools_scm/checksums.ini b/build/pkgs/setuptools_scm/checksums.ini index a228ef1930b..c53fb7935c6 100644 --- a/build/pkgs/setuptools_scm/checksums.ini +++ b/build/pkgs/setuptools_scm/checksums.ini @@ -1,4 +1,4 @@ tarball=setuptools_scm-VERSION.tar.gz -sha1=423fe07da9f27e0a4676f7e98f8e9f4839b6d4a4 -md5=4c5c896ba52e134bbc3507bac6400087 -cksum=1357969954 +sha1=3caea1245d704727ce8a651cb25fbf1b64da5a0b +md5=4d19b2bc9580016d991f665ac20e2e8f +cksum=1244743244 diff --git a/build/pkgs/setuptools_scm/package-version.txt b/build/pkgs/setuptools_scm/package-version.txt index 1cac385c6cb..720c7384c61 100644 --- a/build/pkgs/setuptools_scm/package-version.txt +++ b/build/pkgs/setuptools_scm/package-version.txt @@ -1 +1 @@ -1.11.0 +1.11.1 diff --git a/build/pkgs/singular/patches/singular-gcc6.patch b/build/pkgs/singular/patches/singular-gcc6.patch new file mode 100644 index 00000000000..c07b6205797 --- /dev/null +++ b/build/pkgs/singular/patches/singular-gcc6.patch @@ -0,0 +1,32 @@ +diff -up Singular-3-1-7/kernel/mod_raw.cc.orig Singular-3-1-7/kernel/mod_raw.cc +--- Singular-3-1-7/kernel/mod_raw.cc.orig 2014-08-06 09:59:15.000000000 -0600 ++++ Singular-3-1-7/kernel/mod_raw.cc 2016-02-15 21:53:02.950149126 -0700 +@@ -38,8 +38,8 @@ char* si_bultin_libs[]={ SI_FOREACH_BUIL + + lib_types type_of_LIB(char *newlib, char *libnamebuf) + { +- const char mach_o[]={0xfe,0xed,0xfa,0xce,0}; +- const char mach_o_module[]={0xce,0xfa,0xed,0xfe,0}; ++ const unsigned char mach_o[]={0xfe,0xed,0xfa,0xce,0}; ++ const unsigned char mach_o_module[]={0xce,0xfa,0xed,0xfe,0}; + int i=0; + while(si_bultin_libs[i]!=NULL) + { +@@ -90,7 +90,7 @@ lib_types type_of_LIB(char *newlib, char + goto lib_type_end; + } + +- if( (strncmp(buf, &mach_o[0], 4)==0)) /* generic Mach-O module */ ++ if( (strncmp(buf, (const char *)mach_o, 4)==0)) /* generic Mach-O module */ + { + LT = LT_MACH_O; + //omFree(newlib); +@@ -98,7 +98,7 @@ lib_types type_of_LIB(char *newlib, char + goto lib_type_end; + } + +- if( (strncmp(buf, &mach_o_module[0], 4)==0)) /* Mach-O bundle */ ++ if( (strncmp(buf, (const char *)mach_o_module, 4)==0)) /* Mach-O bundle */ + { + LT = LT_MACH_O; + //omFree(newlib); diff --git a/build/pkgs/singular/spkg-install b/build/pkgs/singular/spkg-install index b56090ae096..08a21977935 100755 --- a/build/pkgs/singular/spkg-install +++ b/build/pkgs/singular/spkg-install @@ -125,6 +125,8 @@ remove_old_version() rm -f "$SAGE_LOCAL/include/factoryconf.h" rm -rf "$SAGE_LOCAL/include/factory" rm -rf "$SAGE_LOCAL/include/singular" + rm -rf "$SAGE_LOCAL"/include/omalloc* + rm -f "$SAGE_LOCAL"/lib/*omalloc* } config() diff --git a/build/pkgs/sphinx/checksums.ini b/build/pkgs/sphinx/checksums.ini index 70b234a26bf..6b5bf7ccd4c 100644 --- a/build/pkgs/sphinx/checksums.ini +++ b/build/pkgs/sphinx/checksums.ini @@ -1,4 +1,4 @@ tarball=Sphinx-VERSION.tar.gz -sha1=d18b856710b22ae9740147e21754ca5b851af9b2 -md5=4c4988e0306a04cef8dccc384281e585 -cksum=282370994 +sha1=87ef31c2ce8c556a1644c53d21526eac7ad45f38 +md5=64ce2ec08d37ed56313a98232cbe2aee +cksum=759415183 diff --git a/build/pkgs/sphinx/package-version.txt b/build/pkgs/sphinx/package-version.txt index cc6f9934c2e..1c99cf0e809 100644 --- a/build/pkgs/sphinx/package-version.txt +++ b/build/pkgs/sphinx/package-version.txt @@ -1 +1 @@ -1.4.1.p0 +1.4.4 diff --git a/build/pkgs/sphinx/patches/latex_list.patch b/build/pkgs/sphinx/patches/latex_list.patch deleted file mode 100644 index b5b7e87998b..00000000000 --- a/build/pkgs/sphinx/patches/latex_list.patch +++ /dev/null @@ -1,23 +0,0 @@ -Fix https://github.com/sphinx-doc/sphinx/issues/777 - -diff -ru a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty ---- a/sphinx/texinputs/sphinx.sty 2016-04-12 15:07:10.000000000 +0200 -+++ b/sphinx/texinputs/sphinx.sty 2016-04-22 22:24:13.671897443 +0200 -@@ -264,7 +264,7 @@ - \global\Sphinx@myfirstframedpasstrue - % The list environement is needed to control perfectly the vertical - % space. -- \list{}{% -+ \trivlist{}{% - \setlength\parskip{0pt}% - \setlength\itemsep{0ex}% - \setlength\topsep{0ex}% -@@ -278,7 +278,7 @@ - \renewcommand{\endVerbatim}{% - \endOriginalVerbatim - \endMakeFramed -- \endlist -+ \endtrivlist - % LaTeX environments always revert local changes on exit, here e.g. \parskip - } - diff --git a/build/pkgs/traitlets/checksums.ini b/build/pkgs/traitlets/checksums.ini index b64f26cd80b..85a7e935f8e 100644 --- a/build/pkgs/traitlets/checksums.ini +++ b/build/pkgs/traitlets/checksums.ini @@ -1,4 +1,4 @@ tarball=traitlets-VERSION.tar.gz -sha1=07ada203e89cb8be31550225e4947230efba5a17 -md5=f9cc1ad00a793a65d7bc88d69ee65920 -cksum=3474275251 +sha1=c1bb59bbe9424fd4f3ad8363f5f53c42ecdde7e1 +md5=d0725f9818bd9e112a6531da26d433b8 +cksum=3725637001 diff --git a/build/pkgs/traitlets/package-version.txt b/build/pkgs/traitlets/package-version.txt index fae6e3d04b2..af8c8ec7c13 100644 --- a/build/pkgs/traitlets/package-version.txt +++ b/build/pkgs/traitlets/package-version.txt @@ -1 +1 @@ -4.2.1 +4.2.2 diff --git a/build/pkgs/werkzeug/checksums.ini b/build/pkgs/werkzeug/checksums.ini index 756a18fc98c..07b80d44ef4 100644 --- a/build/pkgs/werkzeug/checksums.ini +++ b/build/pkgs/werkzeug/checksums.ini @@ -1,4 +1,4 @@ tarball=Werkzeug-VERSION.tar.gz -sha1=73eea1fafaea078037ccb79ef8678b5f79b665de -md5=e4dbeb6302ce74babc0d7c21fc3d8291 -cksum=2467416624 +sha1=b58b07e7c967b2c4cb4cfa4be644b0ae8acffd7f +md5=780967186f9157e88f2bfbfa6f07a893 +cksum=3715338387 diff --git a/build/pkgs/werkzeug/package-version.txt b/build/pkgs/werkzeug/package-version.txt index 24b197ac924..0521cad14b0 100644 --- a/build/pkgs/werkzeug/package-version.txt +++ b/build/pkgs/werkzeug/package-version.txt @@ -1 +1 @@ -0.11.9 +0.11.10 diff --git a/build/pkgs/widgetsnbextension/checksums.ini b/build/pkgs/widgetsnbextension/checksums.ini index 4a3721f1e3b..82958ece6d5 100644 --- a/build/pkgs/widgetsnbextension/checksums.ini +++ b/build/pkgs/widgetsnbextension/checksums.ini @@ -1,4 +1,4 @@ tarball=widgetsnbextension-VERSION.tar.gz -sha1=88c3128991d39a3df76814be882e88b03427e3f9 -md5=80c325aa4db1cf3bf5c4287898ebab98 -cksum=2304802494 +sha1=620243ee303aa5494f0f37e939446c7b7d3e9293 +md5=96b4adc12e70de9c54b5eb103e1167c8 +cksum=2711627657 diff --git a/build/pkgs/widgetsnbextension/package-version.txt b/build/pkgs/widgetsnbextension/package-version.txt index 23aa8390630..0495c4a88ca 100644 --- a/build/pkgs/widgetsnbextension/package-version.txt +++ b/build/pkgs/widgetsnbextension/package-version.txt @@ -1 +1 @@ -1.2.2 +1.2.3 diff --git a/build/pkgs/zope_interface/checksums.ini b/build/pkgs/zope_interface/checksums.ini index f552e0133dc..27dbc406765 100644 --- a/build/pkgs/zope_interface/checksums.ini +++ b/build/pkgs/zope_interface/checksums.ini @@ -1,4 +1,4 @@ tarball=zope.interface-VERSION.tar.gz -sha1=207161e27880d07679aff6d712ed12f55e3d91b6 -md5=9ae3d24c0c7415deb249dd1a132f0f79 -cksum=3834987228 +sha1=8b5f345d257d9d03cd782b9e332fc1c0928928f4 +md5=2950a6db7e985e19c7a846cc20f5d82a +cksum=3797029969 diff --git a/build/pkgs/zope_interface/package-version.txt b/build/pkgs/zope_interface/package-version.txt index de197cc337f..6aba2b245a8 100644 --- a/build/pkgs/zope_interface/package-version.txt +++ b/build/pkgs/zope_interface/package-version.txt @@ -1 +1 @@ -4.1.3 +4.2.0 diff --git a/build/sage_bootstrap/app.py b/build/sage_bootstrap/app.py new file mode 100644 index 00000000000..495c7b7e61d --- /dev/null +++ b/build/sage_bootstrap/app.py @@ -0,0 +1,176 @@ +# -*- coding: utf-8 -*- +""" +Controller for the commandline actions +""" + + +#***************************************************************************** +# Copyright (C) 2016 Volker Braun +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# http://www.gnu.org/licenses/ +#***************************************************************************** + +import os +import sys +import logging +log = logging.getLogger() + +from sage_bootstrap.env import SAGE_DISTFILES +from sage_bootstrap.package import Package +from sage_bootstrap.tarball import Tarball +from sage_bootstrap.updater import ChecksumUpdater, PackageUpdater +from sage_bootstrap.creator import PackageCreator + + + +class Application(object): + + def config(self): + """ + Print the configuration + + $ sage --package config + Configuration: + * log = info + * interactive = True + """ + log.debug('Printing configuration') + from sage_bootstrap.config import Configuration + print(Configuration()) + + def list(self): + """ + Print a list of all available packages + + $ sage --package list | sort + 4ti2 + arb + atlas + autotools + [...] + zn_poly + """ + log.debug('Listing packages') + for pkg in Package.all(): + print(pkg.name) + + def name(self, tarball_filename): + """ + Find the package name given a tarball filename + + $ sage --package name pari-2.8-1564-gdeac36e.tar.gz + pari + """ + log.debug('Looking up package name for %s', tarball_filename) + tarball = Tarball(os.path.basename(tarball_filename)) + print(tarball.package.name) + + def tarball(self, package_name): + """ + Find the tarball filename given a package name + + $ sage --package tarball pari + pari-2.8-1564-gdeac36e.tar.gz + """ + log.debug('Looking up tarball name for %s', package_name) + package = Package(package_name) + print(package.tarball.filename) + + def apropos(self, incorrect_name): + """ + Find up to 5 package names that are close to the given name + + $ sage --package apropos python + Did you mean: cython, ipython, python2, python3, patch? + """ + log.debug('Apropos for %s', incorrect_name) + from sage_bootstrap.levenshtein import Levenshtein, DistanceExceeded + levenshtein = Levenshtein(5) + names = [] + for pkg in Package.all(): + try: + names.append([levenshtein(pkg.name, incorrect_name), pkg.name]) + except DistanceExceeded: + pass + if names: + names = sorted(names)[:5] + print('Did you mean: {0}?'.format(', '.join(name[1] for name in names))) + else: + print('There is no package similar to {0}'.format(incorrect_name)) + print('You can find further packages at http://files.sagemath.org/spkg/') + + def update(self, package_name, new_version, url=None): + """ + Update a package. This modifies the Sage sources. + + $ sage --package update pari 2015 --url=http://localhost/pari/tarball.tgz + """ + log.debug('Updating %s to %s', package_name, new_version) + update = PackageUpdater(package_name, new_version) + if url is not None: + log.debug('Downloading %s', url) + update.download_upstream(url) + update.fix_checksum() + + def download(self, package_name): + """ + Download a package + + $ sage --package download pari + Using cached file /home/vbraun/Code/sage.git/upstream/pari-2.8-2044-g89b0f1e.tar.gz + /home/vbraun/Code/sage.git/upstream/pari-2.8-2044-g89b0f1e.tar.gz + """ + log.debug('Downloading %s', package_name) + package = Package(package_name) + package.tarball.download() + print(package.tarball.upstream_fqn) + + def fix_all_checksums(self): + """ + Fix the checksum of a package + + $ sage --package fix-checksum + """ + for pkg in Package.all(): + if not os.path.exists(pkg.tarball.upstream_fqn): + log.debug('Ignoring {0} because tarball is not cached'.format(pkg.tarball_filename)) + continue + if pkg.tarball.checksum_verifies(): + log.debug('Checksum of {0} unchanged'.format(pkg.tarball_filename)) + continue + update = ChecksumUpdater(pkg.name) + print('Updating checksum of {0}'.format(pkg.tarball_filename)) + update.fix_checksum() + + def fix_checksum(self, package_name): + """ + Fix the checksum of a package + + $ sage --package fix-checksum pari + Updating checksum of pari-2.8-2044-g89b0f1e.tar.gz + """ + log.debug('Correcting the checksum of %s', package_name) + update = ChecksumUpdater(package_name) + pkg = update.package + if pkg.tarball.checksum_verifies(): + print('Checksum of {0} unchanged'.format(pkg.tarball_filename)) + else: + print('Updating checksum of {0}'.format(pkg.tarball_filename)) + update.fix_checksum() + + def create(self, package_name, version, tarball, pkg_type): + log.debug('Creating %s: %s, %s, %s', package_name, version, tarball, pkg_type) + creator = PackageCreator(package_name) + if version: + creator.set_version(version) + if pkg_type: + creator.set_type(pkg_type) + if tarball: + creator.set_tarball(tarball) + update = ChecksumUpdater(package_name) + update.fix_checksum() + diff --git a/build/sage_bootstrap/cksum.py b/build/sage_bootstrap/cksum.py index 5d640b69920..eaba1e87619 100644 --- a/build/sage_bootstrap/cksum.py +++ b/build/sage_bootstrap/cksum.py @@ -3,6 +3,7 @@ This is a weak checksum, only included for legacy reasons. """ + import sys # Fun table, e.g. http://www.nco.ncep.noaa.gov/pmb/codes/nwprod/util/sorc/wgrib2.cd/grib2/wgrib2/crc32.c @@ -73,9 +74,12 @@ def __init__(self): def update(self, buffer): value = self._value + if isinstance(buffer, str): + buffer = list(map(ord, list(buffer))) + else: + buffer = list(buffer) for ch in buffer: - c = ord(ch) - tabidx = (value >> 24) ^ c + tabidx = (value >> 24) ^ ch value = UNSIGNED((value << 8)) ^ crctab[tabidx] self._value = value self._length += len(buffer) diff --git a/build/sage_bootstrap/cmdline.py b/build/sage_bootstrap/cmdline.py index fc8d4588929..3801e58cb83 100644 --- a/build/sage_bootstrap/cmdline.py +++ b/build/sage_bootstrap/cmdline.py @@ -1,13 +1,14 @@ # -*- coding: utf-8 -*- """ -Commandline handling +View for the Commandline UI -Note that argparse is not part of Python 2.6, so we cannot rely on it here. +This module handles the main "sage-package" commandline utility, which +is also exposed as "sage --package". """ #***************************************************************************** -# Copyright (C) 2015 Volker Braun +# Copyright (C) 2016 Volker Braun # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,227 +19,255 @@ import os import sys -import re -from textwrap import dedent import logging log = logging.getLogger() -from sage_bootstrap.env import SAGE_DISTFILES -from sage_bootstrap.package import Package -from sage_bootstrap.download import Download -from sage_bootstrap.mirror_list import MirrorList -from sage_bootstrap.tarball import Tarball +# Note that argparse is not part of Python 2.6, so we bundle it +from sage_bootstrap.compat import argparse +from sage_bootstrap.app import Application -class CmdlineSubcommands(object): - KEYWORD_RE = re.compile('--(?P