Hi Norbert,

thank you for the patch. See some comments below.

Cheers

On 2017-02-28 00:57:41, Norbert Lange wrote:
> Package: bear
> Version: 2.2.1-1
> Severity: normal
> Tags: patch
> 
> Dear Maintainer,
> 
> bear is preloading the libear.so library with an absolute path,
> this requires that the architecture (32/64 bit) is matched
> and known in advance.
> 
> This leads to several issues:
> 
> 1.  the package is not multiarch capable, thus
>     there cant be libear.so for multiple archs installed
> 2.  the default path is fixed for one architecture
> 3.  starting a build under bear, using both 32 and 64 bit
>     tools will need someting different that a fixed path
> 
> I am attaching a path to fix these issue, by splitting the library
> in its own package, and using a variable in the default path
> 
> Kind Regards,
> Norbert Lange
> 
> -- System Information:
> Debian Release: 9.0
>   APT prefers testing
>   APT policy: (200, 'testing')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386, armhf, arm64
> 
> Kernel: Linux 4.9.0-1-amd64 (SMP w/8 CPU cores)
> Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
> 
> Versions of packages bear depends on:
> ii  bear-lib     2.2.1-1
> pn  python3:any  <none>
> 
> bear recommends no packages.
> 
> bear suggests no packages.
> 
> -- no debconf information

> diff -burN debian.orig/bear.install debian/bear.install
> --- debian.orig/bear.install  1970-01-01 01:00:00.000000000 +0100
> +++ debian/bear.install       2017-02-28 00:01:36.000000000 +0100
> @@ -0,0 +1,2 @@
> +/usr/bin
> +/usr/share/man
> diff -burN debian.orig/bear-lib.install debian/bear-lib.install
> --- debian.orig/bear-lib.install      1970-01-01 01:00:00.000000000 +0100
> +++ debian/bear-lib.install   2017-02-27 23:59:12.000000000 +0100
> @@ -0,0 +1 @@
> +/usr/lib
> diff -burN debian.orig/changelog debian/changelog
> --- debian.orig/changelog     2016-10-19 19:01:50.000000000 +0200
> +++ debian/changelog  2017-02-28 00:40:58.000000000 +0100
> @@ -1,3 +1,11 @@
> +bear (2.2.1-1~nmu) unstable; urgency=medium
> +
> +  * split library from main python script
> +  * make default libear.so path configurable in the CMake files
> +  * adjust the default libear.so path to use the ${LIB} Variable
> +
> + -- Norbert Lange <nolang...@gmail.com>  Tue, 28 Feb 2017 00:40:58 +0100
> +
>  bear (2.2.1-1) unstable; urgency=medium
>  
>    * New upstream release.
> diff -burN debian.orig/control debian/control
> --- debian.orig/control       2016-10-19 18:58:44.000000000 +0200
> +++ debian/control    2017-02-28 00:36:05.000000000 +0100
> @@ -5,8 +5,8 @@
>  Build-Depends:
>   debhelper (>= 10),
>   cmake,
> - python,
> - python3,
> + python:any,
> + python3:any,

Why?

>   scons,
>   libqt4-dev,
>   dh-python
> @@ -16,9 +16,9 @@
>  Vcs-Git: https://anonscm.debian.org/git/collab-maint/bear.git
>  
>  Package: bear
> -Architecture: any
> +Architecture: all
>  Depends:
> - ${shlibs:Depends},
> + bear-lib (>= ${source:Version}), bear-lib (<< ${source:Upstream-Version}.0~)

Missing comma at the end.

>   ${misc:Depends},
>   ${python3:Depends}
>  Description: generate compilation database for Clang tooling
> @@ -29,3 +29,19 @@
>   cmake supports the generation of JSON compilation databases out of the box.
>   For any other build system that does not support this, Bear can be used
>   instead to intercept the invocation of the compiler.
> +
> +Package: bear-lib

Why not something like libear?

> +Architecture: any
> +Multi-Arch: same
> +Depends:
> + ${shlibs:Depends}

Missing ${misc:Depends}

> +Description: generate compilation database for Clang tooling
> + Bear records the flags passed to the compiler for each translation unit and
> + stores them in a JSON file. This file can be used by Clang's tooling 
> interface
> + and programs like clang-check to process a translation unit.
> + .
> + cmake supports the generation of JSON compilation databases out of the box.
> + For any other build system that does not support this, Bear can be used
> + instead to intercept the invocation of the compiler.
> + .
> + This is the required library for wrapping system calls

Missing Breaks + Replaces.

> diff -burN debian.orig/patches/make_default_preload_configurable.diff 
> debian/patches/make_default_preload_configurable.diff
> --- debian.orig/patches/make_default_preload_configurable.diff        
> 1970-01-01 01:00:00.000000000 +0100
> +++ debian/patches/make_default_preload_configurable.diff     2017-02-28 
> 00:19:16.000000000 +0100
> @@ -0,0 +1,15 @@
> +Description: Allow configuring the default preload library path
> + Add the responsible variable to CMake's  cache
> + .
> +
> +--- bear-2.2.1.orig/CMakeLists.txt
> ++++ bear-2.2.1/CMakeLists.txt
> +@@ -39,7 +39,7 @@ if (NOT CMAKE_BUILD_TYPE)
> + endif()
> + 
> + set(EAR_LIB_FILE 
> ${CMAKE_SHARED_LIBRARY_PREFIX}ear${CMAKE_SHARED_LIBRARY_SUFFIX})
> +-set(DEFAULT_PRELOAD_FILE ${CMAKE_INSTALL_FULL_LIBDIR}/${EAR_LIB_FILE})
> ++set(DEFAULT_PRELOAD_FILE ${CMAKE_INSTALL_FULL_LIBDIR}/${EAR_LIB_FILE} CACHE 
> STRING "Default preload library path")
> + 
> + add_subdirectory(libear)
> + add_subdirectory(bear)

This should go upstream.


Cheers

> diff -burN debian.orig/patches/series debian/patches/series
> --- debian.orig/patches/series        2015-08-08 17:13:48.000000000 +0200
> +++ debian/patches/series     2017-02-28 00:17:16.000000000 +0100
> @@ -1,2 +1,3 @@
>  use-python3.patch
>  remove-rpath.patch
> +make_default_preload_configurable.diff
> diff -burN debian.orig/rules debian/rules
> --- debian.orig/rules 2016-10-19 18:58:44.000000000 +0200
> +++ debian/rules      2017-02-28 00:35:21.000000000 +0100
> @@ -7,7 +7,8 @@
>  
>  override_dh_auto_configure:
>       dh_auto_configure -- \
> -             -DCMAKE_INSTALL_LIBDIR="lib/${DEB_HOST_MULTIARCH}/bear"
> +             -DCMAKE_INSTALL_LIBDIR="lib/${DEB_HOST_MULTIARCH}/bear" \
> +             -DDEFAULT_PRELOAD_FILE="/usr/\$${LIB}/bear/libear.so"
>  
>  override_dh_auto_test:
>       # The tests fail if /usr/lib/ccache is in PATH so we remove it here. 
> The tests
> @@ -17,10 +18,5 @@
>                       -e 's;^/usr/lib/ccache/\?;;') \
>               dh_auto_test
>  
> -override_dh_auto_install:
> -     dh_auto_install
> -     # Remove unwanted files.
> -     rm -rf debian/bear/usr/share/doc/bear
> -
>  override_dh_installchangelogs:
>       dh_installchangelogs ChangeLog.md


-- 
Sebastian Ramacher

Attachment: signature.asc
Description: PGP signature

Reply via email to