[MacPorts] #44110: coreutils @8.22_0 - ln fails to create symbolic links if source and target differ in character case only (and creates hidden hardlinks instead)
MacPorts
noreply at macports.org
Sun Jun 22 06:36:50 PDT 2014
#44110: coreutils @8.22_0 - ln fails to create symbolic links if source and target
differ in character case only (and creates hidden hardlinks instead)
-------------------------+--------------------------------
Reporter: scubi@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.3.0
Keywords: ln, symlink | Port: coreutils
-------------------------+--------------------------------
`/opt/local/libexec/gnubin/ln` fails to create a symbolic link if the name
of the target and the directory differ only in character case. In that
case a symbolic link is created below the source directory and you end up
with a **hidden** hardlink if the newly created symlink is deleted!
The behavior can be reproduced by following these steps:
* create a directory `Foo` and try to create a symbolic link to that
directory called `foo`
* delete the wrongly placed symlink `Foo/foo`
* list the directory `Foo` was created in
* list the content of `Foo` as well as `foo` !!!!!!!!
* list the inodes of `Foo` and the **hidden** `foo`
{{{
indigo:gnu-ln-test scubi$ ls -al
insgesamt 0
drwxr-xr-x 2 scubi staff 68 22. Jun 15:07 .
drwxr-xr-x+ 36 scubi staff 1224 22. Jun 14:51 ..
indigo:gnu-ln-test scubi$ mkdir Foo
indigo:gnu-ln-test scubi$ ls -al
insgesamt 0
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 .
drwxr-xr-x+ 36 scubi staff 1224 22. Jun 14:51 ..
drwxr-xr-x 2 scubi staff 68 22. Jun 15:12 Foo
indigo:gnu-ln-test scubi$ ln -s Foo/ foo
indigo:gnu-ln-test scubi$ ls -al
insgesamt 0
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 .
drwxr-xr-x+ 36 scubi staff 1224 22. Jun 14:51 ..
drwxr-xr-x 3 scubi staff 102 22. Jun 15:13 Foo
indigo:gnu-ln-test scubi$ ls -al Foo/
insgesamt 4
drwxr-xr-x 3 scubi staff 102 22. Jun 15:13 .
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 ..
lrwxr-xr-x 1 scubi staff 4 22. Jun 15:13 Foo -> Foo/
indigo:gnu-ln-test scubi$ rm Foo/Foo
indigo:gnu-ln-test scubi$ ls -al Foo/
insgesamt 0
drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 .
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 ..
indigo:gnu-ln-test scubi$ ls -al
insgesamt 0
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 .
drwxr-xr-x+ 36 scubi staff 1224 22. Jun 14:51 ..
drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 Foo
indigo:gnu-ln-test scubi$ ls -al Foo foo
Foo:
insgesamt 0
drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 .
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 ..
foo:
insgesamt 0
drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 .
drwxr-xr-x 3 scubi staff 102 22. Jun 15:12 ..
indigo:gnu-ln-test scubi$ ls -ldi Foo/ foo
2028539 drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 Foo/
2028539 drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 foo
indigo:gnu-ln-test scubi$
}}}
Due to the fact that this sounds unbelievable - I also attached a
screenshot :)
BTW: creating the symlink with a different name works as expected:
{{{
indigo:gnu-ln-test scubi$ ln -s Foo/ boo
indigo:gnu-ln-test scubi$ ls -al
insgesamt 4
drwxr-xr-x 4 scubi staff 136 22. Jun 15:25 .
drwxr-xr-x+ 36 scubi staff 1224 22. Jun 14:51 ..
drwxr-xr-x 2 scubi staff 68 22. Jun 15:13 Foo
lrwxr-xr-x 1 scubi staff 4 22. Jun 15:25 boo -> Foo/
indigo:gnu-ln-test scubi$
}}}
--
Ticket URL: <https://trac.macports.org/ticket/44110>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list