diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py index af4b8a51efb92af074f31650578577740147046e..884249561358f6eb354b4aa92ff02ea3f94c95cd 100644 --- a/lib/spack/spack/url.py +++ b/lib/spack/spack/url.py @@ -323,7 +323,7 @@ def parse_name_and_version(path): def insensitize(string): """Change upper and lowercase letters to be case insensitive in - the provided string. e.g., 'a' because '[Aa]', 'B' becomes + the provided string. e.g., 'a' becomes '[Aa]', 'B' becomes '[bB]', etc. Use for building regexes.""" def to_ins(match): char = match.group(1) diff --git a/lib/spack/spack/util/web.py b/lib/spack/spack/util/web.py index 29ed6e0d3285cf1ce7f6ce1cf837b0986e2ccefe..935532266fa5540e4b14fd871cadb8a7f2f07a06 100644 --- a/lib/spack/spack/util/web.py +++ b/lib/spack/spack/util/web.py @@ -227,7 +227,16 @@ def find_versions_of_archive(*archive_urls, **kwargs): # We'll be a bit more liberal and just look for the archive # part, not the full path. - regexes.append(os.path.basename(url_regex)) + url_regex = os.path.basename(url_regex) + + # We need to add a $ anchor to the end of the regex to prevent + # Spack from picking up signature files like: + # .asc + # .md5 + # .sha256 + # .sig + # However, SourceForge downloads still need to end in '/download'. + regexes.append(url_regex + '(\/download)?$') # Build a dict version -> URL from any links that match the wildcards. versions = {}