[meego-commits] 14924: Changes to devel:packagemanagement/PackageKit

Zhang Qiang no_reply at build.meego.com
Thu Mar 17 08:58:01 UTC 2011


Hi,
I have made the following changes to PackageKit in project devel:packagemanagement. Please review and accept ASAP.

Thank You,
Zhang Qiang

[This message was auto-generated]

---

Request #14924:

  submit:   home:xiaoqiang:branches:devel:packagemanagement/PackageKit(r8)(cleanup) -> devel:packagemanagement/PackageKit


Message:
    a

State:   new          2011-03-17T01:57:59 xiaoqiang
Comment: None



changes files:
--------------
--- PackageKit.changes
+++ PackageKit.changes
@@ -0,0 +1,3 @@
+* Thu Mar 17 2011 Zhang Qiang<qiang.z.zhang at intel.com> - 0.6.11
+- Add 0024-untrust-packages-install-support.patch
+

new:
----
  0024-untrust-packages-install-support.patch

spec files:
-----------
--- PackageKit.spec
+++ PackageKit.spec
@@ -36,6 +36,7 @@
 Patch21:  0021-zypp-support-cancel.patch
 Patch22:  0022-debuginfo-install.patch
 Patch23:  0023-Add-repo-validation-check.patch
+Patch24:  0024-untrust-packages-install-support.patch
 
 Requires: PackageKit-zypp = %{version}-%{release}
 Requires: shared-mime-info
@@ -278,8 +279,17 @@
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
+%patch24 -p1
 
 %build
+MOZ_OPT_FLAGS=$(echo $RPM_OPT_FLAGS | %{__sed} -e 's/-O2//' -e 's/-Wall//' -e 's/-Os//')
+export RPM_OPT_FLAGS=$MOZ_OPT_FLAGS
+
+MOZ_OPT_FLAGS=$(echo $CFLAGS| %{__sed} -e 's/-O2//' -e 's/-Wall//' -e 's/-Os//')
+export CFLAGS=$MOZ_OPT_FLAGS
+
+MOZ_OPT_FLAGS=$(echo $CXXFLAGS| %{__sed} -e 's/-O2//' -e 's/-Wall//' -e 's/-Os//')
+export CXXFLAGS=$MOZ_OPT_FLAGS
 %configure \
 	--disable-static \
 	--enable-zypp \

other changes:
--------------

++++++ 0021-zypp-support-cancel.patch
--- 0021-zypp-support-cancel.patch
+++ 0021-zypp-support-cancel.patch
@@ -1,6 +1,6 @@
 diff -uNr PackageKit-0.6.11/backends/zypp/pk-backend-zypp.cpp PackageKit-0.6.11.new/backends/zypp/pk-backend-zypp.cpp
---- PackageKit-0.6.11/backends/zypp/pk-backend-zypp.cpp	2011-03-09 14:05:27.253394040 +0800
-+++ PackageKit-0.6.11.new/backends/zypp/pk-backend-zypp.cpp	2011-03-09 11:20:30.056518822 +0800
+--- PackageKit-0.6.11/backends/zypp/pk-backend-zypp.cpp	2011-03-17 16:35:46.209456570 +0800
++++ PackageKit-0.6.11.new/backends/zypp/pk-backend-zypp.cpp	2011-03-17 16:36:11.808456715 +0800
 @@ -24,6 +24,8 @@
  #include <pk-backend.h>
  #include <pk-backend-spawn.h>
@@ -227,8 +227,8 @@
  }
  
 diff -uNr PackageKit-0.6.11/backends/zypp/zypp-events.h PackageKit-0.6.11.new/backends/zypp/zypp-events.h
---- PackageKit-0.6.11/backends/zypp/zypp-events.h	2011-03-09 14:05:27.254393805 +0800
-+++ PackageKit-0.6.11.new/backends/zypp/zypp-events.h	2011-03-09 14:04:02.423519047 +0800
+--- PackageKit-0.6.11/backends/zypp/zypp-events.h	2011-03-17 16:35:46.209456570 +0800
++++ PackageKit-0.6.11.new/backends/zypp/zypp-events.h	2011-03-17 16:36:11.809456701 +0800
 @@ -50,6 +50,8 @@
  }
  */
@@ -311,8 +311,8 @@
  	}
  
 diff -uNr PackageKit-0.6.11/backends/zypp/zypp-utils.cpp PackageKit-0.6.11.new/backends/zypp/zypp-utils.cpp
