Bug#924115: golang-gopkg-data-dog-go-sqlmock.v1-dev: directory vs. symlink conflict: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1
Reply In Between Shengjing Zhu writes: > On Tue, Mar 12, 2019 at 11:25 PM rajudev wrote: >> >> >> Shengjing Zhu writes: >> >> > Hi Raju, >> >> Ni Hao :) >> > >> > This package seems problematic in other perspective, >> Indeed it is confusing. >> > >> > golang-github-data-dog-go-sqlmock-dev is already in archive, and can >> > be imported as gopkg.in/DATA-DOG/go-sqlmock.v1 or >> > github.com/DATA-DOG/go-sqlmock. >> > >> > So this package is duplicated. >> >> I think no. >> >> > >> > gopkg.in/DATA-DOG/go-sqlmock.v1 is not in >> > src:golang-github-data-dog-go-sqlmock's Go-Import-Path field, this >> > should be fixed in golang-github-data-dog-go-sqlmock. I think that's >> > why you were not aware, and upload a new one. >> I did looked at the other package and I was aware. >> >> then I looked at https://gopkg.in/DATA-DOG/go-sqlmock.v1 >> >> The upstream maintains three different versions of the same package. >> And authors of other golang packages use different versions in there code. > > the current version > + golang-gopkg-data-dog-go-sqlmock.v1-dev is 1.3.0-1 > + golang-github-data-dog-go-sqlmock-dev is 1.3.0-1 > > They are the same version, and same code. So it's duplicated. > > And as I said before, golang-github-data-dog-go-sqlmock-dev can be > used for package which imports gopkg.in/DATA-DOG/go-sqlmock.v1. > Please just think why it installs a symlink named > /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1. > And take prometheus-mysqld-exporter package as example, it imports > gopkg.in/DATA-DOG/go-sqlmock.v1 and build fine with > golang-github-data-dog-go-sqlmock-dev. > >> >> The efforts behind this package were made as it is a dependency for >> micro text editor, which is now in upload queue. >> >> https://ftp-master.debian.org/new/micro_1.4.1-1.html >> > > I don't see golang-gopkg-data-dog-go-sqlmock.v1-dev is in micro's > Build-Depends. Initially I got this package done as it was shown as a estimated dependency of go-colorful[1], which is a dependency of multiple packages including micro. [1] https://salsa.debian.org/libregeekingkid-guest/micro/wikis/Dependency-Tree-of-Micro so I packaged it as required. I have now checked that go-colorful builds fine with golang-github-data-dog-go-sqlmock-dev as you suggested. Hence now I agree that golang-github-data-dog-go-sqlmock.v1 should be removed instead. Thanks for pointing this out. I'll file the removal bug. > > >> >> > >> > I think file a RM request for ftp-master is the solution here. >> >> If we file an RM request for this one, it will break micro. >> >> I am open to any suggestions, or comments on the situation. >> >> - >> rajudev
Bug#924115: golang-gopkg-data-dog-go-sqlmock.v1-dev: directory vs. symlink conflict: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1
On Tue, Mar 12, 2019 at 11:25 PM rajudev wrote: > > > Shengjing Zhu writes: > > > Hi Raju, > > Ni Hao :) > > > > This package seems problematic in other perspective, > Indeed it is confusing. > > > > golang-github-data-dog-go-sqlmock-dev is already in archive, and can > > be imported as gopkg.in/DATA-DOG/go-sqlmock.v1 or > > github.com/DATA-DOG/go-sqlmock. > > > > So this package is duplicated. > > I think no. > > > > > gopkg.in/DATA-DOG/go-sqlmock.v1 is not in > > src:golang-github-data-dog-go-sqlmock's Go-Import-Path field, this > > should be fixed in golang-github-data-dog-go-sqlmock. I think that's > > why you were not aware, and upload a new one. > I did looked at the other package and I was aware. > > then I looked at https://gopkg.in/DATA-DOG/go-sqlmock.v1 > > The upstream maintains three different versions of the same package. > And authors of other golang packages use different versions in there code. the current version + golang-gopkg-data-dog-go-sqlmock.v1-dev is 1.3.0-1 + golang-github-data-dog-go-sqlmock-dev is 1.3.0-1 They are the same version, and same code. So it's duplicated. And as I said before, golang-github-data-dog-go-sqlmock-dev can be used for package which imports gopkg.in/DATA-DOG/go-sqlmock.v1. Please just think why it installs a symlink named /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1. And take prometheus-mysqld-exporter package as example, it imports gopkg.in/DATA-DOG/go-sqlmock.v1 and build fine with golang-github-data-dog-go-sqlmock-dev. > > The efforts behind this package were made as it is a dependency for > micro text editor, which is now in upload queue. > > https://ftp-master.debian.org/new/micro_1.4.1-1.html > I don't see golang-gopkg-data-dog-go-sqlmock.v1-dev is in micro's Build-Depends. > > > > > I think file a RM request for ftp-master is the solution here. > > If we file an RM request for this one, it will break micro. > > I am open to any suggestions, or comments on the situation. > > - > rajudev -- Shengjing Zhu
Bug#924115: golang-gopkg-data-dog-go-sqlmock.v1-dev: directory vs. symlink conflict: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1
Shengjing Zhu writes: > Hi Raju, Ni Hao :) > > This package seems problematic in other perspective, Indeed it is confusing. > > golang-github-data-dog-go-sqlmock-dev is already in archive, and can > be imported as gopkg.in/DATA-DOG/go-sqlmock.v1 or > github.com/DATA-DOG/go-sqlmock. > > So this package is duplicated. I think no. > > gopkg.in/DATA-DOG/go-sqlmock.v1 is not in > src:golang-github-data-dog-go-sqlmock's Go-Import-Path field, this > should be fixed in golang-github-data-dog-go-sqlmock. I think that's > why you were not aware, and upload a new one. I did looked at the other package and I was aware. then I looked at https://gopkg.in/DATA-DOG/go-sqlmock.v1 The upstream maintains three different versions of the same package. And authors of other golang packages use different versions in there code. The efforts behind this package were made as it is a dependency for micro text editor, which is now in upload queue. https://ftp-master.debian.org/new/micro_1.4.1-1.html > > I think file a RM request for ftp-master is the solution here. If we file an RM request for this one, it will break micro. I am open to any suggestions, or comments on the situation. - rajudev
Bug#924115: golang-gopkg-data-dog-go-sqlmock.v1-dev: directory vs. symlink conflict: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1
Hi Raju, This package seems problematic in other perspective, golang-github-data-dog-go-sqlmock-dev is already in archive, and can be imported as gopkg.in/DATA-DOG/go-sqlmock.v1 or github.com/DATA-DOG/go-sqlmock. So this package is duplicated. gopkg.in/DATA-DOG/go-sqlmock.v1 is not in src:golang-github-data-dog-go-sqlmock's Go-Import-Path field, this should be fixed in golang-github-data-dog-go-sqlmock. I think that's why you were not aware, and upload a new one. I think file a RM request for ftp-master is the solution here. -- Shengjing Zhu
Bug#924115: golang-gopkg-data-dog-go-sqlmock.v1-dev: directory vs. symlink conflict: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1
Package: golang-gopkg-data-dog-go-sqlmock.v1-dev Version: 1.3.0-1 Severity: serious User: debian...@lists.debian.org Usertags: piuparts Hi, during a test with piuparts I noticed your package installs files over an existing symlink shipped or created by another package. Your package ships: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/* but package golang-github-data-dog-go-sqlmock-dev ships: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock Installing something over existing symlinks is considered bad practice. See e.g. https://lists.debian.org/87ehlevcrf@windlord.stanford.edu It may break in subtle ways and dpkg cannot detect this as a problem. * Your package might silently overwrite files installed at the symlink destination by other packages. * If the package shipping the symlink decides to make the link point somewhere else (or turn it into a real directory), the files owned by your package "will be lost" somewhere in the filesystem. * Depending on installation order the problematic path will be created either as a symlink or a directory: the package installed first will "win" and all others have "lost". Note that dpkg intentionally does not replace directories with symlinks and vice versa, see in particular the end of point 4 in https://www.debian.org/doc/debian-policy/ch-maintainerscripts.html#details-of-unpack-phase-of-installation-or-upgrade (Note: Adding Pre-Depends is *not* a solution.) Please move the files shipped in your package to the "real" location. >From the attached log (scroll to the bottom...): 0m16.8s ERROR: FAIL: silently overwrites files via directory symlinks: /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/argument.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/argument.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/argument_test.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/argument_test.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/driver.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/driver.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/driver_test.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/driver_test.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples/basic (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/basic (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples/basic/basic.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/basic/basic.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples/basic/basic_test.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/basic/basic_test.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples/blog (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/blog (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples/blog/blog.go (golang-gopkg-data-dog-go-sqlmock.v1-dev) != /usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/blog/blog.go (golang-github-data-dog-go-sqlmock-dev) /usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1 -> ../../github.com/DATA-DOG/go-sqlmock