-
Notifications
You must be signed in to change notification settings - Fork 4.1k
[R] create_package_with_all_dependencies leaves files unexecutable #40227
Description
Describe the bug, including details regarding any error messages, version, and platform.
I used create_package_with_all_dependencies on a Windows machine and then copied the tarball to a Linux machine. When I went to install the tarball, I received this error:
ERROR: 'configure' exists but is not executable -- see the 'R Installation and Administration Manual' [r]Reviewing the code, we see the files are simply tar'd back after downloading the dependencies into the untarred package:
Line 254 in b8fff04
| tar_successful <- utils::tar(dest_file, compression = "gz") == 0 |
I found that if I replace the above line with a pkgbuild::build call, the missing executable bits are automatically fixed:
pkgbuild::build(path = "arrow", dest_path = dest_file)
── R CMD build ──────────────────────────────────────────────────────────────────────────────────────────────────────────
✔ checking for file 'C:\Users\hutch3232\AppData\Local\Temp\RtmpodDbIB\file37344a4258a8\arrow/DESCRIPTION' (986ms)
─ preparing 'arrow': (32.5s)
✔ checking DESCRIPTION meta-information ...
─ cleaning src
─ checking for LF line-endings in source and make files and shell scripts (1.3s)
─ checking for empty or unneeded directories (579ms)
─ building 'arrow_14.0.2.1.tar.gz' (494ms)
Warning: file 'arrow/cleanup' did not have execute permissions: corrected
Warning: file 'arrow/configure' did not have execute permissions: correctedAfter making this change, the install on the Windows and Linux machines worked great. Perhaps there could be a step that sets these as executable manually, or replace tar with build, which includes other checks to ensure a valid package build.
BTW thanks for making this script, it's incredibly useful!
Component(s)
R