Imported Upstream version 17.28.4 upstream/17.28.4
authorJinWang An <jinwang.an@samsung.com>
Mon, 27 Dec 2021 00:31:39 +0000 (09:31 +0900)
committerJinWang An <jinwang.an@samsung.com>
Mon, 27 Dec 2021 00:31:39 +0000 (09:31 +0900)
CMakeLists.txt
VERSION.cmake
package/libzypp.changes
po/id.po
zypp-core/zyppng/base/statemachine.h
zypp/ZConfig.cc

index 0e20756..973687d 100644 (file)
@@ -87,8 +87,8 @@ SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -fno-strict-aliasing -fPIC -g
 
 SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility-inlines-hidden -Woverloaded-virtual -Wnon-virtual-dtor" )
 
-set( CMAKE_C_FLAGS_RELEASE     "${CMAKE_C_FLAGS} -O3 -DZYPP_NDEBUG" )
-set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -DZYPP_NDEBUG" )
+set( CMAKE_C_FLAGS_RELEASE     "${CMAKE_C_FLAGS} -O3 -DZYPP_NDEBUG -DNDEBUG" )
+set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -DZYPP_NDEBUG -DNDEBUG" )
 
 IF(${CC_FORMAT_SECURITY})
   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=format-security")
index ff05651..73b48d4 100644 (file)
@@ -61,8 +61,8 @@
 SET(LIBZYPP_MAJOR "17")
 SET(LIBZYPP_COMPATMINOR "22")
 SET(LIBZYPP_MINOR "28")
-SET(LIBZYPP_PATCH "3")
+SET(LIBZYPP_PATCH "4")
 #
-# LAST RELEASED: 17.28.3 (22)
+# LAST RELEASED: 17.28.4 (22)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
index 2e4ec0b..1a8d968 100644 (file)
@@ -1,4 +1,17 @@
 -------------------------------------------------------------------
