[Vm-dev] Symlinks in VM sources

Igor Stasenko siguctua at gmail.com
Wed Feb 22 13:32:15 UTC 2012


hi guys,

the symlinks causing annoying troubles on windows, since windows have
no support for them.
It is not something which we cannot fix or just ignore, but to my
opinion, in overall, putting symlinks into multi-platfrom project
tracked by source control system is bad idea.

Here the errors reported by tar (on windows) by unpacking sources,
which previously were dl-ed from scm and tar-ed on linux machine:

+ tar -xzf cog.tar.gz
tar: cog/macbuild/resources/OpenAL.framework/Resources: Cannot create
symlink to `Versions/Current/Resources': No such file or directory
tar: cog/macbuild/resources/OpenAL.framework/OpenAL: Cannot create
symlink to `Versions/Current/OpenAL': No such file or directory tar:
cog/macbuild/resources/OpenAL.framework/Headers: Cannot create symlink
to `Versions/Current/Headers': No such file or directory
tar: cog/macbuild/resources/OpenAL.framework/Versions/Current: Cannot
create symlink to `A': No such file or directory
tar: cog/nscogbuild/cygwinbuild/installer/onebuild: Cannot create
symlink to `/Users/eliot/Newspeak/closurevm/onebuild/': No such file
or directory

(the last one is fun because we know who to blame for it ;)

to my thinking, if to build things some parts cannot live without
symlinks, they should be created by makefiles, or by "configure"
script. But sources should be clean of symlinks,
because they turning a simple tree layout into a graph (often with
loops) making navigation horrifying and confusing many tools, even on
unix:

find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/Cog-Unix/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa'
is part of a loop in the directory hierarchy; we have already visited
the directory to which it points.
find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/Cog Git Tracker
(blessed)/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is
part of a loop in the directory hierarchy; we have already visited the
directory to which it points.
find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/StackVM-Unix/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa'
is part of a loop in the directory hierarchy; we have already visited
the directory to which it points.
find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/MooseOnMoose2/cache/MooseOnMoose2/MooseOnMoose2'
is part of a loop in the directory hierarchy; we have already visited
the directory to which it points.
find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/Nautilus Without
RPackage/cache/Nautilus Without RPackage/Nautilus Without RPackage' is
part of a loop in the directory hierarchy; we have already visited the
directory to which it points.
find: Symbolic link
`/builds/jenkins/workspace/Pinocchio/../../workspace/Cog Git Tracker
(cog-osx)/cog/unixbuild/third-party/alsa-lib-1.0.17a/include/alsa' is
part of a loop in the directory hierarchy; we have already visited the
directory to which it points.


-- 
Best regards,
Igor Stasenko.


More information about the Vm-dev mailing list