---- PackageKit-0.6.11/backends/zypp/zypp-utils.cpp	2011-03-09 14:05:27.255393766 +0800
-+++ PackageKit-0.6.11.new/backends/zypp/zypp-utils.cpp	2011-03-09 11:19:03.918393757 +0800
+--- PackageKit-0.6.11/backends/zypp/zypp-utils.cpp	2011-03-17 16:35:46.240398663 +0800
++++ PackageKit-0.6.11.new/backends/zypp/zypp-utils.cpp	2011-03-17 16:37:09.483581645 +0800
 @@ -24,6 +24,9 @@
  
  #include <sstream>
@@ -323,7 +323,15 @@
  #include <glib.h>
  #include <glib/gstdio.h>
  #include <glib/gi18n.h>
-@@ -60,6 +63,8 @@
+@@ -41,6 +44,7 @@
+ #include <zypp/parser/ParseException.h>
+ #include <zypp/base/Algorithm.h>
+ #include <zypp/Pathname.h>
++#include <zypp/FileChecker.h>
+ #include <zypp/Patch.h>
+ #include <zypp/Package.h>
+ #include <zypp/sat/Pool.h>
+@@ -60,6 +64,8 @@
  
  gchar * _repoName;
  gboolean _updating_self = FALSE;
@@ -332,7 +340,7 @@
  /**
   * Collect items, select best edition.  This is used to find the best
   * available or installed.  The name of the class is a bit misleading though ...
-@@ -1002,59 +1007,105 @@
+@@ -1002,59 +1008,118 @@
  				g_free (eula_id);
  			}
  		}
@@ -391,19 +399,42 @@
 -					tmpmsg = emsg;
 -					emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
 -					g_free (tmpmsg);
+-				}
 +			signal(SIGINT,SIG_DFL);
-+			int ret = 0;
-+
-+			// Perform the installation
-+			zypp::ZYppCommitPolicy policy;
-+			policy.restrictToMedia (0); // 0 == install all packages regardless to media
-+			policy.downloadMode (zypp::DownloadInHeaps);
-+			policy.syncPoolAfterCommit (true);
-+
-+			zypp::ZYppCommitResult result = zypp->commit (policy);
-+
++			zypp::ZYppCommitResult result;
++			try 
++			{
++				// Perform the installation
++				zypp::ZYppCommitPolicy policy;
++				policy.restrictToMedia (0); // 0 == install all packages regardless to media
++				policy.downloadMode (zypp::DownloadInHeaps);
++				policy.syncPoolAfterCommit (true);
++				result = zypp->commit (policy);
++			} catch ( const zypp::FileCheckException & e ) {
++				gchar *msg = new gchar [e.asUserString().size () + 32];
++				if (e.asUserString().find ("Public key is unavailable") != std::string::npos)
++					sprintf (msg, "\nTransaction Error:%d:%s\n", PK_ERROR_ENUM_MISSING_GPG_SIGNATURE, e.asUserString().c_str());
++				else
++					sprintf (msg, "\nTransaction Error:%d:%s\n", PK_ERROR_ENUM_BAD_GPG_SIGNATURE, e.asUserString().c_str());
++				write (read_from_child_fd, msg, strlen (msg));
++				g_free (msg);
++			} catch ( const zypp::Exception & e ){
++				gchar *msg = new gchar [e.asUserString().size () + 32];
++				sprintf (msg, "\nTransaction Error:%d:%s\n", PK_ERROR_ENUM_TRANSACTION_ERROR, e.asUserString().c_str());
++				write (read_from_child_fd, msg, strlen (msg));
++				g_free (msg);
+ 			}
++			
 +			if(!result._errors.empty () || !result._remaining.empty () || !result._srcremaining.empty ()){
-+
+ 
+-			zypp::ZYppCommitResult::PoolItemList srcremaining = result._srcremaining;
+-			for (zypp::ZYppCommitResult::PoolItemList::iterator it = srcremaining.begin (); it != srcremaining.end (); it++){
+-				if (emsg == NULL) {
+-					emsg = g_strdup ((*it)->name ().c_str ());
+-				} else {
+-					tmpmsg = emsg;
+-					emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
+-					g_free (tmpmsg);
 +				zypp::ZYppCommitResult::PoolItemList errors = result._errors;
 +				gchar *emsg = NULL, *tmpmsg = NULL;
 +
@@ -415,17 +446,8 @@
 +						emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
 +						g_free (tmpmsg);
 +					}
- 				}
--			}
- 
--			zypp::ZYppCommitResult::PoolItemList srcremaining = result._srcremaining;
--			for (zypp::ZYppCommitResult::PoolItemList::iterator it = srcremaining.begin (); it != srcremaining.end (); it++){
--				if (emsg == NULL) {
--					emsg = g_strdup ((*it)->name ().c_str ());
--				} else {
--					tmpmsg = emsg;
--					emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
--					g_free (tmpmsg);
++				}
++
 +				zypp::ZYppCommitResult::PoolItemList remaining = result._remaining;
 +				for (zypp::ZYppCommitResult::PoolItemList::iterator it = remaining.begin (); it != remaining.end (); it++){
 +					if (emsg == NULL) {
@@ -435,7 +457,7 @@
 +						emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
 +						g_free (tmpmsg);
 +					}
- 				}
++				}
 +
 +				zypp::ZYppCommitResult::PoolItemList srcremaining = result._srcremaining;
 +				for (zypp::ZYppCommitResult::PoolItemList::iterator it = srcremaining.begin (); it != srcremaining.end (); it++){
@@ -446,7 +468,7 @@
 +						emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
 +						g_free (tmpmsg);
 +					}
-+				}
+ 				}
 +
 +				pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR,
 +						"Transaction could not be completed.\n Theses packages could not be installed: %s",
@@ -461,16 +483,15 @@
 -					"Transaction could not be completed.\n Theses packages could not be installed: %s",
 -					emsg);
 +		fcntl(readFromChildFD[0], F_SETFL, O_NONBLOCK);
++		int res;
++		while (waitpid(m_child_pid, &res, WNOHANG) == 0) {
++			process_msg_from_child(backend, readFromChildFD[0], writeToChildFD[1]);
++		}
++		m_child_pid = 0;
  
 -			g_free (emsg);
 -			goto exit;
 -                }
-+		int ret;
-+		while (waitpid(m_child_pid, &ret, WNOHANG) == 0) {
-+			process_msg_from_child(backend, readFromChildFD[0], writeToChildFD[1]);
-+		}
-+		m_child_pid = 0;
-+
 +		close(readFromChildFD[0]);
 +		close(readFromChildFD[1]);
 +		close(writeToChildFD[0]);
@@ -478,7 +499,7 @@
  
  		ret = TRUE;
          } catch (const zypp::repo::RepoNotFoundException &ex) {
-@@ -1281,3 +1332,91 @@
+@@ -1281,3 +1346,95 @@
  
  	return TRUE;
  }
@@ -515,6 +536,10 @@
 +			return PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
 +		case 10:
 +			return PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
++		case 30:
++			return PK_ERROR_ENUM_BAD_GPG_SIGNATURE;
++		case 31:
++			return PK_ERROR_ENUM_MISSING_GPG_SIGNATURE;
 +		default:
 +			return PK_ERROR_ENUM_UNKNOWN;
 +
@@ -571,8 +596,8 @@
 +	}
 +}
 diff -uNr PackageKit-0.6.11/backends/zypp/zypp-utils.h PackageKit-0.6.11.new/backends/zypp/zypp-utils.h
---- PackageKit-0.6.11/backends/zypp/zypp-utils.h	2011-03-09 14:05:27.256393760 +0800
-+++ PackageKit-0.6.11.new/backends/zypp/zypp-utils.h	2011-03-09 11:19:03.919393738 +0800
+--- PackageKit-0.6.11/backends/zypp/zypp-utils.h	2011-03-17 16:35:46.240398663 +0800
(15 more lines skipped)

++++++ 0024-untrust-packages-install-support.patch (new)
--- 0024-untrust-packages-install-support.patch
+++ 0024-untrust-packages-install-support.patch
+diff -uNr PackageKit-0.6.11/backends/zypp/zypp-utils.cpp PackageKit-0.6.11.new/backends/zypp/zypp-utils.cpp
+--- PackageKit-0.6.11/backends/zypp/zypp-utils.cpp	2011-03-17 16:00:28.924456241 +0800
++++ PackageKit-0.6.11.new/backends/zypp/zypp-utils.cpp	2011-03-17 16:09:10.550519008 +0800
+@@ -1062,10 +1062,13 @@
+ 			try 
+ 			{
+ 				// Perform the installation
++				gboolean only_trusted = pk_backend_get_bool (backend, "only_trusted");
+ 				zypp::ZYppCommitPolicy policy;
+ 				policy.restrictToMedia (0); // 0 == install all packages regardless to media
+ 				policy.downloadMode (zypp::DownloadInHeaps);
+ 				policy.syncPoolAfterCommit (true);
++				if (only_trusted == FALSE)
++					policy.rpmNoSignature(true);
+ 				result = zypp->commit (policy);
+ 			} catch ( const zypp::FileCheckException & e ) {
+ 				gchar *msg = new gchar [e.asUserString().size () + 32];




More information about the MeeGo-commits mailing list