#1150489 robotraconteur: FTBFS on armhf: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?

#1150489#5
Date:
2026-10-10 07:24:19 UTC
From:
To:
Source: robotraconteur
Version: 1.2.8-1
Severity: serious
Tags: ftbfs
Justification: fails to build from source (but built successfully in the past)
X-Debbugs-Cc: debian-arm@lists.debian.org, sramacher@debian.org
User: debian-arm@lists.debian.org
Usertags: armhf

Dear maintainer,

robotraconteur FTBFS on armhf:

[  4%] Building CXX object RobotRaconteurCore/CMakeFiles/RobotRaconteurCore.dir/src/AutoResetEvent.cpp.o
cd /build/reproducible-path/robotraconteur-1.2.8/obj-arm-linux-gnueabihf/RobotRaconteurCore && /usr/bin/arm-linux-gnueabihf-g++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_DYN_LINK -DBOOST_CHRONO_NO_LIB -DBOOST_CONTAINER_DYN_LINK -DBOOST_CONTAINER_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_DATE_TIME_NO_LIB -DBOOST_EXCEPTION_NO_LIB=1 -DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_RANDOM_DYN_LINK -DBOOST_RANDOM_NO_LIB -DBOOST_REGEX_DYN_LINK -DBOOST_REGEX_NO_LIB -DBOOST_THREAD_DYN_LINK -DBOOST_THREAD_NO_LIB -DBOOST_THREAD_USE_DLL -DROBOTRACONTEUR_CORE_EXPORTS -DROBOTRACONTEUR_USE_OPENSSL -DRobotRaconteurCore_EXPORTS -I/usr/include/dbus-1.0 -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/libusb-1.0 -I/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include -g -O2 -ffile-prefix-map=/build/reproducible-path/robotraconteur-1.2.8=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fPIC -MD -MT RobotRaconteurCore/CMakeFiles/RobotRaconteurCore.dir/src/AutoResetEvent.cpp.o -MF CMakeFiles/RobotRaconteurCore.dir/src/AutoResetEvent.cpp.o.d -o CMakeFiles/RobotRaconteurCore.dir/src/AutoResetEvent.cpp.o -c /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/src/AutoResetEvent.cpp
In file included from /usr/include/boost/intrusive_ptr.hpp:16,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/RobotRaconteurConfig.h:40,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/Error.h:25,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:36,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/RobotRaconteurNode.h:26,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/ASIOStreamBaseTransport.h:24,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/src/ASIOStreamBaseTransport.cpp:19:
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<char>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:471:118:   required from here
  471 |     static RR_INTRUSIVE_PTR<RRValue> PrePack(boost::string_ref val) { return rr_cast<RRValue>(stringToRRArray(val)); }
      |                                                                                                                      ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
In file included from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:54:
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<double>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:499:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<float>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:500:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<signed char>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:502:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<unsigned char>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:503:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<short int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:504:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<short unsigned int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:505:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:506:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<unsigned int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:507:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<long long int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:508:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<long long unsigned int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:509:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<RobotRaconteur::cdouble>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:511:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<RobotRaconteur::cfloat>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:512:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<RobotRaconteur::rr_bool>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:513:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/intrusive_ptr.hpp:16,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/RobotRaconteurConfig.h:40,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/Error.h:25,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:36,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/AutoResetEvent.h:26,
                 from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/src/AutoResetEvent.cpp:19:
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<char>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:471:118:   required from here
  471 |     static RR_INTRUSIVE_PTR<RRValue> PrePack(boost::string_ref val) { return rr_cast<RRValue>(stringToRRArray(val)); }
      |                                                                                                                      ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
In file included from /build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:54:
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<double>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:499:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<float>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:500:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<signed char>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:502:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<unsigned char>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:503:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<short int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:504:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<short unsigned int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:505:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:506:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<unsigned int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:507:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<long long int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:508:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<long long unsigned int>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:509:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<RobotRaconteur::cdouble>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:511:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<RobotRaconteur::cfloat>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:512:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/smart_ptr/intrusive_ptr.hpp: In instantiation of ‘constexpr boost::intrusive_ptr<T>::~intrusive_ptr() [with T = RobotRaconteur::RRArray<RobotRaconteur::rr_bool>]’:
/build/reproducible-path/robotraconteur-1.2.8/RobotRaconteurCore/include/RobotRaconteur/DataTypes.h:513:1:   required from here
  490 |         static RR_INTRUSIVE_PTR<RRArray<x> > PrePack(const x& val) { return ScalarToRRArray(val); }                    \
      |                                                                                                   ^
