summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorPeter Scheibel <scheibel1@llnl.gov>2019-03-28 11:25:44 -0700
committerGreg Becker <becker33@llnl.gov>2019-03-28 11:25:44 -0700
commita6511fbafcf16dd60d424e9d31b667339857628a (patch)
tree0883e65ae34f06a7b56f26759d0082dfd1d39074 /var
parent99f35c333814f9c7fa320a928a98bbbacdd66e92 (diff)
downloadspack-a6511fbafcf16dd60d424e9d31b667339857628a.tar.gz
spack-a6511fbafcf16dd60d424e9d31b667339857628a.tar.bz2
spack-a6511fbafcf16dd60d424e9d31b667339857628a.tar.xz
spack-a6511fbafcf16dd60d424e9d31b667339857628a.zip
Consistent patch ordering (#10879)
* preserve the order in which patches are applied by packages (in spite of grouping them by 'when') * add tests confirming patch order
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/mid1.patch1
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py30
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py33
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py32
-rw-r--r--var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/top.patch1
-rw-r--r--var/spack/repos/builtin.mock/packages/patch/package.py3
6 files changed, 99 insertions, 1 deletions
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/mid1.patch b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/mid1.patch
new file mode 100644
index 0000000000..a4adb72bb1
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/mid1.patch
@@ -0,0 +1 @@
+mid1
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
new file mode 100644
index 0000000000..f4ec1554fa
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid1/package.py
@@ -0,0 +1,30 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class DepDiamondPatchMid1(Package):
+ r"""Package that requires a patch on a dependency
+
+ W
+ / \
+X Y
+ \ /
+ Z
+
+ This is package X
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/patch-a-dependency-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ # single patch file in repo
+ depends_on('patch', patches='mid1.patch')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
new file mode 100644
index 0000000000..2aea75f307
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-mid2/package.py
@@ -0,0 +1,33 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class DepDiamondPatchMid2(Package):
+ r"""Package that requires a patch on a dependency
+
+ W
+ / \
+X Y
+ \ /
+ Z
+
+ This is package Y
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/patch-a-dependency-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ # single patch file in repo
+ depends_on('patch', patches=[
+ patch('http://example.com/urlpatch.patch',
+ sha256='mid21234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234'), # noqa: E501
+ ])
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
new file mode 100644
index 0000000000..21388011c5
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/package.py
@@ -0,0 +1,32 @@
+# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class DepDiamondPatchTop(Package):
+ r"""Package that requires a patch on a dependency
+
+ W
+ / \
+X Y
+ \ /
+ Z
+
+ This is package W
+ """
+
+ homepage = "http://www.example.com"
+ url = "http://www.example.com/patch-a-dependency-1.0.tar.gz"
+
+ version('1.0', '0123456789abcdef0123456789abcdef')
+
+ # single patch file in repo
+ depends_on('patch', patches='top.patch')
+ depends_on('dep-diamond-patch-mid1')
+ depends_on('dep-diamond-patch-mid2')
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/top.patch b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/top.patch
new file mode 100644
index 0000000000..bf1a1fdefa
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/dep-diamond-patch-top/top.patch
@@ -0,0 +1 @@
+top
diff --git a/var/spack/repos/builtin.mock/packages/patch/package.py b/var/spack/repos/builtin.mock/packages/patch/package.py
index 704362af37..37ea72fb1a 100644
--- a/var/spack/repos/builtin.mock/packages/patch/package.py
+++ b/var/spack/repos/builtin.mock/packages/patch/package.py
@@ -13,9 +13,10 @@ class Patch(Package):
url = "http://www.example.com/patch-1.0.tar.gz"
version('1.0', '0123456789abcdef0123456789abcdef')
+ version('2.0', '0123456789abcdef0123456789abcdef')
patch('foo.patch')
- patch('bar.patch')
+ patch('bar.patch', when='@2:')
patch('baz.patch')
def install(self, spec, prefix):