[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