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

2019-03-18 Thread rajudev
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

2019-03-12 Thread Shengjing Zhu
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

2019-03-12 Thread rajudev


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

2019-03-09 Thread Shengjing Zhu
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

2019-03-09 Thread Andreas Beckmann
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