[pkg-go] dh-golang and _link_contents()

Michael Stapelberg stapelberg at debian.org
Thu May 14 18:16:33 UTC 2015


dh_golang assumes that your source package consists of precisely one Go
package, not multiple.

Why are you having multiple libraries in the same source package?

On Thu, May 14, 2015 at 7:33 PM, Chas Williams III <
Charles.Williams at brocade.com> wrote:

> OK, I have another odd little problem.  If I have multiple packages in
> the source tree:
>
>         $ ls -R src
>         src:
>         myutil  stringutils2
>
>         src/myutil:
>         myutil.go
>
>         src/stringutils2:
>         stringutils2.go
>
>
> where stringutils2 is just another package, it doesn't get copied over
> "correctly" to the build directory:
>
>         $ ls -R obj-x86_64-linux-gnu/
>         obj-x86_64-linux-gnu/:
>         src
>
>         obj-x86_64-linux-gnu/src:
>         github.com  myutil  vyatta.net
>
>         obj-x86_64-linux-gnu/src/myutil:
>         build.log  README  src
>
>         obj-x86_64-linux-gnu/src/myutil/src:
>         myutil  stringutils2
>
>         obj-x86_64-linux-gnu/src/myutil/src/myutil:
>         myutil.go
>
>         obj-x86_64-linux-gnu/src/myutil/src/stringutils2:
>         stringutils2.go
>
> stringutils2 needs to up two levels to be found by the default
> GOPATH or am I doing something wrong?
>
> On Thu, 2015-05-14 at 04:24 -0600, Michael Stapelberg wrote:
> > So, I’ve had a closer look at what’s happening here:
> >
> >
> > debhelper (and CDBS) install files to debian/tmp by default if there
> > is more than one binary package in your debian/control. In that
> > situation, you’d use install files to effectively copy files from
> > debian/tmp to debian/<package>.
> >
> >
> > With just one binary package in debian/control (your situation), files
> > are directly installed into debian/<package>, so install files are
> > useless. Trying to run dh_install with --sourcedir=debian/myutil
> > illustrates this:
> >
> >
> > dh_install --sourcedir=debian/myutil
> > cp -a debian/myutil/usr/bin/myutil debian/myutil//usr/bin/
> > cp: ‘debian/myutil/usr/bin/myutil’ and ‘debian/myutil//usr/bin/myutil’
> > are the same file
> >
> >
> > So, I think deleting the unwanted files is not only just an option,
> > but the intended way how this should work.
> >
> >
> > See the override_dh_auto_install override
> > in
> http://anonscm.debian.org/cgit/pkg-go/packages/heartbleeder.git/tree/debian/rules
> for an example.
> >
> >
> > Hope that helps,
> >
> > On Thu, May 14, 2015 at 1:03 AM, Michael Stapelberg
> > <stapelberg at debian.org> wrote:
> >         Please don’t drop pkg-go-maintainers from the CC, this
> >         conversation is interesting for everyone.
> >
> >
> >         One option to solve your issue is to just delete
> >         usr/share/gocode, as one of the examples I linked to does
> >         (sorry, don’t recall which one).
> >
> >         On Wed, May 13, 2015 at 8:53 PM, Chas Williams III
> >         <Charles.Williams at brocade.com> wrote:
> >                 Thank you for the links.
> >
> >                 If I have multiple packages that are related but want
> >                 to go into
> >                 separate debian packages, like a server package and
> >                 some debugging utils
> >                 that you might optionally want to install.
> >
> >                 If I don't have an *.install, I get a .deb file with:
> >
> >                 drwxr-xr-x root/root         0 2015-05-13
> >                 11:45 ./usr/share/gocode/
> >                 drwxr-xr-x root/root         0 2015-05-13
> >                 11:45 ./usr/share/gocode/src/
> >                 drwxr-xr-x root/root         0 2015-05-13
> >                 11:45 ./usr/share/gocode/src/myutil/
> >                 drwxr-xr-x root/root         0 2015-05-13
> >                 11:45 ./usr/share/gocode/src/myutil/src/
> >                 drwxr-xr-x root/root         0 2015-05-13
> >                 11:45 ./usr/share/gocode/src/myutil/src/myutil/
> >                 -rw-r--r-- root/root       128 2015-05-13
> >                 11:45 ./usr/share/gocode/src/myutil/src/myutil/myutil.go
> >                 drwxr-xr-x root/root         0 2015-05-13
> >                 11:45 ./usr/bin/
> >                 -rwxr-xr-x root/root   1357256 2015-05-13
> >                 11:45 ./usr/bin/myutil
> >
> >                 I don't want to ship the gocode.
> >
> >                 On Wed, 2015-05-13 at 12:30 -0600, Michael Stapelberg
> >                 wrote:
> >                 > Here are a couple binary-only packages:
> >                 >
> >                 >
> >                 >
> >                 http://anonscm.debian.org/cgit/pkg-go/packages/etcd.git/
> >                 >
> >
> http://anonscm.debian.org/cgit/pkg-go/packages/heartbleeder.git/
> >                 >
> >                 >
> >
> http://anonscm.debian.org/cgit/pkg-go/packages/skydns.git/
> >                 >
> >                 >
> >                 >
> >                 > Why do you need an install file at all if you’re
> >                 just dealing with a
> >                 > binary-only package?
> >                 >
> >                 > On Wed, May 13, 2015 at 8:22 PM, Chas Williams III
> >                 > <Charles.Williams at brocade.com> wrote:
> >                 >         See attached.  I can build the
> >                 golang-stringutils package
> >                 >         fine.
> >                 >         myutil builds but I am unable to create a
> >                 binary package that
> >                 >         only
> >                 >         contains the utility myutil.  I don't need
> >                 to ship myutil's as
> >                 >         a
> >                 >         development package.
> >                 >
> >                 >         I have been unable to find an example of
> >                 dh-golang used to
> >                 >         build a
> >                 >         binary only package.
> >                 >
> >                 >         On Wed, 2015-05-13 at 12:04 -0600, Michael
> >                 Stapelberg wrote:
> >                 >         > Without seeing your packaging it’s very
> >                 hard to help. Maybe
> >                 >         taking a
> >                 >         > look at the existing pkg-go packages
> >                 helps?
> >                 >         >
> >                 >         > On Wed, May 13, 2015 at 7:21 PM, Chas
> >                 Williams III
> >                 >         > <Charles.Williams at brocade.com> wrote:
> >                 >         >         I think I have it figured out now.
> >                 I wasn't setting
> >                 >         DH_GOPKG
> >                 >         >         on the
> >                 >         >         non-library package.
> >                 >         >
> >                 >         >         How do you write an *.install file
> >                 to match file
> >                 >         paths?  The
> >                 >         >         files don't
> >                 >         >         seem to be installed in the
> >                 temporary root and the
> >                 >         typical
> >                 >         >         paths I would
> >                 >         >         use don't seem to work.
> >                 >         >
> >                 >         >         On Tue, 2015-05-12 at 14:06 -0600,
> >                 Michael
> >                 >         Stapelberg wrote:
> >                 >         >         > Why woulud the build system need
> >                 to write
> >                 >         >         to /usr/share/gocode? You
> >                 >         >         > shouldn’t need to touch your
> >                 dependencies during
> >                 >         build.
> >                 >         >         >
> >                 >         >         >
> >                 >         >         > Can you make your packaging
> >                 available? Without
> >                 >         seeing the
> >                 >         >         code, it’s
> >                 >         >         > hard to help.
> >                 >         >         >
> >                 >         >         > On Tue, May 12, 2015 at 7:44 PM,
> >                 Chas Williams III
> >                 >         >         > <Charles.Williams at brocade.com>
> >                 wrote:
> >                 >         >         >         Hello,
> >                 >         >         >
> >                 >         >         >         I have managed to
> >                 produce a golang Debian
> >                 >         package,
> >                 >         >         but I still
> >                 >         >         >         can't
> >                 >         >         >         seem to figure out how
> >                 to use this package
> >                 >         to build
> >                 >         >         my Go
> >                 >         >         >         application.
> >                 >         >         >
> >                 >         >         >         Buildsystem/golang.pm
> >                 says want I want to
> >                 >         hear:
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >
> >                 >
> >
> ############################################################################
> >                 >         >         >         # Symlink all available
> >                 libraries
> >                 >         >         from /usr/share/gocode/src
> >                 >         >         >         into our
> >                 >         >         >         # buildroot.
> >                 >         >         >
> >                 >         >
> >                 >
> >
> ############################################################################
> >                 >         >         >
> >                 >         >         >         But _link_contents()
> >                 doesn't really seem
> >                 >         to do that.
> >                 >         >         It
> >                 >         >         >         symlinks
> >                 >         >         >         the directories, but
> >                 shouldn't it really
> >                 >         create the
> >                 >         >         >         directories and
> >                 >         >         >         symlinks the source
> >                 files (*.go) since
> >                 >         it's unlikely
> >                 >         >         the build
> >                 >         >         >         system
> >                 >         >         >         can write
> >                 to /usr/share/gocode?
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >         >
> >                 >         >         > --
> >                 >         >         > Best regards,
> >                 >         >         > Michael
> >                 >         >
> >                 >         >
> >                 >         >
> >                 >         >
> >                 >         >
> >                 >         >
> >                 >         > --
> >                 >         > Best regards,
> >                 >         > Michael
> >                 >
> >                 >
> >                 >
> >                 >
> >                 >
> >                 >
> >                 > --
> >                 > Best regards,
> >                 > Michael
> >
> >
> >
> >
> >
> >
> >
> >         --
> >         Best regards,
> >         Michael
> >
> >
> >
> >
> > --
> > Best regards,
> > Michael
>
>
>


-- 
Best regards,
Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-go-maintainers/attachments/20150514/4f830b93/attachment-0001.html>


More information about the Pkg-go-maintainers mailing list