From f1c711bab097d60599fdce00b848faa65d8da84d Mon Sep 17 00:00:00 2001 From: "E. Madison Bray" Date: Fri, 6 Mar 2020 13:21:58 +0100 Subject: [PATCH] Trac #29106: add most of the known system packages that are available for cygwin (for those packages that have an spkg-configure.m4) --- build/bin/sage-print-system-package-command | 4 +++ build/pkgs/boost/distros/cygwin.txt | 1 + build/pkgs/boost_cropped/distros/cygwin.txt | 1 + build/pkgs/bzip2/distros/cygwin.txt | 1 + build/pkgs/cmake/distros/cygwin.txt | 1 + build/pkgs/curl/distros/cygwin.txt | 1 + build/pkgs/cygwin-bootstrap.txt | 2 ++ build/pkgs/cygwin.txt | 24 +++++++++++++ build/pkgs/flint/distros/cygwin.txt | 1 + build/pkgs/freetype/distros/cygwin.txt | 1 + build/pkgs/gcc/distros/cygwin.txt | 3 ++ build/pkgs/gfortran/distros/cygwin.txt | 1 + build/pkgs/git/distros/cygwin.txt | 1 + build/pkgs/gmp/distros/cygwin.txt | 1 + build/pkgs/gsl/distros/cygwin.txt | 1 + build/pkgs/iconv/distros/cygwin.txt | 1 + build/pkgs/isl/distros/cygwin.txt | 1 + build/pkgs/libffi/distros/cygwin.txt | 1 + build/pkgs/mpc/distros/cygwin.txt | 1 + build/pkgs/mpfr/distros/cygwin.txt | 1 + build/pkgs/ncurses/distros/cygwin.txt | 1 + build/pkgs/patch/distros/cygwin.txt | 1 + build/pkgs/readline/distros/cygwin.txt | 1 + build/pkgs/sqlite/distros/cygwin.txt | 1 + build/pkgs/xz/distros/cygwin.txt | 1 + build/pkgs/yasm/distros/cygwin.txt | 1 + build/pkgs/zeromq/distros/cygwin.txt | 1 + build/pkgs/zlib/distros/cygwin.txt | 1 + src/doc/en/installation/cygwin-optional.txt | 1 + src/doc/en/installation/cygwin.txt | 1 + src/doc/en/installation/source.rst | 38 +++++++++++++++++++++ 31 files changed, 97 insertions(+) create mode 100644 build/pkgs/boost/distros/cygwin.txt create mode 100644 build/pkgs/boost_cropped/distros/cygwin.txt create mode 100644 build/pkgs/bzip2/distros/cygwin.txt create mode 100644 build/pkgs/cmake/distros/cygwin.txt create mode 100644 build/pkgs/curl/distros/cygwin.txt create mode 100644 build/pkgs/cygwin-bootstrap.txt create mode 100644 build/pkgs/cygwin.txt create mode 100644 build/pkgs/flint/distros/cygwin.txt create mode 100644 build/pkgs/freetype/distros/cygwin.txt create mode 100644 build/pkgs/gcc/distros/cygwin.txt create mode 100644 build/pkgs/gfortran/distros/cygwin.txt create mode 100644 build/pkgs/git/distros/cygwin.txt create mode 100644 build/pkgs/gmp/distros/cygwin.txt create mode 100644 build/pkgs/gsl/distros/cygwin.txt create mode 100644 build/pkgs/iconv/distros/cygwin.txt create mode 100644 build/pkgs/isl/distros/cygwin.txt create mode 100644 build/pkgs/libffi/distros/cygwin.txt create mode 100644 build/pkgs/mpc/distros/cygwin.txt create mode 100644 build/pkgs/mpfr/distros/cygwin.txt create mode 100644 build/pkgs/ncurses/distros/cygwin.txt create mode 100644 build/pkgs/patch/distros/cygwin.txt create mode 100644 build/pkgs/readline/distros/cygwin.txt create mode 100644 build/pkgs/sqlite/distros/cygwin.txt create mode 100644 build/pkgs/xz/distros/cygwin.txt create mode 100644 build/pkgs/yasm/distros/cygwin.txt create mode 100644 build/pkgs/zeromq/distros/cygwin.txt create mode 100644 build/pkgs/zlib/distros/cygwin.txt create mode 100644 src/doc/en/installation/cygwin-optional.txt create mode 100644 src/doc/en/installation/cygwin.txt diff --git a/build/bin/sage-print-system-package-command b/build/bin/sage-print-system-package-command index e62bab9429f..74eb0b65eb2 100755 --- a/build/bin/sage-print-system-package-command +++ b/build/bin/sage-print-system-package-command @@ -29,6 +29,10 @@ case $system:$command in homebrew*:install) echo "brew install $system_packages" ;; + cygwin*:install) + echo "# first install apt-cyg from https://github.com/transcode-open/apt-cyg" + echo "apt-cyg install $system_packages" + ;; *) echo "# $command the following packages: $system_packages" ;; diff --git a/build/pkgs/boost/distros/cygwin.txt b/build/pkgs/boost/distros/cygwin.txt new file mode 100644 index 00000000000..444ab77a410 --- /dev/null +++ b/build/pkgs/boost/distros/cygwin.txt @@ -0,0 +1 @@ +libboost-devel diff --git a/build/pkgs/boost_cropped/distros/cygwin.txt b/build/pkgs/boost_cropped/distros/cygwin.txt new file mode 100644 index 00000000000..444ab77a410 --- /dev/null +++ b/build/pkgs/boost_cropped/distros/cygwin.txt @@ -0,0 +1 @@ +libboost-devel diff --git a/build/pkgs/bzip2/distros/cygwin.txt b/build/pkgs/bzip2/distros/cygwin.txt new file mode 100644 index 00000000000..8e127a3d331 --- /dev/null +++ b/build/pkgs/bzip2/distros/cygwin.txt @@ -0,0 +1 @@ +bzip2 libbz2-devel diff --git a/build/pkgs/cmake/distros/cygwin.txt b/build/pkgs/cmake/distros/cygwin.txt new file mode 100644 index 00000000000..a3ea3e4380f --- /dev/null +++ b/build/pkgs/cmake/distros/cygwin.txt @@ -0,0 +1 @@ +cmake diff --git a/build/pkgs/curl/distros/cygwin.txt b/build/pkgs/curl/distros/cygwin.txt new file mode 100644 index 00000000000..7bcb9889a4d --- /dev/null +++ b/build/pkgs/curl/distros/cygwin.txt @@ -0,0 +1 @@ +libcurl-devel curl diff --git a/build/pkgs/cygwin-bootstrap.txt b/build/pkgs/cygwin-bootstrap.txt new file mode 100644 index 00000000000..5cd20fd529c --- /dev/null +++ b/build/pkgs/cygwin-bootstrap.txt @@ -0,0 +1,2 @@ +# Packages needed for ./bootstrap +gettext-devel autoconf automake libtool diff --git a/build/pkgs/cygwin.txt b/build/pkgs/cygwin.txt new file mode 100644 index 00000000000..f42793a64c8 --- /dev/null +++ b/build/pkgs/cygwin.txt @@ -0,0 +1,24 @@ +# This file, build/pkgs/cygwin.txt, contains name Cygwin packages +# needed for installation of Sage from source. +# +# In addition, the files build/pkgs/SPKG/cygwin.txt contain the names +# of packages that provide the equivalent of SPKG. +# +# See build/bin/sage-spkg, where this information is processed +# for use in "sage -info SPKG". +# +# Everything on a line after a # character is ignored. +# +binutils +make +m4 +# a system python is needed for downloading the sage packages, https://trac.sagemath.org/ticket/29090 +python3 +perl +perl-ExtUtils-MakeMaker +tar +gcc +# Needed according to embray at https://trac.sagemath.org/ticket/26964: +# The need for which comes [...] from MPIR's configure script +findutils +which diff --git a/build/pkgs/flint/distros/cygwin.txt b/build/pkgs/flint/distros/cygwin.txt new file mode 100644 index 00000000000..cf5b84dbc05 --- /dev/null +++ b/build/pkgs/flint/distros/cygwin.txt @@ -0,0 +1 @@ +libflint-devel diff --git a/build/pkgs/freetype/distros/cygwin.txt b/build/pkgs/freetype/distros/cygwin.txt new file mode 100644 index 00000000000..efdffca75b2 --- /dev/null +++ b/build/pkgs/freetype/distros/cygwin.txt @@ -0,0 +1 @@ +libfreetype-devel diff --git a/build/pkgs/gcc/distros/cygwin.txt b/build/pkgs/gcc/distros/cygwin.txt new file mode 100644 index 00000000000..dde4bb418b6 --- /dev/null +++ b/build/pkgs/gcc/distros/cygwin.txt @@ -0,0 +1,3 @@ +gcc-core +gcc-g++ +gcc-fortran diff --git a/build/pkgs/gfortran/distros/cygwin.txt b/build/pkgs/gfortran/distros/cygwin.txt new file mode 100644 index 00000000000..8f962328b1e --- /dev/null +++ b/build/pkgs/gfortran/distros/cygwin.txt @@ -0,0 +1 @@ +gcc-fortran diff --git a/build/pkgs/git/distros/cygwin.txt b/build/pkgs/git/distros/cygwin.txt new file mode 100644 index 00000000000..5664e303b5d --- /dev/null +++ b/build/pkgs/git/distros/cygwin.txt @@ -0,0 +1 @@ +git diff --git a/build/pkgs/gmp/distros/cygwin.txt b/build/pkgs/gmp/distros/cygwin.txt new file mode 100644 index 00000000000..bde3aa97bd3 --- /dev/null +++ b/build/pkgs/gmp/distros/cygwin.txt @@ -0,0 +1 @@ +libgmp-devel diff --git a/build/pkgs/gsl/distros/cygwin.txt b/build/pkgs/gsl/distros/cygwin.txt new file mode 100644 index 00000000000..3f55673dfe6 --- /dev/null +++ b/build/pkgs/gsl/distros/cygwin.txt @@ -0,0 +1 @@ +libgsl-devel diff --git a/build/pkgs/iconv/distros/cygwin.txt b/build/pkgs/iconv/distros/cygwin.txt new file mode 100644 index 00000000000..df78e31976a --- /dev/null +++ b/build/pkgs/iconv/distros/cygwin.txt @@ -0,0 +1 @@ +libiconv-devel diff --git a/build/pkgs/isl/distros/cygwin.txt b/build/pkgs/isl/distros/cygwin.txt new file mode 100644 index 00000000000..a922268ab95 --- /dev/null +++ b/build/pkgs/isl/distros/cygwin.txt @@ -0,0 +1 @@ +libisl-devel diff --git a/build/pkgs/libffi/distros/cygwin.txt b/build/pkgs/libffi/distros/cygwin.txt new file mode 100644 index 00000000000..31d794ff28d --- /dev/null +++ b/build/pkgs/libffi/distros/cygwin.txt @@ -0,0 +1 @@ +libffi-devel diff --git a/build/pkgs/mpc/distros/cygwin.txt b/build/pkgs/mpc/distros/cygwin.txt new file mode 100644 index 00000000000..279a55fdb8b --- /dev/null +++ b/build/pkgs/mpc/distros/cygwin.txt @@ -0,0 +1 @@ +libmpc-devel diff --git a/build/pkgs/mpfr/distros/cygwin.txt b/build/pkgs/mpfr/distros/cygwin.txt new file mode 100644 index 00000000000..e02bb1bdbb1 --- /dev/null +++ b/build/pkgs/mpfr/distros/cygwin.txt @@ -0,0 +1 @@ +libmpfr-devel diff --git a/build/pkgs/ncurses/distros/cygwin.txt b/build/pkgs/ncurses/distros/cygwin.txt new file mode 100644 index 00000000000..db3c1f88c13 --- /dev/null +++ b/build/pkgs/ncurses/distros/cygwin.txt @@ -0,0 +1 @@ +ncurses-devel diff --git a/build/pkgs/patch/distros/cygwin.txt b/build/pkgs/patch/distros/cygwin.txt new file mode 100644 index 00000000000..9eb7b90ed50 --- /dev/null +++ b/build/pkgs/patch/distros/cygwin.txt @@ -0,0 +1 @@ +patch diff --git a/build/pkgs/readline/distros/cygwin.txt b/build/pkgs/readline/distros/cygwin.txt new file mode 100644 index 00000000000..1698f0e86b8 --- /dev/null +++ b/build/pkgs/readline/distros/cygwin.txt @@ -0,0 +1 @@ +libreadline-devel diff --git a/build/pkgs/sqlite/distros/cygwin.txt b/build/pkgs/sqlite/distros/cygwin.txt new file mode 100644 index 00000000000..71eb206df07 --- /dev/null +++ b/build/pkgs/sqlite/distros/cygwin.txt @@ -0,0 +1 @@ +libsqlite3-devel diff --git a/build/pkgs/xz/distros/cygwin.txt b/build/pkgs/xz/distros/cygwin.txt new file mode 100644 index 00000000000..0267fff5270 --- /dev/null +++ b/build/pkgs/xz/distros/cygwin.txt @@ -0,0 +1 @@ +xz liblzma-devel diff --git a/build/pkgs/yasm/distros/cygwin.txt b/build/pkgs/yasm/distros/cygwin.txt new file mode 100644 index 00000000000..eff8d5c7abd --- /dev/null +++ b/build/pkgs/yasm/distros/cygwin.txt @@ -0,0 +1 @@ +yasm diff --git a/build/pkgs/zeromq/distros/cygwin.txt b/build/pkgs/zeromq/distros/cygwin.txt new file mode 100644 index 00000000000..57737d06afb --- /dev/null +++ b/build/pkgs/zeromq/distros/cygwin.txt @@ -0,0 +1 @@ +libzmq-devel diff --git a/build/pkgs/zlib/distros/cygwin.txt b/build/pkgs/zlib/distros/cygwin.txt new file mode 100644 index 00000000000..f47c16b504b --- /dev/null +++ b/build/pkgs/zlib/distros/cygwin.txt @@ -0,0 +1 @@ +zlib-devel diff --git a/src/doc/en/installation/cygwin-optional.txt b/src/doc/en/installation/cygwin-optional.txt new file mode 100644 index 00000000000..fce58c102ee --- /dev/null +++ b/src/doc/en/installation/cygwin-optional.txt @@ -0,0 +1 @@ + $ apt-cyg install cmake libisl-devel diff --git a/src/doc/en/installation/cygwin.txt b/src/doc/en/installation/cygwin.txt new file mode 100644 index 00000000000..335d238b3c1 --- /dev/null +++ b/src/doc/en/installation/cygwin.txt @@ -0,0 +1 @@ + $ apt-cyg install make m4 flex git gcc-core gcc-g++ gcc-fortran diffutils liblapack0 liblapack-devel zlib-devel libreadline-devel libiconv-devel libcrypt-devel openssl-devel python3 ccache bc libbz2-devel libcurl-devel libffi-devel libgmp-devel liblzma-devel libmpc-devel libmpfr-devel libzmq-devel patch yasm diff --git a/src/doc/en/installation/source.rst b/src/doc/en/installation/source.rst index 85da6629d6b..652c786462d 100644 --- a/src/doc/en/installation/source.rst +++ b/src/doc/en/installation/source.rst @@ -50,6 +50,7 @@ Sage is supported on a number of `Linux `_, `macOS `_ , Sun/Oracle `Solaris `_ releases, but not necessarily all versions of these operating systems. + There is no native version of Sage which installs on `Microsoft Windows `_, although Sage can be used on Windows with the aid of a @@ -287,6 +288,43 @@ a registration. - Alternately, https://developer.apple.com/opensource/ should have a link to Command Line Tools. + +.. _section_cygwinprereqs: + +Cygwin prerequisite installation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Sage can be built only on the 64-bit version of Cygwin. See the +`Cygwin64Port `_ wiki page for +the most up-to-date instructions for building Sage on Cygwin. + +Although it is possible to install Sage's dependencies using the Cygwin +graphical installer, it is recommended to install the `apt-cyg +`_ command-line package +installer, which is used for the remainder of these instructions. To +run `apt-cyg`, you must have already installed (using the graphical +installer) the following packages at a minimum:: + + bzip2 coreutils gawk gzip tar wget + +With the exception of ``wget`` most of these are included in the default +package selection when you install Cygwin. Then, to install ``apt-cyg`` +run:: + + $ curl -OL https://rawgit.com/transcode-open/apt-cyg/master/apt-cyg + $ install apt-cyg /usr/local/bin + $ rm -f apt-cyg + +To install the current set of system packages known to work for building +Sage, run: + +.. literalinclude:: cygwin.txt + +Optional packages that are also known to be installable via system packages +include: + +.. literalinclude:: cygwin-optional.txt + Other platforms ^^^^^^^^^^^^^^^