Bug#973612: [Debian-med-packaging] Bug#973612: I'm afrait I did some kind of sabotage by upgrading civetweb ... [karsten.hilb...@gmx.net: Bug#973612: orthanc: libcivetweb version mismatch]

2020-11-03 Thread Sébastien Jodogne
Hello,

After some investigation, I think that this issue comes from the fact
that the "libcivetweb1" package (as of version 1.13+dfsg-2) doesn't
contain a symbolic link from "libcivetweb.so.1" to "libcivetweb.so.1.13.0".

Because of this missing symbolic link, Orthanc is linked against one
single version of the civetweb shared library (namely,
"libcivetweb.so.1.13.0"), and this library might be unavailable if an
earlier version of "libcivetweb1" was installed beforehand (in Karsten's
case, "libcivetweb.so.1.11.0"), even if the two versions are binary
compatible.

I feel like this corresponds to the warning
"package-name-doesnt-match-sonames" that was reported by Lintian.

In order to solve this issue, I've just submitted a new release of
civetweb (1.13+dfsg-3) that creates the missing symbolic link
"libcivetweb.so.1" by appropriately setting the SOVERSION in CMake,
which required a patch [1].

When Orthanc will be compiled against this new version of civetweb, it
should hopefully be linked against "libcivetweb.so.1" instead of
"libcivetweb.so.1.13.0", making it compatible with a whole range of
versions of civetweb, and it should thus be possible to upgrade civetweb
without breaking Orthanc. If this is indeed the case, I'll soon be able
to make a new release of Orthanc that fixes this issue.

These thoughts might seem trivial to many of you, but I wanted to share
them if someone else meets a similar problem in another context.

Best Regards,
Sébastien-

[1]
https://salsa.debian.org/med-team/civetweb/-/commit/ccb62139b6139ea6efc2432c12018de6e3c16003


