-
-
Notifications
You must be signed in to change notification settings - Fork 5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add LoopTools #28292
base: main
Are you sure you want to change the base?
Add LoopTools #28292
Conversation
Hi! This is the staged-recipes linter and your PR looks excellent! 🚀 |
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
829c78d
to
fa84830
Compare
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipes/looptools/meta.yaml:
|
adddb97
to
0897b86
Compare
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
ceaa806
to
651bc53
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For reviewers:
- Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
LoopTools vendors a significantly modified version of FF (c.f. hep-packaging-coordination/packaging-hep-simulation-stack#4 (comment)). FF is unlicensed Fortran code from 1998 and the original author has died. c.f. hep-packaging-coordination/packaging-hep-simulation-stack#4
- If static libraries are linked in, the license of the static library is packaged.
FF is statically linked into libooptools.a
. As FF is unlicensed code (c.f. above) there is no additional license to include beyond LoopTools's GPL-3.0-only
.
- Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
LoopTools only supports static linking at the moment given the author's decision to remove it. c.f. hep-packaging-coordination/packaging-hep-simulation-stack#4 (comment)
cc @t-hahn (LoopTools author) in the event they have any comments or corrections.
@conda-forge/staged-recipes, ready for review! This is a fortran recipe. |
To help direct your pull request to the best reviewers, please mention a topic-specifc team if your recipe matches any of the following: conda-forge/help-c-cpp, conda-forge/help-cdts, conda-forge/help-go, conda-forge/help-java, conda-forge/help-julia, conda-forge/help-nodejs, conda-forge/help-perl, conda-forge/help-python, conda-forge/help-python-c, conda-forge/help-r, conda-forge/help-ruby,or conda-forge/help-rust. Thanks! |
recipes/looptools/meta.yaml
Outdated
# c.f. https://github.com/hep-packaging-coordination/packaging-hep-simulation-stack/issues/4#issuecomment-2489198926 | ||
# - ./configure --prefix=$PREFIX --dynamic --64 --native | ||
- ./configure --prefix=$PREFIX --64 # [build_platform != target_platform] | ||
- ./configure --prefix=$PREFIX --64 --native # [build_platform == target_platform] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ./configure --prefix=$PREFIX --64 --native # [build_platform == target_platform] | |
- ./configure --prefix=$PREFIX --64 --native # [build_platform == target_platform] |
Reviewers, is setting -march=native
here safe to do for a CI job? Or should this only ever be done when you're building on the same machine you plan to run on?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Never ever set --native
if you want to use the binary on multiple system. Please use the provided C(XX)FLAGS from the compiler activation scripts.
651bc53
to
bc46d8c
Compare
build: | ||
skip: true # [win] | ||
run_exports: | ||
- {{ pin_subpackage('looptools-static', max_pin='x.x') }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it is static, it should need a run_exports.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xhochy Hm, I thought from https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#export-runtime-requirements that I was setting run_exports
here. Is there more clear documentation on how this works?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was following krb5
which is given as the example package in CFEP-18:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, or should the run_exports
be at the top level instead?
diff --git a/recipes/looptools/meta.yaml b/recipes/looptools/meta.yaml
index d9c5496de2..cd8b8240aa 100644
--- a/recipes/looptools/meta.yaml
+++ b/recipes/looptools/meta.yaml
@@ -11,14 +11,14 @@ source:
build:
number: 0
+ run_exports:
+ - {{ pin_subpackage('looptools-static', max_pin='x.x') }}
outputs:
- name: {{ name }}-static
build:
skip: true # [win]
- run_exports:
- - {{ pin_subpackage('looptools-static', max_pin='x.x') }}
ignore_run_exports_from:
- {{ compiler('cxx') }}
script:
recipes/looptools/meta.yaml
Outdated
- ./configure --prefix=$PREFIX --64 --native # [build_platform == target_platform] | ||
- make | ||
- make install | ||
- ln -s -f $PREFIX/lib64/libooptools.a $PREFIX/lib/libooptools.a # [linux] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- ln -s -f $PREFIX/lib64/libooptools.a $PREFIX/lib/libooptools.a # [linux] | |
- mv $PREFIX/lib64/libooptools.a $PREFIX/lib/libooptools.a # [linux] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xhochy The motivation here for this change is that conda
doesn't distinguish between $CONDA_PREFIX/lib
and $CONDA_PREFIX/lib64
(i.e. there is no $CONDA_PREFIX/lib64
), and so having one package with a subdir like this isn't useful? Or is there another reason?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @xhochy. I'll push changes, but I also have some questions.
build: | ||
skip: true # [win] | ||
run_exports: | ||
- {{ pin_subpackage('looptools-static', max_pin='x.x') }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xhochy Hm, I thought from https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#export-runtime-requirements that I was setting run_exports
here. Is there more clear documentation on how this works?
recipes/looptools/meta.yaml
Outdated
- ./configure --prefix=$PREFIX --64 --native # [build_platform == target_platform] | ||
- make | ||
- make install | ||
- ln -s -f $PREFIX/lib64/libooptools.a $PREFIX/lib/libooptools.a # [linux] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xhochy The motivation here for this change is that conda
doesn't distinguish between $CONDA_PREFIX/lib
and $CONDA_PREFIX/lib64
(i.e. there is no $CONDA_PREFIX/lib64
), and so having one package with a subdir like this isn't useful? Or is there another reason?
ca8b819
to
8813693
Compare
@xhochy general question. As this is Fortran I've not been selecting a language team and just been mentining in my review request comment (#28292 (comment)) that the recipe is fortran . Do you have suggestions on how I can better communicate and label these sorts of PRs for the reviewers? |
* Add LoopTools v2.16. - c.f. https://feynarts.de/looptools/ * Looptools currently only supports static linking, so following CFEP-18, create 'looptools-static' output. - c.f. https://github.com/conda-forge/cfep/blob/main/cfep-18.md
8813693
to
5450ce0
Compare
looptools-static
output.Checklist
url
) rather than a repo (e.g.git_url
) is used in your recipe (see here for more details).