Skip to content
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

pkg_install() fails for GitHub package in subdirectory #431

Closed
paleolimbot opened this issue Nov 17, 2022 · 0 comments · Fixed by r-lib/pkgdepends#290
Closed

pkg_install() fails for GitHub package in subdirectory #431

paleolimbot opened this issue Nov 17, 2022 · 0 comments · Fixed by r-lib/pkgdepends#290

Comments

@paleolimbot
Copy link

When trying to install from a package in a subdirectory, I get:

> pak::pkg_install("apache/arrow-nanoarrow/r")
                                                                      
→ Will update 1 package.
→ Will download 1 package with unknown size.
+ nanoarrow 0.0.0.9000 → 0.0.0.9000 👷🏾‍♀️🔧 ⬇ (GitHub: 5d5234d)
? Do you want to continue (Y/n) Y
ℹ Getting 1 pkg with unknown size
✓ Got nanoarrow 0.0.0.9000 (source) (236.48 kB)              
✓ Downloaded 1 package (236.48 kB)in 912ms                   
ℹ Packaging nanoarrow 0.0.0.9000
Error: No root directory found in /private/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T/RtmponxckR/X/nanoarrow or its parent directories. Root criterion: contains a file "DESCRIPTION"
Type .Last.error.trace to see where the error occurred

The equivalent call for remotes seems to work:

remotes::install_github("apache/arrow-nanoarrow/r")
Downloading GitHub repo apache/arrow-nanoarrow@HEAD
✔ checking for file ‘/private/var/folders/p5/sxv05ml96sd1n2p3ssfhzzth0000gn/T/RtmpWIFiBY/remotes162f0305e40be/apache-arrow-nanoarrow-5d5234d/r/DESCRIPTION’ ...
─ preparing ‘nanoarrow’:
✔ checking DESCRIPTION meta-information ...
─ cleaning src
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ building ‘nanoarrow_0.0.0.9000.tar.gz’

  • installing source package ‘nanoarrow’ ...
    ** using staged installation
    Fetched bundled nanoarrow from https://github.com/apache/arrow-nanoarrow/tree/main/dist
    ** libs
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c altrep.c -o altrep.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c array.c -o array.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c array_convert_vector.c -o array_convert_vector.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c array_stream.c -o array_stream.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c array_view.c -o array_view.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c buffer.c -o buffer.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c build_id.c -o build_id.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c init.c -o init.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c materialize.c -o materialize.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c nanoarrow.c -o nanoarrow.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c pointers.c -o pointers.o
    clang++ -arch arm64 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c pointers_cpp.cc -o pointers_cpp.o
    clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c schema.c -o schema.o
    clang++ -arch arm64 -std=gnu++14 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/opt/R/arm64/lib -o nanoarrow.so altrep.o array.o array_convert_vector.o array_stream.o array_view.o buffer.o build_id.o init.o materialize.o nanoarrow.o pointers.o pointers_cpp.o schema.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
    ld: warning: -undefined dynamic_lookup may not work with chained fixups
    installing to /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library/00LOCK-nanoarrow/00new/nanoarrow/libs
    ** R
    ** inst
    ** byte-compile and prepare package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded from temporary location
    ** checking absolute paths in shared objects and dynamic libraries
    ** testing if installed package can be loaded from final location
    ** testing if installed package keeps a record of temporary installation path
  • DONE (nanoarrow)

This would be rather helpful for running CI with a nanoarrow dependency since all those workflows use pak for the dependency install!

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Feb 19, 2023
# pak 0.4.0

* pak has much improved and more informative error messages now.
  This work is not yet finished, so if you find an unclear error message,
  please open an issue. Thank you!

* The solver is now more robust for non-canonical input (e.g. `DESCRIPTION`
  files) (r-lib/pak#423).

* Better installation output. Standard output and error are now
  collected together (r-lib/pkgdepends@0669f0f8c).

* The solver is now doing a better job when multiple versions of the
  same package are present in the same repository
  (r-lib/actions#559).

* `pkg_name_check()` now works again, it needed a fix after changes at
  https://crandb.r-pkg.org.

* Explicit package names in local and URL package sources, as in
  `package=local::...` or `package=url::...` are now parsed correctly in
  dependencies.

* pak is now more robust to `Archs` fields missing from the CRAN
  metadata for packages with compiled code
  (r-lib/pak#448).

* `url::` packages now always work correctly, even if the digest package is
  not installed (r-lib/pak#433).

* pak is now more robust when installing packages from subdirectories
  of GitHub repositories (r-lib/pak#431,
  @paleolimbot).

* Parameters `?reinstall`, `?source` and `?ignore` now work correctly when
  specified in the `package=?parameter` format (#294).

* The `?ignore` parameter works correctly now.

* Dependency resolution now does not fail if a package is not found.

* pak can now install `url::` remotes from GitHub.

* pak now does not fail when the package of a `.tar.gz` GitHub
  snapshot is in a subdirectory, or in a subdirectory of a subdirectory.

* pak now errors early if it cannot deduce the name of the package
  from a `Remotes` or `Config/Needs/*` entry.

* Solver failures now include details in some cases where previously they
  did not.

* pak can now update packages in Docker containers where the
  old version was installed in the different Docker later
  (r-lib/pak#251)

* Update R version -> Bioconductor version mapping. R 4.2.x now maps to
  Bioconductor 3.16.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant