Package: golang
Version: 2:1-6
Severity: normal

Symlink /usr/lib/go/src confuses it.
There is already a bug in Go's issue tracker: 
http://code.google.com/p/go/issues/detail?id=1540 even with a patch. Ondřej 
promised to apply that patch a year ago but either forgot to do that or it's 
broken again.

So, I have another patch. I think, it's a little less intrusive. And more 
general either: with this patch godoc should support symlinks everywhere as if 
they are normal directories/files.

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'stable-updates'), (500, 'testing'), 
(500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages golang depends on:
ii  golang-doc  2:1-6
ii  golang-go   2:1-6
ii  golang-src  2:1-6

golang recommends no packages.

golang suggests no packages.

-- no debconf information
diff -r bad5895b4270 src/cmd/godoc/filesystem.go
--- a/src/cmd/godoc/filesystem.go	Sat Jan 21 21:31:21 2012 -0800
+++ b/src/cmd/godoc/filesystem.go	Thu Apr 19 14:27:33 2012 +0400
@@ -66,5 +66,20 @@
 }
 
 func (osFS) ReadDir(path string) ([]os.FileInfo, error) {
-	return ioutil.ReadDir(path) // is sorted
+	fis, err := ioutil.ReadDir(path) // is sorted
+	if err != nil {
+		return nil, err
+	}
+	// Replace symlinks with what they are pointing to
+	dirPrefix := path + "/"
+	for i, fi := range fis {
+		if fi.Mode() & os.ModeSymlink != 0 {
+			fi, err = os.Stat(dirPrefix + fi.Name())
+			if err != nil {
+				return nil, err
+			}
+		}
+		fis[i] = fi
+	}
+	return fis, nil
 }

Reply via email to