Skip to content

Add version 5.8 and fix sqlite+column_metadata mismatch.#15450

Merged
chuckatkins merged 1 commit intospack:developfrom
danlipsa:paraview-5.8
Mar 20, 2020
Merged

Add version 5.8 and fix sqlite+column_metadata mismatch.#15450
chuckatkins merged 1 commit intospack:developfrom
danlipsa:paraview-5.8

Conversation

@danlipsa
Copy link
Copy Markdown
Contributor

No description provided.

@danlipsa
Copy link
Copy Markdown
Contributor Author

Fixes: #15448

@danlipsa
Copy link
Copy Markdown
Contributor Author

@chuckatkins Please review


variant('rtree', default=False, description='Build with Rtree module')
variant('column_metadata', default=False, description="Build with COLUMN_METADATA")
variant('column_metadata', default=True, description="Build with COLUMN_METADATA")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this change necessary?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This fixes #15448

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems like #15448 implies that paraview requires sqlite+column_metadata. Simply changing the default doesn't ensure that someone won't override this.

Copy link
Copy Markdown
Contributor Author

@danlipsa danlipsa Mar 12, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error comes from qhelpgenerator and Qt does require sqlite+column_metadata. The problem is that python only requires sqlite. spack does not know how to resolve this kind of conflicting specs. The only way I know how to fix this is to enable the most comprehensive package by default. In this case sqlite+column_metadata.

Copy link
Copy Markdown
Contributor

@glennpj glennpj Mar 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python depends on sqlite if +sqlite3 is in its specs. When python+sqlite3 is set the sqlite dependency can be met with either sqlite+column_metadata or sqlite~column_metadata. Setting an explicit dependency for paraview should do the trick, as in #15248. However, I see the following comment in the paraview package:
# depends_on('sqlite') # external version not supported
but I am not really sure what that means in light of #15248 using an external sqlite successfully.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is weird. I get:

[~/projects/spack (develop $%=)]$ spack spec paraview+qt | grep sqlite
            ^[email protected]%[email protected]+bz2+ctypes+dbm~debug+libxml2+lzma~nis~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tix~tkinter~ucs4~uuid+zlib arch=linux-ubuntu18.04-broadwell
                ^[email protected]%[email protected]~column_metadata+fts~functions~rtree arch=linux-ubuntu18.04-broadwell
[~/projects/spack (develop $%=)]$ git log -1
commit 38d04e29ebe481bcc6d344e669ffca4ebb79bb9f (HEAD -> develop, origin/develop, origin/HEAD)
Author: Hans Pabst 
Date:   Fri Mar 13 20:44:26 2020 +0100

    LIBXSMM 1.15 (#15482)
    
    * LIBXSMM 1.15
    
    * LIBXSMM: renamed development version according to the related branch on GitHub.
[~/projects/spack (develop $%=)]$ 

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, I did not see that you added the ^sqlite+column_metadata. Yes, that would work, but it requires the users to know to pass that. I think most users won't know to do that and they would report this as a bug.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but that is how spack operates, allowing the spec to be overridden. It does not seem like a bug to me.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bug in the sense that the concretizer should be smart enough to figure this all out on its own, but it currently isn't.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see dependencies as a way to specify alternatives, for instance ^mpich versus ^openmpi, or maybe specific versions for dependencies. I think resolving conflicting specs is beyond what a user could know (unless he has a lot of experience with spack), and indeed they could be done automatically.

@danlipsa
Copy link
Copy Markdown
Contributor Author

@chuckatkins ping

Copy link
Copy Markdown
Member

@adamjstewart adamjstewart left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't wait until we get a new concretizer that's smart enough to figure this all out on its own.

@danlipsa
Copy link
Copy Markdown
Contributor Author

@scottwittenburg Please review

@danlipsa
Copy link
Copy Markdown
Contributor Author

@chuckatkins ping

@danlipsa
Copy link
Copy Markdown
Contributor Author

@chuckatkins @scottwittenburg Ping?

@chuckatkins chuckatkins merged commit 9c45c44 into spack:develop Mar 20, 2020
@danlipsa
Copy link
Copy Markdown
Contributor Author

Thanks @chuckatkins !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants