Repository: conda-forge/staged-recipes
Pull request #29049: Add Recipe r-lasr
Author: login: wildintellect
Labels: name: R
name: review-requested
Created: 2025-02-06T23:55:24Z | Merged: 2025-04-25T21:13:26Z

<!--
Thank you very much for putting in this recipe PR!

This repository is very active, so if you need help with a PR, please let the
right people know. There are language-specific teams for reviewing recipes.

| Language        | Name of review team           |
| --------------- | ----------------------------- |
| r               | `@conda-forge/help-r`         |


Once the PR is ready for review, please mention one of the teams above in a
new comment. i.e. `@conda-forge/help-some-language, ready for review!`
Then, a bot will label the PR as 'review-requested'.

Due to GitHub limitations, first time contributors to conda-forge are unable
to ping conda-forge teams directly, but you can [ask a bot to ping the team][1]
using a special command in a comment on the PR to get the attention of the
`staged-recipes` team. You can also consider asking on our [Zulip chat][2]
if your recipe isn't reviewed promptly.

[1]: https://conda-forge.org/docs/maintainer/infrastructure.html#conda-forge-admin-please-ping-team
[2]: https://conda-forge.zulipchat.com

All apologies in advance if your recipe PR does not receive prompt attention.
This is a high volume repository and the reviewers are volunteers. Review times
vary depending on the number of reviewers on a given language team and may be days
or weeks. We are always looking for more staged-recipe reviewers. If you are
interested in volunteering, please contact a member of @conda-forge/core.
We'd love to have the help!
-->

