Skip to content

PHP file-based warnings followed by an ERROR? #109

@jpstacey

Description

@jpstacey

Thanks for this project. I'm really excited to be using Composer rather than Drush Make, much as I've loved the latter over the years.

When I run your example command locally, composer installs all of its dependencies, then writes the lock and autoload files.... and then after

Extracting /tmp//drupal-scaffold-1455809014/drupal-8.0.3.tar.gz

I get a number of PHP warnings:

PHP Warning:  rename(): The first argument to copy() function cannot be a directory in /ROOT/vendor/drupal-composer/drupal-scaffold/src/Extract.php on line 70
PHP Stack trace:
...
PHP  12. rename() /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php:70

Warning: rename(): The first argument to copy() function cannot be a directory in /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php on line 70

Call Stack:
...
   17.9383    5397824  12. rename() /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php:70

PHP Warning:  rename(/var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/scripts/tmp17716083661455809031/drupal-8.0.3,/tmp//drupal-scaffold-1455809014/drupal-8): Invalid cross-device link in /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php on line 70
PHP Stack trace:.
...
PHP  12. rename() /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php:70

Warning: rename(/var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/scripts/tmp17716083661455809031/drupal-8.0.3,/tmp//drupal-scaffold-1455809014/drupal-8): Invalid cross-device link in /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php on line 70

Call Stack:
...

etc. I wouldn't mind them being PHP warnings, but the entire process ends with:

 [Remote\Rsync] Running rsync -a -v -z --include 'sites' --include 'sites/default' --include 'sites/default/default.settings.php' --include 'sites/default/default.services.yml' --include 'sites/development.services.yml' --include 'sites/example.settings.local.php' --include 'sites/example.sites.php' --exclude '.gitkeep' --exclude 'autoload.php' --exclude 'composer.json' --exclude 'composer.lock' --exclude 'core' --exclude 'drush' --exclude 'example.gitignore' --exclude 'LICENSE.txt' --exclude 'README.txt' --exclude 'vendor' --exclude 'themes' --exclude 'profiles' --exclude 'modules' --exclude 'sites/*' --exclude 'sites/default/*' /tmp//drupal-scaffold-1455809014/drupal-8/ /var/www/personal/drupal8-magneticphield/some-dir/web
sending incremental file list
rsync: change_dir "/tmp//drupal-scaffold-1455809014/drupal-8" failed: No such file or directory (2)

sent 20 bytes  received 12 bytes  64.00 bytes/sec
total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
 [Remote\Rsync] sending incremental file list
 [Remote\Rsync] sent 20 bytes  received 12 bytes  64.00 bytes/sec
 [Remote\Rsync] total size is 0  speedup is 0.00
 [Remote\Rsync]  Exit code 23  Time 0.153s
 [Robo\Result] Stopping on fail. Exiting....
 [Robo\Result] Exit Code: 23
ERROR: rmdir(/var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/scripts/tmp17716083661455809031): Directory not empty 
in /var/www/personal/drupal8-magneticphield/some-dir/vendor/drupal-composer/drupal-scaffold/src/Extract.php:71

cp: cannot stat ‘web/sites/default/default.settings.php’: No such file or directory
chmod: cannot access ‘web/sites/default/settings.php’: No such file or directory
Create a sites/default/settings.php file with chmod 666
cp: cannot stat ‘web/sites/default/default.services.yml’: No such file or directory
chmod: cannot access ‘web/sites/default/services.yml’: No such file or directory
Create a sites/default/services.yml services.yml file with chmod 666
Create a sites/default/files directory with chmod 777

(I've attached [a full paste](%28https://github.com/drupal-composer/drupal-project/files/136456/drupal-composer-perm-probs.txt%29 of my command and the output.)

The site that ends up being produced is somewhat functional, but e.g web/sites/default is completely empty. So I'm loath to go any further!

Any ideas? I've asked a couple of people on IRC and I've had confirmation it can be repeated, but they think it was working yesterday; maybe a recent change?

drupal-composer-perm-probs.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions