From 244ca2c6e3383475ee56f724c42beaff83f66841 Mon Sep 17 00:00:00 2001 From: Duncan Mac-Vicar P Date: Mon, 20 Aug 2007 13:27:31 +0000 Subject: [PATCH] - add support for the HASH key. (#300982) - Use ContentFileParser in Downloader (instead of implementing the parser again, it has a reason, Downloader was written first) - update testcases and data to cover the new HASH key --- tests/repo/susetags/Downloader_test.cc | 9 +- .../susetags/data/stable-x86-subset-gz/content | 4 + .../susetags/data/stable-x86-subset-gz/content.asc | 53 +- .../susetags/data/stable-x86-subset-gz/control.xml | 793 +++++++++++++++++++++ .../data/stable-x86-subset-gz/installation.xml | 109 +++ .../data/stable-x86-subset-gz/license.tar.gz | Bin 0 -> 5514 bytes tests/repo/susetags/data/stable-x86-subset/content | 4 + .../susetags/data/stable-x86-subset/content.asc | 53 +- .../susetags/data/stable-x86-subset/control.xml | 793 +++++++++++++++++++++ .../data/stable-x86-subset/installation.xml | 109 +++ .../susetags/data/stable-x86-subset/license.tar.gz | Bin 0 -> 5514 bytes zypp/parser/susetags/ContentFileReader.cc | 9 +- zypp/parser/susetags/RepoIndex.h | 1 + zypp/repo/susetags/Downloader.cc | 190 ++--- zypp/repo/susetags/Downloader.h | 8 + 15 files changed, 1993 insertions(+), 142 deletions(-) create mode 100644 tests/repo/susetags/data/stable-x86-subset-gz/control.xml create mode 100644 tests/repo/susetags/data/stable-x86-subset-gz/installation.xml create mode 100644 tests/repo/susetags/data/stable-x86-subset-gz/license.tar.gz create mode 100644 tests/repo/susetags/data/stable-x86-subset/control.xml create mode 100644 tests/repo/susetags/data/stable-x86-subset/installation.xml create mode 100644 tests/repo/susetags/data/stable-x86-subset/license.tar.gz diff --git a/tests/repo/susetags/Downloader_test.cc b/tests/repo/susetags/Downloader_test.cc index e0377ca..6996e64 100644 --- a/tests/repo/susetags/Downloader_test.cc +++ b/tests/repo/susetags/Downloader_test.cc @@ -7,6 +7,7 @@ #include #include +#include "zypp/base/Logger.h" #include "zypp/Url.h" #include "zypp/PathInfo.h" #include "zypp/TmpPath.h" @@ -33,6 +34,8 @@ void susetags_download_test(const string &dir) downloader.download(media,localdir); + MIL << "All files downloaded" << endl; + const char* files[] = { "/suse", @@ -102,8 +105,10 @@ void susetags_gz_download_test(const string &dir) // "/media.1/products.key", "/media.1/media", // "/media.1/products", -// "/media.1/info.txt", -// "/media.1/license.zip", + "/media.1/info.txt", + "/license.tar.gz", + "/control.xml", + "/installation.xml", "/gpg-pubkey-a1912208-446a0899.asc", "/gpg-pubkey-307e3d54-44201d5d.asc", "/gpg-pubkey-9c800aca-40d8063e.asc", diff --git a/tests/repo/susetags/data/stable-x86-subset-gz/content b/tests/repo/susetags/data/stable-x86-subset-gz/content index 86cb1ff..9c02308 100644 --- a/tests/repo/susetags/data/stable-x86-subset-gz/content +++ b/tests/repo/susetags/data/stable-x86-subset-gz/content @@ -35,4 +35,8 @@ KEY SHA1 7025932e6866932f489421990075f3ed312023ea gpg-pubkey-3d25d3d9-36e12d04. KEY SHA1 fd6146cac8c1473c5b52548936de773d5bbd5610 gpg-pubkey-7e2e3b05-44748aba.asc KEY SHA1 cd7adceba1fe5d7ba27b5749718743192d82f802 gpg-pubkey-9c800aca-40d8063e.asc KEY SHA1 7535d79e31ef7b4232e5593bb49d9142978b2e95 gpg-pubkey-a1912208-446a0899.asc +HASH SHA1 172b3cf77268f46e783e78a653902e563cb91e9a license.tar.gz +HASH SHA1 4aa8ded6302e6ec85690a51af6044dffe9b21923 control.xml +HASH SHA1 82f1f17ce74f0cd3fca4813c178196b317fc952d installation.xml +HASH SHA1 68d9b548d61e31e82e8834690e884afa27751287 media.1/info.txt diff --git a/tests/repo/susetags/data/stable-x86-subset-gz/content.asc b/tests/repo/susetags/data/stable-x86-subset-gz/content.asc index 6d0e180..c5ff0d5 100644 --- a/tests/repo/susetags/data/stable-x86-subset-gz/content.asc +++ b/tests/repo/susetags/data/stable-x86-subset-gz/content.asc @@ -1,29 +1,32 @@ -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.6 (GNU/Linux) -owGdVTuIJFUUHXeVhYJFNhAMn2AguN39/p9F0Zrpmg+202tX9TgbDe9XM+3MVDVd -1cyOGhhqIGhiogxGBoogiGwqJoJgbqBmZgaCiaGvuqfd7lVZWGhe0XXvOe/dc05V -fXD96tqVGx///t03v3wl9h778tq+uWbLovZFvXnxVHx70O8ONzJQjn2RDtOklWtb -l5PzaC8ZpDv9XYBgm0TdnTRbdKbT0NUbFdO7rTSL13tJa1/yWccSBLcpXqLa7fYH -oKEHvZ3d4T64PSnd1NYV2Do12zfB7tRPCuMnhzfBlp+c6uI8GiS93X6WpMNBDxzV -9fhWp3N2dtauppVv2/K0M/EnRVn7qjMikncWp+9sxhtZf3CnKXtd+daspz0Zn0bx -YGO7fVfyA07B5WXEJQcj1iy0WQITKEo9sUfz7nn9YU3sIXX6/yXywN1ushkPe9l6 -HIRqKIMKrw13Bkl6357LwcCLM2PAWNd10O6WCfeq86r2p1HwaW+nGzDjuci3Ftg5 -pnEm6q+n/V6SLTU1DQdzc/6Fe2EOjEJ5axinwFbAaeA88EX4HWytA1+BfATyCTia -glEN3tDg+BQUJ6AwYHwCxvXB+gC8eXSwsdus2etRut0fZL14PemBS8ei+b9/9ry8 -PY/frNYOG/53OdnPBnEISrpIiivPipNSu3bTP4tMOTnsuFFVT0ZmWo/KotMMFFIy -LjtlVXWi/u0sJDfuPTJLURathumRwM6b6WEn2J9uDLo7A9D0dypfT8ehVNlJ1I2z -eFGINnvxVgqmY6drH6RpPNlKGiOGafRqksUg3Y4RsETk1GiKMeMMSkoJJwIhgaAl -ElPNpFUQOQfAsfOtRseWQLM0t0OologkzJUxKFdeMW+sN7lTBuOcEJkLoTyG1DoG -DQhhtMf60FdLYGUJRU4RhMMTAHNIDISIS8QQsRoKQx20WgpyH9zuDpfwmspcMyh0 -bm3YW3DDqApAoqhviCUinhuIlvC+WMILzhSEOWv2C405VTycFXLj8pyyXELmOVJK -LOOXz58bwzV2XAkeBLVKc+MNw1YTlgumqPbE5znyYPEkVtEryZ1LByBhFHJlEZRI -cUFdmBRyibFHjpowORJKeAXA4fiwNZ6aY3/egi43BEnZosg7hZVp68re58SeSM8g -scFOyxyE2DhLkGDMShxgkFKnHEYrnAQKTxyjLUpxsJy5VU4BMVME+/Ci4+GaU6ko -DqJAKFhOvAvmQUy8XuV0mDniVItwj7CDdJUzdxxRbrWVFlFBLAuisUBMuPNChMMY -4xhHcIVT+DCegSycU1CpjV7ltE5oF/KnUe6ZE0ZjYZigSiApKEEKO4mDo3iFU1kJ -oba6RaGTkBP/wOyMBCrlCfJ5SCMOMrAghjFUOYUoVkIaHIK/wqmRQhjD4BHlGkql -ZpzRuy9dfWKt+aYuPrY3rqT31i6ezd52X3z0w/H3z3327c8/vfPbry//9cfaxTPJ -54/fe/7sz/feuv70h+//+PWTn3x6528= -=KMVc +owGdlsuLI1UUxtsZRAkozMaNm4sLQZxU7vvRjkjSST8wdsZUMs64ae4zHTupCqkK +3T1LF4PuZi+I4MKV6MY/QBcD7gSX4sqtGxFEXHkr6XaSVhkYSKpInXN+de93vlOp +hy9c37p245Nfv/vm56/FnWe+fP7UPGfzrPRZufv9w+ntfq893BmAfOazdJh26kHb +Mp+f1+50+ulB7xAgmJBa+yAdXGami5jVHWeLs3o6aLa6nfpdyZcZayU4oXgNddju +9UGFB92Dw+FdcHueu4UtC7A3Nfs3weHCzzPj56ObYM/Ppzo7r/U73cPeoJMO+11w +XJaz7Ubj9PQ0KRaFT2w+bcz9JMtLXzTGRPLG5eobu82dQa9/rwp7Xfj6MieZz6a1 +Zn9nPzmT/IhTcHEac8nBmFUHWh0iCWS5ntvjVfYq/qQk9oQ4/f8QuXK13dltDruD +VjMKVSGjCu8OD/qd9HF7LjYG3lw2Bsx0WUbttk28VpwXpZ/WYp/uHLRjzWwl8vZl +7aqm6kyt10p73c5gLalKOFo15191t1aFtRjeGzZTYAvgNHAe+Cx+jvZawBcgjEGY +g+MFGJfgAw1OpiCbgMyA2QTMyqNWH9w/Pto5rI6D92rpfq8/6DZbnS646Fht9euf +e15cXtlvGUviDf873Lk76DejUdJLp7j8NJvk2iVV/tIy+XzUcOOinI/NohznWaPa +UHTJLG/kRdGo9W4PonOb3aemZHlWr0hPVey8WYwasf3pTr990AdVfqPw5WIWQ4Wd +19rNQfMyUNvtNvdSsJg5XfooTdWTvU7ViGFae6czaIJ0v4kAMURTAwOUzDnCITMc +Wect5EISww3WKCDHEQAnztcrHesCLd2cRFMlo/trLGwJQx7ByKTCB6wktRGgOZHa +2uC1C9oHJkH0oz3Rozhy7eEVBJSaB+mRVdwro7HXwgpqIUOIWISsIEJKTNYQPttE +MOU4M5IJZjTyznkkEQlxOV4pqrSXLFBHLVpHFJsIGDUgPBYHjpgwlmJBpMCQMYkj +xiHBuZGWriE26hElgjBGJKKaBEksdtZzy52mUFCofSUR5AxcDuay/u3OvVW5hYRR +yJVFUCLFBXVaCsireyNHjYMWCSW8AmA0G9VnC3Piz+vQBUOQlHUa162wMoku7GMm +9kR6BomlhFvmIMTGWYIEY1biWAYpdcphtMEkUHjiGK1TiiFyzG0yBcRMEezjo4/H +c6BSUYyUglCwQLwjCENMvN5kOswccapOuEfYQbrJDNFrlFttpUVUEMsMwyyCCXde +iLgYYxzjCG4whY/bM5DFdQoqtdGbTOuEjg2IdgieORFdJQwTVAkkBSVIYSdxkBBv +MJWVEGqr6xQ6CTnxV/bOSEQpT5APwlAcZWBRDGOocgpRrIQ00Spsg6mRQjhaPK6T +ayiVWjL3m+n+hW8ENsQGITCXgXIfRzB+NWdEwcjnxBqFvIqCTsY2Pi98Uup5ZZ3H +CKq1dN5xEgu4t5JxBTVDOvCqwyHEoYotqgao+nef55PkbDpZq49KxIEX1gsaoHUk +WE1lNXqismJ0mAhWMewAGGdFqScTXT2krkC4dMrErsVeVgJJ7KUkNK4knqkOUX/B +EJYCgKl3Y52gxjgLeVKelbXaR29df3areuW4fBe5ce2Hl7c+fe2P7Qfdvx7RVz9P +XvntpW97b4wfgK3PPvzqxdGDax8//OLR77+8//pPZ7daf/74Nw== +=3cih -----END PGP MESSAGE----- diff --git a/tests/repo/susetags/data/stable-x86-subset-gz/control.xml b/tests/repo/susetags/data/stable-x86-subset-gz/control.xml new file mode 100644 index 0000000..096763e --- /dev/null +++ b/tests/repo/susetags/data/stable-x86-subset-gz/control.xml @@ -0,0 +1,793 @@ + + + + + + control + + + true + true + false + never + 95 + true + true + simple + false + true + true + true + true + false + true + false + + + + + /root/ + /root/inst-sys/ + + + + + + false + auto + + + http://download.opensuse.org/YaST/Repos/openSUSE_103_Servers.xml + + + + false + true + 7G + 40 + 5G + 20G + false + false + 15G + 25G + false + + + + false + laptop + ifplugd + + + + language + keyboard + timezone + users + networking + firewall + host + routing + proxy + runlevel + x11 + nis + ldap + printer + add-on + + + + + + + + + + + + installation,demo,autoinstallation + initial + initial + no + + hwinfo + keyboard + mouse + partitions + software + bootloader + timezone + language + runlevel + + + + + + partitions + software_simple + country_simple + + + + + + hwinfo + keyboard + mouse + partitions + software + bootloader + timezone + language + runlevel + + + + + + + + update + initial + normal + no + + update + packages + backup + language + + + + + + update + initial + initial + no + + hwinfo + media + + update + packages + backup + language + keyboard + + + + + + network + continue,normal + yes + + + lan + 20 + + + general + 5 + + + dsl + 30 + + + isdn + 40 + + + modem + 50 + + + remote + 60 + + + firewall + 10 + + + proxy + 70 + + + + + + + hardware + continue + yes + + x11 + printer + sound + tv + bluetooth + + + + + + + + + all + yes + yes + + + installation + initial + + + language + + no + yes + + yes + + true + + + + checkmedia + + + + license + + + + disks_activate + + + + system_analysis + + + + + productsources + yes + + + + add-on + yes + + + + timezone + + yes + + yes + + + + desktop + + + yes + + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + no + + + + finish + no + + + + + + + + all + yes + yes + + + update + initial + + + language + + no + + yes + + true + + + + checkmedia + + + + license + + + + disks_activate + + + + system_analysis + + + + update_partition + + + upgrade_urls + + + + productsources + yes + + + + add-on + yes + + + yes + + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + no + + + + finish + no + + + + + + all + + initial + + repair + + + + info + + + + repair + + + + + + + + all + yes + yes + + initial + + screen_shot + + + no + yes + + language + true + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + yes + + + + + + + + all + yes + yes + + initial + + demo + + + no + + language + true + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + no + + + + + + + continue + update + + all + yes + yes + + + + + rpmcopy + no + no + + + yes + + + + + ask_net_test + no + + + + do_net_test + + + + addon_update_sources + + + + suse_register + + + + ask_online_update + + + + you + + + + restore_settings + + + suseconfig + no + no + + + + release_notes + + + congratulate + + + + + + + continue + installation + + yes + yes + all + + + + yes + + + + + root + no + + + + initialization + no + no + + + + netprobe + no + no + + + + rpmcopy + no + no + + + + hostname + + + + proposal + network + + + + fam + + + + ask_net_test + + + + do_net_test + + + + addon_update_sources + + + + suse_register + + + + ask_online_update + + + + you + + + + extrasources + + + + restore_settings + + + + auth + + + + user + + + suseconfig + no + no + + + + release_notes + + + + proposal + hardware + + + + save_hardware_status + + + congratulate + + + + + + + initial + + autoinstallation + + all + no + no + + + + + autoinit + all + true + + + + autosetup + + + + proposal + initial + no + yes + + + + prepdisk + + + + kickoff + + + + autoimage + + + + rpmcopy + + + + finish + + + + + + + + all + no + no + + continue + autoinstallation + + + + netprobe + + + + autopost + + + + rpmcopy + + + yes + + + + + autoconfigure + + + suseconfig + + + + + diff --git a/tests/repo/susetags/data/stable-x86-subset-gz/installation.xml b/tests/repo/susetags/data/stable-x86-subset-gz/installation.xml new file mode 100644 index 0000000..f71e6b7 --- /dev/null +++ b/tests/repo/susetags/data/stable-x86-subset-gz/installation.xml @@ -0,0 +1,109 @@ + + + + control-ISSLE + + false + + + auto + + + true + + + + + + + + + + product + continue,normal + installation + + yast2-issleconfig + + + + + + + no + no + + normal + installation,normal + + + + sw_single + yes + yes + + + + issleconfig + yes + yes + + + + inst_release_notes + yes + yes + + + inst_congratulate + no + yes + + + + + + + + + no + no + + continue,normal + installation,normal,update + + hostname + root + ca_mgm + + + + yast2-issleconfig + + + + + suseconfig + + + + issleconfig + yes + yes + + + + + + + + diff --git a/tests/repo/susetags/data/stable-x86-subset-gz/license.tar.gz b/tests/repo/susetags/data/stable-x86-subset-gz/license.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ecd631db47a6815e6cc079109daecb37253221cc GIT binary patch literal 5514 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 literal 0 HcmV?d00001 diff --git a/tests/repo/susetags/data/stable-x86-subset/content b/tests/repo/susetags/data/stable-x86-subset/content index 1bea044..fb211e2 100644 --- a/tests/repo/susetags/data/stable-x86-subset/content +++ b/tests/repo/susetags/data/stable-x86-subset/content @@ -35,4 +35,8 @@ KEY SHA1 7025932e6866932f489421990075f3ed312023ea gpg-pubkey-3d25d3d9-36e12d04. KEY SHA1 fd6146cac8c1473c5b52548936de773d5bbd5610 gpg-pubkey-7e2e3b05-44748aba.asc KEY SHA1 cd7adceba1fe5d7ba27b5749718743192d82f802 gpg-pubkey-9c800aca-40d8063e.asc KEY SHA1 7535d79e31ef7b4232e5593bb49d9142978b2e95 gpg-pubkey-a1912208-446a0899.asc +HASH SHA1 172b3cf77268f46e783e78a653902e563cb91e9a license.tar.gz +HASH SHA1 4aa8ded6302e6ec85690a51af6044dffe9b21923 control.xml +HASH SHA1 82f1f17ce74f0cd3fca4813c178196b317fc952d installation.xml +HASH SHA1 68d9b548d61e31e82e8834690e884afa27751287 media.1/info.txt diff --git a/tests/repo/susetags/data/stable-x86-subset/content.asc b/tests/repo/susetags/data/stable-x86-subset/content.asc index 6d0e180..e4b185a 100644 --- a/tests/repo/susetags/data/stable-x86-subset/content.asc +++ b/tests/repo/susetags/data/stable-x86-subset/content.asc @@ -1,29 +1,32 @@ -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.6 (GNU/Linux) -owGdVTuIJFUUHXeVhYJFNhAMn2AguN39/p9F0Zrpmg+202tX9TgbDe9XM+3MVDVd -1cyOGhhqIGhiogxGBoogiGwqJoJgbqBmZgaCiaGvuqfd7lVZWGhe0XXvOe/dc05V -fXD96tqVGx///t03v3wl9h778tq+uWbLovZFvXnxVHx70O8ONzJQjn2RDtOklWtb -l5PzaC8ZpDv9XYBgm0TdnTRbdKbT0NUbFdO7rTSL13tJa1/yWccSBLcpXqLa7fYH -oKEHvZ3d4T64PSnd1NYV2Do12zfB7tRPCuMnhzfBlp+c6uI8GiS93X6WpMNBDxzV -9fhWp3N2dtauppVv2/K0M/EnRVn7qjMikncWp+9sxhtZf3CnKXtd+daspz0Zn0bx -YGO7fVfyA07B5WXEJQcj1iy0WQITKEo9sUfz7nn9YU3sIXX6/yXywN1ushkPe9l6 -HIRqKIMKrw13Bkl6357LwcCLM2PAWNd10O6WCfeq86r2p1HwaW+nGzDjuci3Ftg5 -pnEm6q+n/V6SLTU1DQdzc/6Fe2EOjEJ5axinwFbAaeA88EX4HWytA1+BfATyCTia -glEN3tDg+BQUJ6AwYHwCxvXB+gC8eXSwsdus2etRut0fZL14PemBS8ei+b9/9ry8 -PY/frNYOG/53OdnPBnEISrpIiivPipNSu3bTP4tMOTnsuFFVT0ZmWo/KotMMFFIy -LjtlVXWi/u0sJDfuPTJLURathumRwM6b6WEn2J9uDLo7A9D0dypfT8ehVNlJ1I2z -eFGINnvxVgqmY6drH6RpPNlKGiOGafRqksUg3Y4RsETk1GiKMeMMSkoJJwIhgaAl -ElPNpFUQOQfAsfOtRseWQLM0t0OologkzJUxKFdeMW+sN7lTBuOcEJkLoTyG1DoG -DQhhtMf60FdLYGUJRU4RhMMTAHNIDISIS8QQsRoKQx20WgpyH9zuDpfwmspcMyh0 -bm3YW3DDqApAoqhviCUinhuIlvC+WMILzhSEOWv2C405VTycFXLj8pyyXELmOVJK -LOOXz58bwzV2XAkeBLVKc+MNw1YTlgumqPbE5znyYPEkVtEryZ1LByBhFHJlEZRI -cUFdmBRyibFHjpowORJKeAXA4fiwNZ6aY3/egi43BEnZosg7hZVp68re58SeSM8g -scFOyxyE2DhLkGDMShxgkFKnHEYrnAQKTxyjLUpxsJy5VU4BMVME+/Ci4+GaU6ko -DqJAKFhOvAvmQUy8XuV0mDniVItwj7CDdJUzdxxRbrWVFlFBLAuisUBMuPNChMMY -4xhHcIVT+DCegSycU1CpjV7ltE5oF/KnUe6ZE0ZjYZigSiApKEEKO4mDo3iFU1kJ -oba6RaGTkBP/wOyMBCrlCfJ5SCMOMrAghjFUOYUoVkIaHIK/wqmRQhjD4BHlGkql -ZpzRuy9dfWKt+aYuPrY3rqT31i6ezd52X3z0w/H3z3327c8/vfPbry//9cfaxTPJ -54/fe/7sz/feuv70h+//+PWTn3x6528= -=KMVc +owGdVjuPG1UU3iRCIEsUaaCguYIiEort+35EvLxr70Mx6+CxQ6BZ3eeuWXtsecba +3TR0CLr0FKmJhKBBoqZBlCAigQQVLRI/AAlxZr1LvAEUKZI9V55zvu/e833njOfe +81fWLl/99Pdvvvr1S3X70ufPRfesn+ZlzMvN7+69cavfaw83Bmg6i3k2zDr1ZH05 +nZ/Ubnf62U5vFxHcYLX2TjY4z8wWkNUd5YvjejZorXc79TtanmasQGiD0xWq3Xav +jyp61N3ZHd5Bt+bTsPBlgbYmbvs62l3Eee7ifP862orzic1Pav1Od7c36GTDfhcd +lOXsRrN5dHTUKBZFbPjppDmP43xaxqI5Ylo2z0/f3GxtDHr996pwtEWsn+Y05rNJ +rdXf2G4ca7knOTpbRlJLNBLVhVcXYEL51M79wTJ7GX9SknhCnP9/iD12t93ZbA27 +g/UWCFVRggrvDHf6neyRPWeFoddPjUEzW5ag3Q0H94qTooyTGvh0e6cNmNlS5Bvn +2CWmcqbWW8963c5gJalK2Fua8y/ca0tgDcJbw1aGfIGCRSGimMNnb2sdxQKlEUpz +dLBAoxJ9YNHhBOVjlDs0G6NZubfeR3cP9jZ2q+vg3Vq23esPuq31ThedOVZb/vpn +z7Pby/Y7jTVgw/8Od+4M+i1olOy8U8L0KB9PbWhU+actM53vN8OoKOcjtyhH07xZ +FQRdMps2p0XRrPVuDaBzW92nZsmneb1ieipwiG6x3wT7s41+e6ePqvxmEcvFDEKF +n9farUHrPFDb7La2MrSYBVtGkKbyZKtTGTHMam93Bi2UbbcI8kwl7iynVEiBNedM +MkWIItgzTbkV2htMQkDoMMR6pWNdkdNubkBTrRBpnIxzJJloRHQ+uhSMozQxppNS +JlLMfRDYIWhGf2j3Y7ECNp5xEgwjFCYAJ8wcxkRqIgjzFivHA/ZWK/YI3GgPV/CW +62QFVjZ5D3sr6QQ3AGSGx4pYExalw2QFH/MVvJLCYJxEtR8kJm4knBVLF1LiImks +oiTGqFX86vmTc9LSII2SIKg3VrroBPWWiaSE4TaymBKJ6HwSi9rNzntnDmAmOJbG +E6yJkYoHqBRLTWkkgTuonCijokFof7Zfny3cYTyp45AcI1rXOYnBUOMatvCPOGlk +OgrMPNjpRcCYuuAZUUJ4TQGGOQ8mUHKBk2EVWRC8zjkFy0W4yKkwFYbRCA86CWvi +2nAKomCsRGIxgHmYsmgvcgYqAgumzmQkNGB+kTMFSbj01mtPuGJegGgCiJkMUSk4 +jHNBSIIvcKoI5Tks4JyKa+vsRU4flA3Qf5akKIJylionFDeKaMUZMTRoCo7SC5zG +a4ytt3WOg8aSxcdqFwyoTGQkJuhGCjIIEMM5boIhnBqlHYXGv8BpiSGUYvCIS4u1 +Maec261se0lKFHXMw3BQqROXUWkGXysFMxj4JfPOkGhA0PHIw9MhNko7b+zfXaHg +1uoQg2QAkNFrIQ22gtgkK4dTijCCUDHMTfVfPp+OG8eT8QoelCCJKJgYnrAPLHmY +JJgBoqpWhA5TyRtBYfpHeVHa8dhWj6THSKSGSQfXwMtKIE2j1ozDSWDlNoH+ShCq +YXgmMYxsgzRHeZo2yuOyVvv4zSvPrFUvGOdvHlcv7369dv/mg2voz8/ev/Ti7R+u +vfyFunb8x88frd133z544eFPv3y49v3ll1595bcf//rkrYd/Aw== +=/aaM -----END PGP MESSAGE----- diff --git a/tests/repo/susetags/data/stable-x86-subset/control.xml b/tests/repo/susetags/data/stable-x86-subset/control.xml new file mode 100644 index 0000000..096763e --- /dev/null +++ b/tests/repo/susetags/data/stable-x86-subset/control.xml @@ -0,0 +1,793 @@ + + + + + + control + + + true + true + false + never + 95 + true + true + simple + false + true + true + true + true + false + true + false + + + + + /root/ + /root/inst-sys/ + + + + + + false + auto + + + http://download.opensuse.org/YaST/Repos/openSUSE_103_Servers.xml + + + + false + true + 7G + 40 + 5G + 20G + false + false + 15G + 25G + false + + + + false + laptop + ifplugd + + + + language + keyboard + timezone + users + networking + firewall + host + routing + proxy + runlevel + x11 + nis + ldap + printer + add-on + + + + + + + + + + + + installation,demo,autoinstallation + initial + initial + no + + hwinfo + keyboard + mouse + partitions + software + bootloader + timezone + language + runlevel + + + + + + partitions + software_simple + country_simple + + + + + + hwinfo + keyboard + mouse + partitions + software + bootloader + timezone + language + runlevel + + + + + + + + update + initial + normal + no + + update + packages + backup + language + + + + + + update + initial + initial + no + + hwinfo + media + + update + packages + backup + language + keyboard + + + + + + network + continue,normal + yes + + + lan + 20 + + + general + 5 + + + dsl + 30 + + + isdn + 40 + + + modem + 50 + + + remote + 60 + + + firewall + 10 + + + proxy + 70 + + + + + + + hardware + continue + yes + + x11 + printer + sound + tv + bluetooth + + + + + + + + + all + yes + yes + + + installation + initial + + + language + + no + yes + + yes + + true + + + + checkmedia + + + + license + + + + disks_activate + + + + system_analysis + + + + + productsources + yes + + + + add-on + yes + + + + timezone + + yes + + yes + + + + desktop + + + yes + + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + no + + + + finish + no + + + + + + + + all + yes + yes + + + update + initial + + + language + + no + + yes + + true + + + + checkmedia + + + + license + + + + disks_activate + + + + system_analysis + + + + update_partition + + + upgrade_urls + + + + productsources + yes + + + + add-on + yes + + + yes + + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + no + + + + finish + no + + + + + + all + + initial + + repair + + + + info + + + + repair + + + + + + + + all + yes + yes + + initial + + screen_shot + + + no + yes + + language + true + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + yes + + + + + + + + all + yes + yes + + initial + + demo + + + no + + language + true + + + + proposal + initial + + + + do_resize + false + i386,x86_64,ia64 + + + + prepdisk + + + + kickoff + + + + rpmcopy + no + no + + + + + + + continue + update + + all + yes + yes + + + + + rpmcopy + no + no + + + yes + + + + + ask_net_test + no + + + + do_net_test + + + + addon_update_sources + + + + suse_register + + + + ask_online_update + + + + you + + + + restore_settings + + + suseconfig + no + no + + + + release_notes + + + congratulate + + + + + + + continue + installation + + yes + yes + all + + + + yes + + + + + root + no + + + + initialization + no + no + + + + netprobe + no + no + + + + rpmcopy + no + no + + + + hostname + + + + proposal + network + + + + fam + + + + ask_net_test + + + + do_net_test + + + + addon_update_sources + + + + suse_register + + + + ask_online_update + + + + you + + + + extrasources + + + + restore_settings + + + + auth + + + + user + + + suseconfig + no + no + + + + release_notes + + + + proposal + hardware + + + + save_hardware_status + + + congratulate + + + + + + + initial + + autoinstallation + + all + no + no + + + + + autoinit + all + true + + + + autosetup + + + + proposal + initial + no + yes + + + + prepdisk + + + + kickoff + + + + autoimage + + + + rpmcopy + + + + finish + + + + + + + + all + no + no + + continue + autoinstallation + + + + netprobe + + + + autopost + + + + rpmcopy + + + yes + + + + + autoconfigure + + + suseconfig + + + + + diff --git a/tests/repo/susetags/data/stable-x86-subset/installation.xml b/tests/repo/susetags/data/stable-x86-subset/installation.xml new file mode 100644 index 0000000..f71e6b7 --- /dev/null +++ b/tests/repo/susetags/data/stable-x86-subset/installation.xml @@ -0,0 +1,109 @@ + + + + control-ISSLE + + false + + + auto + + + true + + + + + + + + + + product + continue,normal + installation + + yast2-issleconfig + + + + + + + no + no + + normal + installation,normal + + + + sw_single + yes + yes + + + + issleconfig + yes + yes + + + + inst_release_notes + yes + yes + + + inst_congratulate + no + yes + + + + + + + + + no + no + + continue,normal + installation,normal,update + + hostname + root + ca_mgm + + + + yast2-issleconfig + + + + + suseconfig + + + + issleconfig + yes + yes + + + + + + + + diff --git a/tests/repo/susetags/data/stable-x86-subset/license.tar.gz b/tests/repo/susetags/data/stable-x86-subset/license.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ecd631db47a6815e6cc079109daecb37253221cc GIT binary patch literal 5514 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 literal 0 HcmV?d00001 diff --git a/zypp/parser/susetags/ContentFileReader.cc b/zypp/parser/susetags/ContentFileReader.cc index 2594b42..13acb78 100644 --- a/zypp/parser/susetags/ContentFileReader.cc +++ b/zypp/parser/susetags/ContentFileReader.cc @@ -473,7 +473,7 @@ namespace zypp { if ( _pimpl->setFileCheckSum( _pimpl->repoindex().signingKeys, value ) ) { - ZYPP_THROW( ParseException( errPrefix( line.lineNo(), "Expected [algorithm checksum filename]", *line ) ) ); + ZYPP_THROW( ParseException( errPrefix( line.lineNo(), "Expected [KEY algorithm checksum filename]", *line ) ) ); } } else if ( key == "LANGUAGE" ) @@ -496,6 +496,13 @@ namespace zypp ZYPP_THROW( ParseException( errPrefix( line.lineNo(), "Expected [algorithm checksum filename]", *line ) ) ); } } + else if ( key == "HASH" ) + { + if ( _pimpl->setFileCheckSum( _pimpl->repoindex().mediaFileChecksums, value ) ) + { + ZYPP_THROW( ParseException( errPrefix( line.lineNo(), "Expected [algorithm checksum filename]", *line ) ) ); + } + } else if ( key == "TIMEZONE" ) { _pimpl->repoindex().timezone = value; diff --git a/zypp/parser/susetags/RepoIndex.h b/zypp/parser/susetags/RepoIndex.h index 601e2fc..824ae43 100644 --- a/zypp/parser/susetags/RepoIndex.h +++ b/zypp/parser/susetags/RepoIndex.h @@ -60,6 +60,7 @@ namespace zypp Pathname datadir; FileChecksumMap metaFileChecksums; + FileChecksumMap mediaFileChecksums; FileChecksumMap signingKeys; protected: diff --git a/zypp/repo/susetags/Downloader.cc b/zypp/repo/susetags/Downloader.cc index 5684dea..1f19a2e 100644 --- a/zypp/repo/susetags/Downloader.cc +++ b/zypp/repo/susetags/Downloader.cc @@ -10,11 +10,14 @@ #include "zypp/Locale.h" #include "zypp/ZConfig.h" #include "zypp/repo/MediaInfoDownloader.h" - #include "zypp/repo/susetags/Downloader.h" +#include "zypp/parser/ParseException.h" +#include "zypp/parser/susetags/RepoIndex.h" #include "zypp/base/UserRequestException.h" using namespace std; +using namespace zypp::parser; +using namespace zypp::parser::susetags; namespace zypp { @@ -67,116 +70,125 @@ void Downloader::download( MediaSetAccess &media, this->start( dest_dir, media ); this->reset(); - std::ifstream file((dest_dir + _path + "/content").asString().c_str()); - std::string buffer; Pathname descr_dir; - // FIXME Note this code assumes DESCR comes before as META - string value; - while (file && !file.eof()) + // Content file first to get the repoindex { - getline(file, buffer); - if ( buffer.substr( 0, 5 ) == "DESCR" ) - { - std::vector words; - if ( str::split( buffer, std::back_inserter(words) ) != 2 ) - { - // error - ZYPP_THROW(Exception("bad DESCR line")); - } - descr_dir = words[1]; - } - else if ( buffer.substr( 0, 4 ) == "META" ) + Pathname inputfile( dest_dir + _path + "/content" ); + ContentFileReader content; + content.setRepoIndexConsumer( bind( &Downloader::consumeIndex, this, _1 ) ); + content.parse( inputfile ); + } + if ( ! _repoindex ) + { + ZYPP_THROW( ParseException( (dest_dir+_path).asString() + ": " + "No reository index in content file." ) ); + } + + // Prepare parsing + descr_dir = _repoindex->descrdir; // path below reporoot + //_datadir = _repoIndex->datadir; // path below reporoot + + for ( RepoIndex::FileChecksumMap::const_iterator it = _repoindex->metaFileChecksums.begin(); + it != _repoindex->metaFileChecksums.end(); + ++it ) + { + // omit unwanted translations + if ( str::hasPrefix( it->first, "packages" ) ) { - std::vector words; - if ( str::split( buffer, std::back_inserter(words) ) != 4 ) - { - // error - ZYPP_THROW(Exception("bad META line")); - } - // omit unwanted translations - if ( str::hasPrefix( words[3], "packages" ) ) + std::string rest( str::stripPrefix( it->first, "packages" ) ); + if ( ! ( rest.empty() + || rest == ".DU" + || rest == ".en" + || rest == ".gz" + || rest == ".DU.gz" + || rest == ".en.gz" ) ) { - std::string rest( str::stripPrefix( words[3], "packages" ) ); - if ( ! ( rest.empty() - || rest == ".DU" - || rest == ".en" - || rest == ".gz" - || rest == ".DU.gz" - || rest == ".en.gz" ) ) + // Not 100% correct as we take each fallback of textLocale + Locale toParse( ZConfig::instance().textLocale() ); + while ( toParse != Locale::noCode ) { - // Not 100% correct as we take each fallback of textLocale - Locale toParse( ZConfig::instance().textLocale() ); - while ( toParse != Locale::noCode ) - { - if ( rest == ("."+toParse.code()) || (rest == ("."+toParse.code()+".gz")) ) - break; - toParse = toParse.fallback(); - } - if ( toParse == Locale::noCode ) - { - // discard - continue; - } + if ( rest == ("."+toParse.code()) || (rest == ("."+toParse.code()+".gz")) ) + break; + toParse = toParse.fallback(); + } + if ( toParse == Locale::noCode ) + { + // discard + continue; } } - else if ( str::endsWith( words[3], ".pat" ) - || str::endsWith( words[3], ".pat.gz" ) ) - { + } + else if ( str::endsWith( it->first, ".pat" ) + || str::endsWith( it->first, ".pat.gz" ) ) + { - // *** see also zypp/parser/susetags/RepoParser.cc *** + // *** see also zypp/parser/susetags/RepoParser.cc *** - // omit unwanted patterns, see https://bugzilla.novell.com/show_bug.cgi?id=298716 - // expect "..pat[.gz]", might contain additional dots - // split at dots, take .pat or .pat.gz into account + // omit unwanted patterns, see https://bugzilla.novell.com/show_bug.cgi?id=298716 + // expect "..pat[.gz]", might contain additional dots + // split at dots, take .pat or .pat.gz into account - std::vector patparts; - unsigned archpos = 2; - // expect "..pat[.gz]", might contain additional dots - unsigned count = str::split( buffer, std::back_inserter(patparts), "." ); - if ( patparts[count-1] == "gz" ) - archpos++; + std::vector patparts; + unsigned archpos = 2; + // expect "..pat[.gz]", might contain additional dots + unsigned count = str::split( it->first, std::back_inserter(patparts), "." ); + if ( patparts[count-1] == "gz" ) + archpos++; - if ( count > archpos ) + if ( count > archpos ) + { + try // might by an invalid architecture { - try // might by an invalid architecture + Arch patarch( patparts[count-archpos] ); + if ( !patarch.compatibleWith( ZConfig::instance().systemArchitecture() ) ) { - Arch patarch( patparts[count-archpos] ); - if ( !patarch.compatibleWith( ZConfig::instance().systemArchitecture() ) ) - { - // discard, if not compatible - MIL << "Discarding pattern " << words[3] << endl; - continue; - } - } - catch ( const Exception & excpt ) - { - WAR << "Pattern file name does not contain recognizable architecture: " << words[3] << endl; - // keep .pat file if it doesn't contain an recognizable arch + // discard, if not compatible + MIL << "Discarding pattern " << it->first << endl; + continue; } } + catch ( const Exception & excpt ) + { + WAR << "Pattern file name does not contain recognizable architecture: " << it->first << endl; + // keep .pat file if it doesn't contain an recognizable arch + } } - OnMediaLocation location( _path + descr_dir + words[3], 1 ); - location.setChecksum( CheckSum( words[1], words[2] ) ); - this->enqueueDigested(location); - } - else if (buffer.substr( 0, 3 ) == "KEY") - { - std::vector words; - if ( str::split( buffer, std::back_inserter(words) ) != 4 ) - { - // error - ZYPP_THROW(Exception("bad KEY line")); - } - OnMediaLocation location( _path + words[3], 1 ); - location.setChecksum( CheckSum( words[1], words[2] ) ); - this->enqueueDigested(location); } + MIL << "adding job " << it->first << endl; + OnMediaLocation location( _path + descr_dir + it->first, 1 ); + location.setChecksum( it->second ); + this->enqueueDigested(location); + } + + for ( RepoIndex::FileChecksumMap::const_iterator it = _repoindex->signingKeys.begin(); + it != _repoindex->signingKeys.end(); + ++it ) + { + OnMediaLocation location( _path + it->first, 1 ); + location.setChecksum( it->second ); + this->enqueueDigested(location); + } + + // add hashed media files + + for ( RepoIndex::FileChecksumMap::const_iterator it = _repoindex->mediaFileChecksums.begin(); + it != _repoindex->mediaFileChecksums.end(); + ++it ) + { + OnMediaLocation location( _path + it->first, 1 ); + location.setChecksum( it->second ); + this->enqueueDigested(location); } - file.close(); + this->start( dest_dir, media ); } +void Downloader::consumeIndex( const RepoIndex_Ptr & data_r ) +{ + MIL << "Consuming repo index" << endl; + _repoindex = data_r; +} + }// ns susetags }// ns source } // ns zypp diff --git a/zypp/repo/susetags/Downloader.h b/zypp/repo/susetags/Downloader.h index 384f63b..2092f7f 100644 --- a/zypp/repo/susetags/Downloader.h +++ b/zypp/repo/susetags/Downloader.h @@ -16,6 +16,7 @@ #include "zypp/RepoStatus.h" #include "zypp/MediaSetAccess.h" #include "zypp/repo/Downloader.h" +#include "zypp/parser/susetags/ContentFileReader.h" namespace zypp { @@ -53,8 +54,15 @@ namespace zypp * \short Status of the remote repository */ RepoStatus status( MediaSetAccess &media ); + + /** + * Content file parser consumer + */ + void consumeIndex( const parser::susetags::RepoIndex_Ptr & data_r ); + private: Pathname _path; + parser::susetags::RepoIndex_Ptr _repoindex; }; } // ns susetags -- 2.7.4