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

Fix Windows issue preventing compression when symbolic link is added … #236

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

kent13n
Copy link

@kent13n kent13n commented Sep 22, 2023

When using the 'php artisan storage:link' command in the vapor.yml file, deploying or building on Windows becomes impossible as the application compression fails everytime. I added a check to avoid adding symbolic paths to the zip archive on Windows by verifying that we are on the Windows OS, that the file is a directory, and that it is a symbolic link. I used 'array_diff' because the 'is_link' function always returns false on Windows. See: https://bugs.php.net/bug.php?id=65697.

@joedixon joedixon marked this pull request as draft September 22, 2023 12:32
@didix16
Copy link

didix16 commented Nov 12, 2024

Hi there, is this any fix be merged someday? I've have a similiar problem but at the Copy Stage.

PHP Warning:  copy(): The first argument to copy() function cannot be a directory.

That warning shows up when this code is being executed:
https://github.com/laravel/vapor-cli/blob/cf4090018bc15472bec1f3a75238312c902fc2d7/src/BuildProcess/CopyApplicationToBuildPath.php#L25C9-L33C10

It seems that junctions files on windows are not being propely detected by SplFileInfo. This is what I get after trying to get file info on tinker:

$f = new SplFileInfo("vendor/myVendor/MyLocalPackage");                                                                                                                                                                               
PHP Notice:  SplFileInfo::getType(): Unknown file type (0) in C:\Users\User\Documents\projects\myProject\vendor\symfony\var-dumper\Caster\SplCaster.php on line 134
= SplFileInfo {#6705
    path: "vendor/myVendor",
    filename: "MyLocalPackage",
    basename: "MyLocalPackage",
    pathname: "vendor/myVendor/MyLocalPackage",
    extension: "",
    realPath: "C:\Users\User\Documents\projects\myProject\nova-components\MyLocalPackage",
    aTime: 2024-11-12 14:30:55,
    mTime: 2023-05-30 11:11:53,
    cTime: 2023-05-30 11:11:53,
    inode: 281474976917772,
    size: 4096,
    perms: 040777,
    owner: 0,
    group: 0,
    type: "unknown",
    writable: true,
    readable: true,
    executable: false,
    file: false,
    dir: false,
    link: false,
    linkTarget: "C:\Users\User\Documents\projects\myProject\nova-components\MyLocalPackage",
  }

if I input the "dir" command on cmd at path vendor\myVendor, I get this:

Directory of C:\Users\User\Documents\projects\myProject\vendor\myVendor

12/11/2024  11:11    <DIR>          .
12/11/2024  11:14    <DIR>          ..
12/11/2024  11:11    <JUNCTION>     MyLocalPackage [C:\Users\User\Documents\projects\myProject\nova-components\MyLocalPackage]

Thanks in advance.

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 this pull request may close these issues.

2 participants