Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit a53a956

Browse files
committed
Merge tag '6.10.beta6' into u/lftabera/lift_centered
Sage version 6.10.beta6
2 parents 3dd232b + 8400a23 commit a53a956

File tree

2,817 files changed

+191699
-84777
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,817 files changed

+191699
-84777
lines changed

.gitignore

-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
/config.log
1616
/config.status
1717
/configure
18-
/build/Makefile-auto
19-
/build/Makefile-auto.in
2018

2119
###################
2220
# Temporary Files #

COPYING.txt

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ the licenses of the components of Sage are included below as well.
2828

2929
SOFTWARE LICENSE
3030
-----------------------------------------------------------------------
31+
arb GPLv2+
3132
atlas Modified BSD
3233
boehm_gc MIT-like license (see below)
3334
backports_ssl_match_hostname Python License
@@ -96,6 +97,7 @@ pillow Apache License 2.0
9697
pip MIT License
9798
pkgconf ISC License (equivalent to Simplified BSD)
9899
pkgconfig MIT License
100+
planarity Modified BSD
99101
polybori GPLv2+
100102
polytopes_db None (database)
101103
ppl GPLv3+

Makefile

+48-90
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,34 @@
77
# See below for targets to build the documentation in other formats,
88
# to run various types of test suites, and to remove parts of the build etc.
99

