Coder Social home page Coder Social logo

Symlinks not preserved about rome HOT 17 CLOSED

tmspzz avatar tmspzz commented on July 23, 2024
Symlinks not preserved

from rome.

Comments (17)

tmspzz avatar tmspzz commented on July 23, 2024 1

Ok, small update:

  • I haven't forgot this.
  • this is an issue with the zip library
  • I'm trying to patch the zip library (you would not believe how messed up zip is)
  • if I don't succeed I will just used zip form the command line

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024 1

Thanks for the fix, I will try it out today and will let you know!

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024 1

@blender I tried v0.14.0.38 and can confirm that everything appears to be working correctly now.
I tried upload, download, and manual unzip extraction and symlinks were created correctly without permission issues. Thank you!

from rome.

tmspzz avatar tmspzz commented on July 23, 2024 1

Thank you for the patience! I'll make remove the draft tag from the release and update brew too.

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

Sounds like a bug. I'll try to fix it asap.

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

@chrispcampbell Please try pre-release https://github.com/blender/Rome/releases/tag/v0.14.0.36

I haven't tried to build but the contents of the archive seem to preserve symlinks

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

@chrispcampbell any feedback on this?

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024

@blender I tested with v0.14.0.36. The good news is that it appears to partially preserve symlinks when doing a rome upload to the local Rome cache. Like, after a rome upload I can unzip a zip file (in Finder) in the Rome cache and see that the unzipped contents contain symlinks. So, that's a start.

However, when I clear out my Carthage/Build directory and then do a rome download for that framework, it gives an error. First, this is what it looks like as built by Carthage:

% % ls -lR Carthage/Build/Mac/CocoaLumberjack.framework
total 32
lrwxr-xr-x  1 campbell  staff   32 Jan 16 17:03 CocoaLumberjack -> Versions/Current/CocoaLumberjack
lrwxr-xr-x  1 campbell  staff   24 Jan 16 17:03 Headers -> Versions/Current/Headers
lrwxr-xr-x  1 campbell  staff   24 Jan 16 17:03 Modules -> Versions/Current/Modules
lrwxr-xr-x  1 campbell  staff   26 Jan 16 17:03 Resources -> Versions/Current/Resources
drwxr-xr-x  4 campbell  staff  136 Jan 16 17:03 Versions

Carthage/Build/Mac/CocoaLumberjack.framework/Versions:
total 8
drwxr-xr-x  6 campbell  staff  204 Jan 16 17:03 A
lrwxr-xr-x  1 campbell  staff    1 Jan 16 17:03 Current -> A

Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A:
total 504
-rwxr-xr-x   1 campbell  staff  255500 Jan 16 17:03 CocoaLumberjack
drwxr-xr-x  18 campbell  staff     612 Jan 16 17:03 Headers
drwxr-xr-x   3 campbell  staff     102 Jan 16 17:03 Modules
drwxr-xr-x   3 campbell  staff     102 Jan 16 17:03 Resources

Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers:
total 248
<stuff>

Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Modules:
total 8
-rw-r--r--  1 campbell  staff  679 Jan 16 17:03 module.modulemap

Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Resources:
total 8
-rw-r--r--  1 campbell  staff  1249 Jan 16 17:03 Info.plist

Then, testing the upload to an empty Rome cache:

% ls -la ~/Library/Caches/Rome
ls: /Users/campbell/Library/Caches/Rome: No such file or directory

% ~/Downloads/rome --version
0.14.0.36 - Romam uno die non fuisse conditam.

% ~/Downloads/rome upload CocoaLumberjack
Copied CocoaLumberjack.framework to: /Users/campbell/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjack.framework-3.3.0.zip
Copied CocoaLumberjack.dSYM to: /Users/campbell/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjack.framework.dSYM-3.3.0.zip
Copied CocoaLumberjackSwift.framework to: /Users/campbell/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjackSwift.framework-3.3.0.zip
Copied CocoaLumberjackSwift.dSYM to: /Users/campbell/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjackSwift.framework.dSYM-3.3.0.zip
Copied .CocoaLumberjack.version to: /Users/campbell/Library/Caches/Rome/CocoaLumberjack/.CocoaLumberjack.version-3.3.0

Next, I moved the Carthage/Build directory aside and attempted a rome download, which gives the error:

% mv Carthage/Build Carthage/Build-Old

% ~/Downloads/rome download CocoaLumberjack
Found CocoaLumberjack in local cache at: /Users/campbell/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjack.framework-3.3.0.zip
rome: CRC32Mismatch "Carthage/Build/Mac/CocoaLumberjack.framework/CocoaLumberjack"

It's worth noting that I see similar CRC-related messages when I try to unzip the thing from the command line:

% unzip ~/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjack.framework-3.3.0.zip -d /tmp/rometest
Archive:  /Users/campbell/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjack.framework-3.3.0.zip
   creating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/
    linking: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/CocoaLumberjack  -> Versions/Current/CocoaLumberjack  bad CRC 0933b4ab  (should be 29929617)
    linking: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Headers  -> Versions/Current/Headers  bad CRC 8ead94f3  (should be 00000000)
    linking: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Modules  -> Versions/Current/Modules  bad CRC 571998a1  (should be 00000000)
    linking: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Resources  -> Versions/Current/Resources  bad CRC 8702472c  (should be 00000000)
   creating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/
   creating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/
  inflating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/CocoaLumberjack  
   creating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers/
  inflating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers/CLIColor.h  
  inflating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers/CocoaLumberjack.h  
