www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/01/16/21:49:18

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_YG
X-Spam-Check-By: sourceware.org
From: Barry Kelly <bkelly DOT ie AT gmail DOT com>
To: Pierce Morton <pierce DOT c DOT morton AT gmail DOT com>
Cc: cygwin AT cygwin DOT com
Subject: Re: cygpath unable to translate the *nix path to an NTFS junction point
Date: Mon, 17 Jan 2011 02:48:54 +0000
Message-ID: <1ra7j6h9scktvnlpdceejo3i3q4k4f5c3c@4ax.com>
References: <AANLkTik5e=pvzaqW+Rxq33NQu1AyaAq3uLmZD3Cb8s5N AT mail DOT gmail DOT com>
In-Reply-To: <AANLkTik5e=pvzaqW+Rxq33NQu1AyaAq3uLmZD3Cb8s5N@mail.gmail.com>
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

----=_mgb7j6t55jlalaap8r1vefu9ddtnlmfptj.MFSBCHJLHS
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Pierce Morton wrote:

> I've recently installed cygwin using the web installer, and have found
> an error in the way that cygpath translates junction point paths from
> *nix to Windows paths when dealing with a junction point.

The issue is that Cygwin treats reparse points as symlinks. IMO, the
more normal uses of junctions in the Windows ecosystem is not very close
to the usage of POSIX symlinks, so this behaviour is undesirable.

For example, on my main workstation, I have an SSD primary drive for
booting and critical applications, and a larger mechanical drive for
bulk storage. To make this combination work well, I use junctions
extensively in order to allocate subtrees of the C: drive (an SSD) on
the mechanical drive. Since many Windows application installers don't
give a choice of installation directory, and even when they do they
frequently carve off large chunks of C: for shared files and other
purposes, junctions really are the easiest way of doing it. I frequently
post-process installation trees by choosing large directories to hive
off to bulk storage, and even have a script to automate the procedure.

Unfortunately, this extensive use doesn't work well with Cygwin treating
those junctions as symlinks. Things like 'cp * ../other-dir' will break
if the current directory is a junction; and 'cygstart .' will open up
the directory in Explorer, except in the wrong tree.

So I wrote this modification to cygwin-1.7.7-1 which adds a new option
to the CYGWIN environment variable, "junctionlinks", which defaults to
true (the current behaviour). By adding "nojunctionlinks" to CYGWIN,
treating junctions as symlinks is disabled.

-- Barry

--=20
http://blog.barrkel.com/

----=_mgb7j6t55jlalaap8r1vefu9ddtnlmfptj.MFSBCHJLHS
Content-Type: application/octet-stream; name=cygwin-1.7.7-1_junctionlinks_opt.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=cygwin-1.7.7-1_junctionlinks_opt.patch