10-
PIPE = build/pipestatus
11-
12-
13-
all: start doc # indirectly depends on build
14-
15-
logs:
16-
mkdir -p $@
17-
18-
build: logs configure
19-
+cd build && \
20-
"../$(PIPE)" \
21-
"env SAGE_PARALLEL_SPKG_BUILD='$(SAGE_PARALLEL_SPKG_BUILD)' ./install all 2>&1" \
22-
"tee -a ../logs/install.log"
23-
+./sage -b
10+
default: all
11+
12+
build: all-build
13+
14+
# Defer unknown targets to build/make/Makefile
15+
%::
16+
$(MAKE) build/make/Makefile
17+
+build/bin/sage-logger \
18+
"cd build/make && ./install '$@'" logs/install.log
19+
20+
# If configure was run before, rerun it with the old arguments.
21+
# Otherwise, run configure with argument $PREREQ_OPTIONS.
22+
build/make/Makefile: configure build/pkgs/*/*
23+
rm -f config.log
24+
mkdir -p logs/pkgs
25+
ln -s logs/pkgs/config.log config.log
26+
@if [ -x config.status ]; then \
27+
./config.status --recheck && ./config.status; \
28+
else \
29+
./configure $$PREREQ_OPTIONS; \
30+
fi || ( \
31+
if [ "x$$SAGE_PORT" = x ]; then \
32+
echo "If you would like to try to build Sage anyway (to help porting),"; \
33+
echo "export the variable 'SAGE_PORT' to something non-empty."; \
34+
exit 1; \
35+
else \
36+
echo "Since 'SAGE_PORT' is set, we will try to build anyway."; \
37+
fi; )
2438

2539
# Preemptively download all standard upstream source tarballs.
2640
download:
@@ -36,118 +50,64 @@ download:
3650
ssl: all
3751
./sage -i pyopenssl
3852

39-
build-serial: SAGE_PARALLEL_SPKG_BUILD = no
40-
build-serial: build
41-
42-
# Start Sage if the file local/etc/sage-started.txt does not exist
43-
# (i.e. when we just installed Sage for the first time).
44-
start: build
45-
[ -f local/etc/sage-started.txt ] || local/bin/sage-starts
46-
47-
# You can choose to have the built HTML version of the documentation link to
48-
# the PDF version. To do so, you need to build both the HTML and PDF versions.
49-
# To have the HTML version link to the PDF version, do
50-
#
51-
# $ ./sage --docbuild all html
52-
# $ ./sage --docbuild all pdf
53-
#
54-
# For more information on the docbuild utility, do
55-
#
56-
# $ ./sage --docbuild -H
57-
doc: doc-html
58-
59-
doc-html: build
60-
$(PIPE) "./sage --docbuild --no-pdf-links all html $(SAGE_DOCBUILD_OPTS) 2>&1" "tee -a logs/dochtml.log"
61-
62-
# 'doc-html-no-plot': build docs without building the graphics coming
63-
# from the '.. plot' directive, in case you want to save a few
64-
# megabytes of disk space. 'doc-clean' is a prerequisite because the
65-
# presence of graphics is cached in src/doc/output.
66-
doc-html-no-plot: build doc-clean
67-
$(PIPE) "./sage --docbuild --no-pdf-links --no-plot all html $(SAGE_DOCBUILD_OPTS) 2>&1" "tee -a logs/dochtml.log"
68-
69-
doc-html-mathjax: build
70-
$(PIPE) "./sage --docbuild --no-pdf-links all html -j $(SAGE_DOCBUILD_OPTS) 2>&1" "tee -a logs/dochtml.log"
71-
72-
# Keep target 'doc-html-jsmath' for backwards compatibility.
73-
doc-html-jsmath: doc-html-mathjax
74-
75-
doc-pdf: build
76-
$(PIPE) "./sage --docbuild all pdf $(SAGE_DOCBUILD_OPTS) 2>&1" "tee -a logs/docpdf.log"
77-
78-
doc-clean:
79-
cd src/doc && $(MAKE) clean
80-
81-
clean:
82-
@echo "Deleting package build directories..."
83-
rm -rf local/var/tmp/sage/build
84-
85-
lib-clean:
86-
cd src && $(MAKE) clean
87-
88-
bdist-clean: clean
53+
misc-clean:
8954
@echo "Deleting miscellaneous artifacts generated by build system ..."
9055
rm -rf logs
9156
rm -rf dist
9257
rm -rf tmp
9358
rm -f aclocal.m4 config.log config.status confcache
9459
rm -rf autom4te.cache
95-
rm -f build/Makefile build/Makefile-auto
60+
rm -f build/make/Makefile build/make/Makefile-auto
9661
rm -f .BUILDSTART
9762

98-
distclean: clean doc-clean lib-clean bdist-clean
63+
bdist-clean: clean
64+
$(MAKE) misc-clean
65+
66+
distclean: build-clean
67+
$(MAKE) misc-clean
9968
@echo "Deleting all remaining output from build system ..."
10069
rm -rf local
10170

10271
# Delete all auto-generated files which are distributed as part of the
10372
# source tarball
10473
bootstrap-clean:
105-
rm -rf config configure build/Makefile-auto.in
74+
rm -rf config configure build/make/Makefile-auto.in
10675

10776
# Remove absolutely everything which isn't part of the git repo
10877
maintainer-clean: distclean bootstrap-clean
10978
rm -rf upstream
11079

111-
micro_release: bdist-clean lib-clean
80+
micro_release: bdist-clean sagelib-clean
11281
@echo "Stripping binaries ..."
11382
LC_ALL=C find local/lib local/bin -type f -exec strip '{}' ';' 2>&1 | grep -v "File format not recognized" | grep -v "File truncated" || true
11483

115-
TESTPRELIMS = local/bin/sage-starts
11684
TESTALL = ./sage -t --all
11785
PTESTALL = ./sage -t -p --all
11886

119-
test: all # i.e. build and doc
120-
$(TESTPRELIMS)
87+
test: all
12188
$(TESTALL) --logfile=logs/test.log
12289

12390
check: test
12491

125-
testall: all # i.e. build and doc
126-
$(TESTPRELIMS)
92+
testall: all
12793
$(TESTALL) --optional=all --logfile=logs/testall.log
12894

129-
testlong: all # i.e. build and doc
130-
$(TESTPRELIMS)
95+
testlong: all
13196
$(TESTALL) --long --logfile=logs/testlong.log
13297

133-
testalllong: all # i.e. build and doc
134-
$(TESTPRELIMS)
98+
testalllong: all
13599
$(TESTALL) --long --optional=all --logfile=logs/testalllong.log
136100

137-
ptest: all # i.e. build and doc
138-
$(TESTPRELIMS)
101+
ptest: all
139102
$(PTESTALL) --logfile=logs/ptest.log
140103

141-
ptestall: all # i.e. build and doc
142-
$(TESTPRELIMS)
104+
ptestall: all
143105
$(PTESTALL) --optional=all --logfile=logs/ptestall.log
144106

145-
ptestlong: all # i.e. build and doc
146-
$(TESTPRELIMS)
107+
ptestlong: all
147108
$(PTESTALL) --long --logfile=logs/ptestlong.log
148109

149-
ptestalllong: all # i.e. build and doc
150-
$(TESTPRELIMS)
110+
ptestalllong: all
151111
$(PTESTALL) --long --optional=all --logfile=logs/ptestalllong.log
152112

153113

@@ -159,8 +119,7 @@ ptestoptional: ptestall # just an alias
159119

160120
ptestoptionallong: ptestalllong # just an alias
161121

162-
configure: configure.ac src/bin/sage-version.sh \
163-
m4/ax_c_check_flag.m4 m4/ax_gcc_option.m4 m4/ax_gcc_version.m4 m4/ax_gxx_option.m4 m4/ax_gxx_version.m4 m4/ax_prog_perl_version.m4
122+
configure: configure.ac src/bin/sage-version.sh m4/*.m4
164123
./bootstrap -d
165124

166125
install:
@@ -182,8 +141,7 @@ install:
182141
"$(DESTDIR)"/bin/sage -c # Run sage-location
183142

184143

185-
.PHONY: all build build-serial start install micro_release \
186-
doc doc-html doc-html-jsmath doc-html-mathjax doc-pdf \
187-
doc-clean clean lib-clean bdist-clean distclean bootstrap-clean maintainer-clean \
144+
.PHONY: default build install micro_release \
145+
misc-clean bdist-clean distclean bootstrap-clean maintainer-clean \
188146
test check testoptional testall testlong testoptionallong testallong \
189147
ptest ptestoptional ptestall ptestlong ptestoptionallong ptestallong

README.txt

-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ Installation Guide:
7272
1. Make sure you have the dependencies and 5 GB of free disk space.
7373

7474
All Linux versions: gcc, make, m4, perl, ranlib, and tar.
75-
Debian or Ubuntu systems: the dpkg-dev package.
7675
Fedora or RedHat systems: the perl-ExtUtils-MakeMaker package.
7776
(install these using your package manager)
7877

VERSION.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Sage version 6.7, released 2015-05-17
1+
Sage version 6.10.beta6, released 2015-11-27

bootstrap

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ CONFVERSION=`cat $PKG/package-version.txt`
2727

2828
bootstrap () {
2929
aclocal -I m4 && \
30-
automake --add-missing --copy build/Makefile-auto && \
30+
automake --add-missing --copy build/make/Makefile-auto && \
3131
autoconf
3232

3333
st=$?
@@ -75,7 +75,7 @@ save () {
7575
# Create configure tarball
7676
echo "Creating $CONFBALL..."
7777
mkdir -p upstream
78-
tar zcf "$CONFBALL" configure config/* build/Makefile-auto.in
78+
tar zcf "$CONFBALL" configure config/* build/make/Makefile-auto.in
7979

8080
# Update version number
8181
echo "$CONFVERSION" >$PKG/package-version.txt

build/.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
/Makefile
1+
/.tox
2+
/MANIFEST

build/bin/sage-download-file

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#!/usr/bin/env python
2+
3+
# USAGE:
4+
#
5+
# sage-download-file --print-fastest-mirror
6+
#
7+
# Print out the fastest mirror. All further arguments are ignored in
8+
# that case.
9+
#
10+
# sage-download-file [--quiet] url-or-tarball [destination]
11+
#
12+
# The single mandatory argument can be a http:// url or a tarball
13+
# filename. In the latter case, the tarball is downloaded from the
14+
# mirror network and its checksum is verified.
15+
#
16+
# If the destination is not specified:
17+
# * a url will be downloaded and the content written to stdout
18+
# * a tarball will be saved under {SAGE_DISTFILES}
19+
20+
try:
21+
import sage_bootstrap
22+
except ImportError:
23+
import os, sys
24+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
25+
import sage_bootstrap
26+
27+
from sage_bootstrap.cmdline import SageDownloadFileApplication
28+
SageDownloadFileApplication().run()

build/bin/sage-logger

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
#
3+
# sage-logger COMMAND LOGFILE
4+
#
5+
# Evaluate shell command COMMAND while logging stdout and stderr to
6+
# LOGFILE. If either the command or the logging failed, return a
7+
# non-zero exit status.
8+
#
9+
# AUTHOR:
10+
#
11+
# - Jeroen Demeyer (2015-07-26): initial version based on old pipestatus
12+
# script (#18953)
13+
#
14+
#*****************************************************************************
15+
# Copyright (C) 2015 Jeroen Demeyer <[email protected]>
16+
#
17+
# Distributed under the terms of the GNU General Public License (GPL)
18+
# as published by the Free Software Foundation; either version 2 of
19+
# the License, or (at your option) any later version.
20+
# http://www.gnu.org/licenses/
21+
#*****************************************************************************
22+
23+
cmd="$1"
24+
logfile="$2"
25+
logdir=`dirname "$logfile"`
26+
27+
mkdir -p "$logdir"
28+
29+
# Redirect stdout and stderr to a subprocess running tee.
30+
# We trap SIGINT such that SIGINT interrupts the main process being
31+
# run, not the logging.
32+
( exec 2>&1; eval "$cmd" ) | ( trap '' SIGINT; tee -a "$logfile" )
33+
34+
pipestatus=(${PIPESTATUS[*]})
35+
36+
if [ ${pipestatus[1]} -ne 0 ]; then
37+
exit ${pipestatus[1]}
38+
else
39+
exit ${pipestatus[0]}
40+
fi

build/bin/sage-package

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/usr/bin/env python
2+
3+
# Script to manage third-party tarballs.
4+
#
5+
# Usage:
6+
#
7+
# * Print the configuration
8+
#
9+
# $ sage-package config
10+
# Configuration:
11+
# * log = info
12+
# * interactive = True
13+
#
14+
# * Print a list of all available packages
15+
#
16+
# $ sage-package list | sort
17+
# 4ti2
18+
# arb
19+
# atlas
20+
# autotools
21+
# [...]
22+
# zn_poly
23+
#
24+
# * Find the package name given a tarball filename
25+
#
26+
# $ sage-package name pari-2.8-1564-gdeac36e.tar.gz
27+
# pari
28+
#
29+
# * Find the tarball filename given a package name
30+
#
31+
# $ sage-package tarball pari
32+
# pari-2.8-1564-gdeac36e.tar.gz
33+
34+
try:
35+
import sage_bootstrap
36+
except ImportError:
37+
import os, sys
38+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
39+
import sage_bootstrap
40+
41+
from sage_bootstrap.cmdline import SagePkgApplication
42+
SagePkgApplication().run()

0 commit comments

Comments
 (0)