<more headers...>
   creating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Modules/
  inflating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Modules/module.modulemap  
   creating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Resources/
  inflating: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Resources/Info.plist  
    linking: /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/Current  -> A  bad CRC d3d99e8b  (should be 00000000)
finishing deferred symbolic links:
  /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/CocoaLumberjack -> Versions/Current/CocoaLumberjack
  /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Headers -> Versions/Current/Headers
  /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Modules -> Versions/Current/Modules
  /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Resources -> Versions/Current/Resources
  /tmp/rometest/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/Current -> A

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

I think I know why. Thanks for testing. Back on it.

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

@chrispcampbell

please try https://github.com/blender/Rome/releases/tag/v0.14.0.37 I have fixed CRC32 errros and I see no issue with the upload/download flow. Command line unzipping is clean too.

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024

@blender I just tried v0.14.0.37 and can confirm that the CRC32 errors are fixed. Thanks again for the fixes! Actually I might have been using the wrong binary; still seeing some issues. Will add another comment once I can confirm.

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024

@blender I just tried again and can confirm that rome upload does seem to preserve the symlinks (unzipping the zip file from the Rome cache shows correct symlinks with no CRC errors), but now the rome download step is back to not creating the symlinks when the thing gets unzipped into Carthage/Build. Any ideas?

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024

@blender Here's the output of the unzip (for a cached zip file that was created with v0.14.0.37):

% unzip ~/Library/Caches/Rome/CocoaLumberjack/Mac/CocoaLumberjack.framework-3.3.0.zip -d /tmp/rometest4
Archive:  /Users/campbell/Library/Caches/Rome/Pup/CocoaLumberjack/Mac/CocoaLumberjack.framework-3.3.0.zip
   creating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/
    linking: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/CocoaLumberjack  -> Versions/Current/CocoaLumberjack 
    linking: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Headers  -> Versions/Current/Headers 
    linking: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Modules  -> Versions/Current/Modules 
    linking: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Resources  -> Versions/Current/Resources 
   creating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/
   creating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/
  inflating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/CocoaLumberjack  
   creating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers/
  inflating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers/CLIColor.h  
<more headers...>
   creating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Modules/
  inflating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Modules/module.modulemap  
   creating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Resources/
  inflating: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Resources/Info.plist  
    linking: /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/Current  -> A 
finishing deferred symbolic links:
  /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/CocoaLumberjack -> Versions/Current/CocoaLumberjack
  /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Headers -> Versions/Current/Headers
  /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Modules -> Versions/Current/Modules
  /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Resources -> Versions/Current/Resources
  /tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/Current -> A

And a listing of the unzipped content:

% ls -lR /tmp/rometest4
total 0
drwxr-xr-x  3 campbell  wheel  102 Jan 17 09:49 Carthage

/tmp/rometest4/Carthage:
total 0
drwxr-xr-x  3 campbell  wheel  102 Jan 17 09:49 Build

/tmp/rometest4/Carthage/Build:
total 0
drwxr-xr-x  3 campbell  wheel  102 Jan 17 09:49 Mac

/tmp/rometest4/Carthage/Build/Mac:
total 0
drwxr-xr-x  7 campbell  wheel  238 Jan 17  2018 CocoaLumberjack.framework

/tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework:
total 32

ls: CocoaLumberjack.framework/CocoaLumberjack: Permission denied
l---------  1 campbell  wheel   32 Jan 17 09:49 CocoaLumberjack

ls: CocoaLumberjack.framework/Headers: Permission denied
l---------  1 campbell  wheel   24 Jan 17 09:49 Headers

ls: CocoaLumberjack.framework/Modules: Permission denied
l---------  1 campbell  wheel   24 Jan 17 09:49 Modules

ls: CocoaLumberjack.framework/Resources: Permission denied
l---------  1 campbell  wheel   26 Jan 17 09:49 Resources
drwxr-xr-x  4 campbell  wheel  136 Jan 17  2018 Versions

/tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions:
total 8
drwxr-xr-x  6 campbell  wheel  204 Jan 17  2018 A

ls: Versions/Current: Permission denied
l---------  1 campbell  wheel    1 Jan 17 09:49 Current

/tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A:
total 504
-rwxr-xr-x   1 campbell  wheel  255500 Jan 17  2018 CocoaLumberjack
drwxr-xr-x  18 campbell  wheel     612 Jan 17  2018 Headers
drwxr-xr-x   3 campbell  wheel     102 Jan 17  2018 Modules
drwxr-xr-x   3 campbell  wheel     102 Jan 17  2018 Resources

/tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Headers:
total 248
-rw-r--r--  1 campbell  wheel   1609 Jan 17  2018 CLIColor.h
<more headers...>

/tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Modules:
total 8
-rw-r--r--  1 campbell  wheel  679 Jan 17  2018 module.modulemap

/tmp/rometest4/Carthage/Build/Mac/CocoaLumberjack.framework/Versions/A/Resources:
total 8
-rw-r--r--  1 campbell  wheel  1249 Jan 17  2018 Info.plist

Looks like it could be a permissions issue?

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

Strange. I'll investigate.

from rome.

chrispcampbell avatar chrispcampbell commented on July 23, 2024

@blender Have you had a chance to look into the permissions issue?

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

from rome.

tmspzz avatar tmspzz commented on July 23, 2024

@chrispcampbell here you go https://github.com/blender/Rome/releases/tag/v0.14.0.38

I have tested:

  • upload, extraction via unzip and have seen no issue from CLI
  • download, permission and symlinks are preserved

Let me know if it works for you as well and I will make a full release

from rome.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.