On 3/11/20 14:11, Andreas Tille wrote:
> [including the list again]
> Hi Sébastien,
> 
> On Mon, Nov 02, 2020 at 04:39:31PM +0100, Sébastien Jodogne wrote:
>> To be fair, I am unsure to understand the issue and how to fix it...
>>
>> Should I simply modify the "Build-Depends" of the orthanc package to the
>> fix the version of civetweb to 1.13 (i.e. "libcivetweb-dev (= 1.13)")? Or
>> set "Depends" to "libcivetweb1 = 1.13"?
> 
> I do not think so.  The packaging process will usually set versioned
> depends correctly.  Moreover at least in theory orthanc should work with
> both libcivetweb1 versions (1.12 and 1.13) since the soversion was not
> bumped.  To verify this I added a symbols file to 1.12 first and after
> checking that there are only some new symbols in 1.13 I considered it
> harmless to upload (which was obviously wrong).
>  
>> This sounds very strange to me: I would have expected that, as the orthanc
>> package was built against civetweb 1.13 (which is implied by the fact that
>> ldd on "/usr/sbin/Orthanc" indicates "libcivetweb.so.1.13.0"), its
>> "Depends" should have automatically been set to "libcivetweb1 >= 1.13"
>> (whereas ">= 1.12" is found in the .deb package).
> 
> I confirm that the build really injects libcivetweb1 (>= 1.12).  I need
> to admit that I do not know those internals but I would assume that as
> long as the soversion is unchanged the smallest possible version number
> is used here.  But I'm unsure.  I think if for whatever reason >= 1.13
> is needed than this has to be specified explicitly.  But please note
> that I never faced this before and clarifying this on debian-mentors
> might be advisable.
> 
>> Please could you explain it to me?
> 
> Not better than above, sorry. :-(
> 
> Kind regards
> 
>Andreas.
>  
>> On Mon, 2 Nov 2020 at 15:36, Andreas Tille  wrote:
>>
>>> Hi Sébastien,
>>>
>>> hopefully that can easily be fixed - sorry for the inconvenience
>>>
>>>  Andreas.
>>>



Bug#973612: I'm afrait I did some kind of sabotage by upgrading civetweb ... [karsten.hilb...@gmx.net: Bug#973612: orthanc: libcivetweb version mismatch]

2020-11-03 Thread Andreas Tille
[including the list again]
Hi Sébastien,

On Mon, Nov 02, 2020 at 04:39:31PM +0100, Sébastien Jodogne wrote:
> To be fair, I am unsure to understand the issue and how to fix it...
> 
> Should I simply modify the "Build-Depends" of the orthanc package to the
> fix the version of civetweb to 1.13 (i.e. "libcivetweb-dev (= 1.13)")? Or
> set "Depends" to "libcivetweb1 = 1.13"?

I do not think so.  The packaging process will usually set versioned
depends correctly.  Moreover at least in theory orthanc should work with
both libcivetweb1 versions (1.12 and 1.13) since the soversion was not
bumped.  To verify this I added a symbols file to 1.12 first and after
checking that there are only some new symbols in 1.13 I considered it
harmless to upload (which was obviously wrong).
 
> This sounds very strange to me: I would have expected that, as the orthanc
> package was built against civetweb 1.13 (which is implied by the fact that
> ldd on "/usr/sbin/Orthanc" indicates "libcivetweb.so.1.13.0"), its
> "Depends" should have automatically been set to "libcivetweb1 >= 1.13"
> (whereas ">= 1.12" is found in the .deb package).

I confirm that the build really injects libcivetweb1 (>= 1.12).  I need
to admit that I do not know those internals but I would assume that as
long as the soversion is unchanged the smallest possible version number
is used here.  But I'm unsure.  I think if for whatever reason >= 1.13
is needed than this has to be specified explicitly.  But please note
that I never faced this before and clarifying this on debian-mentors
might be advisable.

> Please could you explain it to me?

Not better than above, sorry. :-(

Kind regards

   Andreas.
 
> On Mon, 2 Nov 2020 at 15:36, Andreas Tille  wrote:
> 
> > Hi Sébastien,
> >
> > hopefully that can easily be fixed - sorry for the inconvenience
> >
> >  Andreas.
> >

-- 
http://fam-tille.de



Bug#973612: orthanc: libcivetweb version mismatch

2020-11-02 Thread Karsten Hilbert
Package: orthanc
Version: 1.8.0+dfsg-1
Severity: important

Dear maintainers,

something is odd. Orthanc won't start up:

 root@hermes:~# systemctl status orthanc.service
 • orthanc.service - Lightweight, RESTful DICOM server for healthcare and 
medical research
  Loaded: loaded (/lib/systemd/system/orthanc.service; enabled; vendor 
preset: enabled)
  Active: failed (Result: exit-code) since Mon 2020-11-02 14:57:04 CET; 
23min ago
Docs: man:orthanc(8)
  https://book.orthanc-server.com/index.html
 Process: 18285 ExecStart=/usr/sbin/Orthanc --logdir=/var/log/orthanc 
/etc/orthanc (code=exited, status=127)
Main PID: 18285 (code=exited, status=127)

 Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Scheduled restart job, 
restart counter is at 5.
 Nov 02 14:57:04 hermes systemd[1]: Stopped Lightweight, RESTful DICOM server 
for healthcare and medical research.
 Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Start request repeated too 
quickly.
 Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Failed with result 
'exit-code'.
 Nov 02 14:57:04 hermes systemd[1]: Failed to start Lightweight, RESTful DICOM 
server for healthcare and medical research.


 journalctl:

  Nov 02 14:57:04 hermes systemd[1]: Started Lightweight, RESTful DICOM server 
for healthcare and medical research.
  Nov 02 14:57:04 hermes Orthanc[18285]: /usr/sbin/Orthanc: error while loading 
shared libraries: libcivetweb.so.1.11.0: cannot open shared object file: No 
such file or directory
  Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Main process exited, 
code=exited, status=127/n/a
  Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Failed with result 
'exit-code'.
  Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Scheduled restart job, 
restart counter is at 5.
  Nov 02 14:57:04 hermes systemd[1]: Stopped Lightweight, RESTful DICOM server 
for healthcare and medical research.
  Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Start request repeated 
too quickly.
  Nov 02 14:57:04 hermes systemd[1]: orthanc.service: Failed with result 
'exit-code'.
  Nov 02 14:57:04 hermes systemd[1]: Failed to start Lightweight, RESTful DICOM 
server for healthcare and medical research.

 Depends: ..., libcivetweb1 (>= 1.12+dfsg), ...

 libcivetweb1:
   Installiert:   1.13+dfsg-2
   Installationskandidat: 1.13+dfsg-2
   Versionstabelle:
  *** 1.13+dfsg-2 990
 990 https://deb.debian.org/debian bullseye/main i386 Packages
 100 /var/lib/dpkg/status

Seems like it is linked against a specific version (1.11.0) while
Depends: says something else (>= 1.12) which is actually fulfilled
(1.13).

Karsten


-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug')
Architecture: i386 (i686)

Kernel: Linux 5.9.0-1-686-pae (SMP w/2 CPU threads)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages orthanc depends on:
ii  adduser3.118
ii  dcmtk  3.6.4-2.1+b1
ii  init-system-helpers1.58
ii  libboost-filesystem1.71.0  1.71.0-7+b1
ii  libboost-iostreams1.71.0   1.71.0-7+b1
ii  libboost-locale1.71.0  1.71.0-7+b1
ii  libboost-regex1.71.0 [libboost-regex1.71.0-icu67]  1.71.0-7+b1
ii  libboost-thread1.71.0  1.71.0-7+b1
ii  libc6  2.31-4
ii  libcivetweb1   1.13+dfsg-2
ii  libcurl4   7.72.0-1
ii  libdcmtk14 3.6.4-2.1+b1
ii  libgcc-s1  10.2.0-15
ii  libjpeg62-turbo1:2.0.5-1.1
ii  libjsoncpp11.7.4-3.1
ii  liblua5.3-05.3.3-1.1+b1
ii  libpng16-161.6.37-3
ii  libpugixml1v5  1.10-1
ii  libsqlite3-0   3.33.0-1
ii  libssl1.1  1.1.1h-1
ii  libstdc++6 10.2.0-15
ii  libuuid1   2.36-3+b1
ii  locales2.31-4
ii  lsb-base   11.1.0
ii  tzdata 2020d-1
ii  zlib1g 1:1.2.11.dfsg-2

orthanc recommends no packages.

orthanc suggests no packages.

-- Configuration Files:
/etc/init.d/orthanc changed [not included]
/etc/orthanc/orthanc.json changed [not included]