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
  
/usr/share/gocode/src/gopkg.in/DATA-DOG/go-sqlmock.v1/examples/blog/blog_test.go
 (golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/blog/blog_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/doc.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/doc.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/orders 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/orders 
(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/orders/orders.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/orders/orders.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/orders/orders_test.go
 (golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/examples/orders/orders_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/expectations.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/expectations.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/expectations_before_go18.go
 (golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/expectations_before_go18.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/expectations_go18.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/expectations_go18.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/expectations_go18_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/expectations_go18_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/expectations_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/expectations_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/result.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/result.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/result_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/result_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/rows.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/rows.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/rows_go18.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/rows_go18.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/rows_go18_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/rows_go18_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/rows_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/rows_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/sqlmock.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/sqlmock.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/sqlmock_go18.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/sqlmock_go18.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/sqlmock_go18_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/sqlmock_go18_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/sqlmock_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/sqlmock_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/statement.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/statement.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/statement_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/statement_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/stubs_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/stubs_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/util.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/util.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/util_test.go 
(golang-gopkg-data-dog-go-sqlmock.v1-dev) != 
/usr/share/gocode/src/github.com/DATA-DOG/go-sqlmock/util_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


cheers,

Andreas

Attachment: golang-gopkg-data-dog-go-sqlmock.v1-dev_1.3.0-1.log.gz
Description: application/gzip

Reply via email to