sindresorhus/gulp-zip

Unzip doesn't work on macOS with links

Open

#79 opened on 2016年10月19日

GitHub で見る
 (4 comments) (1 reaction) (0 assignees)JavaScript (272 stars) (51 forks)user submission
bughelp wanted

説明

When I zip a soft link to a larger file (>1KB), unzip stop working (either using Archive Utility or unzip).

macOS version: 10.12 gulp-zip version: 3.2.0

Steps to reproduce

  1. Create a folder containing a larger file (>1KB) and a link to it.
  2. Zip all content using gulp-zip.
  3. Try to unzip.
$ unzip test.zip
Archive:  test.zip
  inflating: file
  inflating: link                    -> Lorem ipsum dolor sit amet, sed eu eius ornatus postulant, mea eu summo nostrud. Ei tation appellantur mel. Mea in eros probo atomorum. Congue suavitate vix ea, vel vocent option id. Vitae aliquando ne ius, ex sanctus splendide ius.^J^JConsulatu imperdiet consectetuer cu nec, per in tota aliquip adipiscing. Ex vide erat euismod his. Sea adhuc omnesque ad, sed etiam hendrerit incorrupte ne, sit graece voluptatum ei. Per in zril dolorem, his at quem suas necessitatibus.^J^JIus ei quodsi phaedrum pertinacia, eu vim porro civibus. Affert latine mel ea, sed eu adhuc fabulas corpora, omnes veniam eam ex. Ad pri petentium intellegebat, novum congue deleniti at usu, omnium disputationi ius ut. Mea cu legere impedit appellantur, nibh euripidis conceptam has at. His te choro adversarium philosophia, odio dicam in eos.^J^JVocibus deserunt ei duo, mel et euismod fuisset. Mel ponderum iudicabit id. His cu nisl graecis, numquam debitis efficiendi at mel. Ne phaedrum torquatos deseruisse nam, et qui ridens graecis accommodare, nulla labores ad usu. Quo eu vide assueverit instructior, ea pro postea equidem.^J
finishing deferred symbolic links:
  link                   -> Lorem ipsum dolor sit amet, sed eu eius ornatus postulant, mea eu summo nostrud. Ei tation appellantur mel. Mea in eros probo atomorum. Congue suavitate vix ea, vel vocent option id. Vitae aliquando ne ius, ex sanctus splendide ius.^J^JConsulatu imperdiet consectetuer cu nec, per in tota aliquip adipiscing. Ex vide erat euismod his. Sea adhuc omnesque ad, sed etiam hendrerit incorrupte ne, sit graece voluptatum ei. Per in zril dolorem, his at quem suas necessitatibus.^J^JIus ei quodsi phaedrum pertinacia, eu vim porro civibus. Affert latine mel ea, sed eu adhuc fabulas corpora, omnes veniam eam ex. Ad pri petentium intellegebat, novum congue deleniti at usu, omnium disputationi ius ut. Mea cu legere impedit appellantur, nibh euripidis conceptam has at. His te choro adversarium philosophia, odio dicam in eos.^J^JVocibus deserunt ei duo, mel et euismod fuisset. Mel ponderum iudicabit id. His cu nisl graecis, numquam debitis efficiendi at mel. Ne phaedrum torquatos deseruisse nam, et qui ridens graecis accommodare, nulla labores ad usu. Quo eu vide assueverit instructior, ea pro postea equidem.^J
symlink error: File name too long
lchmod (file attributes) error: No such file or directory

file is roughly 1KB file with generated Lorem ipsum link is a soft link to it (ln -s file link)

Slightly modified version of gulp-tar (only changed #L14 from var archive = archiver('tar'); to var archive = archiver('zip');) unzips fine however it doesn't preserve the link (the file and link are identical files after zip + unzip).

Original files:

$ ls -l src
total 16
-rw-r--r--+ 1 vasek  staff  1103 Oct 19 11:28 file
lrwxr-xr-x  1 vasek  staff     4 Oct 19 11:28 link -> file

After zip + unzip (using modified gulp-tar package)

ls -l dist
total 16
-rw-r--r--+ 1 vasek  staff  1103 Oct 19 09:28 file
-rwxr-xr-x+ 1 vasek  staff  1103 Oct 19 09:28 link

コントリビューターガイド