/usr/include/boost/smart_ptr/intrusive_ptr.hpp:76:44: error: ‘intrusive_ptr_release’ was not declared in this scope; did you mean ‘boost::sp_adl_block::intrusive_ptr_release’?
   76 |         if( px != 0 ) intrusive_ptr_release( px );
      |                       ~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                       boost::sp_adl_block::intrusive_ptr_release
/usr/include/boost/smart_ptr/intrusive_ref_counter.hpp:169:13: note: ‘boost::sp_adl_block::intrusive_ptr_release’ declared here
  169 | inline void intrusive_ptr_release(const intrusive_ref_counter< DerivedT, CounterPolicyT >* p) noexcept
      |             ^~~~~~~~~~~~~~~~~~~~~
make[4]: *** [RobotRaconteurCore/CMakeFiles/RobotRaconteurCore.dir/build.make:96: RobotRaconteurCore/CMakeFiles/RobotRaconteurCore.dir/src/AutoResetEvent.cpp.o] Error 1
make[4]: *** Waiting for unfinished jobs....

See
https://buildd.debian.org/status/fetch.php?pkg=robotraconteur&arch=armhf&ver=1.2.8-1%2Bb1&stamp=1791428151&raw=0
for details.

Cheers

#1150489#10
Date:
2026-10-18 20:44:12 UTC
From:
To:
Hi Sebastian,

Thanks for the report. This is fixed in upstream release 1.2.9.

The cause was that Boost 1.92 makes the intrusive_ptr destructor
constexpr, so it is instantiated where RR_INTRUSIVE_PTR<RRArray<T> >
is first used. Several inline RRPrimUtil members in DataTypes.h used
it before RRArray was complete, so ADL could not find
intrusive_ptr_release there. Upstream moved those definitions after
RRArray:

https://github.com/robotraconteur/robotraconteur/pull/476

I reproduced the failure in an armhf sid build with the buildd flags
(on arm64 hardware) and confirmed that 1.2.9 builds there.
robotraconteur 1.2.9-1 has been uploaded to mentors.debian.net and is
waiting for a sponsor:

https://mentors.debian.net/package/robotraconteur/

Thanks,
John

#1150489#15
Date:
2026-10-18 20:44:12 UTC
From:
To:
Hi Sebastian,

Thanks for the report. This is fixed in upstream release 1.2.9.

The cause was that Boost 1.92 makes the intrusive_ptr destructor
constexpr, so it is instantiated where RR_INTRUSIVE_PTR<RRArray<T> >
is first used. Several inline RRPrimUtil members in DataTypes.h used
it before RRArray was complete, so ADL could not find
intrusive_ptr_release there. Upstream moved those definitions after
RRArray:

https://github.com/robotraconteur/robotraconteur/pull/476

I reproduced the failure in an armhf sid build with the buildd flags
(on arm64 hardware) and confirmed that 1.2.9 builds there.
robotraconteur 1.2.9-1 has been uploaded to mentors.debian.net and is
waiting for a sponsor:

https://mentors.debian.net/package/robotraconteur/

Thanks,
John

