Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package orthanc-python for openSUSE:Factory checked in at 2021-09-02 23:20:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/orthanc-python (Old) and /work/SRC/openSUSE:Factory/.orthanc-python.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "orthanc-python" Thu Sep 2 23:20:27 2021 rev:5 rq:915797 version:3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/orthanc-python/orthanc-python.changes 2021-08-16 10:17:57.450625859 +0200 +++ /work/SRC/openSUSE:Factory/.orthanc-python.new.1899/orthanc-python.changes 2021-09-02 23:20:51.420594040 +0200 @@ -1,0 +2,7 @@ +Wed Sep 1 07:49:14 UTC 2021 - Axel Braun <axel.br...@gmx.de> + +- Version 3.4 +* On Orthanc stopping, wait for all the queued events to have been processed +* Docker-based builder scripts distinguishing Debian buster and bullseye + +------------------------------------------------------------------- Old: ---- OrthancPython-3.3.tar.gz New: ---- OrthancPython-3.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ orthanc-python.spec ++++++ --- /var/tmp/diff_new_pack.Z99hjz/_old 2021-09-02 23:20:51.936594684 +0200 +++ /var/tmp/diff_new_pack.Z99hjz/_new 2021-09-02 23:20:51.940594688 +0200 @@ -1,7 +1,7 @@ # # spec file for package orthanc-python # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # Copyright (c) 2020-2021 Dr. Axel Braun # # All modifications and additions to the file contributed by third parties @@ -16,16 +16,16 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # + Name: orthanc-python Summary: Python plugin for Orthanc License: AGPL-3.0-or-later Group: Productivity/Graphics/Viewers -Version: 3.3 +Version: 3.4 Release: 0 URL: https://orthanc-server.com Source0: https://www.orthanc-server.com/downloads/get.php?path=/plugin-python/OrthancPython-%{version}.tar.gz Source11: orthanc-python-readme.openSUSE -BuildRequires: python3-devel BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: jsoncpp-devel @@ -40,8 +40,9 @@ BuildRequires: libuuid-devel BuildRequires: orthanc-devel BuildRequires: orthanc-source -BuildRequires: pkgconfig(python3) +BuildRequires: python3-devel BuildRequires: unzip +BuildRequires: pkgconfig(python3) Requires: orthanc @@ -51,7 +52,6 @@ This plugin can be used to write Orthanc plugins in Python instead of C++ See /usr/share/doc/packages/orthanc/orthanc-python-readme.openSUSE - %prep %setup -q -n OrthancPython-%{version} ++++++ OrthancPython-3.3.tar.gz -> OrthancPython-3.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/.hg_archival.txt new/OrthancPython-3.4/.hg_archival.txt --- old/OrthancPython-3.3/.hg_archival.txt 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/.hg_archival.txt 2021-08-31 14:08:43.000000000 +0200 @@ -1,6 +1,6 @@ repo: 7ed502b17b8f54de8885d96a413c9679f694ad4b -node: 347af6f3d63a03d92f1666b082b7296c8f234444 -branch: OrthancPython-3.3 +node: 28f354fd36fa7c107419d5663e24d44418f7cefb +branch: OrthancPython-3.4 latesttag: null -latesttagdistance: 78 -changessincelatesttag: 82 +latesttagdistance: 85 +changessincelatesttag: 89 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/CMakeLists.txt new/OrthancPython-3.4/CMakeLists.txt --- old/OrthancPython-3.3/CMakeLists.txt 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/CMakeLists.txt 2021-08-31 14:08:43.000000000 +0200 @@ -1,13 +1,13 @@ cmake_minimum_required(VERSION 2.8) project(OrthancPython) -set(PLUGIN_VERSION "3.3") +set(PLUGIN_VERSION "3.4") if (PLUGIN_VERSION STREQUAL "mainline") set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "mainline") set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "hg") else() - set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.9.6") + set(ORTHANC_FRAMEWORK_DEFAULT_VERSION "1.9.7") set(ORTHANC_FRAMEWORK_DEFAULT_SOURCE "web") endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/NEWS new/OrthancPython-3.4/NEWS --- old/OrthancPython-3.3/NEWS 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/NEWS 2021-08-31 14:08:43.000000000 +0200 @@ -2,6 +2,13 @@ =============================== +Version 3.4 (2021-08-31) +======================== + +* On Orthanc stopping, wait for all the queued events to have been processed +* Docker-based builder scripts distinguishing Debian buster and bullseye + + Version 3.3 (2021-08-12) ======================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/Debian/docker-bullseye-compile.sh new/OrthancPython-3.4/Resources/Builders/Debian/docker-bullseye-compile.sh --- old/OrthancPython-3.3/Resources/Builders/Debian/docker-bullseye-compile.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/OrthancPython-3.4/Resources/Builders/Debian/docker-bullseye-compile.sh 2021-08-31 14:08:43.000000000 +0200 @@ -0,0 +1,27 @@ +#!/bin/bash + +set -ex + +if [ "$1" != "Debug" -a "$1" != "Release" ]; then + echo "Please provide build type: Debug or Release" + exit -1 +fi + +if [ -t 1 ]; then + # TTY is available => use interactive mode + DOCKER_FLAGS='-i' +fi + +ROOT_DIR=`dirname $(readlink -f $0)`/../../.. + +mkdir -p ${ROOT_DIR}/docker-build-bullseye/ + +docker pull debian:bullseye-slim + +docker run -t ${DOCKER_FLAGS} --rm \ + -v ${ROOT_DIR}:/source:ro \ + -v ${ROOT_DIR}/docker-build-bullseye:/target:rw \ + debian:bullseye-slim \ + bash /source/Resources/Builders/Debian/docker-internal.sh $1 3.9 $(id -u) $(id -g) + +ls -lR ${ROOT_DIR}/docker-build-bullseye/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/Debian/docker-buster-compile.sh new/OrthancPython-3.4/Resources/Builders/Debian/docker-buster-compile.sh --- old/OrthancPython-3.3/Resources/Builders/Debian/docker-buster-compile.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/OrthancPython-3.4/Resources/Builders/Debian/docker-buster-compile.sh 2021-08-31 14:08:43.000000000 +0200 @@ -0,0 +1,27 @@ +#!/bin/bash + +set -ex + +if [ "$1" != "Debug" -a "$1" != "Release" ]; then + echo "Please provide build type: Debug or Release" + exit -1 +fi + +if [ -t 1 ]; then + # TTY is available => use interactive mode + DOCKER_FLAGS='-i' +fi + +ROOT_DIR=`dirname $(readlink -f $0)`/../../.. + +mkdir -p ${ROOT_DIR}/docker-build-buster/ + +docker pull debian:buster-slim + +docker run -t ${DOCKER_FLAGS} --rm \ + -v ${ROOT_DIR}:/source:ro \ + -v ${ROOT_DIR}/docker-build-buster:/target:rw \ + debian:buster-slim \ + bash /source/Resources/Builders/Debian/docker-internal.sh $1 3.7 $(id -u) $(id -g) + +ls -lR ${ROOT_DIR}/docker-build-buster/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/Debian/docker-internal.sh new/OrthancPython-3.4/Resources/Builders/Debian/docker-internal.sh --- old/OrthancPython-3.3/Resources/Builders/Debian/docker-internal.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/OrthancPython-3.4/Resources/Builders/Debian/docker-internal.sh 2021-08-31 14:08:43.000000000 +0200 @@ -0,0 +1,56 @@ +#!/bin/bash +set -ex + +BUILD_TYPE=$1 +PYTHON_VERSION=$2 +USER_ID=$3 +GROUP_ID=$4 + +# Create the same user and group than the one who is running the +# "./docker-{distro}-compile.sh" script on the hosting system (*) +groupadd -g ${GROUP_ID} -r orthanc +useradd -u ${USER_ID} -r -g orthanc orthanc + +apt-get update +DEBIAN_FRONTEND=noninteractive apt-get -y install nano build-essential unzip cmake pkg-config python libpython3-dev curl +apt-get -y clean +rm -rf /var/lib/apt/lists/* + + +# On Bullseye, we get "stat: cannot statx +# '/usr/share/mercurial/hgext.rc': Operation not permitted" if +# installing the "mercurial" package using apt-get. As a consequence, +# we manually install Mercurial from sources. +MERCURIAL=mercurial-5.4.1 +cd /tmp +curl https://www.mercurial-scm.org/release/${MERCURIAL}.tar.gz > ${MERCURIAL}.tar.gz +tar xvf ${MERCURIAL}.tar.gz +export PATH=${PATH}:/tmp/${MERCURIAL}/ + + +mkdir /tmp/source-writeable + +cp -r /source/CMakeLists.txt /tmp/source-writeable/ +cp -r /source/Sources /tmp/source-writeable/ +cp -r /source/Resources /tmp/source-writeable/ + +mkdir /tmp/build +cd /tmp/build + +cmake /tmp/source-writeable/ \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DPYTHON_VERSION=${PYTHON_VERSION} \ + -DSTATIC_BUILD=ON \ + -DCMAKE_INSTALL_PREFIX=/target + +make -j`nproc` + +if [ "$1" == "Release" ]; then + strip ./libOrthancPython.so +fi + +# Copy the installation to the host filesystem, using the +# newly-created user "orthanc" (*) that corresponds to the user who is +# running "./debian-{distro}-compile.sh" script. This allows to avoid +# files owned by the "root" user on the host filesystem. +su -c "cp /tmp/build/libOrthancPython.so /target" orthanc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment new/OrthancPython-3.4/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment --- old/OrthancPython-3.3/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -FROM debian:stable-slim - -MAINTAINER Sebastien Jodogne <s.jodo...@gmail.com> -LABEL Description="Orthanc, free DICOM server" Vendor="The Orthanc project" - -RUN apt-get -y clean && apt-get -y update && \ - DEBIAN_FRONTEND=noninteractive apt-get -y install \ - nano build-essential unzip cmake pkg-config libpython3.7-dev mercurial && \ - apt-get clean && rm -rf /var/lib/apt/lists/* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/DebianStable/Dockerfile-Release new/OrthancPython-3.4/Resources/Builders/DebianStable/Dockerfile-Release --- old/OrthancPython-3.3/Resources/Builders/DebianStable/Dockerfile-Release 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Resources/Builders/DebianStable/Dockerfile-Release 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -FROM jodogne/orthanc-plugins:1.6.0 - -MAINTAINER Sebastien Jodogne <s.jodo...@gmail.com> -LABEL Description="Orthanc, free DICOM server" Vendor="The Orthanc project" - -RUN apt-get -y clean && apt-get -y update -RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python3.7 libpython3.7 && \ - apt-get clean && rm -rf /var/lib/apt/lists/* - -ADD ./docker-build/share/orthanc/plugins/libOrthancPython.so \ - /usr/local/share/orthanc/plugins/libOrthancPython.so diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/DebianStable/NOTES.txt new/OrthancPython-3.4/Resources/Builders/DebianStable/NOTES.txt --- old/OrthancPython-3.3/Resources/Builders/DebianStable/NOTES.txt 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Resources/Builders/DebianStable/NOTES.txt 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ - - -Create the Docker image: - -$ ./docker-compile.sh Release -$ docker build -f Dockerfile-Release -t python-plugin ../../.. - - -Run the just-created Docker image: - -$ docker run -p 4242:4242 -p 8042:8042 --rm python-plugin - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/DebianStable/docker-compile.sh new/OrthancPython-3.4/Resources/Builders/DebianStable/docker-compile.sh --- old/OrthancPython-3.3/Resources/Builders/DebianStable/docker-compile.sh 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Resources/Builders/DebianStable/docker-compile.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,30 +0,0 @@ -#!/bin/bash - -set -ex - -if [ "$1" != "Debug" -a "$1" != "Release" ]; then - echo "Please provide build type: Debug or Release" - exit -1 -fi - -if [ -t 1 ]; then - # TTY is available => use interactive mode - DOCKER_FLAGS='-i' -fi - -ROOT_DIR=`dirname $(readlink -f $0)`/../../.. - -mkdir -p ${ROOT_DIR}/docker-build/ - -docker build \ - -f ${ROOT_DIR}/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment \ - -t debian-stable-python-build . - -docker run -t ${DOCKER_FLAGS} --rm \ - --user $(id -u):$(id -g) \ - -v ${ROOT_DIR}:/source:ro \ - -v ${ROOT_DIR}/docker-build:/target:rw \ - debian-stable-python-build \ - bash /source/Resources/Builders/DebianStable/docker-internal.sh $1 - -ls -lR ${ROOT_DIR}/docker-build/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Builders/DebianStable/docker-internal.sh new/OrthancPython-3.4/Resources/Builders/DebianStable/docker-internal.sh --- old/OrthancPython-3.3/Resources/Builders/DebianStable/docker-internal.sh 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Resources/Builders/DebianStable/docker-internal.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,25 +0,0 @@ -#!/bin/bash -set -ex - -mkdir /tmp/source-writeable - -cp -r /source/CMakeLists.txt /tmp/source-writeable/ -cp -r /source/Sources /tmp/source-writeable/ -cp -r /source/Resources /tmp/source-writeable/ - -mkdir /tmp/build -cd /tmp/build - -cmake /tmp/source-writeable/ \ - -DCMAKE_BUILD_TYPE=$1 \ - -DPYTHON_VERSION=3.7 \ - -DSTATIC_BUILD=ON \ - -DCMAKE_INSTALL_PREFIX=/target - -make -j`nproc` - -if [ "$1" == "Release" ]; then - strip ./libOrthancPython.so -fi - -make install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake new/OrthancPython-3.4/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake --- old/OrthancPython-3.3/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Resources/Orthanc/CMake/DownloadOrthancFramework.cmake 2021-08-31 14:08:43.000000000 +0200 @@ -136,6 +136,8 @@ set(ORTHANC_FRAMEWORK_MD5 "10fc64de1254a095e5d3ed3931f0cfbb") elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.6") set(ORTHANC_FRAMEWORK_MD5 "4b5d05683d747c29b2860ad79d11e62e") + elseif (ORTHANC_FRAMEWORK_VERSION STREQUAL "1.9.7") + set(ORTHANC_FRAMEWORK_MD5 "c912bbb860d640d3ae3003b5c9698205") # Below this point are development snapshots that were used to # release some plugin, before an official release of the Orthanc diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/OrthancPython-3.3/Sources/OnChangeCallback.cpp new/OrthancPython-3.4/Sources/OnChangeCallback.cpp --- old/OrthancPython-3.3/Sources/OnChangeCallback.cpp 2021-08-12 18:36:43.000000000 +0200 +++ new/OrthancPython-3.4/Sources/OnChangeCallback.cpp 2021-08-31 14:08:43.000000000 +0200 @@ -80,6 +80,7 @@ boost::mutex mutex_; Queue queue_; boost::condition_variable elementAvailable_; + boost::condition_variable emptied_; public: ~PendingChanges() @@ -123,8 +124,23 @@ std::unique_ptr<PendingChange> change(queue_.front()); queue_.pop_front(); + if (queue_.empty()) + { + emptied_.notify_all(); + } + return change.release(); } + + void WaitEmpty() + { + boost::mutex::scoped_lock lock(mutex_); + + while (!queue_.empty()) + { + emptied_.wait(lock); + } + } }; @@ -198,6 +214,10 @@ if (changeType == OrthancPluginChangeType_OrthancStopped) { + // If stopping, make sure to have processed all the events that + // are pending in the queue before returning (new in 3.4) + pendingChanges_.WaitEmpty(); + StopThread(); }