Skip to content

[R] create_package_with_all_dependencies leaves files unexecutable #40227

@hutch3232

Description

@hutch3232

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:

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 srcchecking 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: corrected

After 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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions