This is an automated email from the git hooks/post-receive script. smcv pushed a commit to branch master in repository game-data-packager.
commit 111d7b3bc9123abe2f0e3335f7c3d85cb15f3551 Author: Simon McVittie <[email protected]> Date: Wed Dec 27 18:19:37 2017 +0000 Introduce the concept of ignorable files These are discarded by compile_yaml, but can be used by make_template. Signed-off-by: Simon McVittie <[email protected]> --- data/ut99.yaml | 240 ++++++++++++++++++------------------ game_data_packager/data.py | 31 +++-- game_data_packager/game.py | 51 ++++++-- game_data_packager/make_template.py | 11 +- tools/check_equivalence.py | 3 +- tools/compile_yaml.py | 21 +++- 6 files changed, 209 insertions(+), 148 deletions(-) diff --git a/data/ut99.yaml b/data/ut99.yaml index 78a87b8..1281304 100644 --- a/data/ut99.yaml +++ b/data/ut99.yaml @@ -1183,139 +1183,139 @@ groups: files in both 436 Linux installers: group_members: | 125160 dd5c28472ea74ee5a52673333ce97caf Credits.tar.gz?436Linux - #4106 d92c0dc11fa537bcb32179a569e99751 Glide.ini.tar.gz?436Linux + .4106 d92c0dc11fa537bcb32179a569e99751 Glide.ini.tar.gz?436Linux 4103 62e055d90688ac23b257705cec4e1d2f OpenGL.ini.tar.gz?436Linux 1815 08c1e23a26a2b398c88262484ccf144c ucc?436Linux 3378 23cffee6c8d4ef48ac03e88e2e87a0aa icon.bmp?436Linux 8948 c68255408ebab50ef4d08a04bbc43ed5 icon.xpm?436Linux - #246961 6ce66812f952574ed5ba7ce0bd56e83c setup.data/splash.xpm?436Linux - #2290 96ec924389bdf38bd6b670a3be5a12b5 setup.sh?436Linux + .246961 6ce66812f952574ed5ba7ce0bd56e83c setup.data/splash.xpm + .2290 96ec924389bdf38bd6b670a3be5a12b5 setup.sh files in 436 Linux non-GOTY installer: group_members: | 2232989 245308fb9d88a1ad2312245a997ff5b5 data.tar.gz?436Linux - #687336 af9ec9d59c276ed359aee3721fdcc182 NetGamesUSA.com.tar.gz?436Linux + .687336 af9ec9d59c276ed359aee3721fdcc182 NetGamesUSA.com.tar.gz?436Linux 6423 27493ae9f9a19ffa4382af85c8721dd2 README?436Linux - #54 f310af1fbd172de2a8037f0fcf1622a2 autorun.inf - #1647 7da15a149cd7a20523ffa07bda522960 setup.data/apply-patch.sh - #446072 9052ba08c8c6088f670edbd93b648833 setup.data/bin/Linux/x86/glibc-2.1/setup.gtk - #796968 78d465ebee2e0ec0815129b3d032a08c setup.data/bin/Linux/x86/loki_patch - #731188 a2e4ecda6b9681bffab068d789210c14 setup.data/bin/Linux/x86/setup - #672468 857e755dfd86febf20aa1935e9db506f setup.data/bin/Linux/x86/uninstall + .54 f310af1fbd172de2a8037f0fcf1622a2 autorun.inf + .1647 7da15a149cd7a20523ffa07bda522960 setup.data/apply-patch.sh + .446072 9052ba08c8c6088f670edbd93b648833 setup.data/bin/Linux/x86/glibc-2.1/setup.gtk + .796968 78d465ebee2e0ec0815129b3d032a08c setup.data/bin/Linux/x86/loki_patch + .731188 a2e4ecda6b9681bffab068d789210c14 setup.data/bin/Linux/x86/setup + .672468 857e755dfd86febf20aa1935e9db506f setup.data/bin/Linux/x86/uninstall 1558383 fd7640bdf977b48b6a027f0489d80e7e setup.data/data/System/BotPack.u.0?436Linux - #8145 6bc32f5162eab13979cbc296240fde00 setup.data/data/System/Core.u.0?436Linux + .8145 6bc32f5162eab13979cbc296240fde00 setup.data/data/System/Core.u.0?436Linux 11855 5fef79ff336a169b87de4ab94c7499ae setup.data/data/System/Editor.u.0?436Linux - #103106 c0a144cf7ba1cf831c9d9e0786ed2a03 setup.data/data/System/Engine.u.0?436Linux + .103106 c0a144cf7ba1cf831c9d9e0786ed2a03 setup.data/data/System/Engine.u.0?436Linux 1496 feec1764f763027c6b47922a8d89d10f setup.data/data/System/Fire.u.0?436Linux - #2457 f9c800162824ec08d0119a015b6e51c6 setup.data/data/System/IpDrv.u.0?436Linux - #5130 5b23cb9db168450e587acb066946a903 setup.data/data/System/IpServer.u.0?436Linux - #38470 366a9f8167405134bc03210bb122d479 setup.data/data/System/UBrowser.u.0?436Linux + .2457 f9c800162824ec08d0119a015b6e51c6 setup.data/data/System/IpDrv.u.0?436Linux + .5130 5b23cb9db168450e587acb066946a903 setup.data/data/System/IpServer.u.0?436Linux + .38470 366a9f8167405134bc03210bb122d479 setup.data/data/System/UBrowser.u.0?436Linux 94960 1519684e8ee14b1aec374a930355f8d7 setup.data/data/System/UMenu.u.0?436Linux 3075 4da37ab6fe98361048608439d7f59c9e setup.data/data/System/UTBrowser.u.0?436Linux 88479 0b653808fa60e7bf544d1971baf9d091 setup.data/data/System/UTMenu.u.0?436Linux - #4828 4160474191bd2befef22313463e4194f setup.data/data/System/UTServerAdmin.u.0?436Linux - #2465 898e0a40d05a1b1367d7dbbf37812a97 setup.data/data/System/UWeb.u.0?436Linux + .4828 4160474191bd2befef22313463e4194f setup.data/data/System/UTServerAdmin.u.0?436Linux + .2465 898e0a40d05a1b1367d7dbbf37812a97 setup.data/data/System/UWeb.u.0?436Linux 45790 d473f88ff395aee238bc97aed945f70c setup.data/data/System/UWindow.u.0?436Linux - #13586 8bce32585655f61fee0458cd5cb450be setup.data/locale/de/LC_MESSAGES/setup.mo - #10963 0de7fd9b48565a4d57809874a31ba5c4 setup.data/locale/es/LC_MESSAGES/setup.mo - #17345 6c9552e082a6e7fd974d7efac2b6ca03 setup.data/locale/fr/LC_MESSAGES/setup.mo - #16758 a71c3e2153e88d6f32776ffa01fcc033 setup.data/locale/it/LC_MESSAGES/setup.mo - #14154 16d15257543b9b2f279ef97181df5b66 setup.data/locale/nl/LC_MESSAGES/setup.mo - #14076 ec98216a3cc0426b8875bd46a8c85e59 setup.data/locale/sv/LC_MESSAGES/setup.mo - #2480 477da01ad1ea292037856b8be3b13ac6 setup.data/patch.dat - #46281 e2abdcb6bdb53732a0c3134cb4a2c045 setup.data/setup.glade - #1322 91c848ba41d70437668c3864cd24d5db setup.data/setup.xml - #246961 6ce66812f952574ed5ba7ce0bd56e83c setup.data/splash.xpm - #2290 96ec924389bdf38bd6b670a3be5a12b5 setup.sh + .13586 8bce32585655f61fee0458cd5cb450be setup.data/locale/de/LC_MESSAGES/setup.mo + .10963 0de7fd9b48565a4d57809874a31ba5c4 setup.data/locale/es/LC_MESSAGES/setup.mo + .17345 6c9552e082a6e7fd974d7efac2b6ca03 setup.data/locale/fr/LC_MESSAGES/setup.mo + .16758 a71c3e2153e88d6f32776ffa01fcc033 setup.data/locale/it/LC_MESSAGES/setup.mo + .14154 16d15257543b9b2f279ef97181df5b66 setup.data/locale/nl/LC_MESSAGES/setup.mo + .14076 ec98216a3cc0426b8875bd46a8c85e59 setup.data/locale/sv/LC_MESSAGES/setup.mo + .2480 477da01ad1ea292037856b8be3b13ac6 setup.data/patch.dat + .46281 e2abdcb6bdb53732a0c3134cb4a2c045 setup.data/setup.glade + .1322 91c848ba41d70437668c3864cd24d5db setup.data/setup.xml + .246961 6ce66812f952574ed5ba7ce0bd56e83c setup.data/splash.xpm + .2290 96ec924389bdf38bd6b670a3be5a12b5 setup.sh 1758 ed490362c20f6049ae7ee66283a925e4 ut?436Linux - #900 cedf965ce5743e044d379a9a9304da07 win32/README.htm - #3584 80246ccce0e2f0561a23e04bf607a78d win32/autorun.exe + .900 cedf965ce5743e044d379a9a9304da07 win32/README.htm + .3584 80246ccce0e2f0561a23e04bf607a78d win32/autorun.exe files in 436 Linux GOTY installer: group_members: | 2234199 f5e11d360c317fc05b4edadb80bc834e data.tar.gz?436Linux-goty - #687340 3f30f27e770416e9e234ac214cced00e NetGamesUSA.com.tar.gz?436Linux-goty + .687340 3f30f27e770416e9e234ac214cced00e NetGamesUSA.com.tar.gz?436Linux-goty 6093 96b638f5074e39c12b70f5e3c87ef8f0 README?436Linux-goty - #1647 42a702e7793e50456a5b7534e108382e setup.data/apply-patch.sh?436Linux-goty - #1717280 420bb6adb95e094fb68a1f77ae9e94f2 setup.data/bin/Linux/x86/glibc-2.1/setup.gtk?436Linux-goty - #800224 909ebd61345dca19d502e9f12c17c5ef setup.data/bin/Linux/x86/loki_patch?436Linux-goty - #670644 fcba3bd0ec24b50e79e4d7119f213741 setup.data/bin/Linux/x86/register?436Linux-goty - #737108 877b1c1ea7cc35ee29e5af4775f5ba9d setup.data/bin/Linux/x86/setup?436Linux-goty - #675604 2d972e0e5ba9f607628562fbfaf069d2 setup.data/bin/Linux/x86/uninstall?436Linux-goty + .1647 42a702e7793e50456a5b7534e108382e setup.data/apply-patch.sh?436Linux-goty + .1717280 420bb6adb95e094fb68a1f77ae9e94f2 setup.data/bin/Linux/x86/glibc-2.1/setup.gtk?436Linux-goty + .800224 909ebd61345dca19d502e9f12c17c5ef setup.data/bin/Linux/x86/loki_patch?436Linux-goty + .670644 fcba3bd0ec24b50e79e4d7119f213741 setup.data/bin/Linux/x86/register?436Linux-goty + .737108 877b1c1ea7cc35ee29e5af4775f5ba9d setup.data/bin/Linux/x86/setup?436Linux-goty + .675604 2d972e0e5ba9f607628562fbfaf069d2 setup.data/bin/Linux/x86/uninstall?436Linux-goty 363823 798600117b69277d2a1e662e6db7e496 setup.data/data/System/BotPack.u.0?436Linux-goty - #7444 f014c0a8506b013db5b77ce6591f689d setup.data/data/System/Core.u.0?436Linux-goty + .7444 f014c0a8506b013db5b77ce6591f689d setup.data/data/System/Core.u.0?436Linux-goty 4889 ec644dbb06eae02859151b5fa2fe0c5e setup.data/data/System/Editor.u.0?436Linux-goty - #81478 a3d6a5e9e852b2c37f0dcacc5150e82d setup.data/data/System/Engine.u.0?436Linux-goty + .81478 a3d6a5e9e852b2c37f0dcacc5150e82d setup.data/data/System/Engine.u.0?436Linux-goty 1480 2e540d2a0e4e36f43851a12316290c32 setup.data/data/System/Fire.u.0?436Linux-goty - #2284 8a6d60885fb7eb350de3ba31e05ec437 setup.data/data/System/IpDrv.u.0?436Linux-goty - #2113 7f2ea8e86c6318130f9a4c03d61412d9 setup.data/data/System/IpServer.u.0?436Linux-goty - #24918 3c5841acc4621523e7828d302314dd40 setup.data/data/System/UBrowser.u.0?436Linux-goty + .2284 8a6d60885fb7eb350de3ba31e05ec437 setup.data/data/System/IpDrv.u.0?436Linux-goty + .2113 7f2ea8e86c6318130f9a4c03d61412d9 setup.data/data/System/IpServer.u.0?436Linux-goty + .24918 3c5841acc4621523e7828d302314dd40 setup.data/data/System/UBrowser.u.0?436Linux-goty 676976 e5e397cca0fd09c9218a03fffcc65e00 setup.data/data/System/UMenu.u.0?436Linux-goty 1212 51e6d8dca8880936040f4bd1eec41d1b setup.data/data/System/UTBrowser.u.0?436Linux-goty 39490 7c9ba483389d35c6ea859a4410cc501f setup.data/data/System/UTMenu.u.0?436Linux-goty - #4670 936067d4f92381e13f283f19bc3a95da setup.data/data/System/UTServerAdmin.u.0?436Linux-goty - #2228 f80156ac4bc69a902b2423ebf2b7d5eb setup.data/data/System/UWeb.u.0?436Linux-goty + .4670 936067d4f92381e13f283f19bc3a95da setup.data/data/System/UTServerAdmin.u.0?436Linux-goty + .2228 f80156ac4bc69a902b2423ebf2b7d5eb setup.data/data/System/UWeb.u.0?436Linux-goty 43810 d05886c73cca88cfff3f7a18689e0fd5 setup.data/data/System/UWindow.u.0?436Linux-goty - #336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/de/LC_MESSAGES/loki-uninstall.mo?436Linux-goty - #13857 bb2c10e95ad55a7c5d03240ab8f8b941 setup.data/locale/de/LC_MESSAGES/setup.mo?436Linux-goty - #336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/es/LC_MESSAGES/loki-uninstall.mo?436Linux-goty - #17632 6c6da19ddc68683959bbcca73b0ae9b9 setup.data/locale/es/LC_MESSAGES/setup.mo?436Linux-goty - #3328 4641713b2862b60ed129d1390d419422 setup.data/locale/fr/LC_MESSAGES/loki-uninstall.mo?436Linux-goty - #19506 f8a49325f5eb14083b7169f3ca6d26ae setup.data/locale/fr/LC_MESSAGES/setup.mo?436Linux-goty - #336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/it/LC_MESSAGES/loki-uninstall.mo?436Linux-goty - #17420 afa923428981e3daedbdb5326cff1e58 setup.data/locale/it/LC_MESSAGES/setup.mo?436Linux-goty - #336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/nl/LC_MESSAGES/loki-uninstall.mo?436Linux-goty - #14433 a0d894dd60add74d7fed9fa3cda3faf8 setup.data/locale/nl/LC_MESSAGES/setup.mo?436Linux-goty - #336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/sv/LC_MESSAGES/loki-uninstall.mo?436Linux-goty - #14355 7aafdc0cac53897a32a9e550b5e04e83 setup.data/locale/sv/LC_MESSAGES/setup.mo?436Linux-goty - #2546 3bb0568bf2c0db703fd60495ce98e99c setup.data/patch.dat?436Linux-goty - #45962 49b733b9ad58509ead6491f88c2117be setup.data/setup.glade?436Linux-goty - #1508 76dd6fe6736e5510110d85aa92eea623 setup.data/setup.xml?436Linux-goty - #307 448bd1c3c018c6329c8bffb6b8dfb58d setup.data/uz-maps.sh?436Linux-goty + .336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/de/LC_MESSAGES/loki-uninstall.mo?436Linux-goty + .13857 bb2c10e95ad55a7c5d03240ab8f8b941 setup.data/locale/de/LC_MESSAGES/setup.mo?436Linux-goty + .336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/es/LC_MESSAGES/loki-uninstall.mo?436Linux-goty + .17632 6c6da19ddc68683959bbcca73b0ae9b9 setup.data/locale/es/LC_MESSAGES/setup.mo?436Linux-goty + .3328 4641713b2862b60ed129d1390d419422 setup.data/locale/fr/LC_MESSAGES/loki-uninstall.mo?436Linux-goty + .19506 f8a49325f5eb14083b7169f3ca6d26ae setup.data/locale/fr/LC_MESSAGES/setup.mo?436Linux-goty + .336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/it/LC_MESSAGES/loki-uninstall.mo?436Linux-goty + .17420 afa923428981e3daedbdb5326cff1e58 setup.data/locale/it/LC_MESSAGES/setup.mo?436Linux-goty + .336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/nl/LC_MESSAGES/loki-uninstall.mo?436Linux-goty + .14433 a0d894dd60add74d7fed9fa3cda3faf8 setup.data/locale/nl/LC_MESSAGES/setup.mo?436Linux-goty + .336 1a8e5dede8ebc22262a490f9884f7124 setup.data/locale/sv/LC_MESSAGES/loki-uninstall.mo?436Linux-goty + .14355 7aafdc0cac53897a32a9e550b5e04e83 setup.data/locale/sv/LC_MESSAGES/setup.mo?436Linux-goty + .2546 3bb0568bf2c0db703fd60495ce98e99c setup.data/patch.dat?436Linux-goty + .45962 49b733b9ad58509ead6491f88c2117be setup.data/setup.glade?436Linux-goty + .1508 76dd6fe6736e5510110d85aa92eea623 setup.data/setup.xml?436Linux-goty + .307 448bd1c3c018c6329c8bffb6b8dfb58d setup.data/uz-maps.sh?436Linux-goty 1758 9eef92ea8ca2574565aaaf4a7bb5b3e8 ut?436Linux-goty misc files in setup_ut_goty_2.0.0.5.exe: group_members: | - #96264 4d3ac88054df63fc810427bdaa96c458 GameuxInstallHelper.dll?gog - #1105408 08a1b06fe2fee5a1e3b33f1d71b84705 System/3DfxSpl2.dll?gog - #60928 175e5ad865ba3c7f5310beb4a676bb4d System/GotoHeat.exe?gog - #277776 83170bd54c3867da178f9612c2746c6a System/MSVCRT.dll?gog - #113 12b05d077e4cb8c633516409e6bc6ad9 System/RunServer.bat?gog - #1310720 e4867e049c2ece234254c15f441ffc48 System/glide2x.dll?gog - #290112 57878b3122168db83426904304973765 System/goggame.dll?gog - #273408 87be14d2bee78cb50c65445207ef4663 System/mplaynow.exe?gog - #331776 6ab5ef6635da1fd08be7914d9af473a2 System/nglide_config.exe?gog - #131758 2ba68e1f6af1fa6b49e48aedaa0ec643 gfw_high.ico?gog - #69248 88cbd6c016021b7b4a4b15879476ec6b gog.ico?gog - #11544 e2ce3faad9adfca376694a86f729f218 System/Default.ini?gog - #35393 2d59a4541c44f09f67655837f2315562 System/Manifest.ini?gog - #11544 e4426332a021b5300c8f840b4c9d0d78 System/UnrealTournament.ini?gog - #10053 c7ac58771ae51370f166c3d5700ea3a6 System/User.ini?gog - #644 5c374117d2d92d822762c72ea9f2f725 gog_ut_goty.sdb + .96264 4d3ac88054df63fc810427bdaa96c458 GameuxInstallHelper.dll?gog + .1105408 08a1b06fe2fee5a1e3b33f1d71b84705 System/3DfxSpl2.dll?gog + .60928 175e5ad865ba3c7f5310beb4a676bb4d System/GotoHeat.exe?gog + .277776 83170bd54c3867da178f9612c2746c6a System/MSVCRT.dll?gog + .113 12b05d077e4cb8c633516409e6bc6ad9 System/RunServer.bat?gog + .1310720 e4867e049c2ece234254c15f441ffc48 System/glide2x.dll?gog + .290112 57878b3122168db83426904304973765 System/goggame.dll?gog + .273408 87be14d2bee78cb50c65445207ef4663 System/mplaynow.exe?gog + .331776 6ab5ef6635da1fd08be7914d9af473a2 System/nglide_config.exe?gog + .131758 2ba68e1f6af1fa6b49e48aedaa0ec643 gfw_high.ico?gog + .69248 88cbd6c016021b7b4a4b15879476ec6b gog.ico?gog + .11544 e2ce3faad9adfca376694a86f729f218 System/Default.ini?gog + .35393 2d59a4541c44f09f67655837f2315562 System/Manifest.ini?gog + .11544 e4426332a021b5300c8f840b4c9d0d78 System/UnrealTournament.ini?gog + .10053 c7ac58771ae51370f166c3d5700ea3a6 System/User.ini?gog + .644 5c374117d2d92d822762c72ea9f2f725 gog_ut_goty.sdb _ _ System/mplaynow.ini - #_ _ System/Core.dll?436 - #_ _ System/d3ddrv.dll?436 - #_ _ System/editor.dll?436 - #_ _ System/engine.dll?436 - #_ _ System/fire.dll?436 - #_ _ System/galaxy.dll?436 - #_ _ System/glideDrv.dll?436 - #_ _ System/ipdrv.dll?436 - #_ _ System/MeTaLDrv.dll?436 - #_ _ System/opengldrv.dll?436 - #_ _ System/render.dll?436 - #_ _ System/SGLDrv.dll?436 - #_ _ System/setup.exe?436 - #_ _ System/softdrv.dll?436 - #_ _ System/ucc.exe?436 - #_ _ System/uweb.dll?436 - #_ _ System/UnrealEd.exe?436 - #_ _ System/UnrealTournament.exe?436 - #_ _ System/windrv.dll?436 - #_ _ System/Window.dll?436 - #_ _ System/DefUser.ini?436Windows + ._ _ System/Core.dll?436 + ._ _ System/d3ddrv.dll?436 + ._ _ System/editor.dll?436 + ._ _ System/engine.dll?436 + ._ _ System/fire.dll?436 + ._ _ System/galaxy.dll?436 + ._ _ System/glideDrv.dll?436 + ._ _ System/ipdrv.dll?436 + ._ _ System/MeTaLDrv.dll?436 + ._ _ System/opengldrv.dll?436 + ._ _ System/render.dll?436 + ._ _ System/SGLDrv.dll?436 + ._ _ System/setup.exe?436 + ._ _ System/softdrv.dll?436 + ._ _ System/ucc.exe?436 + ._ _ System/uweb.dll?436 + ._ _ System/UnrealEd.exe?436 + ._ _ System/UnrealTournament.exe?436 + ._ _ System/windrv.dll?436 + ._ _ System/Window.dll?436 + ._ _ System/DefUser.ini?436Windows 3320729 7306be9538d1d877dd310a664edb7055 Maps/CTF-High.unr?goty 2429905 78dd26a9764ac5246461a20138145461 Maps/CityIntro.unr?goty @@ -1399,36 +1399,36 @@ groups: 5455 751bf6fc5ddef383eaba74973dfc34b4 System/Engine.int?436Windows 105371 d267a7624bad310543f7d601e3146c25 System/UTServerAdmin.u?436 28410 f9fc6ee646f644523d367343022d0633 System/UWeb.u?436 - #57344 b1876f7ad9f6b4603b3871789898e0d5 System/MeTaLDrv.dll?436 + .57344 b1876f7ad9f6b4603b3871789898e0d5 System/MeTaLDrv.dll?436 454 bc0dac15cecaf34352af6e593a92820b System/MeTaLDrv.int?ut99 - #94208 337976d2cf76d9da589a57267aef6683 System/SGLDrv.dll?436 - #1380352 57177a47e0135af6beb6419558f4121a System/UnrealEd.exe?436 - #241664 7dadcc7e3a9a3d66001e3b37cf636f0e System/UnrealTournament.exe?436 - #483328 532bee3d7d03a9af85b00e56c22bed0b System/Window.dll?436 - #640 d31aec7a9de94a4611bbf6d8886df8b4 System/editorres/vssver.scc?436 - #786432 ccf104341c7452b06295d421167dba95 System/Core.dll?436 + .94208 337976d2cf76d9da589a57267aef6683 System/SGLDrv.dll?436 + .1380352 57177a47e0135af6beb6419558f4121a System/UnrealEd.exe?436 + .241664 7dadcc7e3a9a3d66001e3b37cf636f0e System/UnrealTournament.exe?436 + .483328 532bee3d7d03a9af85b00e56c22bed0b System/Window.dll?436 + .640 d31aec7a9de94a4611bbf6d8886df8b4 System/editorres/vssver.scc?436 + .786432 ccf104341c7452b06295d421167dba95 System/Core.dll?436 59233 d2b07e7c9425c14644fd79e75fb0df29 System/Core.u?436 - #217088 dd6e3692f8ead5e1df88716024bc25d1 System/d3ddrv.dll?436 - #11316 d988b22626fdfb227e02a57406b1a0fd System/Default.ini?436nodelta - #10092 8d8007b9686955d84c43eacf0a5b0de1 System/DefUser.ini?436nodelta - #1257472 e089b6a395b26c7fe44551bb027d8d7c System/editor.dll?436 - #1789952 30e34c2a9e0eab908c5da6f322f4e2d7 System/engine.dll?436 + .217088 dd6e3692f8ead5e1df88716024bc25d1 System/d3ddrv.dll?436 + .11316 d988b22626fdfb227e02a57406b1a0fd System/Default.ini?436nodelta + .10092 8d8007b9686955d84c43eacf0a5b0de1 System/DefUser.ini?436nodelta + .1257472 e089b6a395b26c7fe44551bb027d8d7c System/editor.dll?436 + .1789952 30e34c2a9e0eab908c5da6f322f4e2d7 System/engine.dll?436 1149858 e6fbb28182bc82a9414cc96a744eda1b System/Engine.u?436 - #106496 5fc2add20d2afc1bdf068d8c2611d312 System/fire.dll?436 - #339968 cb246e9a387cc002e6ea13264ac0dc08 System/galaxy.dll?436 - #81920 9261d20e08276dd3a3cb1fccee709ae4 System/glidedrv.dll?436 - #233472 ff5ddc3652a71526fe6ee67842e8451c System/ipdrv.dll?436 + .106496 5fc2add20d2afc1bdf068d8c2611d312 System/fire.dll?436 + .339968 cb246e9a387cc002e6ea13264ac0dc08 System/galaxy.dll?436 + .81920 9261d20e08276dd3a3cb1fccee709ae4 System/glidedrv.dll?436 + .233472 ff5ddc3652a71526fe6ee67842e8451c System/ipdrv.dll?436 32162 7cae231b737bb22bdcf0403ffbb19cca System/IpServer.u?436 - #102400 12031672ff432601cf638efe2e26acd6 System/opengldrv.dll?436 - #237568 6f18d6bb2b3dc12d0d2e5ad5cc66586b System/render.dll?436 - #311296 ca649ea591c8767e0f9ee197af3f44e8 System/setup.exe?436 - #389120 da8d1c3fcd740e85185f11321ab5d3ff System/softdrv.dll?436 + .102400 12031672ff432601cf638efe2e26acd6 System/opengldrv.dll?436 + .237568 6f18d6bb2b3dc12d0d2e5ad5cc66586b System/render.dll?436 + .311296 ca649ea591c8767e0f9ee197af3f44e8 System/setup.exe?436 + .389120 da8d1c3fcd740e85185f11321ab5d3ff System/softdrv.dll?436 329791 7409bc1b0e08329f4f86fc3c9ce0d969 System/UBrowser.u?436 - #110592 1b2ba310e4b96bd0b435f30224614bf4 System/ucc.exe?436 + .110592 1b2ba310e4b96bd0b435f30224614bf4 System/ucc.exe?436 1904411 bbec875a92f258bf01f07638fe29baff System/UMenu.u?436Windows - #45056 59ce64cc09e8f412635b3cf2cd5c61dc System/uweb.dll?436 - #122880 25242ac38ff1f40826fab099d3314555 System/windrv.dll?436 + .45056 59ce64cc09e8f412635b3cf2cd5c61dc System/uweb.dll?436 + .122880 25242ac38ff1f40826fab099d3314555 System/windrv.dll?436 archives: group_members: | diff --git a/game_data_packager/data.py b/game_data_packager/data.py index 4b04cda..9f689e9 100644 --- a/game_data_packager/data.py +++ b/game_data_packager/data.py @@ -192,6 +192,7 @@ class WantedFile(HashedFile): self.download = None self.executable = False self.filename = name.split('?')[0] + self.ignorable = False self.install_as = self.filename self._install_to = None self.license = False @@ -276,12 +277,18 @@ class WantedFile(HashedFile): else: ret[k] = v + provides = set() + if expand: - if self.provides_files: - ret['provides'] = sorted(f.name for f in self.provides_files) + for f in self.provides_files: + if not f.ignorable: + provides.add(f.name) else: - if self.provides: - ret['provides'] = sorted(self.provides) + for filename in self.provides: + provides.add(filename) + + if provides: + ret['provides'] = sorted(provides) for k in ( 'download', @@ -415,7 +422,8 @@ yaml.add_representer(YamlLiteral, YamlLiteral.to_yaml) class FileGroup: __APPLY_TO_ALL = ( - 'doc', 'executable', 'install_to', 'license', 'unsuitable', + 'doc', 'executable', 'ignorable', 'install_to', 'license', + 'unsuitable', ) def __init__(self, name): @@ -436,7 +444,7 @@ class FileGroup: if value is not None: setattr(other, attr, value) - def to_data(self, expand=True, files=None): + def to_data(self, expand=True, files=None, include_ignorable=False): ret = {} for attr in self.__APPLY_TO_ALL: @@ -452,10 +460,18 @@ class FileGroup: group_members = [] for name in sorted(self.group_members): + prefix = '' + if name in files: f = files[name] size = f.size md5 = f.md5 + + if f.ignorable: + if not include_ignorable: + continue + + prefix = '.' else: size = '_' md5 = '_' @@ -466,7 +482,8 @@ class FileGroup: if md5 is None: md5 = '_' - group_members.append('%-9s %s %s\n' % (size, md5, name)) + group_members.append( + '%s%-9s %s %s\n' % (prefix, size, md5, name)) ret['group_members'] = YamlLiteral(''.join(group_members)) diff --git a/game_data_packager/game.py b/game_data_packager/game.py index 2e82e94..e5216c2 100644 --- a/game_data_packager/game.py +++ b/game_data_packager/game.py @@ -346,7 +346,7 @@ class GameData(object): return help_text - def to_data(self, expand=True): + def to_data(self, expand=True, include_ignorable=False): files = {} groups = {} packages = {} @@ -360,13 +360,21 @@ class GameData(object): return ret for filename, f in self.files.items(): + if f.ignorable and not include_ignorable: + continue + data = f.to_data(expand=expand) if data or expand: files[filename] = data for name, g in self.groups.items(): - groups[name] = g.to_data(expand=expand, files=self.files) + if g.ignorable and not include_ignorable: + continue + + groups[name] = g.to_data( + expand=expand, files=self.files, + include_ignorable=include_ignorable) for name, package in self.packages.items(): packages[name] = package.to_data( @@ -402,6 +410,9 @@ class GameData(object): if f.alternatives: continue + if f.ignorable and not include_ignorable: + continue + if f.md5 is None: unknown_md5s.add(filename) @@ -452,14 +463,21 @@ class GameData(object): for filename in sorted(self.files.keys()): f = self.files[filename] + prefix = '' + + if f.ignorable: + if not include_ignorable: + continue + + prefix = '.' if f.sha1 is not None: - sha1s.append('%-40s %s\n' % (f.sha1, f.name)) + sha1s.append('%s%-40s %s\n' % (prefix, f.sha1, f.name)) if f.sha256 is not None: - sha256s.append('%-64s %s\n' % (f.sha256, f.name)) + sha256s.append('%s%-64s %s\n' % (prefix, f.sha256, f.name)) - if f.size is None: + if f.size is None and not f.ignorable: unknown_sizes.append(filename) for g in self.groups.values(): @@ -475,7 +493,8 @@ class GameData(object): if md5 is None: md5 = '_' - ungrouped.append('%-9s %32s %s\n' % (size, md5, filename)) + ungrouped.append( + '%s%-9s %32s %s\n' % (prefix, size, md5, filename)) if unknown_sizes: ret['unknown_sizes'] = unknown_sizes @@ -619,15 +638,21 @@ class GameData(object): """Parse one line from md5sums-style data.""" stripped = line.strip() + ignorable = False + if stripped == '' or stripped.startswith('#'): return + if stripped[0] == '.': + ignorable = True + stripped = stripped[1:] + if alg == 'size_and_md5': - size, hexdigest, filename = line.split(None, 2) + size, hexdigest, filename = stripped.split(None, 2) alg = 'md5' else: size = None - hexdigest, filename = MD5SUM_DIVIDER.split(line, 1) + hexdigest, filename = MD5SUM_DIVIDER.split(stripped, 1) if filename in self.groups: assert size in (None, '_'), \ @@ -646,6 +671,9 @@ class GameData(object): if hexdigest is not None and hexdigest != '_': setattr(f, alg, hexdigest) + if ignorable: + f.ignorable = True + return f def _populate_groups(self, stream): @@ -840,9 +868,10 @@ class GameData(object): for filename, f in self.files.items(): for provided in f.provides_files: - self.providers.setdefault(provided.name, set()).add(filename) + if not provided.ignorable: + self.providers.setdefault(provided.name, set()).add(filename) - if f.alternatives: + if f.alternatives or f.ignorable: continue if f.distinctive_size and f.size is not None: @@ -1009,7 +1038,7 @@ class GameData(object): assert wanted.sha1 is None, wanted.name assert wanted.sha256 is None, wanted.name assert wanted.size is None, wanted.name - else: + elif not wanted.ignorable: assert (wanted.size is not None or filename in self.data.get('unknown_sizes', ()) ), (self.shortname, wanted.name) diff --git a/game_data_packager/make_template.py b/game_data_packager/make_template.py index 3051522..fcfc3dc 100644 --- a/game_data_packager/make_template.py +++ b/game_data_packager/make_template.py @@ -571,7 +571,7 @@ class Template: def print_yaml(self): print('---') - data = self.game.to_data(expand=False) + data = self.game.to_data(expand=False, include_ignorable=True) if data: yaml.dump(data, default_flow_style=False, stream=sys.stdout) @@ -610,13 +610,16 @@ class Template: print(' group_members: |') for f in sorted(group.group_members): - print(' %-9s %s %s' % (self.size[f], self.md5[f], f)) + if f in self.unwanted.group_members: + print(' .%-9s %s %s' % (self.size[f], self.md5[f], f)) + else: + print(' %-9s %s %s' % (self.size[f], self.md5[f], f)) print('\nsha1sums: |') for f in sorted(self.sha1.keys()): if f in self.unwanted.group_members: - print(' #%s %s' % (self.sha1[f], f)) + print(' .%s %s' % (self.sha1[f], f)) else: print(' %s %s' % (self.sha1[f], f)) @@ -624,7 +627,7 @@ class Template: for f in sorted(self.sha256.keys()): if f in self.unwanted.group_members: - print(' #%s %s' % (self.sha256[f], f)) + print(' .%s %s' % (self.sha256[f], f)) else: print(' %s %s' % (self.sha256[f], f)) diff --git a/tools/check_equivalence.py b/tools/check_equivalence.py index 7e047e7..85c128b 100755 --- a/tools/check_equivalence.py +++ b/tools/check_equivalence.py @@ -116,7 +116,8 @@ if __name__ == '__main__': json_game.load_file_data(check=True, use_vfs=False) json_to_data = json_game.to_data() json_to_json = dump(json_to_data) - json_to_data_unexpanded = json_game.to_data(expand=False) + json_to_data_unexpanded = json_game.to_data( + expand=False, include_ignorable=True) json_to_json_unexpanded = dump(json_to_data_unexpanded) yaml_game = from_yaml[name] diff --git a/tools/compile_yaml.py b/tools/compile_yaml.py index ce1676c..9b1eb55 100755 --- a/tools/compile_yaml.py +++ b/tools/compile_yaml.py @@ -53,13 +53,19 @@ def main(f, out): # The group data starts with a list of groups. This is necessary # so we can know whether a group member, encountered later on in # the data, is a group or a file. - for group_name in sorted(groups.keys()): + for group_name, group_data in sorted(groups.items()): + if isinstance(group_data, dict): + if group_data.get('ignorable'): + continue + writer.write('*%s\n' % group_name) for group_name, group_data in sorted(groups.items()): - writer.write('[%s]\n' % group_name) - if isinstance(group_data, dict): + if group_data.get('ignorable'): + continue + + writer.write('[%s]\n' % group_name) attrs = {} members = group_data['group_members'] for k, v in group_data.items(): @@ -69,6 +75,7 @@ def main(f, out): json.dump(attrs, writer, sort_keys=True) writer.write('\n') elif isinstance(group_data, (str, list)): + writer.write('[%s]\n' % group_name) members = group_data else: raise AssertionError('group %r should be dict, str or list' % group_name) @@ -80,7 +87,9 @@ def main(f, out): assert not line.startswith('[') assert not line.startswith('{') line = line.strip() - if line and not line.startswith('#'): + if (line and + not line.startswith('#') and + not line.startswith('.')): has_members = True writer.write(' '.join(line.split())) writer.write('\n') @@ -112,7 +121,9 @@ def main(f, out): for line in v.splitlines(): stripped = line.strip() - if stripped == '' or stripped.startswith('#'): + if (stripped == '' or + stripped.startswith('#') or + stripped.startswith('.')): continue writer.write(line) writer.write('\n') -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