Checklist
- [x] Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
- [x] License file is packaged (see [here](https://github.com/conda-forge/staged-recipes/blob/5eddbd7fc9d1502169089da06c3688d9759be978/recipes/example/meta.yaml#L64-L73) for an example).
- [x] Source is from official source.
- [x] 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).
- [x] If static libraries are linked in, the license of the static library is packaged.
- [x] Package does not ship static libraries. If static libraries are needed, [follow CFEP-18](https://github.com/conda-forge/cfep/blob/main/cfep-18.md).
- [x] Build number is 0.
- [x] A tarball (`url`) rather than a repo (e.g. `git_url`) is used in your recipe (see [here](https://conda-forge.org/docs/maintainer/adding_pkgs.html#build-from-tarballs-not-repos) for more details).
- [x] GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
- [x] When in trouble, please check our [knowledge base documentation](https://conda-forge.org/docs/maintainer/knowledge_base.html) before pinging a team.



Diff:
diff --git a/recipes/r-lasr/build.sh b/recipes/r-lasr/build.sh
new file mode 100644
index 0000000000000..c09240e15352a
--- /dev/null
+++ b/recipes/r-lasr/build.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+export DISABLE_AUTOBREW=1
+export PKG_CPPFLAGS="-D_LIBCPP_DISABLE_AVAILABILITY ${PKG_CPPFLAGS}"
+
+sed -i.bak 's/${PROJ_LIBS}/${PROJ_LIBS} ${LDFLAGS}/g' configure
+sed -i.bak 's/${LIBS}/${LIBS} ${LDFLAGS}/g' configure
+
+${R} CMD INSTALL --build . ${R_ARGS}
diff --git a/recipes/r-lasr/meta.yaml b/recipes/r-lasr/meta.yaml
new file mode 100644
index 0000000000000..f2ad2f78ea21e
--- /dev/null
+++ b/recipes/r-lasr/meta.yaml
@@ -0,0 +1,77 @@
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-lasr
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  missing_dso_whitelist:
+    - '*/R.dll'        # [win]
+    - '*/Rblas.dll'    # [win]
+    - '*/Rlapack.dll'  # [win]
+
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - libgdal-core
+    - libgomp  # [not osx]
+    - llvm-openmp  # [osx]
+  run:
+    - r-base
+    - llvm-openmp  # [osx]
+
+test:
+  commands:
+    - $R -e "library('lasR')"  # [not win]
+    - "\"%R%\" -e \"library('lasR')\""  # [win]
+
+about:
+  home: https://github.com/r-lidar/lasR
+  summary: Fast and pipeable airborne lidar processing tools. Read/write 'las' and 'laz' files, computation of metrics in area based approach, point filtering, normalization, individual tree segmentation and other manipulations in a powerful and versatile processing chain.
+  license: GPL-3.0-or-later
+  license_family: GPL3
+  license_file:
+    - {{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3
+    - LICENSE
+    - LICENCE.note
+    - inst/COPYRIGHTS
+    - src/vendor/csf/LICENSE
+    - src/vendor/delaunator/LICENSE
+    - src/vendor/Eigen/COPYING.MINPACK
+    - src/vendor/Eigen/COPYING.MPL2
+    - src/vendor/Eigen/COPYING.README
+    - src/vendor/geophoton/LICENSE
+    - src/vendor/nlohmann/LICENSE
+
+extra:
+  recipe-maintainers:
+    - conda-forge/r
+    - wildintellect


Reviews:
user: login: mfansler
body: Some suggestions that might help this along.
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-02-18T00:21:28Z
user: login: mfansler
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-07T15:23:54Z
user: login: weiji14
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-04-24T00:29:54Z
user: login: wildintellect
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-24T15:53:42Z
user: login: mfansler
body: Almost there. Licensing is a bit more involved, and I've made some suggestions for tidying up the recipe.
state: CHANGES_REQUESTED
author_association: MEMBER
submitted_at: 2025-04-25T07:53:07Z
user: login: wildintellect
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T17:29:49Z
user: login: wildintellect
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T17:53:28Z
user: login: wildintellect
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-25T18:51:08Z
user: login: mfansler
body: Thanks for submitting this! ❤️
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-25T21:12:52Z

Review comments:
diff_hunk: @@ -0,0 +1,68 @@
+{% set name = "lasr" %}
+{% set version = "0.13.5" %}
+{% set posix = "m2-" if win else "" %}
+{% set native = "m2w64-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: c3a60e35dcb2e6403b40505928ccb22733681d63ce4926272c3c85eaa6e38e8a
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base ${{ r_base }}  # [build_platform != target_platform]
+    - r-rcpp  # [build_platform != target_platform]
+    - "{{ compiler('c') }}"  # [unix]
+    - "{{ stdlib('c') }}"  # [not win]
+    - "{{ compiler('cxx') }}"  # [unix]
+    - {{ posix }}autoconf
+    - {{ posix }}automake  # [not win]
+    - {{ posix }}pkg-config
+    - {{ posix }}make
+    - posix  # [win]
+    - {{ compiler('m2w64_c') }}  # [win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+
+  
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - libgdal-core
+    - libgomp
+    - proj
+    - geos
+    - _openmp_mutex
+
+  run:
+    - r-base
+    - libgdal-core
+    - proj
+    - geos
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: These will be exported automatically as run requirements by being in `host:`, but will need `llvm-openmp

```suggestion
    - llvm-openmp  # [osx]
```
created_at: 2025-02-18T00:04:36Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,68 @@
+{% set name = "lasr" %}
+{% set version = "0.13.5" %}
+{% set posix = "m2-" if win else "" %}
+{% set native = "m2w64-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: c3a60e35dcb2e6403b40505928ccb22733681d63ce4926272c3c85eaa6e38e8a
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base ${{ r_base }}  # [build_platform != target_platform]
+    - r-rcpp  # [build_platform != target_platform]
+    - "{{ compiler('c') }}"  # [unix]
+    - "{{ stdlib('c') }}"  # [not win]
+    - "{{ compiler('cxx') }}"  # [unix]
+    - {{ posix }}autoconf
+    - {{ posix }}automake  # [not win]
+    - {{ posix }}pkg-config
+    - {{ posix }}make
+    - posix  # [win]
+    - {{ compiler('m2w64_c') }}  # [win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+
+  
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - libgdal-core
+    - libgomp
+    - proj
+    - geos
+    - _openmp_mutex
+
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: OSX will need `llvm-openmp`, and can tidy:

```suggestion
    - geos
    - libgdal-core
    - libgomp  # [not osx]
    - llvm-openmp  # [osx]
    - proj
```
created_at: 2025-02-18T00:07:51Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,68 @@
+{% set name = "lasr" %}
+{% set version = "0.13.5" %}
+{% set posix = "m2-" if win else "" %}
+{% set native = "m2w64-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: c3a60e35dcb2e6403b40505928ccb22733681d63ce4926272c3c85eaa6e38e8a
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base ${{ r_base }}  # [build_platform != target_platform]
+    - r-rcpp  # [build_platform != target_platform]
+    - "{{ compiler('c') }}"  # [unix]
+    - "{{ stdlib('c') }}"  # [not win]
+    - "{{ compiler('cxx') }}"  # [unix]
+    - {{ posix }}autoconf
+    - {{ posix }}automake  # [not win]
+    - {{ posix }}pkg-config
+    - {{ posix }}make
+    - posix  # [win]
+    - {{ compiler('m2w64_c') }}  # [win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+
+  
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: Let's tidy this up and add llvm-openmp:

```suggestion
    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
    - r-rcpp                       # [build_platform != target_platform]
    - {{ compiler('c') }}          # [not win]
    - {{ stdlib('c') }}            # [not win]
    - {{ compiler('m2w64_c') }}    # [win]
    - {{ stdlib('m2w64_c') }}      # [win]
    - {{ compiler('cxx') }}        # [not win]
    - {{ compiler('m2w64_cxx') }}  # [win]
    - {{ posix }}autoconf
    - {{ posix }}automake          # [not win]
    - {{ posix }}make
    - pkg-config
    - posix                        # [win]
    - llvm-openmp                  # [osx]
```
created_at: 2025-02-18T00:16:57Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,68 @@
+{% set name = "lasr" %}
+{% set version = "0.13.5" %}
+{% set posix = "m2-" if win else "" %}
+{% set native = "m2w64-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: c3a60e35dcb2e6403b40505928ccb22733681d63ce4926272c3c85eaa6e38e8a
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base ${{ r_base }}  # [build_platform != target_platform]
+    - r-rcpp  # [build_platform != target_platform]
+    - "{{ compiler('c') }}"  # [unix]
+    - "{{ stdlib('c') }}"  # [not win]
+    - "{{ compiler('cxx') }}"  # [unix]
+    - {{ posix }}autoconf
+    - {{ posix }}automake  # [not win]
+    - {{ posix }}pkg-config
+    - {{ posix }}make
+    - posix  # [win]
+    - {{ compiler('m2w64_c') }}  # [win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+
+  
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - libgdal-core
+    - libgomp
+    - proj
+    - geos
+    - _openmp_mutex
+
+  run:
+    - r-base
+    - libgdal-core
+    - proj
+    - geos
+
+test:
+  commands:
+    - $R -e "library('lasR')"  # [not win]
+    - "\"%R%\" -e \"library('lasR')\""  # [win]
+
+about:
+  home: https://github.com/r-lidar/lasR
+  summary: Fast and pipeable airborne lidar processing tools. Read/write 'las' and 'laz' files, computation of metrics in area based approach, point filtering, normalization, individual tree segmentation and other manipulations in a powerful and versatile processing chain.
+  license: GPL-3.0-or-later
+  license_family: GPL3
+  license_file: LICENSE
+
+extra:
+  recipe-maintainers:
+    - wildintellect
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: We would prefer that `conda-forge/r` always be include on R recipes:

```suggestion
    - conda-forge/r
    - wildintellect
```
created_at: 2025-02-18T00:19:00Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,68 @@
+{% set name = "lasr" %}
+{% set version = "0.13.5" %}
+{% set posix = "m2-" if win else "" %}
+{% set native = "m2w64-" if win else "" %}
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: This is deprecated:

```suggestion
```
created_at: 2025-02-18T00:20:17Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,67 @@
+{% set name = "lasr" %}
+{% set version = "0.13.6" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: ce5dc9d234f4d30d4805586c6520ee170f0366b323f1a03bd4e85863e9e0de90
+
+build:
+  skip: true  # [win]
+  script_env:  # [osx]
+    - CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY"
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: Do this in the `build.sh` rather than here.

```suggestion
```
created_at: 2025-03-07T15:23:53Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,8 @@
+#!/bin/bash
+export DISABLE_AUTOBREW=1
+export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY"
path: recipes/r-lasr/build.sh
user: login: weiji14
body: I see at https://github.com/r-lidar/lasR/blob/8c789d3f99ac3de6d4d0149855c7517aaa9750de/src/Makevars.in#L2 that `PKG_CXXFLAGS` is used, could you try this instead? Just because I don't see `-D_LIBCPP_DISABLE_AVAILABILITY` in the [logs](https://dev.azure.com/conda-forge/84710dde-1620-425b-80d0-4cf5baca359d/_apis/build/builds/1231789/logs/29), and found some other packages https://github.com/search?q=org%3Aconda-forge++LIBCPP_DISABLE_AVAILABILITY+language%3AShell+%24%7BR%7D+CMD+INSTALL&type=code using sed replace on `PKG_CPPFLAGS`.

```suggestion
export PKG_CXXFLAGS="${PKG_CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY"
```
created_at: 2025-04-24T00:29:54Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,8 @@
+#!/bin/bash
+export DISABLE_AUTOBREW=1
+export CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY"
path: recipes/r-lasr/build.sh
user: login: wildintellect
body: thanks I'll try that
created_at: 2025-04-24T15:53:42Z
author_association: CONTRIBUTOR
path: recipes/r-lasr/conda_build_config.yaml
user: login: mfansler
body: This should no longer be needed since the `-D_LIBCPP_DISABLE_AVAILABILITY` flag is provided. Please remove this file.
created_at: 2025-04-25T07:29:43Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: Remove single-use variable.

```suggestion
{% set version = "0.13.7" %}
{% set posix = "m2-" if win else "" %}

package:
  name: r-lasr
```
created_at: 2025-04-25T07:35:16Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - geos
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: This lib is already ensured by `libgdal-core` and linking analysis indicates that this package does not directly link.

```suggestion
```
created_at: 2025-04-25T07:38:29Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - geos
+    - libgdal-core
+    - libgomp  # [not osx]
+    - llvm-openmp  # [osx]
+    - proj
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: Same as `geos`.

```suggestion
```
created_at: 2025-04-25T07:38:51Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - geos
+    - libgdal-core
+    - libgomp  # [not osx]
+    - llvm-openmp  # [osx]
+    - proj
+  run:
+    - r-base
+    - llvm-openmp  # [osx]
+
+test:
+  commands:
+    - $R -e "library('lasR')"  # [not win]
+    - "\"%R%\" -e \"library('lasR')\""  # [win]
+
+about:
+  home: https://github.com/r-lidar/lasR
+  summary: Fast and pipeable airborne lidar processing tools. Read/write 'las' and 'laz' files, computation of metrics in area based approach, point filtering, normalization, individual tree segmentation and other manipulations in a powerful and versatile processing chain.
+  license: GPL-3.0-or-later
+  license_family: GPL3
+  license_file: LICENSE
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: This package does a bunch of vendoring. So those licenses need to also be explicitly captured:

```suggestion
  license_file:
    - {{ environ["PREFIX"] }}/lib/R/share/licenses/GPL-3
    - LICENSE
    - LICENCE.note
    - inst/COPYRIGHTS
    - vendor/csf/LICENSE
    - vendor/delaunator/LICENSE
    - vendor/Eigen/COPYING.MINPACK
    - vendor/Eigen/COPYING.MPL2
    - vendor/Eigen/COPYING.README
    - vendor/geophoton/LICENSE
    - vendor/nlohmann/LICENSE
```
created_at: 2025-04-25T07:47:55Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
path: recipes/r-lasr/meta.yaml
user: login: mfansler
body: Let's add this boilerplate preemptively in case anyone wants to attempt Windows builds later:

```suggestion
  missing_dso_whitelist:
    - '*/R.dll'        # [win]
    - '*/Rblas.dll'    # [win]
    - '*/Rlapack.dll'  # [win]

```
created_at: 2025-04-25T07:49:41Z
author_association: MEMBER
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - geos
+    - libgdal-core
+    - libgomp  # [not osx]
+    - llvm-openmp  # [osx]
+    - proj
+  run:
+    - r-base
+    - llvm-openmp  # [osx]
+
+test:
+  commands:
+    - $R -e "library('lasR')"  # [not win]
+    - "\"%R%\" -e \"library('lasR')\""  # [win]
+
+about:
+  home: https://github.com/r-lidar/lasR
+  summary: Fast and pipeable airborne lidar processing tools. Read/write 'las' and 'laz' files, computation of metrics in area based approach, point filtering, normalization, individual tree segmentation and other manipulations in a powerful and versatile processing chain.
+  license: GPL-3.0-or-later
+  license_family: GPL3
+  license_file: LICENSE
path: recipes/r-lasr/meta.yaml
user: login: wildintellect
body: This is throwing and error on a build local test because the "vendor" paths don't actually exist. Pushing this change now though to see if conda-forge building handles it differently.
created_at: 2025-04-25T17:29:49Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - geos
+    - libgdal-core
+    - libgomp  # [not osx]
+    - llvm-openmp  # [osx]
+    - proj
+  run:
+    - r-base
+    - llvm-openmp  # [osx]
+
+test:
+  commands:
+    - $R -e "library('lasR')"  # [not win]
+    - "\"%R%\" -e \"library('lasR')\""  # [win]
+
+about:
+  home: https://github.com/r-lidar/lasR
+  summary: Fast and pipeable airborne lidar processing tools. Read/write 'las' and 'laz' files, computation of metrics in area based approach, point filtering, normalization, individual tree segmentation and other manipulations in a powerful and versatile processing chain.
+  license: GPL-3.0-or-later
+  license_family: GPL3
+  license_file: LICENSE
path: recipes/r-lasr/meta.yaml
user: login: wildintellect
body: Ok it is a problem - so we need to generate the files as part of the recipe? Anyone have examples of this to follow https://conda-forge.org/docs/maintainer/adding_pkgs/#licenses-of-included-dependencies
created_at: 2025-04-25T17:53:28Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+{% set name = "lasr" %}
+{% set version = "0.13.7" %}
+{% set posix = "m2-" if win else "" %}
+
+package:
+  name: r-{{ name }}
+  version: '{{ version }}'
+
+source:
+  url: https://r-lidar.r-universe.dev/src/contrib/lasR_{{ version }}.tar.gz
+  sha256: 746e84837af8a2d294321b76c790be5f0d57fc9e305a2e0f72703926a68f64b7
+
+build:
+  skip: true  # [win]
+  number: 0
+  rpaths:
+    - lib/R/lib/
+    - lib/
+  
+
+requirements:
+  build:
+    - cross-r-base {{ r_base }}    # [build_platform != target_platform]
+    - r-rcpp                       # [build_platform != target_platform]
+    - {{ compiler('c') }}          # [not win]
+    - {{ stdlib('c') }}            # [not win]
+    - {{ compiler('m2w64_c') }}    # [win]
+    - {{ stdlib('m2w64_c') }}      # [win]
+    - {{ compiler('cxx') }}        # [not win]
+    - {{ compiler('m2w64_cxx') }}  # [win]
+    - {{ posix }}autoconf
+    - {{ posix }}automake          # [not win]
+    - {{ posix }}make
+    - pkg-config
+    - posix                        # [win]
+    - llvm-openmp                  # [osx]
+  host:
+    - r-base
+    - r-rcpp
+    - r-r.utils
+    - geos
+    - libgdal-core
+    - libgomp  # [not osx]
+    - llvm-openmp  # [osx]
+    - proj
+  run:
+    - r-base
+    - llvm-openmp  # [osx]
+
+test:
+  commands:
+    - $R -e "library('lasR')"  # [not win]
+    - "\"%R%\" -e \"library('lasR')\""  # [win]
+
+about:
+  home: https://github.com/r-lidar/lasR
+  summary: Fast and pipeable airborne lidar processing tools. Read/write 'las' and 'laz' files, computation of metrics in area based approach, point filtering, normalization, individual tree segmentation and other manipulations in a powerful and versatile processing chain.
+  license: GPL-3.0-or-later
+  license_family: GPL3
+  license_file: LICENSE
path: recipes/r-lasr/meta.yaml
user: login: wildintellect
body: @mfansler yup I eventually noticed that `src` was missing from the paths.
created_at: 2025-04-25T18:51:08Z
author_association: CONTRIBUTOR

PR comments:
user: login: github-actions[bot]
created_at: 2025-02-06T23:56:44Z
body: Hi! This is the staged-recipes linter and your PR looks excellent! :rocket:


author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-02-06T23:57:06Z
body: 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 (```recipes/r-lasr/meta.yaml```) and found some lint.

Here's what I've got...


For **recipes/r-lasr/meta.yaml**:

 * ❌ Selectors are suggested to take a ``<two spaces>#<one space>[<expression>]`` form. See lines [14]


<sub>This message was generated by GitHub Actions workflow run [https://github.com/conda-forge/conda-forge-webservices/actions/runs/13190469219](https://github.com/conda-forge/conda-forge-webservices/actions/runs/13190469219). Examine the logs at this URL for more detail.</sub>

author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-02-07T00:24:16Z
body: 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 (```recipes/r-lasr/meta.yaml```) and found it was in an excellent condition.

author_association: CONTRIBUTOR
user: login: wildintellect
created_at: 2025-02-07T00:28:03Z
body: @conda-forge-admin, please ping conda-forge/help-r

Build is working but when I manually tried to test install I'm hitting a linking error with GDAL
Also only tried Linux, no idea if it will work for Windows (currently set to skip).
```
> library(lasR)
Error: package or namespace load failed for ‘lasR’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/opt/conda/envs/r/lib/R/library/lasR/libs/lasR.so':
  libgdal.so.36: cannot open shared object file: No such file or directory
```
author_association: CONTRIBUTOR
user: login: conda-forge-webservices[bot]
created_at: 2025-02-07T00:28:12Z
body: 
Hi! This is the friendly automated conda-forge-webservice.

I was asked to ping @conda-forge/help-r and so here I am doing that.

author_association: NONE
user: login: conda-forge-webservices[bot]
created_at: 2025-02-07T00:32:38Z
body: 
Hi! This is the friendly automated conda-forge-webservice.

I was asked to ping @conda-forge/help-r and so here I am doing that.

author_association: NONE
user: login: wildintellect
created_at: 2025-02-07T19:30:20Z
body: Just noting the GDAL error [above](https://github.com/conda-forge/staged-recipes/pull/29049#issuecomment-2641511314) is because I was testing it in an env that had a different version. 
author_association: CONTRIBUTOR
user: login: wildintellect
created_at: 2025-02-10T18:53:59Z
body: @Jean-Romain do you want to be listed as a maintainer? I only went ahead with making this because my team needed it. Would make more sense for you, particularly if we can automate future releases with github actions in https://github.com/r-lidar/lasR
author_association: CONTRIBUTOR
user: login: Jean-Romain
created_at: 2025-02-10T23:31:18Z
body: @wildintellect I don't even know what were are talking about.
author_association: NONE
user: login: mfansler
created_at: 2025-02-18T02:52:00Z
body: Relevant to osx-64 error: https://conda-forge.org/docs/maintainer/knowledge_base/#newer-c-features-with-old-sdk

author_association: MEMBER
user: login: conda-forge-admin
created_at: 2025-03-06T21:46:10Z
body: 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 (```recipes/r-lasr/meta.yaml```) and found some lint.

Here's what I've got...


For **recipes/r-lasr/meta.yaml**:

 * ❌ Selectors are suggested to take a ``<two spaces>#<one space>[<expression>]`` form. See lines [14]


<sub>This message was generated by GitHub Actions workflow run [https://github.com/conda-forge/conda-forge-webservices/actions/runs/13708785925](https://github.com/conda-forge/conda-forge-webservices/actions/runs/13708785925). Examine the logs at this URL for more detail.</sub>

author_association: CONTRIBUTOR
user: login: conda-forge-admin
created_at: 2025-03-06T21:50:16Z
body: 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 (```recipes/r-lasr/meta.yaml```) and found it was in an excellent condition.

author_association: CONTRIBUTOR
user: login: wildintellect
created_at: 2025-03-06T22:06:49Z
body: @mfansler not sure I got the CXXFlags right, but I also saw the upstream library itself is having Mac build issues right now https://github.com/r-universe/r-lidar/actions/runs/13482521459/job/37669662076
I also see the `src` upstream changed so I'll need to update the hash.
author_association: CONTRIBUTOR
user: login: wildintellect
created_at: 2025-04-24T16:52:34Z
body: @conda-forge-admin, please ping conda-forge/help-r 

Passing all the builds now, we think it's ready for re-review.
author_association: CONTRIBUTOR
user: login: conda-forge-webservices[bot]
created_at: 2025-04-24T16:52:40Z
body: 
Hi! This is the friendly automated conda-forge-webservice.

I was asked to ping @conda-forge/help-r and so here I am doing that.

author_association: NONE
user: login: mfansler
created_at: 2025-04-25T18:50:10Z
body: 😬 Oops - I gave you a typo. I think the licenses with `vendor/...` should be `src/vendor/...`.
author_association: MEMBER