+Fri Sep 17 10:41:56 CEST 2021 - ma@suse.de
+
+- Make sure to keep states alives while transitioning
+  (bsc#1190199)
+- May set techpreview variables for testing in /etc/zypp/zypp.conf.
+  If environment variables are unhandy one may enable the desired
+  techpreview in zypp.conf as well:
+    [main]
+    techpreview.ZYPP_SINGLE_RPMTRANS=1
+    techpreview.ZYPP_MEDIANETWORK=1
+- version 17.28.4 (22)
+
+-------------------------------------------------------------------
 Fri Sep  3 14:34:19 CEST 2021 - ma@suse.de
 
 - CMake/spec: Add option to force SINGLE_RPMTRANS as default for
index 6c2305d..ce1d131 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: YaST (@memory@)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-07-26 11:04+0200\n"
-"PO-Revision-Date: 2021-06-17 15:58+0000\n"
+"PO-Revision-Date: 2021-09-04 16:11+0000\n"
 "Last-Translator: Kukuh Syafaat <syafaatkukuh@gmail.com>\n"
 "Language-Team: Indonesian <https://l10n.opensuse.org/projects/libzypp/master/"
 "id/>\n"
@@ -18,7 +18,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.6.2\n"
+"X-Generator: Weblate 4.7.1\n"
 
 #: zypp/CountryCode.cc:50
 msgid "Unknown country: "
@@ -5088,6 +5088,8 @@ msgid ""
 "install %1% from vendor %2%\n"
 "  replacing %3% from vendor %4%"
 msgstr ""
+"pasang %1% dari vendor %2%\n"
+"  menggantikan %3% dari vendor %4%"
 
 #: zypp/solver/detail/SATResolver.cc:1507
 #, boost-format
@@ -5147,7 +5149,7 @@ msgstr "Pesan baru"
 
 #: zypp/target/TargetImpl.cc:2619
 msgid "Executing the transaction failed because of the following problems:"
-msgstr ""
+msgstr "Mengeksekusi transaksi gagal karena masalah berikut:"
 
 #. TranslatorExplanation after semicolon is error message
 #. TranslatorExplanation the colon is followed by an error message
@@ -5420,11 +5422,11 @@ msgstr "Perintah berhenti dengan galat yang tidak diketahui."
 #: zypp-core/zyppng/io/forkspawnengine.cc:111
 #: zypp-core/zyppng/io/forkspawnengine.cc:359
 msgid "Invalid spawn arguments given."
-msgstr ""
+msgstr "Argumen spawn yang diberikan tidak valid."
 
 #: zypp-core/zyppng/io/forkspawnengine.cc:174
 msgid "Unable to create control pipe."
-msgstr ""
+msgstr "Tidak dapat membuat pipa kontrol."
 
 #: zypp-core/zyppng/io/forkspawnengine.cc:240
 #, c-format, boost-format
@@ -5456,22 +5458,22 @@ msgstr "Tidak dapat melakukan fork (%s)."
 #: zypp-core/zyppng/io/forkspawnengine.cc:306
 #, c-format, boost-format
 msgid "Can't exec '%s', chdir failed (%s)."
-msgstr ""
+msgstr "Tak bisa eksekusi '%s', chdir gagal (%s)."
 
 #: zypp-core/zyppng/io/forkspawnengine.cc:309
 #, c-format, boost-format
 msgid "Can't exec '%s', chroot failed (%s)."
-msgstr ""
+msgstr "Tak bisa eksekusi '%s', chroot gagal (%s)."
 
 #: zypp-core/zyppng/io/forkspawnengine.cc:312
 #, c-format, boost-format
 msgid "Can't exec '%s', exec failed (%s)."
-msgstr ""
+msgstr "Tak bisa eksekusi '%s', eksekusi gagal (%s)."
 
 #: zypp-core/zyppng/io/forkspawnengine.cc:316
 #, c-format, boost-format
 msgid "Can't exec '%s', unexpected error."
-msgstr ""
+msgstr "Tak bisa eksekusi '%s', kesalahan tak terduga."
 
 #~ msgid "%s does not belong to a distupgrade repository"
 #~ msgstr "%s bukan milik repositori distupgrade"
index 2735db0..28361bd 100644 (file)
@@ -56,11 +56,15 @@ namespace zyppng {
       static constexpr bool isFinal = State::isFinal;
 
       void enter( ) {
-        return _ptr->enter( );
+        // keep the pointer around, for we might transition to the next state immediately
+        auto keepAlive = _ptr;
+        return keepAlive->enter( );
       }
 
       void exit( ) {
-        return _ptr->exit( );
+        // keep the pointer around, for we might transition to the next state immediately
+        auto keepAlive = _ptr;
+        return keepAlive->exit( );
       }
 
       std::shared_ptr<State> wrappedState () {
@@ -381,6 +385,7 @@ namespace zyppng {
         if ( _state.index() == 0 || _isInFinalState ) {
           _previousState.reset();
           _isInFinalState = false;
+          _emittedFinalSig = false;
           enterState( FState( static_cast<Derived &>(*this) ) );
         }
       }
@@ -500,6 +505,7 @@ namespace zyppng {
         // handle final state things
         if constexpr ( NewState::isFinal ) {
           _isInFinalState = true;
+          _emittedFinalSig = false;
         }
 
         // let the outside world know whats going on
@@ -508,8 +514,12 @@ namespace zyppng {
         // call enter on the state as the last thing to do, it might emit a transition event right away
         std::get< std::decay_t<NewState> >( _state ).enter();
 
-        if ( _isInFinalState )
+        // emit the final signal, but only if it was not already emitted by a subsequent transition
+        if ( _isInFinalState && !_emittedFinalSig ) {
+          _emittedFinalSig = true;
           _sigFinished.emit();
+        }
+          
       }
 
       template <typename State, typename Transition>
@@ -544,6 +554,7 @@ namespace zyppng {
 
     private:
       bool _isInFinalState = false;
+      bool _emittedFinalSig = false; //< Flag to make sure the finished signals is only emitted once
       Signal <void ( StateId )> _sigStateChanged;
       Signal <void ()> _sigFinished;
       StateSet _state = _InitialState();
index 8c371e2..1aba37a 100644 (file)
@@ -602,6 +602,16 @@ namespace zypp
                 {
                   credentials_global_file_path = Pathname(value);
                 }
+                else if ( entry == "techpreview.ZYPP_SINGLE_RPMTRANS" )
+               {
+                 DBG << "techpreview.ZYPP_SINGLE_RPMTRANS=" << value << endl;
+                 ::setenv( "ZYPP_SINGLE_RPMTRANS", value.c_str(), 1 );
+               }
+                else if ( entry == "techpreview.ZYPP_MEDIANETWORK" )
+               {
+                 DBG << "techpreview.ZYPP_MEDIANETWORK=" << value << endl;
+                 ::setenv( "ZYPP_MEDIANETWORK", value.c_str(), 1 );
+               }
               }
             }
           }