Skip to content

Wild and Crazy URLs #1757

@robertdfrench

Description

@robertdfrench

Hello friends!

Spack has trouble recognizing this url as a tar.gz file:
http://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz.v2.0.5

It says it "cannot deduce" the filetype. That phrase led me here: lib/spack/spack/url.py:164

It looks like url.download_file_extension enforces some sanity around the extension. My question is, what is my best bet for dealing with packages that have uncivilized extensions like ".tgz.v2.0.5"? Is it appropriate to look for tgz near the end of the path? That's sortof a weird criterion...

Anyhow, feedback is welcome. Here is a reproducer package:

from spack import *


class WgribCrazyUrl(Package):
    """WGRIB is a program to manipulate, inventory and decode GRIB files"""

    homepage = "http://www.cpc.ncep.noaa.gov/products/wesley/wgrib.html"
    url      = "http://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz.v2.0.5"

    version('2.0.5', '84029e969b5b37e1ba791d0572895133')

    parallel = False

    def install(self, spec, prefix):
        gmake("FC=fcc CC=cc")

        install_tree('bin', prefix.bin)
        install_tree('lib', prefix.lib)
        install_tree('include', prefix.include)
        install_tree('man/man1', prefix.share_man1)

        install('wgrib2/wgrib2', prefix.bin)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfetching

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions