Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.bugs.dist > #736076

Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP]

From lumin <cdluminate@gmail.com>
Newsgroups linux.debian.bugs.dist
Subject Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP]
Date 2016-05-03 04:20 +0200
Message-ID <ruy6m-7Dk-3@gated-at.bofh.it> (permalink)
References <rtY2R-ue-9@gated-at.bofh.it> <rulVw-3Ub-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi mentors,

I've fixed the issues you pointed out. New packages
are rebuilt locally, and uploaded to mentors.
https://mentors.debian.net/package/caffe

Debomatic-amd64 is still building this updated package:
http://debomatic-amd64.debian.net/distribution#experimental/caffe/1.0.0~rc3-1/buildlog

Following is my comments to the remarks

On Mon, 2016-05-02 at 14:13 +0100, Ghislain Vaillant wrote:
> - d/changelog: should only contain the entry closing the initial release
> bug.

Removed the line not necessary.

> - d/control: Build-Depends on libboost-all-dev. Do you really need to
> pull the complete Boost stack for the build? Quick look I have had:
> 
> "find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem)"
> 
> So you should only require libboost-{filesystem,system,thread}-dev.

Depends on libboost-{filesystem,system,thread,python}-dev, instead
of libboost-all-dev.

> - d/control: Build-Depends on nvidia-cuda-toolkit which automatically
> pulls nvidia-cuda-dev, so no need to specify nvidia-cuda-dev.

Removed nvidia-cuda-dev as build-deps.

> - d/*.install.in: no multi-arch install paths? why?

I have no plan to make multiarch support for this package,
because that makes no sense. In production environment
Caffe is a computational intensive and memory-consuming
application, and I believe no user will need multi-arch
support for this package.

Made no change related to multi-arch.

> - d/libcaffe-dev.install.in: what is the purpose of the additional
> libproto.a binary?

There is a protobuf definition file under Caffe's source,
  src/caffe/proto/caffe.proto
which is a very essential file as it defined
caffe's "protocol". And libproto.a is the compiled
binary version of that protocol.

Besides, the Official "install" target installs
that static lib, so it is recommended by upstream
to have such a lib. Hence it goes into the -dev packages.

> - d/rules + d/*.in: IMO, sounds like a very convoluted way of running 2
> separate builds (one for CPU one for CUDA) and moving the files in the
> right places. Another possibility could have been to have caffe-cpu and
> caffe-cuda as separate source packages, one in main and one in contrib.
> For each of them, the packaging would have been much more simple to
> maintain I suppose.

I've ever considered split them up into 2 source packages,
but building 2 set of binary from 1 source is my initial intent.
I may split them in the future.

> - lintian (from d-o-m):
> 
> I: caffe source: quilt-patch-missing-description fix-spelling-error
> 
> Might want to fix this if not done already. Also please mention whether
> the patch has been forwarded upstream.

Added header to this patch. 

> I: libcaffe-cpu-dev: unstripped-static-library 
> usr/lib/caffe/libproto.a(caffe.pb.cc.o)
> 
> Again not sure what this libproto.a is doing here.

As explained above, this file may be not useless.

> I: libcaffe-cpu1: hardening-no-fortify-functions 
> usr/lib/libcaffe.so.1.0.0-rc3
> 
> Are you using hardening in d/rules? If so, then the injected flags
> might be shadowed by the build system. Consider fixing this.

I've tried to inject these flags according to wiki:Hardening
```
# Hardening Caffe according to https://wiki.debian.org/Hardening
DPKG_EXPORT_BUILDFLAGS=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
include /usr/share/dpkg/buildflags.mk
CFLAGS+=$(CPPFLAGS)
CXXFLAGS+=$(CPPFLAGS)
```

But hardening-fortify-source-function is still unfixed.
```
$ hardening-check /usr/bin/caffe
/usr/bin/caffe:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: no, only unprotected functions found!
 Read-only relocations: yes
 Immediate binding: yes
```

I have no idea about it...

Thank you for reviewing!

> Good luck,
> Ghis

Back to linux.debian.bugs.dist | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-01 13:50 +0200
  Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Ghislain Vaillant <ghisvail@gmail.com> - 2016-05-02 15:20 +0200
    Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Gianfranco Costamagna <costamagnagianfranco@yahoo.it> - 2016-05-02 15:30 +0200
    Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-03 04:20 +0200
      Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Ghislain Vaillant <ghisvail@gmail.com> - 2016-05-03 09:40 +0200
        Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Gianfranco Costamagna <locutusofborg@debian.org> - 2016-05-03 10:10 +0200
          Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-07 03:40 +0200
            Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Ghislain Vaillant <ghisvail@gmail.com> - 2016-05-07 11:10 +0200
              Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-12 11:30 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Gianfranco Costamagna <locutusofborg@debian.org> - 2016-05-16 17:00 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Ghislain Vaillant <ghisvail@gmail.com> - 2016-05-17 16:00 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-17 16:50 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Ghislain Vaillant <ghisvail@gmail.com> - 2016-05-17 18:00 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-18 14:50 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] James Clarke <jrtc27@jrtc27.com> - 2016-05-18 15:20 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] James Clarke <jrtc27@jrtc27.com> - 2016-05-18 15:30 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-18 16:20 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Gianfranco Costamagna <locutusofborg@debian.org> - 2016-05-18 23:20 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-19 07:30 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Gianfranco Costamagna <costamagnagianfranco@yahoo.it> - 2016-05-19 08:40 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-19 12:10 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-19 08:00 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] Jakub Wilk <jwilk@debian.org> - 2016-05-18 16:20 +0200
                Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-18 15:10 +0200
    Bug#823140: RFS: caffe/1.0.0~rc3-1 -- a deep learning framework [ITP] lumin <cdluminate@gmail.com> - 2016-05-03 07:10 +0200

csiph-web