
The repository used by the texlive installer defaults to a redirector that sends one off to various URLs depending on <fill in the blank>. This is problematic because all of the mirrors do not update in synchrony and bad tarballs often hang around for a while. This leads to problems that are particularly hard to diagnose because you're likely to end up using a different repo the next time around. This commit constraints the package to a particular, mainstream, repository. It's not fast, but it's consistent and usually correct. It also updates the installer digest, because no day is complete without updating it at least (sigh) once.
73 lines
3.1 KiB
Python
73 lines
3.1 KiB
Python
##############################################################################
|
|
# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
|
|
# Produced at the Lawrence Livermore National Laboratory.
|
|
#
|
|
# This file is part of Spack.
|
|
# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
|
|
# LLNL-CODE-647188
|
|
#
|
|
# For details, see https://github.com/llnl/spack
|
|
# Please also see the LICENSE file for our notice and the LGPL.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU Lesser General Public License (as
|
|
# published by the Free Software Foundation) version 2.1, February 1999.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
|
|
# conditions of the GNU Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
##############################################################################
|
|
from spack import *
|
|
import os
|
|
|
|
|
|
class Texlive(Package):
|
|
"""TeX Live is a free software distribution for the TeX typesetting
|
|
system"""
|
|
|
|
homepage = "http://www.tug.org/texlive"
|
|
|
|
# Pull from specific site because the texlive mirrors do not all
|
|
# update in synchrony.
|
|
#
|
|
# BEWARE: TexLive updates their installs frequently (probably why
|
|
# they call it *Live*...). There is no good way to provide a
|
|
# repeatable install of the package. We try to keep up with the
|
|
# digest values, but don't be surprised if this package is
|
|
# briefly unbuildable.
|
|
#
|
|
version('live', 'ad230fa814d122084c13d75c0b135fda',
|
|
url="http://ctan.math.utah.edu/ctan/tex-archive/systems/texlive/tlnet/install-tl-unx.tar.gz")
|
|
|
|
# There does not seem to be a complete list of schemes.
|
|
# Examples include:
|
|
# full scheme (everything)
|
|
# medium scheme (small + more packages and languages)
|
|
# small scheme (basic + xetex, metapost, a few languages)
|
|
# basic scheme (plain and latex)
|
|
# minimal scheme (plain only)
|
|
# See:
|
|
# https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-25025r6
|
|
variant('scheme', default="small",
|
|
description='Package subset to install (e.g. full, small, basic)')
|
|
|
|
depends_on('perl', type='build')
|
|
|
|
def install(self, spec, prefix):
|
|
# Using texlive's mirror system leads to mysterious problems,
|
|
# in lieu of being able to specify a repository as a variant, hardwire
|
|
# a particular (slow, but central) one for now.
|
|
_repository='http://ctan.math.washington.edu/tex-archive/systems/texlive/tlnet/'
|
|
env = os.environ
|
|
env['TEXLIVE_INSTALL_PREFIX'] = prefix
|
|
perl = which('perl')
|
|
scheme = spec.variants['scheme'].value
|
|
perl('./install-tl', '-scheme', scheme,
|
|
'-repository', _repository,
|
|
'-portable', '-profile', '/dev/null')
|