From 773cfe088fab98f7ca4451bb5cfcacbab48529a5 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sun, 22 Jul 2018 13:49:01 -0700 Subject: core: differentiate package-level fetch URLs by args to `version()` - packagers can specify two top-level fetch URLs if one is `url` - e.g., `url` and `git` or `url` and `svn` - allow only one VCS fetcher so we can differentiate between URL and VCS. - also clean up fetcher logic and class structure --- .../packages/git-and-url-top-level/package.py | 38 ---------------- .../packages/git-svn-top-level/package.py | 39 ++++++++++++++++ .../packages/git-url-svn-top-level/package.py | 40 ++++++++++++++++ .../packages/git-url-top-level/package.py | 53 ++++++++++++++++++++++ 4 files changed, 132 insertions(+), 38 deletions(-) delete mode 100644 var/spack/repos/builtin.mock/packages/git-and-url-top-level/package.py create mode 100644 var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py create mode 100644 var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py create mode 100644 var/spack/repos/builtin.mock/packages/git-url-top-level/package.py (limited to 'var') diff --git a/var/spack/repos/builtin.mock/packages/git-and-url-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-and-url-top-level/package.py deleted file mode 100644 index d34c9d9b06..0000000000 --- a/var/spack/repos/builtin.mock/packages/git-and-url-top-level/package.py +++ /dev/null @@ -1,38 +0,0 @@ -############################################################################## -# Copyright (c) 2013-2018, 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/spack/spack -# Please also see the NOTICE and LICENSE files 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 * - - -class GitAndUrlTopLevel(Package): - """Mock package that uses git for fetching.""" - homepage = "http://www.git-fetch-example.com" - - git = 'https://example.com/some/git/repo' - url = 'https://example.com/some/tarball-1.0.tar.gz' - - version('2.0') - - def install(self, spec, prefix): - pass diff --git a/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py new file mode 100644 index 0000000000..0bff4402e2 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/git-svn-top-level/package.py @@ -0,0 +1,39 @@ +############################################################################## +# Copyright (c) 2013-2018, 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/spack/spack +# Please also see the NOTICE and LICENSE files 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 * + + +class GitSvnTopLevel(Package): + """Mock package that uses git for fetching.""" + homepage = "http://www.git-fetch-example.com" + + # can't have two VCS fetchers. + git = 'https://example.com/some/git/repo' + svn = 'https://example.com/some/svn/repo' + + version('2.0') + + def install(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py new file mode 100644 index 0000000000..d4897b228f --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/git-url-svn-top-level/package.py @@ -0,0 +1,40 @@ +############################################################################## +# Copyright (c) 2013-2018, 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/spack/spack +# Please also see the NOTICE and LICENSE files 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 * + + +class GitUrlSvnTopLevel(Package): + """Mock package that uses git for fetching.""" + homepage = "http://www.git-fetch-example.com" + + # can't have two VCS fetchers. + url = 'https://example.com/some/tarball-1.0.tar.gz' + git = 'https://example.com/some/git/repo' + svn = 'https://example.com/some/svn/repo' + + version('2.0') + + def install(self, spec, prefix): + pass diff --git a/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py new file mode 100644 index 0000000000..e4931ef416 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/git-url-top-level/package.py @@ -0,0 +1,53 @@ +############################################################################## +# Copyright (c) 2013-2018, 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/spack/spack +# Please also see the NOTICE and LICENSE files 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 * + + +class GitUrlTopLevel(Package): + """Mock package that top-level git and url attributes. + + This demonstrates how Spack infers fetch mechanisms from parameters + to the ``version`` directive. + + """ + homepage = "http://www.git-fetch-example.com" + + git = 'https://example.com/some/git/repo' + url = 'https://example.com/some/tarball-1.0.tar.gz' + + version('develop', branch='develop') + version('3.4', commit='abc34') + version('3.3', branch='releases/v3.3', commit='abc33') + version('3.2', branch='releases/v3.2') + version('3.1', tag='v3.1', commit='abc31') + version('3.0', tag='v3.0') + + version('2.3', 'abc23', url='https://www.example.com/foo2.3.tar.gz') + version('2.2', sha256='abc22', url='https://www.example.com/foo2.2.tar.gz') + version('2.1', sha256='abc21') + version('2.0', 'abc20') + + def install(self, spec, prefix): + pass -- cgit v1.2.3-70-g09d2