ZGlmZiAtcnUgY3lnd2luLTEuNy43LTEvd2luc3VwL2N5Z3dpbi9lbnZpcm9u
LmNjIGN5Z3dpbi0xLjcuNy0xX2Jqay93aW5zdXAvY3lnd2luL2Vudmlyb24u
Y2MKLS0tIGN5Z3dpbi0xLjcuNy0xL3dpbnN1cC9jeWd3aW4vZW52aXJvbi5j
YwkyMDEwLTA4LTE2IDE0OjU1OjA3LjAwMDAwMDAwMCArMDEwMAorKysgY3ln
d2luLTEuNy43LTFfYmprL3dpbnN1cC9jeWd3aW4vZW52aXJvbi5jYwkyMDEx
LTAxLTE3IDAyOjIwOjE1LjEzNjMzMTYwMCArMDAwMApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIm50ZGxsLmgiCiAKIGV4dGVybiBib29sIGRvc19m
aWxlX3dhcm5pbmc7CitleHRlcm4gYm9vbCByZWNvZ25pemVfanVuY3Rpb25z
OwogZXh0ZXJuIGJvb2wgaWdub3JlX2Nhc2Vfd2l0aF9nbG9iOwogZXh0ZXJu
IGJvb2wgYWxsb3dfd2luc3ltbGlua3M7CiBib29sIHJlc2V0X2NvbSA9IGZh
bHNlOwpAQCAtNTk4LDYgKzU5OSw3IEBACiAgIHsiZXhwb3J0IiwgeyZleHBv
cnRfc2V0dGluZ3N9LCBqdXN0c2V0LCBOVUxMLCB7e2ZhbHNlfSwge3RydWV9
fX0sCiAgIHsiZm9ya2NodW5rIiwge2Z1bmM6IHNldF9jaHVua3NpemV9LCBp
c2Z1bmMsIE5VTEwsIHt7MH0sIHswfX19LAogICB7Imdsb2IiLCB7ZnVuYzog
Jmdsb2JfaW5pdH0sIGlzZnVuYywgTlVMTCwge3swfSwge3M6ICJub3JtYWwi
fX19LAorICB7Imp1bmN0aW9ubGlua3MiLCB7JnJlY29nbml6ZV9qdW5jdGlv
bnN9LCBqdXN0c2V0LCBOVUxMLCB7e2ZhbHNlfSwge3RydWV9fX0sCiAgIHsi
cHJvY19yZXRyeSIsIHtmdW5jOiBzZXRfcHJvY19yZXRyeX0sIGlzZnVuYywg
TlVMTCwge3swfSwgezV9fX0sCiAgIHsicmVzZXRfY29tIiwgeyZyZXNldF9j
b219LCBqdXN0c2V0LCBOVUxMLCB7e2ZhbHNlfSwge3RydWV9fX0sCiAgIHsi
c3RyaXBfdGl0bGUiLCB7JnN0cmlwX3RpdGxlX3BhdGh9LCBqdXN0c2V0LCBO
VUxMLCB7e2ZhbHNlfSwge3RydWV9fX0sCmRpZmYgLXJ1IGN5Z3dpbi0xLjcu
Ny0xL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfZGlza19maWxlLmNjIGN5Z3dp
bi0xLjcuNy0xX2Jqay93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX2Rpc2tfZmls
ZS5jYwotLS0gY3lnd2luLTEuNy43LTEvd2luc3VwL2N5Z3dpbi9maGFuZGxl
cl9kaXNrX2ZpbGUuY2MJMjAxMC0wOC0yMyAxNzoyMDo0My4wMDAwMDAwMDAg
KzAxMDAKKysrIGN5Z3dpbi0xLjcuNy0xX2Jqay93aW5zdXAvY3lnd2luL2Zo
YW5kbGVyX2Rpc2tfZmlsZS5jYwkyMDExLTAxLTE3IDAyOjIyOjA5Ljg3ODg5
NDUwMCArMDAwMApAQCAtMzAsNiArMzAsOCBAQAogI2RlZmluZSBfQ09NUElM
SU5HX05FV0xJQgogI2luY2x1ZGUgPGRpcmVudC5oPgogCitleHRlcm4gYm9v
bCByZWNvZ25pemVfanVuY3Rpb25zOworCiBjbGFzcyBfX0RJUl9tb3VudHMK
IHsKICAgaW50CQkgY291bnQ7CkBAIC0xNjEsNiArMTYzLDkgQEAKICAgSEFO
RExFIHJlcGg7CiAgIFVOSUNPREVfU1RSSU5HIHN1YnN0OwogCisgIGlmICgh
cmVjb2duaXplX2p1bmN0aW9ucykKKyAgICByZXR1cm4gRFRfRElSOworICAK
ICAgaWYgKE5UX1NVQ0NFU1MgKE50T3BlbkZpbGUgKCZyZXBoLCBSRUFEX0NP
TlRST0wsIGF0dHIsICZpbywKIAkJCSAgICAgIEZJTEVfU0hBUkVfVkFMSURf
RkxBR1MsCiAJCQkgICAgICBGSUxFX09QRU5fRk9SX0JBQ0tVUF9JTlRFTlQK
ZGlmZiAtcnUgY3lnd2luLTEuNy43LTEvd2luc3VwL2N5Z3dpbi9wYXRoLmNj
IGN5Z3dpbi0xLjcuNy0xX2Jqay93aW5zdXAvY3lnd2luL3BhdGguY2MKLS0t
IGN5Z3dpbi0xLjcuNy0xL3dpbnN1cC9jeWd3aW4vcGF0aC5jYwkyMDEwLTA4
LTMwIDE2OjA4OjE4LjAwMDAwMDAwMCArMDEwMAorKysgY3lnd2luLTEuNy43
LTFfYmprL3dpbnN1cC9jeWd3aW4vcGF0aC5jYwkyMDExLTAxLTE3IDAyOjIx
OjM0LjU0Mjg3MzQwMCArMDAwMApAQCAtNzQsNiArNzQsNyBAQAogI2luY2x1
ZGUgPHdjdHlwZS5oPgogCiBib29sIGRvc19maWxlX3dhcm5pbmcgPSB0cnVl
OworYm9vbCByZWNvZ25pemVfanVuY3Rpb25zID0gdHJ1ZTsKIAogc3VmZml4
X2luZm8gc3RhdF9zdWZmaXhlc1tdID0KIHsKQEAgLTE4NjksMjMgKzE4NzAs
NDMgQEAKICAgICAgIHJldHVybiAwOwogICAgIH0KICAgaWYgKHJwLT5SZXBh
cnNlVGFnID09IElPX1JFUEFSU0VfVEFHX1NZTUxJTkspCi0gICAgUnRsSW5p
dENvdW50ZWRVbmljb2RlU3RyaW5nICgmc3Vic3QsCisgICAgeworICAgICAg
aWYgKCFyZWNvZ25pemVfanVuY3Rpb25zKQorICAgICAgICB7CisgICAgICAg
ICAgLyogUHJldGVuZCB3ZSBkb24ndCBrbm93IHdoYXQgYSBqdW5jdGlvbiBp
cywganVzdCBsaWtlIHRoZSAKKyAgICAgICAgICAgICB1bnJlY29nbml6ZSBj
YXNlLiAqLworICAgICAgICAgIGZpbGVhdHRyICY9IH5GSUxFX0FUVFJJQlVU
RV9SRVBBUlNFX1BPSU5UOworICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICB9CisgICAgICBlbHNlCisgICAgICAgIFJ0bEluaXRDb3VudGVkVW5pY29k
ZVN0cmluZyAoJnN1YnN0LAogCQkgIChXQ0hBUiAqKSgoY2hhciAqKXJwLT5T
eW1ib2xpY0xpbmtSZXBhcnNlQnVmZmVyLlBhdGhCdWZmZXIKIAkJCSsgcnAt
PlN5bWJvbGljTGlua1JlcGFyc2VCdWZmZXIuU3Vic3RpdHV0ZU5hbWVPZmZz
ZXQpLAogCQkgIHJwLT5TeW1ib2xpY0xpbmtSZXBhcnNlQnVmZmVyLlN1YnN0
aXR1dGVOYW1lTGVuZ3RoKTsKKyAgICB9CiAgIGVsc2UgaWYgKHJwLT5SZXBh
cnNlVGFnID09IElPX1JFUEFSU0VfVEFHX01PVU5UX1BPSU5UKQogICAgIHsK
LSAgICAgIFJ0bEluaXRDb3VudGVkVW5pY29kZVN0cmluZyAoJnN1YnN0LCAK
KyAgICAgIGlmICghcmVjb2duaXplX2p1bmN0aW9ucykgCisgICAgICAgIHsK
KyAgICAgICAgICAvKiBQcmV0ZW5kIHdlIGRvbid0IGtub3cgd2hhdCBhIGp1
bmN0aW9uIGlzLCBqdXN0IGxpa2UgdGhlIAorICAgICAgICAgICAgIHVucmVj
b2duaXplIGNhc2UuICovCisgICAgICAgICAgZmlsZWF0dHIgJj0gfkZJTEVf
QVRUUklCVVRFX1JFUEFSU0VfUE9JTlQ7CisgICAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAg
IFJ0bEluaXRDb3VudGVkVW5pY29kZVN0cmluZyAoJnN1YnN0LCAKIAkJICAo
V0NIQVIgKikoKGNoYXIgKilycC0+TW91bnRQb2ludFJlcGFyc2VCdWZmZXIu
UGF0aEJ1ZmZlcgogCQkJICArIHJwLT5Nb3VudFBvaW50UmVwYXJzZUJ1ZmZl
ci5TdWJzdGl0dXRlTmFtZU9mZnNldCksCiAJCSAgcnAtPk1vdW50UG9pbnRS
ZXBhcnNlQnVmZmVyLlN1YnN0aXR1dGVOYW1lTGVuZ3RoKTsKLSAgICAgIGlm
IChSdGxFcXVhbFVuaWNvZGVQYXRoUHJlZml4ICgmc3Vic3QsICZyb191X3Zv
bHVtZSwgVFJVRSkpCi0JewotCSAgLyogVm9sdW1lIG1vdW50IHBvaW50LiAg
Tm90IHRyZWF0ZWQgYXMgc3ltbGluay4gVGhlIHJldHVybgotCSAgICAgdmFs
dWUgb2YgLTEgaXMgYSBoaW50IGZvciB0aGUgY2FsbGVyIHRvIHRyZWF0IHRo
aXMgYXMgYQotCSAgICAgdm9sdW1lIG1vdW50IHBvaW50LiAqLwotCSAgcmV0
dXJuIC0xOwotCX0KKyAgICAgICAgICBpZiAoUnRsRXF1YWxVbmljb2RlUGF0
aFByZWZpeCAoJnN1YnN0LCAmcm9fdV92b2x1bWUsIFRSVUUpKQorICAgICAg
ICAgICAgeworCSAgICAgIC8qIFZvbHVtZSBtb3VudCBwb2ludC4gIE5vdCB0
cmVhdGVkIGFzIHN5bWxpbmsuIFRoZSByZXR1cm4KKwkgICAgICAgICB2YWx1
ZSBvZiAtMSBpcyBhIGhpbnQgZm9yIHRoZSBjYWxsZXIgdG8gdHJlYXQgdGhp
cyBhcyBhCisJICAgICAgICAgdm9sdW1lIG1vdW50IHBvaW50LiAqLworCSAg
ICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAg
IH0KICAgZWxzZQogICAgIHsK


----=_mgb7j6t55jlalaap8r1vefu9ddtnlmfptj.MFSBCHJLHS
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
----=_mgb7j6t55jlalaap8r1vefu9ddtnlmfptj.MFSBCHJLHS--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019