Change-Id: I3185248d939d9a0e55e6562c51f70d47bf32d2c1
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/4008
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Xiaolin Li <xiaolinl@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
... | ... |
@@ -4,7 +4,7 @@ |
4 | 4 |
Summary: dnf/yum equivalent using C libs |
5 | 5 |
Name: tdnf |
6 | 6 |
Version: 1.2.2 |
7 |
-Release: 1%{?dist} |
|
7 |
+Release: 2%{?dist} |
|
8 | 8 |
Vendor: VMware, Inc. |
9 | 9 |
Distribution: Photon |
10 | 10 |
License: LGPLv2.1,GPLv2 |
... | ... |
@@ -27,6 +27,7 @@ Source1: cache-updateinfo |
27 | 27 |
Source2: cache-updateinfo.service |
28 | 28 |
Source3: cache-updateinfo.timer |
29 | 29 |
Source4: updateinfo.sh |
30 |
+Patch0: tdnf_fix_protected_pkgs_in_obsolete.patch |
|
30 | 31 |
|
31 | 32 |
%description |
32 | 33 |
tdnf is a yum/dnf equivalent |
... | ... |
@@ -50,6 +51,7 @@ Library providing cli libs for tdnf like clients. |
50 | 50 |
|
51 | 51 |
%prep |
52 | 52 |
%setup -q |
53 |
+%patch0 -p1 |
|
53 | 54 |
|
54 | 55 |
|
55 | 56 |
%build |
... | ... |
@@ -152,6 +154,8 @@ systemctl try-restart tdnf-cache-updateinfo.timer >/dev/null 2>&1 || : |
152 | 152 |
%{_libdir}/libtdnfcli.so.* |
153 | 153 |
|
154 | 154 |
%changelog |
155 |
+* Tue Oct 10 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.2.2-2 |
|
156 |
+- Fix bug in obsolete protected packages. |
|
155 | 157 |
* Wed Oct 4 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.2.2-1 |
156 | 158 |
- update to v1.2.2 |
157 | 159 |
* Sat Sep 30 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.2.1-5 |
158 | 160 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,137 @@ |
0 |
+From 303b82ea727841e5bd6f3013436e9091f8d2fc64 Mon Sep 17 00:00:00 2001 |
|
1 |
+From: Priyesh Padmavilasom <ppadmavilasom@vmware.com> |
|
2 |
+Date: Tue, 10 Oct 2017 00:02:32 +0000 |
|
3 |
+Subject: [PATCH] add protected packages to obsoletes path |
|
4 |
+ |
|
5 |
+Change-Id: I599bee849b1dce3a744d2bf0db4bcf270df3df62 |
|
6 |
+(cherry picked from commit 771948ff1cdeb17ef508ac314fec4bc3605b3f79) |
|
7 |
+--- |
|
8 |
+ client/api.c | 14 ++----------- |
|
9 |
+ client/packageutils.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ |
|
10 |
+ client/prototypes.h | 5 +++++ |
|
11 |
+ client/remoterepo.c | 2 +- |
|
12 |
+ 4 files changed, 62 insertions(+), 13 deletions(-) |
|
13 |
+ |
|
14 |
+diff --git a/client/api.c b/client/api.c |
|
15 |
+index b03916a..e82501c 100644 |
|
16 |
+--- a/client/api.c |
|
17 |
+@@ -867,7 +867,6 @@ TDNFResolve( |
|
18 |
+ HyPackageList hPkgListGoal = NULL; |
|
19 |
+ |
|
20 |
+ PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo = NULL; |
|
21 |
+- PTDNF_PKG_INFO pPkgInfo = NULL; |
|
22 |
+ |
|
23 |
+ if(!pTdnf || !ppSolvedPkgInfo) |
|
24 |
+ { |
|
25 |
+@@ -916,17 +915,8 @@ TDNFResolve( |
|
26 |
+ pSolvedPkgInfo); |
|
27 |
+ BAIL_ON_TDNF_ERROR(dwError); |
|
28 |
+ |
|
29 |
+- pPkgInfo = pSolvedPkgInfo->pPkgsToRemove; |
|
30 |
+- while(pPkgInfo != NULL) |
|
31 |
+- { |
|
32 |
+- if(pPkgInfo->pszName != NULL && |
|
33 |
+- strcmp(pPkgInfo->pszName, TDNF_NAME) == 0) |
|
34 |
+- { |
|
35 |
+- dwError = ERROR_TDNF_SELF_ERASE; |
|
36 |
+- BAIL_ON_TDNF_ERROR(dwError); |
|
37 |
+- } |
|
38 |
+- pPkgInfo = pPkgInfo->pNext; |
|
39 |
+- } |
|
40 |
++ dwError = TDNFCheckProtectedPkgs(pSolvedPkgInfo); |
|
41 |
++ BAIL_ON_TDNF_ERROR(dwError); |
|
42 |
+ |
|
43 |
+ pSolvedPkgInfo->nNeedAction = |
|
44 |
+ pSolvedPkgInfo->pPkgsToInstall || |
|
45 |
+diff --git a/client/packageutils.c b/client/packageutils.c |
|
46 |
+index b2f6a82..6e3e09b 100644 |
|
47 |
+--- a/client/packageutils.c |
|
48 |
+@@ -1108,3 +1108,57 @@ TDNFAddPackagesForDowngrade( |
|
49 |
+ error: |
|
50 |
+ goto cleanup; |
|
51 |
+ } |
|
52 |
++ |
|
53 |
++uint32_t |
|
54 |
++TDNFHasProtectedPkgsInList( |
|
55 |
++ PTDNF_PKG_INFO pPkgInfo |
|
56 |
++ ) |
|
57 |
++{ |
|
58 |
++ uint32_t dwError = 0; |
|
59 |
++ |
|
60 |
++ if(!pPkgInfo) |
|
61 |
++ { |
|
62 |
++ dwError = ERROR_TDNF_INVALID_PARAMETER; |
|
63 |
++ BAIL_ON_TDNF_ERROR(dwError); |
|
64 |
++ } |
|
65 |
++ |
|
66 |
++ for(; pPkgInfo; pPkgInfo = pPkgInfo->pNext) |
|
67 |
++ { |
|
68 |
++ if(pPkgInfo->pszName && !strcmp(pPkgInfo->pszName, TDNF_NAME)) |
|
69 |
++ { |
|
70 |
++ dwError = ERROR_TDNF_SELF_ERASE; |
|
71 |
++ BAIL_ON_TDNF_ERROR(dwError); |
|
72 |
++ } |
|
73 |
++ } |
|
74 |
++error: |
|
75 |
++ return dwError; |
|
76 |
++} |
|
77 |
++ |
|
78 |
++uint32_t |
|
79 |
++TDNFCheckProtectedPkgs( |
|
80 |
++ PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo |
|
81 |
++ ) |
|
82 |
++{ |
|
83 |
++ uint32_t dwError = 0; |
|
84 |
++ |
|
85 |
++ if(!pSolvedPkgInfo) |
|
86 |
++ { |
|
87 |
++ dwError = ERROR_TDNF_INVALID_PARAMETER; |
|
88 |
++ BAIL_ON_TDNF_ERROR(dwError); |
|
89 |
++ } |
|
90 |
++ |
|
91 |
++ if(pSolvedPkgInfo->pPkgsToRemove) |
|
92 |
++ { |
|
93 |
++ dwError = TDNFHasProtectedPkgsInList(pSolvedPkgInfo->pPkgsToRemove); |
|
94 |
++ BAIL_ON_TDNF_ERROR(dwError); |
|
95 |
++ } |
|
96 |
++ |
|
97 |
++ if(pSolvedPkgInfo->pPkgsObsoleted) |
|
98 |
++ { |
|
99 |
++ dwError = TDNFHasProtectedPkgsInList(pSolvedPkgInfo->pPkgsObsoleted); |
|
100 |
++ BAIL_ON_TDNF_ERROR(dwError); |
|
101 |
++ } |
|
102 |
++ |
|
103 |
++error: |
|
104 |
++ return dwError; |
|
105 |
++} |
|
106 |
+diff --git a/client/prototypes.h b/client/prototypes.h |
|
107 |
+index f5cdb2e..4586d3b 100644 |
|
108 |
+--- a/client/prototypes.h |
|
109 |
+@@ -277,6 +277,11 @@ TDNFAddPackagesForDowngrade( |
|
110 |
+ HyPackageList hPkgListGoal |
|
111 |
+ ); |
|
112 |
+ |
|
113 |
++uint32_t |
|
114 |
++TDNFCheckProtectedPkgs( |
|
115 |
++ PTDNF_SOLVED_PKG_INFO pSolvedPkgInfo |
|
116 |
++ ); |
|
117 |
++ |
|
118 |
+ //goal.c |
|
119 |
+ uint32_t |
|
120 |
+ TDNFGoalGetResultsIgnoreNoData( |
|
121 |
+diff --git a/client/remoterepo.c b/client/remoterepo.c |
|
122 |
+index 946aafd..8011a38 100644 |
|
123 |
+--- a/client/remoterepo.c |
|
124 |
+@@ -197,7 +197,7 @@ TDNFDownloadFile( |
|
125 |
+ { |
|
126 |
+ uint32_t nCurlError = dwError - ERROR_TDNF_CURL_BASE; |
|
127 |
+ fprintf(stderr, |
|
128 |
+- "download error: %d - %s\n", |
|
129 |
++ "curl#%d: %s\n", |
|
130 |
+ nCurlError, |
|
131 |
+ curl_easy_strerror(nCurlError)); |
|
132 |
+ } |