#1150489#20
Date:
2026-10-20 19:50:35 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
robotraconteur, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1150489@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
John Wason <wason@wasontech.com> (supplier of updated robotraconteur package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sun, 18 Oct 2026 00:12:40 -0400
Source: robotraconteur
Architecture: source
Version: 1.2.9-1
Distribution: unstable
Urgency: medium
Maintainer: John Wason <wason@wasontech.com>
Changed-By: John Wason <wason@wasontech.com>
Closes: 1140417 1150489
Changes:
 robotraconteur (1.2.9-1) unstable; urgency=medium
 .
   * New upstream version 1.2.9
     - Fix FTBFS with Boost 1.92 due to intrusive_ptr_release ADL lookup
       failing in constexpr intrusive_ptr destructor (Closes: #1150489)
     - Fix FTBFS with OpenSSL 4.0 (Closes: #1140417)
     - Fix FTBFS with SWIG 4.5, which removed PyInt_AsLong
     - Fix generator server sending duplicate error responses
     - Load libusb, libdbus and libbluetooth by runtime SONAME so the
       development packages are not needed at runtime
     - Discover Linux hardware transport devices from misc-class drivers
Checksums-Sha1:
 329aa4c6a0263fb5a220fa815a28f327e788b1a5 2581 robotraconteur_1.2.9-1.dsc
 205ac1622554110671463ef685778f78ffe836fb 11808698 robotraconteur_1.2.9.orig.tar.gz
 377536e30dffb5e99539204e4cffd55c1a506377 4556 robotraconteur_1.2.9-1.debian.tar.xz
 ba3cf2c09a554fc7d4b432586c5d393c6ea8acad 9138 robotraconteur_1.2.9-1_source.buildinfo
Checksums-Sha256:
 c28d33e0796237ff26f651aac14a160d1e558e5a9622368207fa686c2f2d456a 2581 robotraconteur_1.2.9-1.dsc
 62d880d63956aedac1bc3301662ea14055dc019f844b6b7de839f0cc95f8fcf8 11808698 robotraconteur_1.2.9.orig.tar.gz
 4a93e5c96c95bd14356ff90d8c6fb0a8333f59a545833a272a7c625f1a1a77a5 4556 robotraconteur_1.2.9-1.debian.tar.xz
 ec8d0be7e00d99eabf1b020fe8d39bae2b43e9505024cbd9fd1b8d1b6e5cc324 9138 robotraconteur_1.2.9-1_source.buildinfo
Files:
 0076f2f2b5509bfad32d9d9b675726e3 2581 libs optional robotraconteur_1.2.9-1.dsc
 3b98c92b05c4cd466bbeb3046f408bd7 11808698 libs optional robotraconteur_1.2.9.orig.tar.gz
 fe7b524e8783ee37fad53a70d040b4e1 4556 libs optional robotraconteur_1.2.9-1.debian.tar.xz
 5f3149b86a9ccbd3b6225b98c3eb5f93 9138 libs optional robotraconteur_1.2.9-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEXHq+og+GMEWcyMi14n8s+EWML6QFAmrXwloACgkQ4n8s+EWM
L6Q9/w/7BZL7Cvk28WxpY8pFedlkzwW+PCyFiTDdtY8X9OqyWuCg1Bw4T8p1Rb3+
nCkoUsLvRdUmBanmfcnh08F6tP3a/N4PyoB2enH3x+XI0b0/y1KIVAMtoKFPf41F
fgYTIgFeN5Q2Eqehq2A8sI0No3ZFkQMMWFpB6Zmyh3egc2jChNbLu/xy2+PWOOuf
onxWbCrp3KGf4GhbxWdoMQMHJOHlZn3CW9yVjgyTQnaklKDI3ABOmEEUVwqB4KCU
g8iT+oxxLxv6zYEd4ZpC3AsEdPtblvU8az3coIt1c4lQOp21f6bA0+GZCGbna9/x
3k9Rws+N1ZWfgqlPbzP2W/846xrlNCf3u5MV/e5fMQa75lbtsrUoVLPbhLSPBKqx
9mCPC7aFERvhcpkzsg9XjFp/4+Fm8LTpWjQ4AzwMMGNHFhRBju343jRkELTvW1Pf
cX3DZ28e/tWkG8vb1DV0UbE6EVeu7bB3y0axTFBWzF+9KXkIXNSo8IgRV606/1sj
27MNMWpnbTiaret7a1qmdLGkZAzs3w0/AYNLX/tJcmiCBciXrEIqllr2ZaXRrZt+
FQqy78n2dyiO0qOJz3bT1qrup0AFxEFvwL6AGbb0Gw/W2agL8pjwll06ITM8YLY/
wotS9JiAjzatXeOpOYZdCQLme7aV1jmfJNvvEXVU22r4GC1eEYI=
=Sp1/
-----END PGP SIGNATURE-----