1 /** 2 * DMD installer 3 * 4 * License: 5 * This Source Code Form is subject to the terms of 6 * the Mozilla Public License, v. 2.0. If a copy of 7 * the MPL was not distributed with this file, You 8 * can obtain one at http://mozilla.org/MPL/2.0/. 9 * 10 * Authors: 11 * Vladimir Panteleev <ae@cy.md> 12 */ 13 14 module ae.sys.install.dmd; 15 16 import std.array; 17 import std.conv; 18 import std.exception; 19 import std.file; 20 import std.string; 21 import std.path; 22 23 import ae.sys.archive; 24 import ae.sys.file; 25 import ae.utils.meta : singleton, I; 26 27 public import ae.sys.install.common; 28 29 /// Installs a binary release of DMD 30 class DMDInstaller : Installer 31 { 32 string dmdVersion; /// Version to install 33 34 this(string v = currentVersion) 35 { 36 dmdVersion = v; 37 } /// 38 39 // Note: we can't get the dot-release version. Assume ".0". 40 /// Version of DMD that this program was built with. 41 /// Used as the default version to install. 42 enum currentVersion = text(__VERSION__)[0] ~ "." ~ text(__VERSION__)[1..$] ~ ".0"; 43 44 protected: 45 version (Windows) 46 enum modelString = ""; 47 else 48 version (OSX) 49 enum modelString = ""; 50 else 51 version (D_LP64) 52 enum modelString = "64"; 53 else 54 enum modelString = "32"; 55 56 version (Windows) 57 { 58 enum platformDir = "windows"; 59 enum platformSuffix = "windows"; 60 } 61 else version (linux) 62 { 63 enum platformDir = "linux"; 64 enum platformSuffix = "linux"; 65 } 66 else version (FreeBSD) 67 { 68 enum platformDir = "freebsd"; 69 enum platformSuffix = "freebsd-"~modelString; 70 } 71 else version (OSX) 72 { 73 enum platformDir = "osx"; 74 enum platformSuffix = "osx"; 75 } 76 else 77 static assert(false, "Unknown platform"); 78 79 @property override string name() { return "DigitalMars D compiler v" ~ dmdVersion; } 80 @property override string subdirectory() { return "dmd-" ~ dmdVersion; } 81 82 @property override string[] requiredExecutables() { return ["dmd"]; } 83 @property override string[] binPaths() { return ["dmd2/" ~ platformDir ~ "/bin" ~ modelString]; } 84 85 @property string url() { return "http://downloads.dlang.org/releases/%s.x/%s/dmd.%s.%s.zip".format( 86 dmdVersion[0], dmdVersion, dmdVersion, platformSuffix); } 87 88 override void installImpl(string target) 89 { 90 url 91 .I!save() 92 .I!unpackTo(target); 93 } 94 95 static this() 96 { 97 urlDigests["http://downloads.dlang.org/releases/2.x/2.065.0/dmd.2.065.0.windows.zip" ] = "d79b92cf4c7ccb01ebbb5f7ded8e583081391781"; 98 urlDigests["http://downloads.dlang.org/releases/2.x/2.065.0/dmd.2.065.0.linux.zip" ] = "53c28075672aca183d6247a80a163e10084c9add"; 99 urlDigests["http://downloads.dlang.org/releases/2.x/2.065.0/dmd.2.065.0.freebsd-32.zip"] = "1df3915ea9ced62da504ec50de98148a1b22e4dc"; 100 urlDigests["http://downloads.dlang.org/releases/2.x/2.065.0/dmd.2.065.0.freebsd-64.zip"] = "bc7a41eb0cec3e766954010a873e8c414b210f40"; 101 urlDigests["http://downloads.dlang.org/releases/2.x/2.065.0/dmd.2.065.0.osx.zip" ] = "bf0f03a14b52ee964e8732200dd4d21064260a39"; 102 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.0/dmd.2.066.0.windows.zip" ] = "987b9a505c4598b204bee09f646eab571c6aaf00"; 103 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.0/dmd.2.066.0.linux.zip" ] = "c63d4cb4c8ce704689249d5a81fd4d97d9c0084e"; 104 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.0/dmd.2.066.0.freebsd-32.zip"] = "7d0d4e4e499a76ce1717f48ab7d781dd48a60260"; 105 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.0/dmd.2.066.0.freebsd-64.zip"] = "e835228d7ad486623d2f491576ab2f0d0e9973a9"; 106 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.0/dmd.2.066.0.osx.zip" ] = "063f984f7d23f24bc9096227431c38ed5f52dbe5"; 107 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.1/dmd.2.066.1.windows.zip" ] = "1e1c73f67e0a2c6de92d4644036692e07cab1346"; 108 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.1/dmd.2.066.1.linux.zip" ] = "65debddc874c1be5ce99ec24fa6ed422eb52288e"; 109 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.1/dmd.2.066.1.freebsd-32.zip"] = "de00c316b6500e47fe36de1b9790b448b773278a"; 110 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.1/dmd.2.066.1.freebsd-64.zip"] = "4ab95f1e7af851808855fe0c89b5a3ac368f0640"; 111 urlDigests["http://downloads.dlang.org/releases/2.x/2.066.1/dmd.2.066.1.osx.zip" ] = "7e97fcf5f0d7b337e4c2bbfb5b9ad1438566c95d"; 112 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.0/dmd.2.067.0.windows.zip" ] = "2b7e9cf49dd80d59f68062f8d7e38d18c23a61e4"; 113 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.0/dmd.2.067.0.linux.zip" ] = "11f6936121e49dabebd2ddcb84b06b8ffb999a98"; 114 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.0/dmd.2.067.0.freebsd-32.zip"] = "189ed0d94b4440464ed9be2adc6ec901b84df204"; 115 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.0/dmd.2.067.0.freebsd-64.zip"] = "ba572366e2720217a12862d91c171be6a6cabc9b"; 116 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.0/dmd.2.067.0.osx.zip" ] = "41b6118cc1f9b7d2c671e4e3498d0b0f7e38ca8c"; 117 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.1/dmd.2.067.1.windows.zip" ] = "8ea799291320f61fbfc0618351af6adf10107334"; 118 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.1/dmd.2.067.1.linux.zip" ] = "2c158da0ac406877b8934487518aded785ef3439"; 119 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.1/dmd.2.067.1.freebsd-32.zip"] = "ea850992ad533b6709fe8bca8cf5d19fd6ddf698"; 120 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.1/dmd.2.067.1.freebsd-64.zip"] = "68bde60035813c07958abb248accce48026ec081"; 121 urlDigests["http://downloads.dlang.org/releases/2.x/2.067.1/dmd.2.067.1.osx.zip" ] = "bb2beb054e6feb67288a912ab62acbc685132091"; 122 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.0/dmd.2.068.0.windows.zip" ] = "7f3ddcdc19df81780a255652d0559bbe1780572e"; 123 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.0/dmd.2.068.0.linux.zip" ] = "dede88e477919a825713c95dede44690aa5fa46d"; 124 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.0/dmd.2.068.0.freebsd-32.zip"] = "6daba7d8683df92c5a120ba8d61d7300c251d98a"; 125 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.0/dmd.2.068.0.freebsd-64.zip"] = "ccb985ef933f99fd8620c197ecbbfc92541c4572"; 126 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.0/dmd.2.068.0.osx.zip" ] = "2831b535909bd82ca2fe711fda4c35c34198ebcd"; 127 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.1/dmd.2.068.1.windows.zip" ] = "6ad214fab50a6d679bb0e847a6efbb6c95635ac5"; 128 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.1/dmd.2.068.1.linux.zip" ] = "8b5237fd80c635859da36a673a6c52b357fdf26f"; 129 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.1/dmd.2.068.1.freebsd-32.zip"] = "6387f3b70713a953b68c02b1b442098bd5eec354"; 130 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.1/dmd.2.068.1.freebsd-64.zip"] = "ba65233459f97a2a2c2b4c02b1308e61350e7426"; 131 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.1/dmd.2.068.1.osx.zip" ] = "2917fd6663f928e4523d952df29af1d86dddd9d0"; 132 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.2/dmd.2.068.2.windows.zip" ] = "747b5e805276a706d15f0d36c62be88830eab77a"; 133 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.2/dmd.2.068.2.linux.zip" ] = "814640bb81665695e807d8b6e61acec2a0630bb8"; 134 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.2/dmd.2.068.2.freebsd-32.zip"] = "e4a2eaf083bfb38f2c3d5450afd5af643c8bd39b"; 135 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.2/dmd.2.068.2.freebsd-64.zip"] = "f561f6970924b4ace870e45b2300eceba21a2ffc"; 136 urlDigests["http://downloads.dlang.org/releases/2.x/2.068.2/dmd.2.068.2.osx.zip" ] = "db7b9be84ee2413b82c26db415df099422c8c867"; 137 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.0/dmd.2.069.0.windows.zip" ] = "4fa12a1ee224b0400bd6a3c969f461019848dd8c"; 138 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.0/dmd.2.069.0.linux.zip" ] = "2368cd7c98bdd7aa147cfee790223190eea9a2fb"; 139 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.0/dmd.2.069.0.freebsd-32.zip"] = "b05f367b2169fdc07fbdfe0a7a305e2c3b702832"; 140 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.0/dmd.2.069.0.freebsd-64.zip"] = "72c249e35cd2fb55d5f3f79f6211e1c798336250"; 141 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.0/dmd.2.069.0.osx.zip" ] = "f4306fe519d6752e1879477cae6b0637a0bafca2"; 142 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.1/dmd.2.069.1.windows.zip" ] = "0e4630114b17971608cdf961eae6680d4b1b0b9a"; 143 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.1/dmd.2.069.1.linux.zip" ] = "982f5d2063d6f9cf242c4c8e38b001a4c0b5d4db"; 144 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.1/dmd.2.069.1.freebsd-32.zip"] = "c3268a4aefe7406c5b31ed56065d56e7401fb32d"; 145 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.1/dmd.2.069.1.freebsd-64.zip"] = "7fd2c1dbadcf123665251aee3a24d3741989da12"; 146 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.1/dmd.2.069.1.osx.zip" ] = "244e0b374c17e13d81e596174467a8166c30ee06"; 147 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.2/dmd.2.069.2.windows.zip" ] = "dd95c861bad2ce3bbd0d6882b92d75442550e28c"; 148 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.2/dmd.2.069.2.linux.zip" ] = "84e7f58ead856c3ca06b885ac04a4f466154a0d0"; 149 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.2/dmd.2.069.2.freebsd-32.zip"] = "affbca67d6a57d4a5f18d6c119a5cf47f72f9f81"; 150 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.2/dmd.2.069.2.freebsd-64.zip"] = "caaefacc577e4d5c845a6566d6aeace4905b04a7"; 151 urlDigests["http://downloads.dlang.org/releases/2.x/2.069.2/dmd.2.069.2.osx.zip" ] = "222ffcfe59480c9883d7419d9a8a50754d4edcb6"; 152 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.windows.zip" ] = "6365e2138840035b4c1df9bcffd6126124675dcb"; 153 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.linux.zip" ] = "780101d03d089befad5d6975312deda2428b8ebf"; 154 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.freebsd-32.zip"] = "7622975da880a5006c1201d546af6173b7868727"; 155 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.freebsd-64.zip"] = "c38bd62116a3bd5daa2ffb515ccad7c1b816bfb1"; 156 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.0/dmd.2.070.0.osx.zip" ] = "f1b712cbcf9753e6320c318093c96be37141ae0b"; 157 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.1/dmd.2.070.1.windows.zip" ] = "26044ebcfade1051b53dd1c0e14744f661e1acd6"; 158 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.1/dmd.2.070.1.linux.zip" ] = "7ce6142279fa8f0240d7f9b6f11fbc83bb7f10b4"; 159 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.1/dmd.2.070.1.freebsd-32.zip"] = "494c8c70d2565661f2414639af42325ef164602b"; 160 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.1/dmd.2.070.1.freebsd-64.zip"] = "b046449663d25179b0eb8eb703a9c0942529b9e8"; 161 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.1/dmd.2.070.1.osx.zip" ] = "0b128a5f50167bc1943a7272eca0eda086cb87fd"; 162 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.2/dmd.2.070.2.windows.zip" ] = "bfa0348c85174657ff2f7b0e8370b36d8e7f0a76"; 163 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.2/dmd.2.070.2.linux.zip" ] = "4eeca47bc5a1bc1a38f91615218e05aa6dad7711"; 164 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.2/dmd.2.070.2.freebsd-32.zip"] = "bc60574bd392bb7b42ec10282e2fa33491ba9d56"; 165 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.2/dmd.2.070.2.freebsd-64.zip"] = "e0bd7c727d8bc5a3df3b5a70402dba24ce16c5ab"; 166 urlDigests["http://downloads.dlang.org/releases/2.x/2.070.2/dmd.2.070.2.osx.zip" ] = "578114de8ae5f89cfd9275f340be26494fa05a38"; 167 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.0/dmd.2.071.0.windows.zip" ] = "ac8b4167b077f6d09701d5135a5f061788587310"; 168 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.0/dmd.2.071.0.linux.zip" ] = "8ee9713be14ef2fe6024b3f93e24667d8a2a3d47"; 169 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.0/dmd.2.071.0.freebsd-32.zip"] = "6a9e57384c4afbe9888dcb44c9878320ab9be15e"; 170 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.0/dmd.2.071.0.freebsd-64.zip"] = "76cfe16e1c617aba360a5d855a85d42b7c9f7072"; 171 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.0/dmd.2.071.0.osx.zip" ] = "ac8cf92505414858d5a9b91d03bae9eebc8c58c8"; 172 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.1/dmd.2.071.1.windows.zip" ] = "337860e611e3b301ecc912de3f85f4deade59dbb"; 173 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.1/dmd.2.071.1.linux.zip" ] = "44e3a64497bbfb18f689c61df876645d04b2873b"; 174 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.1/dmd.2.071.1.freebsd-32.zip"] = "60b822b4e807cc5d03af72dfdb9be3b7cf794e60"; 175 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.1/dmd.2.071.1.freebsd-64.zip"] = "7c023220eba8fd0ee88976695a56ce6401876bba"; 176 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.1/dmd.2.071.1.osx.zip" ] = "a9a28d69186304ebeceec1586927625753dbbb64"; 177 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.2/dmd.2.071.2.windows.zip" ] = "ebbbdb74095673736a8008c7f56a7b2c7e4dad2b"; 178 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.2/dmd.2.071.2.linux.zip" ] = "78cd6a975e0f95411f2191c54c3ed1e048e3aceb"; 179 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.2/dmd.2.071.2.freebsd-32.zip"] = "d232ea1aa0b2ed6fc38d11334f9f323cd4a5f5b5"; 180 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.2/dmd.2.071.2.freebsd-64.zip"] = "4265a4a785d65d6b2e32a758b3456669daf35cb9"; 181 urlDigests["http://downloads.dlang.org/releases/2.x/2.071.2/dmd.2.071.2.osx.zip" ] = "54e2a56a032ac6dc20027cedcbd5b450e9696c97"; 182 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.0/dmd.2.072.0.windows.zip" ] = "94582d51614262af07781741b4a59a112f51966a"; 183 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.0/dmd.2.072.0.linux.zip" ] = "9e4e1ac4e685ca933b6ffb8342a91aca95a21d74"; 184 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.0/dmd.2.072.0.freebsd-32.zip"] = "46997ce5249958393268949f592455c4eb73ad1e"; 185 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.0/dmd.2.072.0.freebsd-64.zip"] = "b1e4e4139b036db6d1c4699d8ed86a98419466d9"; 186 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.0/dmd.2.072.0.osx.zip" ] = "d163ae2696712897a99d6b47c8e9ec086281c02d"; 187 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.1/dmd.2.072.1.windows.zip" ] = "41591cc7ba014c1f507a506f55314c61448acf4b"; 188 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.1/dmd.2.072.1.linux.zip" ] = "8ee8912c994b3f8ee6b43fb8884c94f4d4b87648"; 189 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.1/dmd.2.072.1.freebsd-32.zip"] = "49ac8b219a20a738cb505f4553bf3d4b0f744b39"; 190 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.1/dmd.2.072.1.freebsd-64.zip"] = "227b6d9bb373912bd14ec339ba6dbd43a0bfa74f"; 191 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.1/dmd.2.072.1.osx.zip" ] = "483902c982e16eb8119a9c37a4c13c4f4552709a"; 192 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.2/dmd.2.072.2.windows.zip" ] = "351e602bbab1e5ef333b6717cacd32a6b3ce5845"; 193 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.2/dmd.2.072.2.linux.zip" ] = "12ec51ad765e85e2bc48960406dc9ba31e935f66"; 194 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.2/dmd.2.072.2.freebsd-32.zip"] = "91c80aad8475935952bd9ea2a3806c7e64730250"; 195 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.2/dmd.2.072.2.freebsd-64.zip"] = "b8c2bc9dce209be8c323fb4138cfc786bc28bc6d"; 196 urlDigests["http://downloads.dlang.org/releases/2.x/2.072.2/dmd.2.072.2.osx.zip" ] = "50537278f6bb549a08cf1fa6e993a55e6c4b01d5"; 197 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.0/dmd.2.073.0.windows.zip" ] = "24f4c925ecff356691ac6e878eec64d0ad207a82"; 198 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.0/dmd.2.073.0.linux.zip" ] = "f7db8d0dd29f034bacab671bf59dd88cd7f9c8c1"; 199 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.0/dmd.2.073.0.freebsd-32.zip"] = "7ca5b1a15ee8c24aa54753dce20a1b226cf2d389"; 200 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.0/dmd.2.073.0.freebsd-64.zip"] = "073f34cf9a65f0408b48b4a8b24da2664ff9e3f6"; 201 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.0/dmd.2.073.0.osx.zip" ] = "7f3e8a8a8f8b77b3f07a641874648d475669e98b"; 202 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.1/dmd.2.073.1.windows.zip" ] = "cd713c221eecb7bbd3fa66f6bd261e094f761165"; 203 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.1/dmd.2.073.1.linux.zip" ] = "034c9891f150a85bc10e1d495a164074bc805d4d"; 204 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.1/dmd.2.073.1.freebsd-32.zip"] = "372fa1a71a30220603b669425ef432cc8f5cff08"; 205 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.1/dmd.2.073.1.freebsd-64.zip"] = "6451f504732c051fc8d5596a83f0609956ea4809"; 206 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.1/dmd.2.073.1.osx.zip" ] = "3a8cb8f107a06953f4f4ff376fcb1819cab978d5"; 207 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.2/dmd.2.073.2.windows.zip" ] = "4fc89d4453e60e2246260d91f08db17713a7cfca"; 208 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.2/dmd.2.073.2.linux.zip" ] = "836cffed20d90af9d5c8bda772e2d7cce2d0d2fe"; 209 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.2/dmd.2.073.2.freebsd-32.zip"] = "2f1dab4a3361bcb228d65b6b4ee62a7a0356ba3e"; 210 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.2/dmd.2.073.2.freebsd-64.zip"] = "5186690fc82f1df4359201bded5b994d6f527cdf"; 211 urlDigests["http://downloads.dlang.org/releases/2.x/2.073.2/dmd.2.073.2.osx.zip" ] = "92b055030e9e22a089e4662b595d8d624fcd6548"; 212 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.0/dmd.2.074.0.windows.zip" ] = "bccbe4a1d71ac2f3bee170b8ed96ae5747396812"; 213 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.0/dmd.2.074.0.linux.zip" ] = "6f87305cfffdce4859586b66b3f116e2c9346988"; 214 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.0/dmd.2.074.0.freebsd-32.zip"] = "382cfcf7991cdfc5a333862bc2e5ae02545303bd"; 215 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.0/dmd.2.074.0.freebsd-64.zip"] = "c74815d356928693a5178a7e06d970c37566f430"; 216 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.0/dmd.2.074.0.osx.zip" ] = "f0be7e684f2aa666bd0677440730014aec5b254d"; 217 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.1/dmd.2.074.1.windows.zip" ] = "2dd8f61d077f789ddcae2fc3636f2f103743e38e"; 218 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.1/dmd.2.074.1.linux.zip" ] = "80cadb117d646de8d989e8931f3faa1f5d7bc705"; 219 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.1/dmd.2.074.1.freebsd-32.zip"] = "1e440eb65d65bf1307b8ba760c51759f6216b919"; 220 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.1/dmd.2.074.1.freebsd-64.zip"] = "6aef98eea18a113ade2b1c1ee16402c7792302a0"; 221 urlDigests["http://downloads.dlang.org/releases/2.x/2.074.1/dmd.2.074.1.osx.zip" ] = "419133c89a72c7586f409edc27bad529188f660a"; 222 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.0/dmd.2.075.0.windows.zip" ] = "d0330d92a8c3d8e7a8b2ea7c5511bf45032c5b8c"; 223 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.0/dmd.2.075.0.linux.zip" ] = "a382df36aa452323f4b6e971a02b67dca5cc07c0"; 224 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.0/dmd.2.075.0.freebsd-32.zip"] = "98a7e411dbe903f28a96b8a6abb0af69ad269d89"; 225 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.0/dmd.2.075.0.freebsd-64.zip"] = "291ca58d078446f5691e04865e0829976007886f"; 226 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.0/dmd.2.075.0.osx.zip" ] = "68fa49fe9239b35123d09f3e0178df2f8c52453d"; 227 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.1/dmd.2.075.1.windows.zip" ] = "8ae47dde29c2bf697be09140a84a8484c2479eb4"; 228 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.1/dmd.2.075.1.linux.zip" ] = "caefa6140f984da199b35a375e667149edb90b49"; 229 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.1/dmd.2.075.1.freebsd-32.zip"] = "a327a3842a6f7b30677dda64ca4fb6d506f7e760"; 230 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.1/dmd.2.075.1.freebsd-64.zip"] = "8bedd9219d1d67e21dccd996360ee7c9010f8e1c"; 231 urlDigests["http://downloads.dlang.org/releases/2.x/2.075.1/dmd.2.075.1.osx.zip" ] = "c0a8ba5f1f85620b6de8763014e68b3a8757d93d"; 232 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.0/dmd.2.076.0.windows.zip" ] = "e9dd7d41a46598059c08f0e712e8e0bb39a2648a"; 233 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.0/dmd.2.076.0.linux.zip" ] = "772304613c0b23cbb51a902643588ca30cbf37cd"; 234 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.0/dmd.2.076.0.freebsd-32.zip"] = "bce45235c0d6fa37896b3166d91c4690c97b538f"; 235 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.0/dmd.2.076.0.freebsd-64.zip"] = "34b3885b8b135fb1923399540cefa0f48cf0b876"; 236 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.0/dmd.2.076.0.osx.zip" ] = "81cfec8ee646c0e8ea83cfb65f33cdf3dc4da516"; 237 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.1/dmd.2.076.1.windows.zip" ] = "95073776bc7d55a6b05f14c43c28bb34151f3037"; 238 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.1/dmd.2.076.1.linux.zip" ] = "693533b60506d1ada255e47250c862fa2dc00e6a"; 239 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.1/dmd.2.076.1.freebsd-32.zip"] = "6a5d7eb43ff631246a6d9bb00d6285eedb7b2878"; 240 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.1/dmd.2.076.1.freebsd-64.zip"] = "bff01763ff8b615d66d652ac2c9b2cadaa23575c"; 241 urlDigests["http://downloads.dlang.org/releases/2.x/2.076.1/dmd.2.076.1.osx.zip" ] = "3604c8b1643298d18040116066aed6e8994c7b9e"; 242 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.0/dmd.2.077.0.windows.zip" ] = "cfb0564b1f1f3ced94bd55c224846bfbac210547"; 243 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.0/dmd.2.077.0.linux.zip" ] = "e506085aa1b4d4c5a7a793a02d9fafbb324610df"; 244 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.0/dmd.2.077.0.freebsd-32.zip"] = "c872f0096e3cb065977542ba5db50d271b721bb4"; 245 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.0/dmd.2.077.0.freebsd-64.zip"] = "07f1f7b34ca3b93c557192c7922c9ddc31703519"; 246 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.0/dmd.2.077.0.osx.zip" ] = "7f65e52aac1f360e9e739ea0db0e603df3af2cc0"; 247 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.1/dmd.2.077.1.windows.zip" ] = "d73318d9069ffc385d65df65b761983220dbb92e"; 248 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.1/dmd.2.077.1.linux.zip" ] = "7c688032c224473db7ab240eaec34028158284cb"; 249 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.1/dmd.2.077.1.freebsd-32.zip"] = "deca6a7827daeba7519810101f26ebdfacc9503c"; 250 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.1/dmd.2.077.1.freebsd-64.zip"] = "adc7b72f4a8b7bd5cb8846a262289b5b13f17a6c"; 251 urlDigests["http://downloads.dlang.org/releases/2.x/2.077.1/dmd.2.077.1.osx.zip" ] = "d7c0141eb2c7b16306440d9f1a2976c835749121"; 252 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.0/dmd.2.078.0.windows.zip" ] = "cead01381421c9dc5e155a9cb0abd54eab8d5456"; 253 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.0/dmd.2.078.0.linux.zip" ] = "f8f3ad0c7f13eb54baf7879f3531da74ebcde9e3"; 254 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.0/dmd.2.078.0.freebsd-32.zip"] = "bd56779b866c7eece3f56799f8e466ff2fb7ed28"; 255 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.0/dmd.2.078.0.freebsd-64.zip"] = "9449477855c57b4bfb35844a28a8f1dcda4c6545"; 256 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.0/dmd.2.078.0.osx.zip" ] = "16900bc9d995ae4d9041df65af0d6d7b55c6eef6"; 257 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.1/dmd.2.078.1.windows.zip" ] = "cafe2f7061d02d27bdcc1c9c014840ef39d8fd17"; 258 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.1/dmd.2.078.1.linux.zip" ] = "b5428efca613311b6f8ecf0e5d621a23ff69393d"; 259 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.1/dmd.2.078.1.freebsd-32.zip"] = "ac484a8a740e1f820f5f7cfebac3560810b724b1"; 260 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.1/dmd.2.078.1.freebsd-64.zip"] = "5cd8da3e7a3c6beb6c5f70d2f66e9c6c7d60a9d2"; 261 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.1/dmd.2.078.1.osx.zip" ] = "04bf300fc90838754e329782d79034681ee0a3af"; 262 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.2/dmd.2.078.2.windows.zip" ] = "7fa2a04dacdbddeec42c1d532057d51452e40cf6"; 263 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.2/dmd.2.078.2.linux.zip" ] = "e72479cb8ee1ae46f813d392b072516f1043ca76"; 264 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.2/dmd.2.078.2.freebsd-32.zip"] = "95237d94eea72fb3b88d6adf6739853ef225607e"; 265 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.2/dmd.2.078.2.freebsd-64.zip"] = "ff26520260a998afd02bbe5a3eb0a5c2e2533741"; 266 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.2/dmd.2.078.2.osx.zip" ] = "ecb631d71ce2eaf1601157314b187c8369d3edfa"; 267 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.3/dmd.2.078.3.windows.zip" ] = "40a748a01109539aa97d006c0ddc60336866edbe"; 268 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.3/dmd.2.078.3.linux.zip" ] = "54c85809da068df55d2d45e8e19aa14a8c0d0e71"; 269 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.3/dmd.2.078.3.freebsd-32.zip"] = "327c025dc81e111e219ffa214e6735fd30693c95"; 270 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.3/dmd.2.078.3.freebsd-64.zip"] = "b10baad3eadda45f68d721199d1cb8debf176538"; 271 urlDigests["http://downloads.dlang.org/releases/2.x/2.078.3/dmd.2.078.3.osx.zip" ] = "adadcbbef8d45161d1401286759899b38c78b3f9"; 272 urlDigests["http://downloads.dlang.org/releases/2.x/2.079.0/dmd.2.079.0.windows.zip" ] = "c179c69d23f7b82c0636ccb9dfa718750e49deee"; 273 urlDigests["http://downloads.dlang.org/releases/2.x/2.079.0/dmd.2.079.0.linux.zip" ] = "027372c4dc9937dbaed8fbbf8b7e98f426bbf1a9"; 274 urlDigests["http://downloads.dlang.org/releases/2.x/2.079.0/dmd.2.079.0.freebsd-32.zip"] = "705e5745194202b8faf2f4654837fc69ccd0be24"; 275 urlDigests["http://downloads.dlang.org/releases/2.x/2.079.0/dmd.2.079.0.freebsd-64.zip"] = "0e74b022f235a8d98329f2ef05084798c3342b96"; 276 urlDigests["http://downloads.dlang.org/releases/2.x/2.079.0/dmd.2.079.0.osx.zip" ] = "03cf07c77a0dc986e80424da94ab5a033d6720ec"; 277 } 278 } 279 280 alias dmdInstaller = singleton!DMDInstaller; /// ditto