Imported Upstream version 16.2.0 18/94718/1
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 1 Nov 2016 02:14:57 +0000 (11:14 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 1 Nov 2016 02:14:58 +0000 (11:14 +0900)
Change-Id: I19c91ad04e46d76e501931cc287acf877fbe3a5f
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
VERSION.cmake
package/libzypp.changes
po/ar.po
po/el.po
po/zh_CN.po
zypp/Product.cc
zypp/Product.h
zypp/misc/CheckAccessDeleted.cc
zypp/sat/Solvable.cc
zypp/sat/Solvable.h
zypp/sat/SolvableType.h

index 8068003..d557d52 100644 (file)
@@ -60,9 +60,9 @@
 #
 SET(LIBZYPP_MAJOR "16")
 SET(LIBZYPP_COMPATMINOR "0")
-SET(LIBZYPP_MINOR "1")
-SET(LIBZYPP_PATCH "3")
+SET(LIBZYPP_MINOR "2")
+SET(LIBZYPP_PATCH "0")
 #
-# LAST RELEASED: 16.1.3 (0)
+# LAST RELEASED: 16.2.0 (0)
 # (The number in parenthesis is LIBZYPP_COMPATMINOR)
 #=======
index c958b52..0b857ab 100644 (file)
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Mon Jul 18 16:36:25 CEST 2016 - ma@suse.de
+
+- Product: Offer tri-state hasEndOfLife details (FATE#320699)
+- version 16.2.0 (0)
+
+-------------------------------------------------------------------
 Thu Jul 14 19:02:57 CEST 2016 - ma@suse.de
 
 - use more user friendly command names for "zypper ps" (bsc#980541)
index e304164..2189f33 100644 (file)
--- a/po/ar.po
+++ b/po/ar.po
@@ -13,7 +13,7 @@ msgstr ""
 "Project-Id-Version: YaST (@memory@)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-07-11 15:29+0000\n"
+"PO-Revision-Date: 2016-07-17 10:30+0000\n"
 "Last-Translator: George Yacoub <george.yacoub@arabize.com>\n"
 "Language-Team: Arabic <https://l10n.opensuse.org/projects/libzypp/master/ar/>"
 "\n"
@@ -676,7 +676,7 @@ msgstr "افغانستان"
 #. :AFG:004:
 #: zypp/CountryCode.cc:161
 msgid "Antigua and Barbuda"
-msgstr "أنتيغوا و باربودا"
+msgstr "أنتيغوا وباربودا"
 
 #. :ATG:028:
 #: zypp/CountryCode.cc:162
index b46c1a6..b4c9171 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -19,7 +19,7 @@ msgstr ""
 "Project-Id-Version: zypp.el\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-07-10 23:49+0000\n"
+"PO-Revision-Date: 2016-07-16 11:02+0000\n"
 "Last-Translator: Michail Vourlakos <mvourlakos@gmail.com>\n"
 "Language-Team: Greek <https://l10n.opensuse.org/projects/libzypp/master/el/>"
 "\n"
@@ -4488,7 +4488,7 @@ msgstr "εγκαταστήσετε %s από το εξαιρετέο αποθε
 #: zypp/solver/detail/SATResolver.cc:1318
 #, c-format, boost-format
 msgid "downgrade of %s to %s"
-msgstr "υποβάθμιση του %s από %s"
+msgstr "υποβάθμιση του %s σε %s"
 
 #: zypp/solver/detail/SATResolver.cc:1325
 #, c-format, boost-format
index 5d6969f..9138a34 100644 (file)
@@ -12,8 +12,8 @@ msgstr ""
 "Project-Id-Version: YaST (@memory@)\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2016-05-03 15:55+0200\n"
-"PO-Revision-Date: 2016-07-11 10:37+0000\n"
-"Last-Translator: Raymond Wang <raymond.wang@lqs-lionbridge.com>\n"
+"PO-Revision-Date: 2016-07-15 02:47+0000\n"
+"Last-Translator: Emily Dong <Emily.Dong@excel-gits.com>\n"
 "Language-Team: Chinese (China) "
 "<https://l10n.opensuse.org/projects/libzypp/master/zh_CN/>\n"
 "Language: zh_CN\n"
@@ -125,7 +125,7 @@ msgstr " 执行失败"
 #: zypp/target/TargetImpl.cc:449
 #, c-format, boost-format
 msgid "%s already executed as %s)"
-msgstr "%s 早已作为 %s 执行了)"
+msgstr "%s 早已作为 %s 执行了"
 
 #: zypp/target/TargetImpl.cc:459
 msgid " execution skipped while aborting"
@@ -542,24 +542,24 @@ msgstr "命令退出,未知错误。"
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:116
 msgid "(does not expire)"
-msgstr "(未过期)"
+msgstr "(未过期)"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:125
 msgid "(EXPIRED)"
-msgstr "(已过期)"
+msgstr "(已过期)"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:129
 msgid "(expires within 24h)"
-msgstr "(24 小时内过期)"
+msgstr "(24 小时内过期)"
 
 #. translators: an annotation to a gpg keys expiry date
 #: zypp/PublicKey.cc:133
 #, c-format, boost-format
 msgid "(expires in %d day)"
 msgid_plural "(expires in %d days)"
-msgstr[0] "(%d 天后过期)"
+msgstr[0] "(%d 天后过期)"
 
 #: zypp/VendorSupportOptions.cc:14
 msgid "unknown"
@@ -824,7 +824,7 @@ msgstr "加拿大"
 #. :CAN:124:
 #: zypp/CountryCode.cc:195
 msgid "Cocos (Keeling) Islands"
-msgstr "科科斯 (基林) 群岛"
+msgstr "科科斯(基林)群岛"
 
 #. :CCK:166:
 #. :CAF:140:
@@ -980,7 +980,7 @@ msgstr "斐济"
 #. :FJI:242:
 #: zypp/CountryCode.cc:227
 msgid "Falkland Islands (Malvinas)"
-msgstr "福克兰群岛 (马尔维纳斯群岛)"
+msgstr "福克兰群岛(马尔维纳斯群岛)"
 
 #. :FLK:238:
 #: zypp/CountryCode.cc:228
@@ -1792,7 +1792,7 @@ msgstr "乌兹别克斯坦"
 #. :UZB:860:
 #: zypp/CountryCode.cc:390
 msgid "Holy See (Vatican City State)"
-msgstr "梵蒂冈 (梵蒂冈城国)"
+msgstr "梵蒂冈(梵蒂冈城国)"
 
 #. :VAT:336:
 #: zypp/CountryCode.cc:391
@@ -1896,7 +1896,7 @@ msgstr "阿地盖语"
 #. language code: afa
 #: zypp/LanguageCode.cc:173
 msgid "Afro-Asiatic (Other)"
-msgstr "亚非诸语言 (其它)"
+msgstr "亚非诸语言(其它)"
 
 #. language code: afh
 #: zypp/LanguageCode.cc:175
@@ -1951,7 +1951,7 @@ msgstr "阿姆哈拉语"
 #. language code: ang
 #: zypp/LanguageCode.cc:197
 msgid "English, Old (ca.450-1100)"
-msgstr "古代英语 (约 450-1100)"
+msgstr "古代英语(约 450-1100)"
 
 #. language code: apa
 #: zypp/LanguageCode.cc:199
@@ -1991,7 +1991,7 @@ msgstr "阿拉帕霍语"
 #. language code: art
 #: zypp/LanguageCode.cc:215
 msgid "Artificial (Other)"
-msgstr "人工语言 (其它)"
+msgstr "人工语言(其它)"
 
 #. language code: arw
 #: zypp/LanguageCode.cc:217
@@ -2086,7 +2086,7 @@ msgstr "巴萨语"
 #. language code: bat
 #: zypp/LanguageCode.cc:255
 msgid "Baltic (Other)"
-msgstr "波罗的海诸语言 (其它)"
+msgstr "波罗的海诸语言(其它)"
 
 #. language code: bej
 #: zypp/LanguageCode.cc:257
@@ -2111,7 +2111,7 @@ msgstr "孟加拉语"
 #. language code: ber
 #: zypp/LanguageCode.cc:265
 msgid "Berber (Other)"
-msgstr "柏柏尔语 (其它)"
+msgstr "柏柏尔语(其它)"
 
 #. language code: bho
 #: zypp/LanguageCode.cc:267
@@ -2146,7 +2146,7 @@ msgstr "西克西卡语"
 #. language code: bnt
 #: zypp/LanguageCode.cc:279
 msgid "Bantu (Other)"
-msgstr "班图语 (其它)"
+msgstr "班图语(其它)"
 
 #. language code: bos bs
 #: zypp/LanguageCode.cc:281
@@ -2166,7 +2166,7 @@ msgstr "布里多尼语"
 #. language code: btk
 #: zypp/LanguageCode.cc:287
 msgid "Batak (Indonesia)"
-msgstr "巴塔克语 (印度尼西亚)"
+msgstr "巴塔克语(印度尼西亚)"
 
 #. language code: bua
 #: zypp/LanguageCode.cc:289
@@ -2201,7 +2201,7 @@ msgstr "卡多语"
 #. language code: cai
 #: zypp/LanguageCode.cc:303
 msgid "Central American Indian (Other)"
-msgstr "中美洲印第安语 (其它)"
+msgstr "中美洲印第安语(其它)"
 
 #. language code: car
 #: zypp/LanguageCode.cc:305
@@ -2216,7 +2216,7 @@ msgstr "加泰罗尼亚语"
 #. language code: cau
 #: zypp/LanguageCode.cc:309
 msgid "Caucasian (Other)"
-msgstr "高加索语 (其它)"
+msgstr "高加索语(其它)"
 
 #. language code: ceb
 #: zypp/LanguageCode.cc:311
@@ -2321,17 +2321,17 @@ msgstr "科西嘉语"
 #. language code: cpe
 #: zypp/LanguageCode.cc:353
 msgid "Creoles and Pidgins, English-Based (Other)"
-msgstr "基于英语的克里奥尔语和皮钦语 (其它)"
+msgstr "基于英语的克里奥尔语和皮钦语(其它)"
 
 #. language code: cpf
 #: zypp/LanguageCode.cc:355
 msgid "Creoles and Pidgins, French-Based (Other)"
-msgstr "基于法语的克里奥尔语和皮钦语 (其它)"
+msgstr "基于法语的克里奥尔语和皮钦语(其它)"
 
 #. language code: cpp
 #: zypp/LanguageCode.cc:357
 msgid "Creoles and Pidgins, Portuguese-Based (Other)"
-msgstr "基于葡萄牙语的克里奥尔语和皮钦语 (其它)"
+msgstr "基于葡萄牙语的克里奥尔语和皮钦语(其它)"
 
 #. language code: cre cr
 #: zypp/LanguageCode.cc:359
@@ -2346,7 +2346,7 @@ msgstr "克里米亚鞑靼语"
 #. language code: crp
 #: zypp/LanguageCode.cc:363
 msgid "Creoles and Pidgins (Other)"
-msgstr "克里奥尔语和皮钦语 (其它)"
+msgstr "克里奥尔语和皮钦语(其它)"
 
 #. language code: csb
 #: zypp/LanguageCode.cc:365
@@ -2356,7 +2356,7 @@ msgstr "卡舒比语"
 #. language code: cus
 #: zypp/LanguageCode.cc:367
 msgid "Cushitic (Other)"
-msgstr "库希特语 (其它)"
+msgstr "库希特语(其它)"
 
 #. language code: cze ces cs
 #: zypp/LanguageCode.cc:369 zypp/LanguageCode.cc:371
@@ -2416,7 +2416,7 @@ msgstr "多格来语"
 #. language code: dra
 #: zypp/LanguageCode.cc:393
 msgid "Dravidian (Other)"
-msgstr "达罗毗荼语 (其它)"
+msgstr "达罗毗荼语(其它)"
 
 #. language code: dsb
 #: zypp/LanguageCode.cc:395
@@ -2431,7 +2431,7 @@ msgstr "都阿拉语"
 #. language code: dum
 #: zypp/LanguageCode.cc:399
 msgid "Dutch, Middle (ca.1050-1350)"
-msgstr "中古荷兰语 (约 1050-1350)"
+msgstr "中古荷兰语(约 1050-1350)"
 
 #. language code: dut nld nl
 #: zypp/LanguageCode.cc:401 zypp/LanguageCode.cc:403
@@ -2531,7 +2531,7 @@ msgstr "芬兰语"
 #. language code: fiu
 #: zypp/LanguageCode.cc:441
 msgid "Finno-Ugrian (Other)"
-msgstr "芬兰乌戈尔语 (其它)"
+msgstr "芬兰乌戈尔语(其它)"
 
 #. language code: fon
 #: zypp/LanguageCode.cc:443
@@ -2546,12 +2546,12 @@ msgstr "法语"
 #. language code: frm
 #: zypp/LanguageCode.cc:449
 msgid "French, Middle (ca.1400-1600)"
-msgstr "中古法语 (约 1050-1600)"
+msgstr "中古法语(约 1050-1600)"
 
 #. language code: fro
 #: zypp/LanguageCode.cc:451
 msgid "French, Old (842-ca.1400)"
-msgstr "古法语 (842-约 1400)"
+msgstr "古法语(842-约 1400)"
 
 #. language code: fry fy
 #: zypp/LanguageCode.cc:453
@@ -2586,7 +2586,7 @@ msgstr "巴亚语"
 #. language code: gem
 #: zypp/LanguageCode.cc:465
 msgid "Germanic (Other)"
-msgstr "日尔曼语 (其它)"
+msgstr "日尔曼语(其它)"
 
 #. language code: geo kat ka
 #: zypp/LanguageCode.cc:467 zypp/LanguageCode.cc:469
@@ -2631,12 +2631,12 @@ msgstr "马恩岛语"
 #. language code: gmh
 #: zypp/LanguageCode.cc:487
 msgid "German, Middle High (ca.1050-1500)"
-msgstr "中古高地德语 (约 1050-1500)"
+msgstr "中古高地德语(约 1050-1500)"
 
 #. language code: goh
 #: zypp/LanguageCode.cc:489
 msgid "German, Old High (ca.750-1050)"
-msgstr "古高地德语 (约 750-1050)"
+msgstr "古高地德语(约 750-1050)"
 
 #. language code: gon
 #: zypp/LanguageCode.cc:491
@@ -2661,7 +2661,7 @@ msgstr "格列博语"
 #. language code: grc
 #: zypp/LanguageCode.cc:499
 msgid "Greek, Ancient (to 1453)"
-msgstr "古希腊语 (1453 以前)"
+msgstr "古希腊语(1453 以前)"
 
 #. language code: gre ell el
 #: zypp/LanguageCode.cc:501 zypp/LanguageCode.cc:503
@@ -2736,7 +2736,7 @@ msgstr "赫梯语"
 #. language code: hmn
 #: zypp/LanguageCode.cc:531
 msgid "Hmong"
-msgstr "蒙 (苗) 语"
+msgstr "蒙(苗)语"
 
 #. language code: hmo ho
 #: zypp/LanguageCode.cc:533
@@ -2806,12 +2806,12 @@ msgstr "伊洛卡诺语"
 #. language code: ina ia
 #: zypp/LanguageCode.cc:561
 msgid "Interlingua (International Auxiliary Language Association)"
-msgstr "国际语 (国际辅助语协会)"
+msgstr "国际语(国际辅助语协会)"
 
 #. language code: inc
 #: zypp/LanguageCode.cc:563
 msgid "Indic (Other)"
-msgstr "印度语 (其它)"
+msgstr "印度语(其它)"
 
 #. language code: ind id
 #: zypp/LanguageCode.cc:565
@@ -2821,7 +2821,7 @@ msgstr "印度尼西亚语"
 #. language code: ine
 #: zypp/LanguageCode.cc:567
 msgid "Indo-European (Other)"
-msgstr "印欧诸语言 (其它)"
+msgstr "印欧诸语言(其它)"
 
 #. language code: inh
 #: zypp/LanguageCode.cc:569
@@ -2836,7 +2836,7 @@ msgstr "依努皮亚语"
 #. language code: ira
 #: zypp/LanguageCode.cc:573
 msgid "Iranian (Other)"
-msgstr "伊朗语 (其它)"
+msgstr "伊朗语(其它)"
 
 #. language code: iro
 #: zypp/LanguageCode.cc:575
@@ -2941,7 +2941,7 @@ msgstr "卡西语"
 #. language code: khi
 #: zypp/LanguageCode.cc:615
 msgid "Khoisan (Other)"
-msgstr "科伊桑语 (其它)"
+msgstr "科伊桑语(其它)"
 
 #. language code: khm km
 #: zypp/LanguageCode.cc:617
@@ -3131,7 +3131,7 @@ msgstr "隆达语"
 #. language code: luo
 #: zypp/LanguageCode.cc:691
 msgid "Luo (Kenya and Tanzania)"
-msgstr "卢奥语 (肯尼亚和坦桑尼亚)"
+msgstr "卢奥语(肯尼亚和坦桑尼亚)"
 
 #. language code: lus
 #: zypp/LanguageCode.cc:693
@@ -3186,7 +3186,7 @@ msgstr "毛利语"
 #. language code: map
 #: zypp/LanguageCode.cc:717
 msgid "Austronesian (Other)"
-msgstr "南岛语 (其它)"
+msgstr "南岛语(其它)"
 
 #. language code: mar mr
 #: zypp/LanguageCode.cc:719
@@ -3241,7 +3241,7 @@ msgstr "杂语"
 #. language code: mkh
 #: zypp/LanguageCode.cc:741
 msgid "Mon-Khmer (Other)"
-msgstr "孟高棉语 (其它)"
+msgstr "孟高棉语(其它)"
 
 #. language code: mlg mg
 #: zypp/LanguageCode.cc:743
@@ -3381,7 +3381,7 @@ msgstr "尼亚斯语"
 #. language code: nic
 #: zypp/LanguageCode.cc:799
 msgid "Niger-Kordofanian (Other)"
-msgstr "尼日尔-科尔多凡语 (其它)"
+msgstr "尼日尔-科尔多凡语(其它)"
 
 #. language code: niu
 #: zypp/LanguageCode.cc:801
@@ -3456,7 +3456,7 @@ msgstr "恩济马语"
 #. language code: oci oc
 #: zypp/LanguageCode.cc:829
 msgid "Occitan (post 1500)"
-msgstr "欧西坦语 (1500 后)"
+msgstr "欧西坦语(1500 后)"
 
 #. language code: oji oj
 #: zypp/LanguageCode.cc:831
@@ -3496,7 +3496,7 @@ msgstr "奥托米诸语言"
 #. language code: paa
 #: zypp/LanguageCode.cc:845
 msgid "Papuan (Other)"
-msgstr "巴布亚语 (其它)"
+msgstr "巴布亚语(其它)"
 
 #. language code: pag
 #: zypp/LanguageCode.cc:847
@@ -3531,7 +3531,7 @@ msgstr "帕劳语"
 #. language code: peo
 #: zypp/LanguageCode.cc:859
 msgid "Persian, Old (ca.600-400 B.C.)"
-msgstr "古波斯语 (约公元前 600-400)"
+msgstr "古波斯语(约公元前 600-400)"
 
 #. language code: per fas fa
 #: zypp/LanguageCode.cc:861 zypp/LanguageCode.cc:863
@@ -3541,7 +3541,7 @@ msgstr "波斯语"
 #. language code: phi
 #: zypp/LanguageCode.cc:865
 msgid "Philippine (Other)"
-msgstr "菲律宾语 (其它)"
+msgstr "菲律宾语(其它)"
 
 #. language code: phn
 #: zypp/LanguageCode.cc:867
@@ -3576,7 +3576,7 @@ msgstr "古印度方言"
 #. language code: pro
 #: zypp/LanguageCode.cc:879
 msgid "Provencal, Old (to 1500)"
-msgstr "古普罗旺斯语 (1500 以前)"
+msgstr "古普罗旺斯语(1500 以前)"
 
 #. language code: pus ps
 #: zypp/LanguageCode.cc:881
@@ -3651,7 +3651,7 @@ msgstr "雅库特语"
 #. language code: sai
 #: zypp/LanguageCode.cc:911
 msgid "South American Indian (Other)"
-msgstr "南美洲印第安语 (其它)"
+msgstr "南美洲印第安语(其它)"
 
 #. language code: sal
 #: zypp/LanguageCode.cc:913
@@ -3706,12 +3706,12 @@ msgstr "塞尔库普语"
 #. language code: sem
 #: zypp/LanguageCode.cc:937
 msgid "Semitic (Other)"
-msgstr "闪米特语 (其它)"
+msgstr "闪米特语(其它)"
 
 #. language code: sga
 #: zypp/LanguageCode.cc:939
 msgid "Irish, Old (to 900)"
-msgstr "古爱尔兰语 (900 以前)"
+msgstr "古爱尔兰语(900 以前)"
 
 #. language code: sgn
 #: zypp/LanguageCode.cc:941
@@ -3741,12 +3741,12 @@ msgstr "苏语诸语言"
 #. language code: sit
 #: zypp/LanguageCode.cc:951
 msgid "Sino-Tibetan (Other)"
-msgstr "汉藏诸语言 (其它)"
+msgstr "汉藏诸语言(其它)"
 
 #. language code: sla
 #: zypp/LanguageCode.cc:953
 msgid "Slavic (Other)"
-msgstr "斯拉夫语 (其它)"
+msgstr "斯拉夫语(其它)"
 
 #. language code: slo slk sk
 #: zypp/LanguageCode.cc:955 zypp/LanguageCode.cc:957
@@ -3771,7 +3771,7 @@ msgstr "北萨摩斯语"
 #. language code: smi
 #: zypp/LanguageCode.cc:965
 msgid "Sami Languages (Other)"
-msgstr "萨米诸语言 (其它)"
+msgstr "萨米诸语言(其它)"
 
 #. language code: smj
 #: zypp/LanguageCode.cc:967
@@ -3846,7 +3846,7 @@ msgstr "塞雷尔语"
 #. language code: ssa
 #: zypp/LanguageCode.cc:995
 msgid "Nilo-Saharan (Other)"
-msgstr "尼罗-撒哈拉语 (其它)"
+msgstr "尼罗-撒哈拉语(其它)"
 
 #. language code: ssw ss
 #: zypp/LanguageCode.cc:997
@@ -3896,7 +3896,7 @@ msgstr "塔希提语"
 #. language code: tai
 #: zypp/LanguageCode.cc:1015
 msgid "Tai (Other)"
-msgstr "傣语 (其它)"
+msgstr "傣语(其它)"
 
 #. language code: tam ta
 #: zypp/LanguageCode.cc:1017
@@ -3981,12 +3981,12 @@ msgstr "塔马奇克语"
 #. language code: tog
 #: zypp/LanguageCode.cc:1053
 msgid "Tonga (Nyasa)"
-msgstr "汤加语 (尼亚萨)"
+msgstr "汤加语(尼亚萨)"
 
 #. language code: ton to
 #: zypp/LanguageCode.cc:1055
 msgid "Tonga (Tonga Islands)"
-msgstr "汤加语 (汤加岛)"
+msgstr "汤加语(汤加岛)"
 
 #. language code: tpi
 #: zypp/LanguageCode.cc:1057
@@ -4031,7 +4031,7 @@ msgstr "土耳其语"
 #. language code: tut
 #: zypp/LanguageCode.cc:1073
 msgid "Altaic (Other)"
-msgstr "阿尔泰语 (其它)"
+msgstr "阿尔泰语(其它)"
 
 #. language code: twi tw
 #: zypp/LanguageCode.cc:1077
@@ -4247,7 +4247,7 @@ msgstr "服务插件不支持修改属性。"
 msgid ""
 "Package %s seems to be corrupted during transfer. Do you want to retry "
 "retrieval?"
-msgstr "软件å\8c\85 %s ä¼¼ä¹\8eå\9c¨ä¼ è¾\93æ\97¶æ\8d\9få\9d\8fäº\86ã\80\82æ\82¨æ\83³è¦\81é\87\8dè¯\95æ\92·å\8f\96吗?"
+msgstr "软件å\8c\85 %s ä¼¼ä¹\8eå\9c¨ä¼ è¾\93æ\97¶æ\8d\9få\9d\8fäº\86ã\80\82æ\82¨æ\83³è¦\81é\87\8dè¯\95æ£\80ç´¢吗?"
 
 #: zypp/repo/PackageProvider.cc:216
 msgid "Signature verification failed"
@@ -4257,7 +4257,7 @@ msgstr "签名校验失败"
 #: zypp/repo/PackageProvider.cc:386
 #, c-format, boost-format
 msgid "Failed to provide Package %s. Do you want to retry retrieval?"
-msgstr "æ\9cªè\83½æ\8f\90ä¾\9b软件å\8c\85 %sã\80\82æ\82¨æ\83³è¦\81é\87\8dè¯\95æ\92·å\8f\96吗?"
+msgstr "æ\9cªè\83½æ\8f\90ä¾\9b软件å\8c\85 %sã\80\82æ\82¨æ\83³è¦\81é\87\8dè¯\95æ£\80ç´¢吗?"
 
 #: zypp/repo/PackageProvider.cc:515
 msgid "applydeltarpm check failed."
@@ -4463,7 +4463,7 @@ msgid ""
 "install %s (with vendor change)\n"
 "  %s  -->  %s"
 msgstr ""
-"安装 %s (包括厂商变更)\n"
+"安装 %s(包括厂商变更)\n"
 "  %s --> %s"
 
 #: zypp/solver/detail/SATResolver.cc:1343
@@ -4518,7 +4518,7 @@ msgstr "未知匹配模式 '%s'"
 #: zypp/base/StrMatcher.cc:153
 #, c-format, boost-format
 msgid "Unknown match mode '%s' for pattern '%s'"
-msgstr "未知匹配模式 '%s' (对于软件集 '%s')"
+msgstr "未知匹配模式 '%s'对于软件集 '%s')"
 
 #: zypp/base/StrMatcher.cc:157
 #, c-format, boost-format
@@ -4587,17 +4587,17 @@ msgstr "下载(curl) '%s' 时初始化失败"
 #: zypp/media/MediaException.cc:91
 #, c-format, boost-format
 msgid "System exception '%s' on medium '%s'."
-msgstr "系统例外 '%s' (发生于介质 '%s' 上)。"
+msgstr "系统例外 '%s'(发生于介质 '%s' 上)。"
 
 #: zypp/media/MediaException.cc:98
 #, c-format, boost-format
 msgid "Path '%s' on medium '%s' is not a file."
-msgstr "路径 '%s' (介质 '%s' 上) 并不是一个文件。"
+msgstr "路径 '%s'(介质 '%s' 上)并不是一个文件。"
 
 #: zypp/media/MediaException.cc:106
 #, c-format, boost-format
 msgid "Path '%s' on medium '%s' is not a directory."
-msgstr "路径 '%s' (介质 '%s' 上) 并不是一个文件夹。"
+msgstr "路径 '%s'(介质 '%s' 上)并不是一个文件夹。"
 
 #: zypp/media/MediaException.cc:115
 msgid "Malformed URI"
index d66d6c3..d5ef49b 100644 (file)
@@ -214,6 +214,19 @@ namespace zypp
   Date Product::endOfLife() const
   { return Date( lookupNumAttribute( sat::SolvAttr::productEndOfLife ) );}
 
+  bool Product::hasEndOfLife() const
+  { return( lookupNumAttribute( sat::SolvAttr::productEndOfLife, -1 ) != -1 ); }
+
+  bool Product::hasEndOfLife( Date & value ) const
+  {
+    Date res( lookupNumAttribute( sat::SolvAttr::productEndOfLife, -1 ) );
+    if ( res == -1 )
+      return false;
+    // else:
+    value = res;
+    return true;
+  }
+
   std::vector<Repository::ContentIdentifier> Product::updateContentIdentifier() const
   {
     std::vector<Repository::ContentIdentifier> ret;
index 313b96c..09d10c5 100644 (file)
@@ -97,9 +97,25 @@ namespace zypp
     /** The product flags */
     std::list<std::string> flags() const;
 
-    /** The date when this Product goes out of support as indicated by it's medadata. */
+    /** The date when this Product goes out of support as indicated by it's medadata.
+     * Use \ref hasEOfLife if it's important to distinguish whether the value
+     * is not defined in the metadata, or defined but empty/invalid/TBD.
+     */
     Date endOfLife() const;
 
+    /** Return whether an EndOfLife value is actually defined in the metadata.
+     * A missing value (\c false) usually indicates that there will be no EOL,
+     * while an empty/invalid value indicates that there will be an  EOL date,
+     * but it's not yet known (FATE#320699).
+     */
+    bool hasEndOfLife() const;
+    /** \overload additionally returning the date (0 if TBD)
+     *         false, ( unchanged )    : no EOL
+     *         true,  ( 0 )            : EOL is still TBD
+     *         true,  ( !=0 )          : a valid EOL date
+     */
+    bool hasEndOfLife( Date & value ) const;
+
     /** ContentIdentifier of required update repositories. */
     std::vector<Repository::ContentIdentifier> updateContentIdentifier() const;
 
index eeafb9d..8f666c4 100644 (file)
@@ -65,6 +65,7 @@ namespace zypp
       pinfo.files.insert( pinfo.files.begin(), filelist.begin(), filelist.end() );
 
       const std::string & pline( cache_r.first );
+      std::string commandname; // pinfo.command if still needed...
       for_( ch, pline.begin(), pline.end() )
       {
         switch ( *ch )
@@ -81,16 +82,22 @@ namespace zypp
           case 'L':
             pinfo.login = &*(ch+1);
             break;
+          case 'c':
+           if ( pinfo.command.empty() )
+             commandname = &*(ch+1);
+           break;
         }
         if ( *ch == '\n' ) break;              // end of data
         do { ++ch; } while ( *ch != '\0' );    // skip to next field
       }
 
-      // the command name might be truncated, so we check against /proc/<pid>/exe
-      Pathname command( filesystem::readlink( Pathname("/proc")/pinfo.pid/"exe" ) );
-      if ( ! command.empty() )
-        pinfo.command = command.basename();
-      //MIL << " Take " << pinfo << endl;
+      if ( pinfo.command.empty() )
+      {
+       // the lsof command name might be truncated, so we prefer /proc/<pid>/exe
+       pinfo.command = filesystem::readlink( Pathname("/proc")/pinfo.pid/"exe" ).basename();
+       if ( pinfo.command.empty() )
+         pinfo.command = std::move(commandname);
+      }
     }
 
 
@@ -202,7 +209,7 @@ namespace zypp
 
     static const char* argv[] =
     {
-      "lsof", "-n", "-FpuLRftkn0", NULL
+      "lsof", "-n", "-FpcuLRftkn0", NULL
     };
     ExternalProgram prog( argv, ExternalProgram::Discard_Stderr );
 
index 897e7c2..b5f0ede 100644 (file)
@@ -155,6 +155,12 @@ namespace zypp
       return ::solvable_lookup_num( _solvable, attr.id(), 0 );
     }
 
+    unsigned long long Solvable::lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const
+    {
+      NO_SOLVABLE_RETURN( notfound_r );
+      return ::solvable_lookup_num( _solvable, attr.id(), notfound_r );
+    }
+
     bool Solvable::lookupBoolAttribute( const SolvAttr & attr ) const
     {
       NO_SOLVABLE_RETURN( false );
index 0de43f6..2702333 100644 (file)
@@ -337,6 +337,8 @@ namespace zypp
        * or 0 if it does not exists.
        */
       unsigned long long lookupNumAttribute( const SolvAttr & attr ) const;
+      /** \overload returning custom notfound_r value */
+      unsigned long long lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const;
 
       /**
        * returns the boolean attribute value for \ref attr
index 64b2c9b..4c087f2 100644 (file)
@@ -133,6 +133,7 @@ namespace zypp
       bool             lookupBoolAttribute( const SolvAttr & attr ) const      { return satSolvable().lookupBoolAttribute( attr ); }
       detail::IdType   lookupIdAttribute( const SolvAttr & attr ) const        { return satSolvable().lookupIdAttribute( attr ); }
       unsigned long long lookupNumAttribute( const SolvAttr & attr ) const     { return satSolvable().lookupNumAttribute( attr ); }
+      unsigned long long lookupNumAttribute( const SolvAttr & attr, unsigned long long notfound_r ) const      { return satSolvable().lookupNumAttribute( attr, notfound_r ); }
       CheckSum         lookupCheckSumAttribute( const SolvAttr & attr ) const  { return satSolvable().lookupCheckSumAttribute( attr ); }
       OnMediaLocation  lookupLocation() const                  { return satSolvable().lookupLocation(); }
       Solvable::IdType id() const                                      { return satSolvable().id(); }