├── .github ├── FUNDING.yml └── workflows │ ├── install.yml │ ├── shell-checks.yml │ └── update.yml ├── .gitignore ├── .shellcheckrc ├── COPYING ├── Makefile ├── README.md ├── debian ├── changelog ├── compat ├── control ├── copyright ├── rules └── source │ └── format ├── files ├── LATEST ├── verbs │ ├── all.txt │ ├── apps.txt │ ├── benchmarks.txt │ ├── dlls.txt │ ├── download.txt │ ├── fonts.txt │ ├── manual-download.txt │ └── settings.txt └── winetest.cat ├── misc ├── README ├── bisect-wine-winetricks.sh ├── convert_sha1_sha256.sh └── filelists │ ├── README.txt │ ├── directx-feb2010.txt │ ├── directx-jun2010.txt │ ├── vb6sp6.txt │ ├── win2ksp4.txt │ ├── win7sp1.txt │ ├── win7sp1_x64.txt │ ├── winxpsp2_support_tools.txt │ └── winxpsp3.txt ├── src ├── github-api-releases.py ├── io.github.winetricks.Winetricks.metainfo.xml ├── linkcheck.sh ├── release.sh ├── uniquefiles.sh ├── winetricks ├── winetricks.1 ├── winetricks.bash-completion ├── winetricks.desktop └── winetricks.svg └── tests ├── self-update-test ├── shell-checks ├── winetricks-dotnet-grid-test └── winetricks-test /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: austin987 2 | patreon: austin987 3 | -------------------------------------------------------------------------------- /.github/workflows/install.yml: -------------------------------------------------------------------------------- 1 | on: [push, pull_request] 2 | name: install 3 | jobs: 4 | macos: 5 | name: make install (with prefix) 6 | runs-on: macos-latest 7 | steps: 8 | - name: checkout project 9 | uses: actions/checkout@v3 10 | # OSX doesn't allow writing to /usr/bin, so skip the non-PREFIX check 11 | - name: run make install (with PREFIX) 12 | run: time make install PREFIX="$(mktemp -d)" 13 | linux: 14 | name: make install (with prefix) 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: checkout project 18 | uses: actions/checkout@v3 19 | - name: run make install (with PREFIX) 20 | run: time make install PREFIX="$(mktemp -d)" 21 | - name: run make install (without PREFIX) 22 | run: time sudo make install 23 | -------------------------------------------------------------------------------- /.github/workflows/shell-checks.yml: -------------------------------------------------------------------------------- 1 | on: [push, pull_request] 2 | name: shellcheck 3 | jobs: 4 | shellcheck: 5 | name: shellcheck 6 | runs-on: ubuntu-latest 7 | steps: 8 | - name: checkout project 9 | uses: actions/checkout@v3 10 | - name: run shell-checks 11 | run: sudo apt-get -y install shellcheck python3-bashate && time ./tests/shell-checks 12 | -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | on: [push, pull_request] 2 | name: Update 3 | jobs: 4 | update: 5 | name: self-update-test 6 | runs-on: ${{ matrix.os }} 7 | strategy: 8 | matrix: 9 | os: [macos-latest, ubuntu-latest] 10 | steps: 11 | - name: checkout project 12 | uses: actions/checkout@v3 13 | - name: run self-update-test 14 | run: ./tests/self-update-test 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gitignore 2 | *.swp 3 | output/ 4 | -------------------------------------------------------------------------------- /.shellcheckrc: -------------------------------------------------------------------------------- 1 | enable=require-variable-braces,deprecate-which 2 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 2.1, February 1999 3 | 4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | [This is the first released version of the Lesser GPL. It also counts 10 | as the successor of the GNU Library Public License, version 2, hence 11 | the version number 2.1.] 12 | 13 | Preamble 14 | 15 | The licenses for most software are designed to take away your 16 | freedom to share and change it. By contrast, the GNU General Public 17 | Licenses are intended to guarantee your freedom to share and change 18 | free software--to make sure the software is free for all its users. 19 | 20 | This license, the Lesser General Public License, applies to some 21 | specially designated software packages--typically libraries--of the 22 | Free Software Foundation and other authors who decide to use it. You 23 | can use it too, but we suggest you first think carefully about whether 24 | this license or the ordinary General Public License is the better 25 | strategy to use in any particular case, based on the explanations below. 26 | 27 | When we speak of free software, we are referring to freedom of use, 28 | not price. Our General Public Licenses are designed to make sure that 29 | you have the freedom to distribute copies of free software (and charge 30 | for this service if you wish); that you receive source code or can get 31 | it if you want it; that you can change the software and use pieces of 32 | it in new free programs; and that you are informed that you can do 33 | these things. 34 | 35 | To protect your rights, we need to make restrictions that forbid 36 | distributors to deny you these rights or to ask you to surrender these 37 | rights. These restrictions translate to certain responsibilities for 38 | you if you distribute copies of the library or if you modify it. 39 | 40 | For example, if you distribute copies of the library, whether gratis 41 | or for a fee, you must give the recipients all the rights that we gave 42 | you. You must make sure that they, too, receive or can get the source 43 | code. If you link other code with the library, you must provide 44 | complete object files to the recipients, so that they can relink them 45 | with the library after making changes to the library and recompiling 46 | it. And you must show them these terms so they know their rights. 47 | 48 | We protect your rights with a two-step method: (1) we copyright the 49 | library, and (2) we offer you this license, which gives you legal 50 | permission to copy, distribute and/or modify the library. 51 | 52 | To protect each distributor, we want to make it very clear that 53 | there is no warranty for the free library. Also, if the library is 54 | modified by someone else and passed on, the recipients should know 55 | that what they have is not the original version, so that the original 56 | author's reputation will not be affected by problems that might be 57 | introduced by others. 58 | 59 | Finally, software patents pose a constant threat to the existence of 60 | any free program. We wish to make sure that a company cannot 61 | effectively restrict the users of a free program by obtaining a 62 | restrictive license from a patent holder. Therefore, we insist that 63 | any patent license obtained for a version of the library must be 64 | consistent with the full freedom of use specified in this license. 65 | 66 | Most GNU software, including some libraries, is covered by the 67 | ordinary GNU General Public License. This license, the GNU Lesser 68 | General Public License, applies to certain designated libraries, and 69 | is quite different from the ordinary General Public License. We use 70 | this license for certain libraries in order to permit linking those 71 | libraries into non-free programs. 72 | 73 | When a program is linked with a library, whether statically or using 74 | a shared library, the combination of the two is legally speaking a 75 | combined work, a derivative of the original library. The ordinary 76 | General Public License therefore permits such linking only if the 77 | entire combination fits its criteria of freedom. The Lesser General 78 | Public License permits more lax criteria for linking other code with 79 | the library. 80 | 81 | We call this license the "Lesser" General Public License because it 82 | does Less to protect the user's freedom than the ordinary General 83 | Public License. It also provides other free software developers Less 84 | of an advantage over competing non-free programs. These disadvantages 85 | are the reason we use the ordinary General Public License for many 86 | libraries. However, the Lesser license provides advantages in certain 87 | special circumstances. 88 | 89 | For example, on rare occasions, there may be a special need to 90 | encourage the widest possible use of a certain library, so that it becomes 91 | a de-facto standard. To achieve this, non-free programs must be 92 | allowed to use the library. A more frequent case is that a free 93 | library does the same job as widely used non-free libraries. In this 94 | case, there is little to gain by limiting the free library to free 95 | software only, so we use the Lesser General Public License. 96 | 97 | In other cases, permission to use a particular library in non-free 98 | programs enables a greater number of people to use a large body of 99 | free software. For example, permission to use the GNU C Library in 100 | non-free programs enables many more people to use the whole GNU 101 | operating system, as well as its variant, the GNU/Linux operating 102 | system. 103 | 104 | Although the Lesser General Public License is Less protective of the 105 | users' freedom, it does ensure that the user of a program that is 106 | linked with the Library has the freedom and the wherewithal to run 107 | that program using a modified version of the Library. 108 | 109 | The precise terms and conditions for copying, distribution and 110 | modification follow. Pay close attention to the difference between a 111 | "work based on the library" and a "work that uses the library". The 112 | former contains code derived from the library, whereas the latter must 113 | be combined with the library in order to run. 114 | 115 | GNU LESSER GENERAL PUBLIC LICENSE 116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 117 | 118 | 0. This License Agreement applies to any software library or other 119 | program which contains a notice placed by the copyright holder or 120 | other authorized party saying it may be distributed under the terms of 121 | this Lesser General Public License (also called "this License"). 122 | Each licensee is addressed as "you". 123 | 124 | A "library" means a collection of software functions and/or data 125 | prepared so as to be conveniently linked with application programs 126 | (which use some of those functions and data) to form executables. 127 | 128 | The "Library", below, refers to any such software library or work 129 | which has been distributed under these terms. A "work based on the 130 | Library" means either the Library or any derivative work under 131 | copyright law: that is to say, a work containing the Library or a 132 | portion of it, either verbatim or with modifications and/or translated 133 | straightforwardly into another language. (Hereinafter, translation is 134 | included without limitation in the term "modification".) 135 | 136 | "Source code" for a work means the preferred form of the work for 137 | making modifications to it. For a library, complete source code means 138 | all the source code for all modules it contains, plus any associated 139 | interface definition files, plus the scripts used to control compilation 140 | and installation of the library. 141 | 142 | Activities other than copying, distribution and modification are not 143 | covered by this License; they are outside its scope. The act of 144 | running a program using the Library is not restricted, and output from 145 | such a program is covered only if its contents constitute a work based 146 | on the Library (independent of the use of the Library in a tool for 147 | writing it). Whether that is true depends on what the Library does 148 | and what the program that uses the Library does. 149 | 150 | 1. You may copy and distribute verbatim copies of the Library's 151 | complete source code as you receive it, in any medium, provided that 152 | you conspicuously and appropriately publish on each copy an 153 | appropriate copyright notice and disclaimer of warranty; keep intact 154 | all the notices that refer to this License and to the absence of any 155 | warranty; and distribute a copy of this License along with the 156 | Library. 157 | 158 | You may charge a fee for the physical act of transferring a copy, 159 | and you may at your option offer warranty protection in exchange for a 160 | fee. 161 | 162 | 2. You may modify your copy or copies of the Library or any portion 163 | of it, thus forming a work based on the Library, and copy and 164 | distribute such modifications or work under the terms of Section 1 165 | above, provided that you also meet all of these conditions: 166 | 167 | a) The modified work must itself be a software library. 168 | 169 | b) You must cause the files modified to carry prominent notices 170 | stating that you changed the files and the date of any change. 171 | 172 | c) You must cause the whole of the work to be licensed at no 173 | charge to all third parties under the terms of this License. 174 | 175 | d) If a facility in the modified Library refers to a function or a 176 | table of data to be supplied by an application program that uses 177 | the facility, other than as an argument passed when the facility 178 | is invoked, then you must make a good faith effort to ensure that, 179 | in the event an application does not supply such function or 180 | table, the facility still operates, and performs whatever part of 181 | its purpose remains meaningful. 182 | 183 | (For example, a function in a library to compute square roots has 184 | a purpose that is entirely well-defined independent of the 185 | application. Therefore, Subsection 2d requires that any 186 | application-supplied function or table used by this function must 187 | be optional: if the application does not supply it, the square 188 | root function must still compute square roots.) 189 | 190 | These requirements apply to the modified work as a whole. If 191 | identifiable sections of that work are not derived from the Library, 192 | and can be reasonably considered independent and separate works in 193 | themselves, then this License, and its terms, do not apply to those 194 | sections when you distribute them as separate works. But when you 195 | distribute the same sections as part of a whole which is a work based 196 | on the Library, the distribution of the whole must be on the terms of 197 | this License, whose permissions for other licensees extend to the 198 | entire whole, and thus to each and every part regardless of who wrote 199 | it. 200 | 201 | Thus, it is not the intent of this section to claim rights or contest 202 | your rights to work written entirely by you; rather, the intent is to 203 | exercise the right to control the distribution of derivative or 204 | collective works based on the Library. 205 | 206 | In addition, mere aggregation of another work not based on the Library 207 | with the Library (or with a work based on the Library) on a volume of 208 | a storage or distribution medium does not bring the other work under 209 | the scope of this License. 210 | 211 | 3. You may opt to apply the terms of the ordinary GNU General Public 212 | License instead of this License to a given copy of the Library. To do 213 | this, you must alter all the notices that refer to this License, so 214 | that they refer to the ordinary GNU General Public License, version 2, 215 | instead of to this License. (If a newer version than version 2 of the 216 | ordinary GNU General Public License has appeared, then you can specify 217 | that version instead if you wish.) Do not make any other change in 218 | these notices. 219 | 220 | Once this change is made in a given copy, it is irreversible for 221 | that copy, so the ordinary GNU General Public License applies to all 222 | subsequent copies and derivative works made from that copy. 223 | 224 | This option is useful when you wish to copy part of the code of 225 | the Library into a program that is not a library. 226 | 227 | 4. You may copy and distribute the Library (or a portion or 228 | derivative of it, under Section 2) in object code or executable form 229 | under the terms of Sections 1 and 2 above provided that you accompany 230 | it with the complete corresponding machine-readable source code, which 231 | must be distributed under the terms of Sections 1 and 2 above on a 232 | medium customarily used for software interchange. 233 | 234 | If distribution of object code is made by offering access to copy 235 | from a designated place, then offering equivalent access to copy the 236 | source code from the same place satisfies the requirement to 237 | distribute the source code, even though third parties are not 238 | compelled to copy the source along with the object code. 239 | 240 | 5. A program that contains no derivative of any portion of the 241 | Library, but is designed to work with the Library by being compiled or 242 | linked with it, is called a "work that uses the Library". Such a 243 | work, in isolation, is not a derivative work of the Library, and 244 | therefore falls outside the scope of this License. 245 | 246 | However, linking a "work that uses the Library" with the Library 247 | creates an executable that is a derivative of the Library (because it 248 | contains portions of the Library), rather than a "work that uses the 249 | library". The executable is therefore covered by this License. 250 | Section 6 states terms for distribution of such executables. 251 | 252 | When a "work that uses the Library" uses material from a header file 253 | that is part of the Library, the object code for the work may be a 254 | derivative work of the Library even though the source code is not. 255 | Whether this is true is especially significant if the work can be 256 | linked without the Library, or if the work is itself a library. The 257 | threshold for this to be true is not precisely defined by law. 258 | 259 | If such an object file uses only numerical parameters, data 260 | structure layouts and accessors, and small macros and small inline 261 | functions (ten lines or less in length), then the use of the object 262 | file is unrestricted, regardless of whether it is legally a derivative 263 | work. (Executables containing this object code plus portions of the 264 | Library will still fall under Section 6.) 265 | 266 | Otherwise, if the work is a derivative of the Library, you may 267 | distribute the object code for the work under the terms of Section 6. 268 | Any executables containing that work also fall under Section 6, 269 | whether or not they are linked directly with the Library itself. 270 | 271 | 6. As an exception to the Sections above, you may also combine or 272 | link a "work that uses the Library" with the Library to produce a 273 | work containing portions of the Library, and distribute that work 274 | under terms of your choice, provided that the terms permit 275 | modification of the work for the customer's own use and reverse 276 | engineering for debugging such modifications. 277 | 278 | You must give prominent notice with each copy of the work that the 279 | Library is used in it and that the Library and its use are covered by 280 | this License. You must supply a copy of this License. If the work 281 | during execution displays copyright notices, you must include the 282 | copyright notice for the Library among them, as well as a reference 283 | directing the user to the copy of this License. Also, you must do one 284 | of these things: 285 | 286 | a) Accompany the work with the complete corresponding 287 | machine-readable source code for the Library including whatever 288 | changes were used in the work (which must be distributed under 289 | Sections 1 and 2 above); and, if the work is an executable linked 290 | with the Library, with the complete machine-readable "work that 291 | uses the Library", as object code and/or source code, so that the 292 | user can modify the Library and then relink to produce a modified 293 | executable containing the modified Library. (It is understood 294 | that the user who changes the contents of definitions files in the 295 | Library will not necessarily be able to recompile the application 296 | to use the modified definitions.) 297 | 298 | b) Use a suitable shared library mechanism for linking with the 299 | Library. A suitable mechanism is one that (1) uses at run time a 300 | copy of the library already present on the user's computer system, 301 | rather than copying library functions into the executable, and (2) 302 | will operate properly with a modified version of the library, if 303 | the user installs one, as long as the modified version is 304 | interface-compatible with the version that the work was made with. 305 | 306 | c) Accompany the work with a written offer, valid for at 307 | least three years, to give the same user the materials 308 | specified in Subsection 6a, above, for a charge no more 309 | than the cost of performing this distribution. 310 | 311 | d) If distribution of the work is made by offering access to copy 312 | from a designated place, offer equivalent access to copy the above 313 | specified materials from the same place. 314 | 315 | e) Verify that the user has already received a copy of these 316 | materials or that you have already sent this user a copy. 317 | 318 | For an executable, the required form of the "work that uses the 319 | Library" must include any data and utility programs needed for 320 | reproducing the executable from it. However, as a special exception, 321 | the materials to be distributed need not include anything that is 322 | normally distributed (in either source or binary form) with the major 323 | components (compiler, kernel, and so on) of the operating system on 324 | which the executable runs, unless that component itself accompanies 325 | the executable. 326 | 327 | It may happen that this requirement contradicts the license 328 | restrictions of other proprietary libraries that do not normally 329 | accompany the operating system. Such a contradiction means you cannot 330 | use both them and the Library together in an executable that you 331 | distribute. 332 | 333 | 7. You may place library facilities that are a work based on the 334 | Library side-by-side in a single library together with other library 335 | facilities not covered by this License, and distribute such a combined 336 | library, provided that the separate distribution of the work based on 337 | the Library and of the other library facilities is otherwise 338 | permitted, and provided that you do these two things: 339 | 340 | a) Accompany the combined library with a copy of the same work 341 | based on the Library, uncombined with any other library 342 | facilities. This must be distributed under the terms of the 343 | Sections above. 344 | 345 | b) Give prominent notice with the combined library of the fact 346 | that part of it is a work based on the Library, and explaining 347 | where to find the accompanying uncombined form of the same work. 348 | 349 | 8. You may not copy, modify, sublicense, link with, or distribute 350 | the Library except as expressly provided under this License. Any 351 | attempt otherwise to copy, modify, sublicense, link with, or 352 | distribute the Library is void, and will automatically terminate your 353 | rights under this License. However, parties who have received copies, 354 | or rights, from you under this License will not have their licenses 355 | terminated so long as such parties remain in full compliance. 356 | 357 | 9. You are not required to accept this License, since you have not 358 | signed it. However, nothing else grants you permission to modify or 359 | distribute the Library or its derivative works. These actions are 360 | prohibited by law if you do not accept this License. Therefore, by 361 | modifying or distributing the Library (or any work based on the 362 | Library), you indicate your acceptance of this License to do so, and 363 | all its terms and conditions for copying, distributing or modifying 364 | the Library or works based on it. 365 | 366 | 10. Each time you redistribute the Library (or any work based on the 367 | Library), the recipient automatically receives a license from the 368 | original licensor to copy, distribute, link with or modify the Library 369 | subject to these terms and conditions. You may not impose any further 370 | restrictions on the recipients' exercise of the rights granted herein. 371 | You are not responsible for enforcing compliance by third parties with 372 | this License. 373 | 374 | 11. If, as a consequence of a court judgment or allegation of patent 375 | infringement or for any other reason (not limited to patent issues), 376 | conditions are imposed on you (whether by court order, agreement or 377 | otherwise) that contradict the conditions of this License, they do not 378 | excuse you from the conditions of this License. If you cannot 379 | distribute so as to satisfy simultaneously your obligations under this 380 | License and any other pertinent obligations, then as a consequence you 381 | may not distribute the Library at all. For example, if a patent 382 | license would not permit royalty-free redistribution of the Library by 383 | all those who receive copies directly or indirectly through you, then 384 | the only way you could satisfy both it and this License would be to 385 | refrain entirely from distribution of the Library. 386 | 387 | If any portion of this section is held invalid or unenforceable under any 388 | particular circumstance, the balance of the section is intended to apply, 389 | and the section as a whole is intended to apply in other circumstances. 390 | 391 | It is not the purpose of this section to induce you to infringe any 392 | patents or other property right claims or to contest validity of any 393 | such claims; this section has the sole purpose of protecting the 394 | integrity of the free software distribution system which is 395 | implemented by public license practices. Many people have made 396 | generous contributions to the wide range of software distributed 397 | through that system in reliance on consistent application of that 398 | system; it is up to the author/donor to decide if he or she is willing 399 | to distribute software through any other system and a licensee cannot 400 | impose that choice. 401 | 402 | This section is intended to make thoroughly clear what is believed to 403 | be a consequence of the rest of this License. 404 | 405 | 12. If the distribution and/or use of the Library is restricted in 406 | certain countries either by patents or by copyrighted interfaces, the 407 | original copyright holder who places the Library under this License may add 408 | an explicit geographical distribution limitation excluding those countries, 409 | so that distribution is permitted only in or among countries not thus 410 | excluded. In such case, this License incorporates the limitation as if 411 | written in the body of this License. 412 | 413 | 13. The Free Software Foundation may publish revised and/or new 414 | versions of the Lesser General Public License from time to time. 415 | Such new versions will be similar in spirit to the present version, 416 | but may differ in detail to address new problems or concerns. 417 | 418 | Each version is given a distinguishing version number. If the Library 419 | specifies a version number of this License which applies to it and 420 | "any later version", you have the option of following the terms and 421 | conditions either of that version or of any later version published by 422 | the Free Software Foundation. If the Library does not specify a 423 | license version number, you may choose any version ever published by 424 | the Free Software Foundation. 425 | 426 | 14. If you wish to incorporate parts of the Library into other free 427 | programs whose distribution conditions are incompatible with these, 428 | write to the author to ask for permission. For software which is 429 | copyrighted by the Free Software Foundation, write to the Free 430 | Software Foundation; we sometimes make exceptions for this. Our 431 | decision will be guided by the two goals of preserving the free status 432 | of all derivatives of our free software and of promoting the sharing 433 | and reuse of software generally. 434 | 435 | NO WARRANTY 436 | 437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 446 | 447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 456 | DAMAGES. 457 | 458 | END OF TERMS AND CONDITIONS 459 | 460 | How to Apply These Terms to Your New Libraries 461 | 462 | If you develop a new library, and you want it to be of the greatest 463 | possible use to the public, we recommend making it free software that 464 | everyone can redistribute and change. You can do so by permitting 465 | redistribution under these terms (or, alternatively, under the terms of the 466 | ordinary General Public License). 467 | 468 | To apply these terms, attach the following notices to the library. It is 469 | safest to attach them to the start of each source file to most effectively 470 | convey the exclusion of warranty; and each file should have at least the 471 | "copyright" line and a pointer to where the full notice is found. 472 | 473 | 474 | Copyright (C) 475 | 476 | This library is free software; you can redistribute it and/or 477 | modify it under the terms of the GNU Lesser General Public 478 | License as published by the Free Software Foundation; either 479 | version 2.1 of the License, or (at your option) any later version. 480 | 481 | This library is distributed in the hope that it will be useful, 482 | but WITHOUT ANY WARRANTY; without even the implied warranty of 483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 484 | Lesser General Public License for more details. 485 | 486 | You should have received a copy of the GNU Lesser General Public 487 | License along with this library; if not, write to the Free Software 488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 489 | 490 | Also add information on how to contact you by electronic and paper mail. 491 | 492 | You should also get your employer (if you work as a programmer) or your 493 | school, if any, to sign a "copyright disclaimer" for the library, if 494 | necessary. Here is a sample; alter the names: 495 | 496 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 497 | library `Frob' (a library for tweaking knobs) written by James Random Hacker. 498 | 499 | , 1 April 1990 500 | Ty Coon, President of Vice 501 | 502 | That's all there is to it! 503 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for winetricks - a script for working around common problems in wine 2 | # 3 | # Copyright (C) 2013 Dan Kegel 4 | # Copyright (C) 2015-2016 Austin English 5 | # See also copyright notice in src/winetricks. 6 | # 7 | # This software comes with ABSOLUTELY NO WARRANTY. 8 | # 9 | # This is free software, placed under the terms of the GNU Lesser 10 | # Public License version 2.1 (or later), as published by the Free 11 | # Software Foundation. Please see the file COPYING for details. 12 | # 13 | # Web Page: https://github.com/Winetricks/winetricks 14 | # 15 | # Maintainers: 16 | # Austin English 17 | 18 | INSTALL = install 19 | INSTALL_PROGRAM = $(INSTALL) 20 | INSTALL_DATA = $(INSTALL) -m 644 21 | SOURCES = Makefile src tests 22 | 23 | version=$(shell grep '^WINETRICKS_VERSION' < src/winetricks | sed 's/.*=//') 24 | 25 | PREFIX = /usr 26 | 27 | all: 28 | @ echo "Nothing to compile. Use: check, clean, cleanup, dist, install" 29 | 30 | # Editor backup files etc. 31 | clean: 32 | find . -name "*[#~]" \ 33 | -o -name "*.\#*" \ 34 | -o -name "*.orig" \ 35 | -o -name "*.porig" \ 36 | -o -name "*.rej" \ 37 | -o -name "*.log" \ 38 | -o -name "*.out" \ 39 | -o -name "*.verbs" \ 40 | | xargs -r rm 41 | rm -rf src/df-* src/measurements src/links.d 42 | 43 | # Remove trailing whitespaces 44 | cleanup: 45 | sed --in-place 's,[ \t]\+$$,,' $$(find $(SOURCES) -type f) 46 | 47 | dist: clean $(SOURCES) 48 | tar --exclude='*.patch' --exclude=measurements --exclude=.git \ 49 | --exclude-backups \ 50 | -czvf winetricks-$(version).tar.gz $(SOURCES) 51 | 52 | install: 53 | $(INSTALL) -d $(DESTDIR)$(PREFIX)/bin 54 | $(INSTALL_PROGRAM) src/winetricks $(DESTDIR)$(PREFIX)/bin/winetricks 55 | $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/man/man1 56 | $(INSTALL_DATA) src/winetricks.1 $(DESTDIR)$(PREFIX)/share/man/man1/winetricks.1 57 | $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/applications 58 | $(INSTALL_DATA) src/winetricks.desktop $(DESTDIR)$(PREFIX)/share/applications/winetricks.desktop 59 | $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/metainfo 60 | $(INSTALL_DATA) src/io.github.winetricks.Winetricks.metainfo.xml $(DESTDIR)$(PREFIX)/share/metainfo/io.github.winetricks.Winetricks.metainfo.xml 61 | $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps 62 | $(INSTALL_DATA) src/winetricks.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps/winetricks.svg 63 | $(INSTALL) -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions 64 | $(INSTALL_DATA) src/winetricks.bash-completion $(DESTDIR)$(PREFIX)/share/bash-completion/completions/winetricks 65 | 66 | check: 67 | echo 'This verifies that most DLL verbs install ok.' 68 | echo 'It should take about an hour to run with a fast connection.' 69 | echo 'If you want to test a particular version of wine, do e.g.' 70 | echo 'export WINE=$$HOME/wine-git/wine first.' 71 | echo 'On 64 bit systems, you probably want export WINEARCH=win32.' 72 | echo 'Winetricks does not work completely in non-English locales.' 73 | echo '' 74 | echo 'Current Environment:' 75 | echo 'DISPLAY is currently "$(DISPLAY)".' 76 | echo 'LANG is currently "$(LANG)".' 77 | echo 'WINEARCH is currently "$(WINEARCH)".' 78 | echo 'WINE is currently "$(WINE)".' 79 | echo 'XAUTHORITY is currently "$(XAUTHORITY)".' 80 | echo '' 81 | echo 'If running this as part of debuild, you might need to use' 82 | echo 'debuild --preserve-envvar=LANG --preserve-envvar=WINE --preserve-envvar=WINEARCH --preserve-envvar=DISPLAY --preserve-envvar=XAUTHORITY' 83 | echo 'To suppress tests in debuild, export DEB_BUILD_OPTIONS=nocheck' 84 | echo '' 85 | echo 'FIXME: this should kill stray wine processes before and after, but some leak through, you might need to kill them.' 86 | # Check for shellcheck issues first: 87 | echo "Running shellcheck:" 88 | sh ./tests/shell-checks || exit 1 89 | # Check all script dependencies before starting tests: 90 | echo "Checking dependencies.." 91 | sh ./src/linkcheck.sh check-deps || exit 1 92 | sh ./tests/winetricks-test check-deps || exit 1 93 | echo "Running tests" 94 | cd src; if test -z "$(WINEARCH)" ; then export WINEARCH=win32 ; fi ; sh ../tests/winetricks-test quick 95 | 96 | check-coverage: 97 | WINETRICKS_ENABLE_KCOV=1 $(MAKE) check 98 | 99 | shell-checks: 100 | echo "This runs shell checks only. Currently, this is mostly shellcheck." 101 | echo "This is relatively fast and doesn't download anything." 102 | sh ./tests/shell-checks || exit 1 103 | 104 | test: 105 | echo 'This verifies that most DLL verbs install ok (and some other misc tests).' 106 | echo 'It also makes sure that all URLs in winetricks work, so a fast uncapped internet connection is needed.' 107 | echo 'It should take about an hour to run with a fast connection.' 108 | echo 'If you want to test a particular version of wine, do e.g.' 109 | echo 'export WINE=$$HOME/wine-git/wine first.' 110 | echo 'On 64 bit systems, you probably want export WINEARCH=win32.' 111 | echo 'Winetricks does not work completely in non-English locales.' 112 | echo '' 113 | echo 'Current Environment:' 114 | echo 'DISPLAY is currently "$(DISPLAY)".' 115 | echo 'LANG is currently "$(LANG)".' 116 | echo 'WINEARCH is currently "$(WINEARCH)".' 117 | echo 'WINE is currently "$(WINE)".' 118 | echo 'XAUTHORITY is currently "$(XAUTHORITY)".' 119 | echo '' 120 | echo 'If running this as part of debuild, you might need to use' 121 | echo 'debuild --preserve-envvar=LANG --preserve-envvar=WINE --preserve-envvar=WINEARCH --preserve-envvar=DISPLAY --preserve-envvar=XAUTHORITY' 122 | echo 'To suppress tests in debuild, export DEB_BUILD_OPTIONS=nocheck' 123 | echo '' 124 | echo 'FIXME: this should kill stray wine processes before and after, but some leak through, you might need to kill them.' 125 | # Check for shellcheck issues first: 126 | echo "Running shellcheck:" 127 | sh ./tests/shell-checks || exit 1 128 | # Check all script dependencies before starting tests: 129 | echo "Checking dependencies.." 130 | sh ./src/linkcheck.sh check-deps || exit 1 131 | sh ./tests/winetricks-test check-deps || exit 1 132 | echo "Running tests" 133 | rm -rf src/links.d; cd src; sh linkcheck.sh crawl 134 | echo 'And now, the one hour run check.' 135 | if test ! -z "$(XDG_CACHE_HOME)" ; then rm -rf $(XDG_CACHE_HOME)/winetricks ; else rm -rf $(HOME)/.cache/winetricks ; fi 136 | cd src; if test -z "$(WINEARCH)" ; then export WINEARCH=win32 ; fi ; sh ../tests/winetricks-test full 137 | 138 | test-coverage: 139 | WINETRICKS_ENABLE_KCOV=1 $(MAKE) test 140 | 141 | xvfb-check: 142 | echo "xvfb runs make check, for verbs safe for it" 143 | cd src; if test -z "$(WINEARCH)" ; then export WINEARCH=win32 ; fi ; sh ../tests/winetricks-test xvfb-check 144 | 145 | xvfb-check-coverage: 146 | WINETRICKS_ENABLE_KCOV=1 $(MAKE) xfvb-check-coverage 147 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Winetricks 2 | [![License](https://img.shields.io/:license-lgpl-green.svg)](https://tldrlegal.com/license/gnu-lesser-general-public-license-v2.1-(lgpl-2.1)) 3 | 4 | Homepage of Winetricks, previously hosted at . 5 | 6 | Winetricks is an easy way to work around problems in Wine. 7 | 8 | It has a menu of supported applications for which it can do all the workarounds automatically. It also allows the installation of missing DLLs and tweaking of various Wine settings. 9 | 10 | The latest version can be downloaded here: 11 | https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks 12 | 13 | Tagged releases are accessible here: 14 | https://github.com/Winetricks/winetricks/releases 15 | 16 | # Installing 17 | The ```winetricks``` package should be used if it is available and up to date. The package is available in most mainstream (Unix-like) Operating Systems: 18 | 19 | * Arch: https://www.archlinux.org/packages/multilib/x86_64/winetricks/ 20 | * Debian: https://packages.debian.org/search?searchon=names&keywords=winetricks 21 | * Fedora: https://fedoraproject.org/wiki/Wine#Packages 22 | * FreeBSD: https://www.freebsd.org/cgi/ports.cgi?query=winetricks&stype=all 23 | * Gentoo: https://packages.gentoo.org/packages/app-emulation/winetricks 24 | * Homebrew (OSX): https://formulae.brew.sh/formula/winetricks 25 | * MacPorts (OSX): https://www.macports.org/ports.php?by=name&substr=winetricks 26 | * Slackbuilds (Slackware): https://slackbuilds.org/apps/winetricks/ 27 | * Ubuntu: https://packages.ubuntu.com/search?keywords=winetricks 28 | 29 | Note: packaged Debian / Ubuntu winetricks versions are typically outdated, so a manual installation is recommended. 30 | 31 | ## Manual Install 32 | 33 | If the package is unavailable, outdated, or the latest version is desired, a manual installation of winetricks can be done. 34 | It is _highly_ recommended to uninstall any previously installed version of winetricks first. 35 | 36 | **_If you don't uninstall a previously installed, packaged version of winetricks... Well then you get to pick up the pieces!_** 37 | 38 | E.g. for Debian / Ubuntu: 39 | ``` 40 | sudo apt-get purge winetricks 41 | ``` 42 | 43 | ### Installing The Latest Stable Release 44 | 45 | Download the latest release from [Github](https://github.com/Winetricks/winetricks/releases/latest). 46 | 47 | Extract the archive and `cd` into the extracted folder. 48 | 49 | Run `sudo make install` to install Winetricks system-wide. 50 | 51 | ### Scripted Install 52 | 53 | You can use a shell script to download the current winetricks script(s): 54 | 55 | ``` 56 | #!/bin/sh 57 | # Create and switch to a temporary directory writeable by current user. See: 58 | # https://www.tldp.org/LDP/abs/html/subshells.html 59 | cd "$(mktemp -d)" || exit 1 60 | 61 | # Use a BASH "here document" to create an updater shell script file. 62 | # See: 63 | # https://www.tldp.org/LDP/abs/html/here-docs.html 64 | # > outputs stdout to a file, overwriting any pre-existing file 65 | # << takes input, directly from the script itself, till the second '_EOF_SCRIPT' marker, as stdin 66 | # the cat command hooks these 2 streams up (stdin and stdout) 67 | ###### create update_winetricks START ######## 68 | cat > update_winetricks <<_EOF_SCRIPT 69 | #!/bin/sh 70 | 71 | # Create and switch to a temporary directory writeable by current user. See: 72 | # https://www.tldp.org/LDP/abs/html/subshells.html 73 | cd "\$(mktemp -d)" 74 | 75 | # Download the latest winetricks script (master="latest version") from Github. 76 | wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks 77 | 78 | # Mark the winetricks script (we've just downloaded) as executable. See: 79 | # https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm 80 | chmod +x winetricks 81 | 82 | # Move the winetricks script to a location which will be in the standard user PATH. See: 83 | # https://www.tldp.org/LDP/abs/html/internalvariables.html 84 | sudo mv winetricks /usr/bin 85 | 86 | # Download the latest winetricks BASH completion script (master="latest version") from Github. 87 | wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion 88 | 89 | # Move the winetricks BASH completion script to a standard location for BASH completion modules. See: 90 | # https://www.tldp.org/LDP/abs/html/tabexpansion.html 91 | sudo mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks 92 | 93 | # Download the latest winetricks MAN page (master="latest version") from Github. 94 | wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.1 95 | 96 | # Move the winetricks MAN page to a standard location for MAN pages. See: 97 | # https://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREMANMANUALPAGES 98 | sudo mv winetricks.1 /usr/share/man/man1/winetricks.1 99 | _EOF_SCRIPT 100 | ###### create update_winetricks FINISH ######## 101 | 102 | # Mark the update_winetricks script (we've just written out) as executable. See: 103 | # https://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x9543.htm 104 | chmod +x update_winetricks 105 | 106 | # We must escalate privileges to root, as regular Linux users do not have write access to '/usr/bin'. 107 | sudo mv update_winetricks /usr/bin/ 108 | ``` 109 | 110 | See the manpages for the individual functions, if you are not clear how they are being used, e.g. 111 | ``` 112 | man mktemp 113 | man mv 114 | man wget 115 | man sudo 116 | ... 117 | ``` 118 | 119 | An alternative updater script implementation, using **su** in place of **sudo**, is also possible: 120 | 121 | ``` 122 | cd "$(mktemp -d)" 123 | cat > update_winetricks <<_EOF_SCRIPT 124 | #!/bin/sh 125 | 126 | cd "\$(mktemp -d)" 127 | wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks 128 | wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks.bash-completion 129 | chmod +x winetricks 130 | su root sh -c 'mv winetricks /usr/bin ; mv winetricks.bash-completion /usr/share/bash-completion/completions/winetricks' 131 | _EOF_SCRIPT 132 | 133 | chmod +x update_winetricks 134 | su root sh -c 'mv update_winetricks /usr/bin/' 135 | ``` 136 | 137 | To use ```curl``` instead of ```wget```: substitute all ```wget``` calls with ```curl -O```, in the winetricks update script. 138 | 139 | # Updating 140 | Using the traditional Unix crontab... 141 | ``` 142 | sudo ln "/usr/bin/update_winetricks" "/etc/cron.weekly/update_winetricks" 143 | ``` 144 | Note: ensure you have a cron utility installed and enabled, on systems utilizing **systemd** by default. 145 | 146 | The update script can be automated, to run on a set schedule, via (where available) **systemd** units. 147 | E.g. to create a scheduled winetricks updater **systemd** **timer** unit, and an associated **systemd** **service** unit: 148 | ``` 149 | cd "$(mktemp -d)" 150 | cat > winetricks_update.timer <<_EOF_TIMER_UNIT 151 | [Unit] 152 | Description=Run winetricks update script weekly (Saturday) 153 | 154 | [Timer] 155 | OnCalendar=Sat 156 | Persistent=true 157 | 158 | [Install] 159 | WantedBy=timers.target 160 | _EOF_TIMER_UNIT 161 | 162 | cat > winetricks_update.service <<_EOF_SERVICE_UNIT 163 | [Unit] 164 | Description=Run winetricks update script 165 | After=network.target 166 | 167 | [Service] 168 | ExecStart=/bin/sh /usr/bin/update_winetricks 169 | Type=oneshot 170 | _EOF_SERVICE_UNIT 171 | 172 | sudo mv winetricks_update.timer winetricks_update.service /etc/systemd/system/ 173 | ``` 174 | See: 175 | * [freedesktop.org: systemd service unit](https://www.freedesktop.org/software/systemd/man/systemd.service.html) 176 | * [freedesktop.org: systemd timer unit](https://www.freedesktop.org/software/systemd/man/systemd.timer.html) 177 | 178 | To start and enable the winetricks update timer: 179 | ``` 180 | sudo systemctl daemon-reload 181 | sudo systemctl enable winetricks_update.timer 182 | sudo systemctl start winetricks_update.timer 183 | ``` 184 | 185 | The core winetricks script can also be updated by simply doing: 186 | ``` 187 | winetricks --self-update 188 | ``` 189 | or: 190 | ``` 191 | sudo winetricks --self-update 192 | ``` 193 | for a system-wide winetricks installation. 194 | 195 | # Custom .verb files 196 | New dll/settings/programs can be added to Winetricks by passing a custom .verb (format below) 197 | 198 | Example `icecat.verb`: 199 | 200 | ``` 201 | w_metadata icecat apps \ 202 | title="GNU Icecat 38.8.0" \ 203 | publisher="GNU Foundation" \ 204 | year="2016" \ 205 | media="download" \ 206 | file1="icecat-38.8.0.en-US.win32.zip" \ 207 | installed_exe1="${W_PROGRAMS_X86_WIN}/icecat/icecat.exe" 208 | 209 | load_icecat() 210 | { 211 | w_download https://ftp.gnu.org/gnu/gnuzilla/38.8.0/${file1} e5f9481e78710c25eb3a271d81aceb19ef44ff6e8599da7d5f7a2da584c01213 212 | w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/icecat-38.8.0.en-us.win32.zip" 213 | } 214 | ``` 215 | 216 | Note that the file prefix (icecat.verb) and command name (icecat) must match. All metadata fields are optional, only the command name and category are required. 217 | 218 | # Tests 219 | The tests need `bashate` and `shellcheck>=0.4.4` installed. 220 | Makefile supports a few test targets: 221 | 222 | * `check` - runs './tests/winetricks-tests quick' (without first clearing $WINETRICKS_CACHE) 223 | * `shell-checks` - runs './tests/shell-checks' 224 | * `test` - runs './tests/winetricks-tests full' (and clears $WINETRICKS_CACHE first) 225 | * `xvfb-check` - runs './tests/winetricks-tests xvfb-check' (without first clearing $WINETRICKS_CACHE first) 226 | 227 | # Support 228 | * Winetricks is maintained by Austin English . 229 | * If winetricks has helped you out, then please consider donating to the FSF/EFF as a thank you: 230 | * EFF - https://supporters.eff.org/donate/button 231 | * FSF - https://my.fsf.org/donate 232 | * Donations towards electricity bill and developer beer fund can be sent via Bitcoin to 18euSAZztpZ9wcN6xZS3vtNnE1azf8niDk 233 | * I try to actively respond to bugs and pull requests on GitHub: 234 | * Bugs: https://github.com/Winetricks/winetricks/issues/new 235 | * Pull Requests: https://github.com/Winetricks/winetricks/pulls 236 | -------------------------------------------------------------------------------- /debian/changelog: -------------------------------------------------------------------------------- 1 | winetricks (0.0+20150401) UNRELEASED; urgency=low 2 | 3 | * Dummy entry. All changes can be found at 4 | https://github.com/Winetricks/winetricks/commits/master 5 | 6 | -- Michael Müller Wed, 01 Apr 2015 23:27:42 +0200 7 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: winetricks 2 | Section: contrib/otherosfs 3 | Priority: optional 4 | Maintainer: Austin English 5 | Standards-Version: 3.8.1 6 | Build-Depends: 7 | debhelper, 8 | devscripts, 9 | Homepage: https://github.com/Winetricks/winetricks 10 | 11 | Package: winetricks 12 | Architecture: all 13 | Multi-Arch: foreign 14 | Depends: 15 | 7zip | p7zip-full, 16 | aria2 | wget | curl, 17 | binutils, 18 | cabextract, 19 | unzip, 20 | Recommends: 21 | wine, 22 | xdg-utils, 23 | xz-utils, 24 | zenity | kdialog | x11-utils, 25 | Suggests: 26 | tor, 27 | unrar-free | unrar, 28 | Description: simple tool to work around common problems in Wine 29 | Winetricks has a menu of supported applications for which it can do all 30 | the workarounds automatically. It also lets you install missing DLLs or 31 | tweak various Wine settings individually. 32 | . 33 | It can be used via GUI or command line, whichever you prefer; the 34 | command-line mode is particularly useful as a building block in fancier 35 | wine frontends and in automated regression testing. 36 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ 2 | Source: https://github.com/Winetricks/winetricks 3 | Vcs-Browser: https://github.com/Winetricks/winetricks/ 4 | Vcs-Git: https://github.com/winetricks/Winetricks.git 5 | 6 | Files: * 7 | Copyright: 8 | 2007-2014 Dan Kegel 9 | 2008-2019 Austin English 10 | 2010-2011 Phil Blankenship 11 | 2010-2015 Shannon VanWagner 12 | 2010 Belhorma Bendebiche 13 | 2010 Eleazar Galano 14 | 2010 Travis Athougies 15 | 2010 Andrew Nguyen 16 | 2010 Detlef Riekenberg 17 | 2010 Maarten Lankhorst 18 | 2010 Rico Schüller 19 | 2011 Scott Jackson 20 | 2011 Trevor Johnson 21 | 2011 Franco Junio 22 | 2011 Craig Sanders 23 | 2011 Matthew Bauer 24 | 2011 Giuseppe Dia 25 | 2011 Łukasz Wojniłowicz 26 | 2011 Matthew Bozarth 27 | 2013-2017 Andrey Gusev 28 | 2013-2017 Hillwood Yang 29 | 2013,2016 André Hentschel 30 | License: LGPL-2.1+ 31 | 32 | Files: src/io.github.winetricks.Winetricks.metainfo.xml 33 | Copyright: 34 | 2017 Daniel Rusek 35 | License: CC0-1.0 36 | 37 | Files: src/winetricks.desktop 38 | Copyright: 39 | 2007-2013 Scott Ritchie 40 | License: LGPL-2.1+ 41 | Comment: 42 | For copyright confirmation see 43 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708198#24 44 | 45 | Files: src/winetricks.svg 46 | Copyright: 47 | 2010 Joel Holdsworth 48 | License: LGPL-2.1+ 49 | Comment: 50 | For copyright confirmation see 51 | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708198#24 52 | 53 | License: LGPL-2.1+ 54 | This software is free software; you can redistribute it and/or 55 | modify it under the terms of the GNU Lesser General Public 56 | License as published by the Free Software Foundation; either 57 | version 2.1 of the License, or (at your option) any later version. 58 | . 59 | This program is distributed in the hope that it will be useful, 60 | but WITHOUT ANY WARRANTY; without even the implied warranty of 61 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 62 | Lesser General Public License for more details. 63 | . 64 | On Debian systems, the complete text of the GNU Library General Public 65 | License can be found in /usr/share/common-licenses/LGPL-2.1 file. 66 | 67 | License: CC0-1.0 68 | On Debian systems, the complete text of the Create Commons Universal license 69 | version 1.0 can be found in "/usr/share/common-licenses/CC0-1.0". 70 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | override_dh_auto_test: 4 | # Skip 5 | 6 | %: 7 | dh $@ 8 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /files/LATEST: -------------------------------------------------------------------------------- 1 | 20250102 2 | -------------------------------------------------------------------------------- /files/verbs/apps.txt: -------------------------------------------------------------------------------- 1 | 3m_library 3M Cloud Library (3M Company, 2015) [downloadable] 2 | 7zip 7-Zip 24.09 (Igor Pavlov, 2024) [downloadable] 3 | adobe_diged Adobe Digital Editions 1.7 (Adobe, 2011) [downloadable] 4 | adobe_diged4 Adobe Digital Editions 4.5 (Adobe, 2015) [downloadable] 5 | autohotkey AutoHotKey (autohotkey.org, 2010) [downloadable] 6 | busybox BusyBox FRP-4621-gf3c5e8bc3 (Ron Yorston / Busybox authors, 2021) [downloadable] 7 | cmake CMake 2.8 (Kitware, 2013) [downloadable] 8 | colorprofile Standard RGB color profile (Microsoft, 2005) [downloadable] 9 | controlpad MS ActiveX Control Pad (Microsoft, 1997) [downloadable] 10 | controlspy Control Spy 6 (Microsoft, 2005) [downloadable] 11 | dbgview Debug monitor (Mark Russinovich, 2019) [downloadable] 12 | depends Dependency Walker (Steve P. Miller, 2006) [downloadable] 13 | dotnet20sdk MS .NET 2.0 SDK (Microsoft, 2006) [downloadable] 14 | dxsdk_aug2006 MS DirectX SDK, August 2006 (developers only) (Microsoft, 2006) [downloadable] 15 | dxsdk_jun2010 MS DirectX SDK, June 2010 (developers only) (Microsoft, 2010) [downloadable] 16 | dxwnd Window hooker to run fullscreen programs in window and much more... (ghotik, 2011) [downloadable] 17 | emu8086 emu8086 (emu8086.com, 2015) [downloadable] 18 | ev3 Lego Mindstorms EV3 Home Edition (Lego, 2014) [downloadable] 19 | firefox Firefox 51.0 (Mozilla, 2017) [downloadable] 20 | fontxplorer Font Xplorer 1.2.2 (Moon Software, 2001) [downloadable] 21 | foobar2000 foobar2000 v1.4 (Peter Pawlowski, 2018) 22 | hhw HTML Help Workshop (Microsoft, 2000) [downloadable] 23 | iceweasel GNU Icecat 31.7.0 (GNU Foundation, 2015) [downloadable] 24 | irfanview Irfanview (Irfan Skiljan, 2016) [downloadable] 25 | kindle Amazon Kindle (Amazon, 2017) [downloadable] 26 | kobo Kobo e-book reader (Kobo, 2011) [downloadable] 27 | mingw Minimalist GNU for Windows, including GCC for Windows (GNU, 2013) [downloadable] 28 | mozillabuild Mozilla build environment (Mozilla Foundation, 2015) [downloadable] 29 | mpc Media Player Classic - Home Cinema (doom9 folks, 2014) [downloadable] 30 | mspaint MS Paint (Microsoft, 2010) [downloadable] 31 | mt4 Meta Trader 4 (, 2005) [downloadable] 32 | njcwp_trial NJStar Chinese Word Processor trial (NJStar, 2015) [downloadable] 33 | njjwp_trial NJStar Japanese Word Processor trial (NJStar, 2009) [downloadable] 34 | nook Nook for PC (e-book reader) (Barnes & Noble, 2011) [downloadable] 35 | npp Notepad++ (Don Ho, 2019) [downloadable] 36 | ollydbg110 OllyDbg (ollydbg.de, 2004) [downloadable] 37 | ollydbg200 OllyDbg (ollydbg.de, 2010) [downloadable] 38 | ollydbg201 OllyDbg (ollydbg.de, 2013) [downloadable] 39 | openwatcom Open Watcom C/C++ compiler (can compile win16 code!) (Watcom, 2010) [downloadable] 40 | origin EA Origin (EA, 2011) [downloadable] 41 | procexp Process Explorer (Steve P. Miller, 2006) [downloadable] 42 | protectionid Protection ID (CDKiLLER & TippeX, 2016) 43 | psdk2003 MS Platform SDK 2003 (Microsoft, 2003) [downloadable] 44 | psdkwin71 MS Windows 7.1 SDK (Microsoft, 2010) [downloadable] 45 | safari Safari (Apple, 2010) [downloadable] 46 | sketchup SketchUp 8 (Google, 2012) [downloadable] 47 | steam Steam (Valve, 2010) [downloadable] 48 | ubisoftconnect Ubisoft Connect (Ubisoft, 2020) [downloadable] 49 | utorrent µTorrent 2.2.1 (BitTorrent, 2011) 50 | utorrent3 µTorrent 3.4 (BitTorrent, 2011) [downloadable] 51 | vc2005express MS Visual C++ 2005 Express (Microsoft, 2005) [downloadable] 52 | vc2005expresssp1 MS Visual C++ 2005 Express SP1 (Microsoft, 2007) [downloadable] 53 | vc2005trial MS Visual C++ 2005 Trial (Microsoft, 2005) [downloadable] 54 | vc2008express MS Visual C++ 2008 Express (Microsoft, 2008) [downloadable] 55 | vc2010express MS Visual C++ 2010 Express (Microsoft, 2010) [downloadable] 56 | vlc VLC media player 2.2.1 (VideoLAN, 2015) [downloadable] 57 | vstools2019 MS Visual Studio Build Tools 2019 (Microsoft, 2019) [downloadable] 58 | winamp Winamp (Radionomy (AOL (Nullsoft)), 2013) [downloadable] 59 | winrar WinRAR 6.11 (RARLAB, 1993) [downloadable] 60 | wme9 MS Windows Media Encoder 9 (broken in Wine) (Microsoft, 2002) [downloadable] 61 | -------------------------------------------------------------------------------- /files/verbs/benchmarks.txt: -------------------------------------------------------------------------------- 1 | 3dmark03 3D Mark 03 (Futuremark, 2003) 2 | 3dmark05 3D Mark 05 (Futuremark, 2005) [downloadable] 3 | 3dmark06 3D Mark 06 (Futuremark, 2006) 4 | 3dmark2000 3DMark2000 (MadOnion.com, 2000) [downloadable] 5 | 3dmark2001 3DMark2001 (MadOnion.com, 2001) [downloadable] 6 | stalker_pripyat_bench S.T.A.L.K.E.R.: Call of Pripyat benchmark (GSC Game World, 2009) 7 | unigine_heaven Unigen Heaven 2.1 Benchmark (Unigen, 2010) 8 | wglgears wglgears (Clinton L. Jeffery, 2005) [downloadable] 9 | -------------------------------------------------------------------------------- /files/verbs/dlls.txt: -------------------------------------------------------------------------------- 1 | allcodecs All codecs (dirac, ffdshow, icodecs, cinepak, l3codecx, xvid) except wmp (various, 1995-2009) [downloadable] 2 | amstream MS amstream.dll (Microsoft, 2011) [downloadable] 3 | art2k7min MS Access 2007 runtime (Microsoft, 2007) [downloadable] 4 | art2kmin MS Access 2000 runtime (Microsoft, 2000) [downloadable] 5 | atmlib Adobe Type Manager (Adobe, 2009) [downloadable] 6 | avifil32 MS avifil32 (Microsoft, 2004) [downloadable] 7 | binkw32 RAD Game Tools binkw32.dll (RAD Game Tools, Inc., 2000) [downloadable] 8 | cabinet Microsoft cabinet.dll (Microsoft, 2002) [downloadable] 9 | cinepak Cinepak Codec (Radius, 1995) [downloadable] 10 | cmd MS cmd.exe (Microsoft, 2004) [downloadable] 11 | cnc_ddraw Reimplentation of ddraw for CnC games (CnCNet, 2021) [downloadable] 12 | comctl32 MS common controls 5.80 (Microsoft, 2001) [downloadable] 13 | comctl32ocx MS comctl32.ocx and mscomctl.ocx, comctl32 wrappers for VB6 (Microsoft, 2012) [downloadable] 14 | comdlg32ocx Common Dialog ActiveX Control for VB6 (Microsoft, 2012) [downloadable] 15 | crypt32 MS crypt32 (Microsoft, 2011) [downloadable] 16 | crypt32_winxp MS crypt32 (Microsoft, 2004) [downloadable] 17 | d2gl Diablo 2 LoD Glide to OpenGL Wrapper (Bayaraa, 2023) [downloadable] 18 | d3dcompiler_42 MS d3dcompiler_42.dll (Microsoft, 2010) [downloadable] 19 | d3dcompiler_43 MS d3dcompiler_43.dll (Microsoft, 2010) [downloadable] 20 | d3dcompiler_46 MS d3dcompiler_46.dll (Microsoft, 2010) [downloadable] 21 | d3dcompiler_47 MS d3dcompiler_47.dll (Microsoft, FIXME) [downloadable] 22 | d3drm MS d3drm.dll (Microsoft, 2010) [downloadable] 23 | d3dx10 MS d3dx10_??.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 24 | d3dx10_43 MS d3dx10_43.dll (Microsoft, 2010) [downloadable] 25 | d3dx11_42 MS d3dx11_42.dll (Microsoft, 2010) [downloadable] 26 | d3dx11_43 MS d3dx11_43.dll (Microsoft, 2010) [downloadable] 27 | d3dx9 MS d3dx9_??.dll from DirectX 9 redistributable (Microsoft, 2010) [downloadable] 28 | d3dx9_24 MS d3dx9_24.dll (Microsoft, 2010) [downloadable] 29 | d3dx9_25 MS d3dx9_25.dll (Microsoft, 2010) [downloadable] 30 | d3dx9_26 MS d3dx9_26.dll (Microsoft, 2010) [downloadable] 31 | d3dx9_27 MS d3dx9_27.dll (Microsoft, 2010) [downloadable] 32 | d3dx9_28 MS d3dx9_28.dll (Microsoft, 2010) [downloadable] 33 | d3dx9_29 MS d3dx9_29.dll (Microsoft, 2010) [downloadable] 34 | d3dx9_30 MS d3dx9_30.dll (Microsoft, 2010) [downloadable] 35 | d3dx9_31 MS d3dx9_31.dll (Microsoft, 2010) [downloadable] 36 | d3dx9_32 MS d3dx9_32.dll (Microsoft, 2010) [downloadable] 37 | d3dx9_33 MS d3dx9_33.dll (Microsoft, 2010) [downloadable] 38 | d3dx9_34 MS d3dx9_34.dll (Microsoft, 2010) [downloadable] 39 | d3dx9_35 MS d3dx9_35.dll (Microsoft, 2010) [downloadable] 40 | d3dx9_36 MS d3dx9_36.dll (Microsoft, 2010) [downloadable] 41 | d3dx9_37 MS d3dx9_37.dll (Microsoft, 2010) [downloadable] 42 | d3dx9_38 MS d3dx9_38.dll (Microsoft, 2010) [downloadable] 43 | d3dx9_39 MS d3dx9_39.dll (Microsoft, 2010) [downloadable] 44 | d3dx9_40 MS d3dx9_40.dll (Microsoft, 2010) [downloadable] 45 | d3dx9_41 MS d3dx9_41.dll (Microsoft, 2010) [downloadable] 46 | d3dx9_42 MS d3dx9_42.dll (Microsoft, 2010) [downloadable] 47 | d3dx9_43 MS d3dx9_43.dll (Microsoft, 2010) [downloadable] 48 | d3dxof MS d3dxof.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 49 | dbghelp MS dbghelp (Microsoft, 2008) [downloadable] 50 | devenum MS devenum.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 51 | dinput MS dinput.dll; breaks mouse, use only on Rayman 2 etc. (Microsoft, 2010) [downloadable] 52 | dinput8 MS DirectInput 8 from DirectX user redistributable (Microsoft, 2010) [downloadable] 53 | dirac The Dirac directshow filter v1.0.2 (Dirac, 2009) [downloadable] 54 | directmusic MS DirectMusic from DirectX user redistributable (Microsoft, 2010) [downloadable] 55 | directplay MS DirectPlay from DirectX user redistributable (Microsoft, 2010) [downloadable] 56 | directshow DirectShow runtime DLLs (amstream, qasf, qcap, qdvd, qedit, quartz) (Microsoft, 2011) [downloadable] 57 | directx9 MS DirectX 9 (Deprecated, no-op) (Microsoft, 2010) [downloadable] 58 | dmband MS dmband.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 59 | dmcompos MS dmcompos.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 60 | dmime MS dmime.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 61 | dmloader MS dmloader.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 62 | dmscript MS dmscript.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 63 | dmstyle MS dmstyle.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 64 | dmsynth MS dmsynth.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 65 | dmusic MS dmusic.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 66 | dmusic32 MS dmusic32.dll from DirectX user redistributable (Microsoft, 2006) [downloadable] 67 | dotnet11 MS .NET 1.1 (Microsoft, 2003) [downloadable] 68 | dotnet11sp1 MS .NET 1.1 SP1 (Microsoft, 2004) [downloadable] 69 | dotnet20 MS .NET 2.0 (Microsoft, 2006) [downloadable] 70 | dotnet20sp1 MS .NET 2.0 SP1 (Microsoft, 2008) [downloadable] 71 | dotnet20sp2 MS .NET 2.0 SP2 (Microsoft, 2009) [downloadable] 72 | dotnet30 MS .NET 3.0 (Microsoft, 2006) [downloadable] 73 | dotnet30sp1 MS .NET 3.0 SP1 (Microsoft, 2007) [downloadable] 74 | dotnet35 MS .NET 3.5 (Microsoft, 2007) [downloadable] 75 | dotnet35sp1 MS .NET 3.5 SP1 (Microsoft, 2008) [downloadable] 76 | dotnet40 MS .NET 4.0 (Microsoft, 2011) [downloadable] 77 | dotnet40_kb2468871 MS .NET 4.0 KB2468871 (Microsoft, 2011) [downloadable] 78 | dotnet45 MS .NET 4.5 (Microsoft, 2012) [downloadable] 79 | dotnet452 MS .NET 4.5.2 (Microsoft, 2012) [downloadable] 80 | dotnet46 MS .NET 4.6 (Microsoft, 2015) [downloadable] 81 | dotnet461 MS .NET 4.6.1 (Microsoft, 2015) [downloadable] 82 | dotnet462 MS .NET 4.6.2 (Microsoft, 2016) [downloadable] 83 | dotnet471 MS .NET 4.7.1 (Microsoft, 2017) [downloadable] 84 | dotnet472 MS .NET 4.7.2 (Microsoft, 2018) [downloadable] 85 | dotnet48 MS .NET 4.8 (Microsoft, 2019) [downloadable] 86 | dotnet6 MS .NET Runtime 6.0 LTS (Microsoft, 2023) [downloadable] 87 | dotnet7 MS .NET Runtime 7.0 LTS (Microsoft, 2023) [downloadable] 88 | dotnet8 MS .NET Runtime 8.0 LTS (Microsoft, 2024) [downloadable] 89 | dotnet9 MS .NET Runtime 9.0 LTS (Microsoft, 2024) [downloadable] 90 | dotnet_verifier MS .NET Verifier (Microsoft, 2016) [downloadable] 91 | dotnetcore2 MS .NET Core Runtime 2.1 LTS (Microsoft, 2020) [downloadable] 92 | dotnetcore3 MS .NET Core Runtime 3.1 LTS (Microsoft, 2020) [downloadable] 93 | dotnetcoredesktop3 MS .NET Core Desktop Runtime 3.1 LTS (Microsoft, 2020) [downloadable] 94 | dotnetdesktop6 MS .NET Desktop Runtime 6.0 LTS (Microsoft, 2023) [downloadable] 95 | dotnetdesktop7 MS .NET Desktop Runtime 7.0 LTS (Microsoft, 2023) [downloadable] 96 | dotnetdesktop8 MS .NET Desktop Runtime 8.0 LTS (Microsoft, 2024) [downloadable] 97 | dotnetdesktop9 MS .NET Desktop Runtime 9.0 LTS (Microsoft, 2024) [downloadable] 98 | dpvoice Microsoft dpvoice dpvvox dpvacm Audio dlls (Microsoft, 2002) [downloadable] 99 | dsdmo MS dsdmo.dll (Microsoft, 2010) [downloadable] 100 | dsound MS DirectSound from DirectX user redistributable (Microsoft, 2010) [downloadable] 101 | dswave MS dswave.dll from DirectX user redistributable (Microsoft, 2010) [downloadable] 102 | dx8vb MS dx8vb.dll from DirectX 8.1 runtime (Microsoft, 2001) [downloadable] 103 | dxdiag DirectX Diagnostic Tool (Microsoft, 2010) [downloadable] 104 | dxdiagn DirectX Diagnostic Library (Microsoft, 2011) [downloadable] 105 | dxdiagn_feb2010 DirectX Diagnostic Library (February 2010) (Microsoft, 2010) [downloadable] 106 | dxtrans MS dxtrans.dll (Microsoft, 2002) [downloadable] 107 | dxvk Vulkan-based D3D8/D3D9/D3D10/D3D11 implementation for Linux / Wine (latest) (Philip Rebohle, 2024) [downloadable] 108 | dxvk1000 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0) (Philip Rebohle, 2017) [downloadable] 109 | dxvk1001 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0.1) (Philip Rebohle, 2017) [downloadable] 110 | dxvk1002 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0.2) (Philip Rebohle, 2017) [downloadable] 111 | dxvk1003 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.0.3) (Philip Rebohle, 2017) [downloadable] 112 | dxvk1011 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.1.1) (Philip Rebohle, 2017) [downloadable] 113 | dxvk1020 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2) (Philip Rebohle, 2017) [downloadable] 114 | dxvk1021 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2.1) (Philip Rebohle, 2017) [downloadable] 115 | dxvk1022 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2.2) (Philip Rebohle, 2017) [downloadable] 116 | dxvk1023 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.2.3) (Philip Rebohle, 2017) [downloadable] 117 | dxvk1030 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3) (Philip Rebohle, 2017) [downloadable] 118 | dxvk1031 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.1) (Philip Rebohle, 2017) [downloadable] 119 | dxvk1032 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.2) (Philip Rebohle, 2017) [downloadable] 120 | dxvk1033 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.3) (Philip Rebohle, 2017) [downloadable] 121 | dxvk1034 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.3.4) (Philip Rebohle, 2017) [downloadable] 122 | dxvk1040 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4) (Philip Rebohle, 2017) [downloadable] 123 | dxvk1041 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.1) (Philip Rebohle, 2017) [downloadable] 124 | dxvk1042 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.2) (Philip Rebohle, 2017) [downloadable] 125 | dxvk1043 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.3) (Philip Rebohle, 2017) [downloadable] 126 | dxvk1044 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.4) (Philip Rebohle, 2017) [downloadable] 127 | dxvk1045 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.5) (Philip Rebohle, 2017) [downloadable] 128 | dxvk1046 Vulkan-based D3D10/D3D11 implementation for Linux / Wine (1.4.6) (Philip Rebohle, 2017) [downloadable] 129 | dxvk1050 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5) (Philip Rebohle, 2017) [downloadable] 130 | dxvk1051 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.1) (Philip Rebohle, 2017) [downloadable] 131 | dxvk1052 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.2) (Philip Rebohle, 2017) [downloadable] 132 | dxvk1053 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.3) (Philip Rebohle, 2017) [downloadable] 133 | dxvk1054 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.4) (Philip Rebohle, 2017) [downloadable] 134 | dxvk1055 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.5.5) (Philip Rebohle, 2017) [downloadable] 135 | dxvk1060 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.6) (Philip Rebohle, 2017) [downloadable] 136 | dxvk1061 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.6.1) (Philip Rebohle, 2017) [downloadable] 137 | dxvk1070 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7) (Philip Rebohle, 2017) [downloadable] 138 | dxvk1071 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7.1) (Philip Rebohle, 2017) [downloadable] 139 | dxvk1072 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7.2) (Philip Rebohle, 2017) [downloadable] 140 | dxvk1073 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.7.3) (Philip Rebohle, 2017) [downloadable] 141 | dxvk1080 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.8) (Philip Rebohle, 2017) [downloadable] 142 | dxvk1081 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.8.1) (Philip Rebohle, 2017) [downloadable] 143 | dxvk1090 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9) (Philip Rebohle, 2017) [downloadable] 144 | dxvk1091 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.1) (Philip Rebohle, 2017) [downloadable] 145 | dxvk1092 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.2) (Philip Rebohle, 2017) [downloadable] 146 | dxvk1093 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.3) (Philip Rebohle, 2017) [downloadable] 147 | dxvk1094 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.9.4) (Philip Rebohle, 2017) [downloadable] 148 | dxvk1100 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.10) (Philip Rebohle, 2017) [downloadable] 149 | dxvk1101 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.10.1) (Philip Rebohle, 2017) [downloadable] 150 | dxvk1102 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.10.2) (Philip Rebohle, 2017) [downloadable] 151 | dxvk1103 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (1.10.3) (Philip Rebohle, 2022) [downloadable] 152 | dxvk2000 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (2.0) (Philip Rebohle, 2022) [downloadable] 153 | dxvk2010 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (2.1) (Philip Rebohle, 2023) [downloadable] 154 | dxvk2020 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (2.2) (Philip Rebohle, 2023) [downloadable] 155 | dxvk2030 Vulkan-based D3D9/D3D10/D3D11 implementation for Linux / Wine (2.3) (Philip Rebohle, 2023) [downloadable] 156 | dxvk2040 Vulkan-based D3D8/D3D9/D3D10/D3D11 implementation for Linux / Wine (2.4) (Philip Rebohle, 2024) [downloadable] 157 | dxvk2041 Vulkan-based D3D8/D3D9/D3D10/D3D11 implementation for Linux / Wine (2.4.1) (Philip Rebohle, 2024) [downloadable] 158 | dxvk2050 Vulkan-based D3D8/D3D9/D3D10/D3D11 implementation for Linux / Wine (2.5) (Philip Rebohle, 2024) [downloadable] 159 | dxvk2051 Vulkan-based D3D8/D3D9/D3D10/D3D11 implementation for Linux / Wine (2.5.1) (Philip Rebohle, 2024) [downloadable] 160 | dxvk2052 Vulkan-based D3D8/D3D9/D3D10/D3D11 implementation for Linux / Wine (2.5.2) (Philip Rebohle, 2024) [downloadable] 161 | dxvk_nvapi0061 Alternative NVAPI Vulkan implementation on top of DXVK for Linux / Wine (0.6.1) (Jens Peters, 2023) [downloadable] 162 | esent MS Extensible Storage Engine (Microsoft, 2011) [downloadable] 163 | faudio FAudio (xaudio reimplementation, with xna support) builds for win32 (20.07) (Kron4ek, 2019) [downloadable] 164 | faudio1901 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.01) (Kron4ek, 2019) [downloadable] 165 | faudio1902 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.02) (Kron4ek, 2019) [downloadable] 166 | faudio1903 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.03) (Kron4ek, 2019) [downloadable] 167 | faudio1904 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.04) (Kron4ek, 2019) [downloadable] 168 | faudio1905 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.05) (Kron4ek, 2019) [downloadable] 169 | faudio1906 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.06) (Kron4ek, 2019) [downloadable] 170 | faudio190607 FAudio (xaudio reimplementation, with xna support) builds for win32 (19.06.07) (Kron4ek, 2019) [downloadable] 171 | ffdshow ffdshow video codecs (doom9 folks, 2010) [downloadable] 172 | filever Microsoft's filever, for dumping file version info (Microsoft, 20??) [downloadable] 173 | galliumnine Gallium Nine Standalone (latest) (Gallium Nine Team, 2023) [downloadable] 174 | galliumnine02 Gallium Nine Standalone (v0.2) (Gallium Nine Team, 2019) [downloadable] 175 | galliumnine03 Gallium Nine Standalone (v0.3) (Gallium Nine Team, 2019) [downloadable] 176 | galliumnine04 Gallium Nine Standalone (v0.4) (Gallium Nine Team, 2019) [downloadable] 177 | galliumnine05 Gallium Nine Standalone (v0.5) (Gallium Nine Team, 2019) [downloadable] 178 | galliumnine06 Gallium Nine Standalone (v0.6) (Gallium Nine Team, 2020) [downloadable] 179 | galliumnine07 Gallium Nine Standalone (v0.7) (Gallium Nine Team, 2020) [downloadable] 180 | galliumnine08 Gallium Nine Standalone (v0.8) (Gallium Nine Team, 2021) [downloadable] 181 | galliumnine09 Gallium Nine Standalone (v0.9) (Gallium Nine Team, 2023) [downloadable] 182 | gdiplus MS GDI+ (Microsoft, 2011) [downloadable] 183 | gdiplus_winxp MS GDI+ (Microsoft, 2009) 184 | gfw MS Games For Windows Live (xlive.dll) (Microsoft, 2008) [downloadable] 185 | glidewrapper GlideWrapper (Rolf Neuberger, 2005) [downloadable] 186 | glut The glut utility library for OpenGL (Mark J. Kilgard, 2001) [downloadable] 187 | gmdls General MIDI DLS Collection (Microsoft / Roland, 1999) [downloadable] 188 | hid MS hid (Microsoft, 2003) [downloadable] 189 | icodecs Indeo codecs (Intel, 1998) [downloadable] 190 | ie6 Internet Explorer 6 (Microsoft, 2002) [downloadable] 191 | ie7 Internet Explorer 7 (Microsoft, 2008) [downloadable] 192 | ie8 Internet Explorer 8 (Microsoft, 2009) [downloadable] 193 | ie8_kb2936068 Cumulative Security Update for Internet Explorer 8 (Microsoft, 2014) [downloadable] 194 | ie8_tls12 TLS 1.1 and 1.2 for Internet Explorer 8 (Microsoft, 2017) [downloadable] 195 | iertutil MS Runtime Utility (Microsoft, 2011) [downloadable] 196 | itircl MS itircl.dll (Microsoft, 1999) [downloadable] 197 | itss MS itss.dll (Microsoft, 1999) [downloadable] 198 | jet40 MS Jet 4.0 Service Pack 8 (Microsoft, 2003) [downloadable] 199 | l3codecx MPEG Layer-3 Audio Codec for Microsoft DirectShow (Microsoft, 2010) [downloadable] 200 | lavfilters LAV Filters (Hendrik Leppkes, 2019) [downloadable] 201 | lavfilters702 LAV Filters 0.70.2 (Hendrik Leppkes, 2017) [downloadable] 202 | mdac27 Microsoft Data Access Components 2.7 sp1 (Microsoft, 2006) [downloadable] 203 | mdac28 Microsoft Data Access Components 2.8 sp1 (Microsoft, 2005) [downloadable] 204 | mdx Managed DirectX (Microsoft, 2006) [downloadable] 205 | mf MS Media Foundation (Microsoft, 2011) [downloadable] 206 | mfc100 Visual C++ 2010 mfc100 library; part of vcrun2010 (Microsoft, 2010) [downloadable] 207 | mfc110 Visual C++ 2012 mfc110 library; part of vcrun2012 (Microsoft, 2012) [downloadable] 208 | mfc120 Visual C++ 2013 mfc120 library; part of vcrun2013 (Microsoft, 2013) [downloadable] 209 | mfc140 Visual C++ 2015 mfc140 library; part of vcrun2015 (Microsoft, 2015) [downloadable] 210 | mfc40 MS mfc40 (Microsoft Foundation Classes from win7sp1) (Microsoft, 1999) [downloadable] 211 | mfc42 Visual C++ 6 SP4 mfc42 library; part of vcrun6 (Microsoft, 2000) [downloadable] 212 | mfc70 Visual Studio (.NET) 2002 mfc70 library (Microsoft, 2006) [downloadable] 213 | mfc71 Visual C++ 2003 mfc71 library; part of vcrun2003 (Microsoft, 2003) [downloadable] 214 | mfc80 Visual C++ 2005 mfc80 library; part of vcrun2005 (Microsoft, 2011) [downloadable] 215 | mfc90 Visual C++ 2008 mfc90 library; part of vcrun2008 (Microsoft, 2011) [downloadable] 216 | msaa MS Active Accessibility (oleacc.dll, oleaccrc.dll, msaatext.dll) (Microsoft, 2003) [downloadable] 217 | msacm32 MS ACM32 (Microsoft, 2003) [downloadable] 218 | msasn1 MS ASN1 (Microsoft, 2003) [downloadable] 219 | msctf MS Text Service Module (Microsoft, 2003) [downloadable] 220 | msdelta MSDelta differential compression library (Microsoft, 2011) [downloadable] 221 | msdxmocx MS Windows Media Player 2 ActiveX control for VB6 (Microsoft, 1999) [downloadable] 222 | msflxgrd MS FlexGrid Control (msflxgrd.ocx) (Microsoft, 2012) [downloadable] 223 | msftedit Microsoft RichEdit Control (Microsoft, 2011) [downloadable] 224 | mshflxgd MS Hierarchical FlexGrid Control (mshflxgd.ocx) (Microsoft, 2012) [downloadable] 225 | msls31 MS Line Services (Microsoft, 2001) [downloadable] 226 | msmask MS Masked Edit Control (Microsoft, 2009) [downloadable] 227 | mspatcha MS mspatcha (Microsoft, 2004) [downloadable] 228 | msscript MS Windows Script Control (Microsoft, 2004) [downloadable] 229 | msvcirt Visual C++ 6 SP4 msvcirt library; part of vcrun6 (Microsoft, 2000) [downloadable] 230 | msvcrt40 MS Visual C++ Runtime Library Version 4.0 (Microsoft, 2011) [downloadable] 231 | msxml3 MS XML Core Services 3.0 (Microsoft, 2005) [downloadable] 232 | msxml4 MS XML Core Services 4.0 (Microsoft, 2009) [downloadable] 233 | msxml6 MS XML Core Services 6.0 sp2 (Microsoft, 2014) [downloadable] 234 | nuget NuGet Package manager (Outercurve Foundation, 2013) [downloadable] 235 | ogg OpenCodecs 0.85: FLAC, Speex, Theora, Vorbis, WebM (Xiph.Org Foundation, 2011) [downloadable] 236 | ole32 MS ole32 Module (ole32.dll) (Microsoft, 2004) [downloadable] 237 | oleaut32 MS oleaut32.dll (Microsoft, 2011) [downloadable] 238 | openal OpenAL Runtime (Creative, 2023) [downloadable] 239 | otvdm Otvdm - A modified version of winevdm as Win16 emulator (otya128, 2024) [downloadable] 240 | otvdm090 Otvdm - A modified version of winevdm as Win16 emulator (otya128, 2024) [downloadable] 241 | pdh MS pdh.dll (Performance Data Helper) (Microsoft, 2011) [downloadable] 242 | pdh_nt4 MS pdh.dll (Performance Data Helper); WinNT 4.0 Version (Microsoft, 1997) [downloadable] 243 | peverify MS peverify (from .NET 2.0 SDK) (Microsoft, 2006) [downloadable] 244 | physx PhysX (Nvidia, 2021) [downloadable] 245 | pngfilt pngfilt.dll (from winxp) (Microsoft, 2004) [downloadable] 246 | powershell PowerShell Wrapper For Wine (ProjectSynchro, 2024) [downloadable] 247 | powershell_core PowerShell Core (Microsoft, 2024) [downloadable] 248 | prntvpt prntvpt.dll (Microsoft, 2011) [downloadable] 249 | python26 Python interpreter 2.6.2 (Python Software Foundaton, 2009) [downloadable] 250 | python27 Python interpreter 2.7.16 (Python Software Foundaton, 2019) [downloadable] 251 | qasf qasf.dll (Microsoft, 2011) [downloadable] 252 | qcap qcap.dll (Microsoft, 2011) [downloadable] 253 | qdvd qdvd.dll (Microsoft, 2011) [downloadable] 254 | qedit qedit.dll (Microsoft, 2011) [downloadable] 255 | quartz quartz.dll (Microsoft, 2011) [downloadable] 256 | quartz_feb2010 quartz.dll (February 2010) (Microsoft, 2010) [downloadable] 257 | quicktime72 Apple QuickTime 7.2 (Apple, 2010) [downloadable] 258 | quicktime76 Apple QuickTime 7.6 (Apple, 2010) [downloadable] 259 | riched20 MS RichEdit Control 2.0 (riched20.dll) (Microsoft, 2004) [downloadable] 260 | riched30 MS RichEdit Control 3.0 (riched20.dll, msls31.dll) (Microsoft, 2001) [downloadable] 261 | richtx32 MS Rich TextBox Control 6.0 (Microsoft, 2012) [downloadable] 262 | sapi MS Speech API (Microsoft, 2011) [downloadable] 263 | sdl Simple DirectMedia Layer (Sam Lantinga, 2012) [downloadable] 264 | secur32 MS Security Support Provider Interface (Microsoft, 2011) [downloadable] 265 | setupapi MS Setup API (Microsoft, 2004) [downloadable] 266 | shockwave Shockwave (Adobe, 2018) [downloadable] 267 | speechsdk MS Speech SDK 5.1 (Microsoft, 2009) [downloadable] 268 | tabctl32 Microsoft Tabbed Dialog Control 6.0 (tabctl32.ocx) (Microsoft, 2012) [downloadable] 269 | ucrtbase2019 Visual C++ 2019 library (ucrtbase.dll) (Microsoft, 2019) [downloadable] 270 | uiribbon Windows UIRibbon (Microsoft, 2011) [downloadable] 271 | updspapi Windows Update Service API (Microsoft, 2004) [downloadable] 272 | urlmon MS urlmon (Microsoft, 2011) [downloadable] 273 | usp10 Uniscribe (Microsoft, 2011) [downloadable] 274 | vb2run MS Visual Basic 2 runtime (Microsoft, 1993) [downloadable] 275 | vb3run MS Visual Basic 3 runtime (Microsoft, 1998) [downloadable] 276 | vb4run MS Visual Basic 4 runtime (Microsoft, 1998) [downloadable] 277 | vb5run MS Visual Basic 5 runtime (Microsoft, 2001) [downloadable] 278 | vb6run MS Visual Basic 6 runtime sp6 (Microsoft, 2004) [downloadable] 279 | vcrun2003 Visual C++ 2003 libraries (mfc71,msvcp71,msvcr71) (Microsoft, 2003) [downloadable] 280 | vcrun2005 Visual C++ 2005 libraries (mfc80,msvcp80,msvcr80) (Microsoft, 2011) [downloadable] 281 | vcrun2008 Visual C++ 2008 libraries (mfc90,msvcp90,msvcr90) (Microsoft, 2011) [downloadable] 282 | vcrun2010 Visual C++ 2010 libraries (mfc100,msvcp100,msvcr100) (Microsoft, 2010) [downloadable] 283 | vcrun2012 Visual C++ 2012 libraries (atl110,mfc110,mfc110u,msvcp110,msvcr110,vcomp110) (Microsoft, 2012) [downloadable] 284 | vcrun2013 Visual C++ 2013 libraries (mfc120,mfc120u,msvcp120,msvcr120,vcomp120) (Microsoft, 2013) [downloadable] 285 | vcrun2015 Visual C++ 2015 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_atomic_wait.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll) (Microsoft, 2015) [downloadable] 286 | vcrun2017 Visual C++ 2017 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_2.dll,msvcp140_atomic_wait.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll) (Microsoft, 2017) [downloadable] 287 | vcrun2019 Visual C++ 2015-2019 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_2.dll,msvcp140_atomic_wait.dll,msvcp140_codecvt_ids.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll (Microsoft, 2019) [downloadable] 288 | vcrun2022 Visual C++ 2015-2022 libraries (concrt140.dll,mfc140.dll,mfc140chs.dll,mfc140cht.dll,mfc140deu.dll,mfc140enu.dll,mfc140esn.dll,mfc140fra.dll,mfc140ita.dll,mfc140jpn.dll,mfc140kor.dll,mfc140rus.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,msvcp140_1.dll,msvcp140_2.dll,msvcp140_atomic_wait.dll,msvcp140_codecvt_ids.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll,vcruntime140_1.dll) (Microsoft, 2022) [downloadable] 289 | vcrun6 Visual C++ 6 SP4 libraries (mfc42, msvcp60, msvcirt) (Microsoft, 2000) [downloadable] 290 | vcrun6sp6 Visual C++ 6 SP6 libraries (with fixes in ATL and MFC) (Microsoft, 2004) [downloadable] 291 | vjrun20 MS Visual J# 2.0 SE libraries (requires dotnet20) (Microsoft, 2007) [downloadable] 292 | vkd3d Vulkan-based D3D12 implementation for Linux / Wine (latest) (Hans-Kristian Arntzen , 2020) [downloadable] 293 | webio MS Windows Web I/O (Microsoft, 2011) [downloadable] 294 | windowscodecs MS Windows Imaging Component (Microsoft, 2006) [downloadable] 295 | winhttp MS Windows HTTP Services (Microsoft, 2005) [downloadable] 296 | wininet MS Windows Internet API (Microsoft, 2011) [downloadable] 297 | wininet_win2k MS Windows Internet API (Microsoft, 2008) [downloadable] 298 | wmi Windows Management Instrumentation (aka WBEM) Core 1.5 (Microsoft, 2000) [downloadable] 299 | wmp10 Windows Media Player 10 (Microsoft, 2006) [downloadable] 300 | wmp11 Windows Media Player 11 (Microsoft, 2007) [downloadable] 301 | wmp9 Windows Media Player 9 (Microsoft, 2003) [downloadable] 302 | wmv9vcm MS Windows Media Video 9 Video Compression Manager (Microsoft, 2013) [downloadable] 303 | wsh57 MS Windows Script Host 5.7 (Microsoft, 2007) [downloadable] 304 | xact MS XACT Engine (32-bit only) (Microsoft, 2010) [downloadable] 305 | xact_x64 MS XACT Engine (64-bit only) (Microsoft, 2010) [downloadable] 306 | xaudio29 MS XAudio Redistributable 2.9 (Microsoft, 2023) [downloadable] 307 | xinput Microsoft XInput (Xbox controller support) (Microsoft, 2010) [downloadable] 308 | xmllite MS xmllite dll (Microsoft, 2011) [downloadable] 309 | xna31 MS XNA Framework Redistributable 3.1 (Microsoft, 2009) [downloadable] 310 | xna40 MS XNA Framework Redistributable 4.0 (Microsoft, 2010) [downloadable] 311 | xvid Xvid Video Codec (xvid.org, 2019) [downloadable] 312 | -------------------------------------------------------------------------------- /files/verbs/download.txt: -------------------------------------------------------------------------------- 1 | 3dmark05 2 | 3dmark2000 3 | 3dmark2001 4 | 3m_library 5 | 7zip 6 | adobe_diged 7 | adobe_diged4 8 | allcodecs 9 | allfonts 10 | amstream 11 | andale 12 | arial 13 | art2k7min 14 | art2kmin 15 | atmlib 16 | autohotkey 17 | avifil32 18 | baekmuk 19 | binkw32 20 | busybox 21 | cabinet 22 | calibri 23 | cambria 24 | candara 25 | cinepak 26 | cjkfonts 27 | cmake 28 | cmd 29 | cnc_ddraw 30 | colorprofile 31 | comctl32 32 | comctl32ocx 33 | comdlg32ocx 34 | comicsans 35 | consolas 36 | constantia 37 | controlpad 38 | controlspy 39 | corbel 40 | corefonts 41 | courier 42 | crypt32 43 | crypt32_winxp 44 | d2gl 45 | d3dcompiler_42 46 | d3dcompiler_43 47 | d3dcompiler_46 48 | d3dcompiler_47 49 | d3drm 50 | d3dx10 51 | d3dx10_43 52 | d3dx11_42 53 | d3dx11_43 54 | d3dx9 55 | d3dx9_24 56 | d3dx9_25 57 | d3dx9_26 58 | d3dx9_27 59 | d3dx9_28 60 | d3dx9_29 61 | d3dx9_30 62 | d3dx9_31 63 | d3dx9_32 64 | d3dx9_33 65 | d3dx9_34 66 | d3dx9_35 67 | d3dx9_36 68 | d3dx9_37 69 | d3dx9_38 70 | d3dx9_39 71 | d3dx9_40 72 | d3dx9_41 73 | d3dx9_42 74 | d3dx9_43 75 | d3dxof 76 | dbghelp 77 | dbgview 78 | depends 79 | devenum 80 | dinput 81 | dinput8 82 | dirac 83 | directmusic 84 | directplay 85 | directshow 86 | directx9 87 | dmband 88 | dmcompos 89 | dmime 90 | dmloader 91 | dmscript 92 | dmstyle 93 | dmsynth 94 | dmusic 95 | dmusic32 96 | dotnet11 97 | dotnet11sp1 98 | dotnet20 99 | dotnet20sdk 100 | dotnet20sp1 101 | dotnet20sp2 102 | dotnet30 103 | dotnet30sp1 104 | dotnet35 105 | dotnet35sp1 106 | dotnet40 107 | dotnet40_kb2468871 108 | dotnet45 109 | dotnet452 110 | dotnet46 111 | dotnet461 112 | dotnet462 113 | dotnet471 114 | dotnet472 115 | dotnet48 116 | dotnet6 117 | dotnet7 118 | dotnet8 119 | dotnet9 120 | dotnet_verifier 121 | dotnetcore2 122 | dotnetcore3 123 | dotnetcoredesktop3 124 | dotnetdesktop6 125 | dotnetdesktop7 126 | dotnetdesktop8 127 | dotnetdesktop9 128 | dpvoice 129 | droid 130 | dsdmo 131 | dsound 132 | dswave 133 | dx8vb 134 | dxdiag 135 | dxdiagn 136 | dxdiagn_feb2010 137 | dxsdk_aug2006 138 | dxsdk_jun2010 139 | dxtrans 140 | dxvk 141 | dxvk1000 142 | dxvk1001 143 | dxvk1002 144 | dxvk1003 145 | dxvk1011 146 | dxvk1020 147 | dxvk1021 148 | dxvk1022 149 | dxvk1023 150 | dxvk1030 151 | dxvk1031 152 | dxvk1032 153 | dxvk1033 154 | dxvk1034 155 | dxvk1040 156 | dxvk1041 157 | dxvk1042 158 | dxvk1043 159 | dxvk1044 160 | dxvk1045 161 | dxvk1046 162 | dxvk1050 163 | dxvk1051 164 | dxvk1052 165 | dxvk1053 166 | dxvk1054 167 | dxvk1055 168 | dxvk1060 169 | dxvk1061 170 | dxvk1070 171 | dxvk1071 172 | dxvk1072 173 | dxvk1073 174 | dxvk1080 175 | dxvk1081 176 | dxvk1090 177 | dxvk1091 178 | dxvk1092 179 | dxvk1093 180 | dxvk1094 181 | dxvk1100 182 | dxvk1101 183 | dxvk1102 184 | dxvk1103 185 | dxvk2000 186 | dxvk2010 187 | dxvk2020 188 | dxvk2030 189 | dxvk2040 190 | dxvk2041 191 | dxvk2050 192 | dxvk2051 193 | dxvk2052 194 | dxvk_nvapi0061 195 | dxwnd 196 | emu8086 197 | esent 198 | eufonts 199 | ev3 200 | faudio 201 | faudio1901 202 | faudio1902 203 | faudio1903 204 | faudio1904 205 | faudio1905 206 | faudio1906 207 | faudio190607 208 | ffdshow 209 | filever 210 | firefox 211 | fontxplorer 212 | galliumnine 213 | galliumnine02 214 | galliumnine03 215 | galliumnine04 216 | galliumnine05 217 | galliumnine06 218 | galliumnine07 219 | galliumnine08 220 | galliumnine09 221 | gdiplus 222 | georgia 223 | gfw 224 | glidewrapper 225 | glut 226 | gmdls 227 | hhw 228 | hid 229 | iceweasel 230 | icodecs 231 | ie6 232 | ie7 233 | ie8 234 | ie8_kb2936068 235 | ie8_tls12 236 | iertutil 237 | impact 238 | ipamona 239 | irfanview 240 | itircl 241 | itss 242 | jet40 243 | kindle 244 | kobo 245 | l3codecx 246 | lavfilters 247 | lavfilters702 248 | liberation 249 | lucida 250 | mdac27 251 | mdac28 252 | mdx 253 | meiryo 254 | mf 255 | mfc100 256 | mfc110 257 | mfc120 258 | mfc140 259 | mfc40 260 | mfc42 261 | mfc70 262 | mfc71 263 | mfc80 264 | mfc90 265 | micross 266 | mingw 267 | mozillabuild 268 | mpc 269 | msaa 270 | msacm32 271 | msasn1 272 | msctf 273 | msdelta 274 | msdxmocx 275 | msflxgrd 276 | msftedit 277 | mshflxgd 278 | msls31 279 | msmask 280 | mspaint 281 | mspatcha 282 | msscript 283 | msvcirt 284 | msvcrt40 285 | msxml3 286 | msxml4 287 | msxml6 288 | mt4 289 | njcwp_trial 290 | njjwp_trial 291 | nook 292 | npp 293 | nuget 294 | ogg 295 | ole32 296 | oleaut32 297 | ollydbg110 298 | ollydbg200 299 | ollydbg201 300 | openal 301 | opensymbol 302 | openwatcom 303 | origin 304 | otvdm 305 | otvdm090 306 | pdh 307 | pdh_nt4 308 | peverify 309 | physx 310 | pngfilt 311 | powershell 312 | powershell_core 313 | pptfonts 314 | prntvpt 315 | procexp 316 | psdk2003 317 | psdkwin71 318 | python26 319 | python27 320 | qasf 321 | qcap 322 | qdvd 323 | qedit 324 | quartz 325 | quartz_feb2010 326 | quicktime72 327 | quicktime76 328 | riched20 329 | riched30 330 | richtx32 331 | safari 332 | sapi 333 | sdl 334 | secur32 335 | setupapi 336 | shockwave 337 | sketchup 338 | sourcehansans 339 | speechsdk 340 | steam 341 | tabctl32 342 | tahoma 343 | takao 344 | times 345 | trebuchet 346 | ubisoftconnect 347 | ucrtbase2019 348 | uff 349 | uiribbon 350 | unifont 351 | updspapi 352 | urlmon 353 | usp10 354 | utorrent3 355 | vb2run 356 | vb3run 357 | vb4run 358 | vb5run 359 | vb6run 360 | vc2005express 361 | vc2005expresssp1 362 | vc2005trial 363 | vc2008express 364 | vc2010express 365 | vcrun2003 366 | vcrun2005 367 | vcrun2008 368 | vcrun2010 369 | vcrun2012 370 | vcrun2013 371 | vcrun2015 372 | vcrun2017 373 | vcrun2019 374 | vcrun2022 375 | vcrun6 376 | vcrun6sp6 377 | verdana 378 | vjrun20 379 | vkd3d 380 | vlc 381 | vlgothic 382 | vstools2019 383 | webdings 384 | webio 385 | wenquanyi 386 | wenquanyizenhei 387 | wglgears 388 | winamp 389 | windowscodecs 390 | winhttp 391 | wininet 392 | wininet_win2k 393 | winrar 394 | wme9 395 | wmi 396 | wmp10 397 | wmp11 398 | wmp9 399 | wmv9vcm 400 | wsh57 401 | xact 402 | xact_x64 403 | xaudio29 404 | xinput 405 | xmllite 406 | xna31 407 | xna40 408 | xvid 409 | -------------------------------------------------------------------------------- /files/verbs/fonts.txt: -------------------------------------------------------------------------------- 1 | allfonts All fonts (various, 1998-2010) [downloadable] 2 | andale MS Andale Mono font (Microsoft, 2008) [downloadable] 3 | arial MS Arial / Arial Black fonts (Microsoft, 2008) [downloadable] 4 | baekmuk Baekmuk Korean fonts (Wooderart Inc. / kldp.net, 1999) [downloadable] 5 | calibri MS Calibri font (Microsoft, 2007) [downloadable] 6 | cambria MS Cambria font (Microsoft, 2009) [downloadable] 7 | candara MS Candara font (Microsoft, 2009) [downloadable] 8 | cjkfonts All Chinese, Japanese, Korean fonts and aliases (Various, ) [downloadable] 9 | comicsans MS Comic Sans fonts (Microsoft, 2008) [downloadable] 10 | consolas MS Consolas console font (Microsoft, 2011) [downloadable] 11 | constantia MS Constantia font (Microsoft, 2009) [downloadable] 12 | corbel MS Corbel font (Microsoft, 2009) [downloadable] 13 | corefonts MS Arial, Courier, Times fonts (Microsoft, 2008) [downloadable] 14 | courier MS Courier fonts (Microsoft, 2008) [downloadable] 15 | droid Droid fonts (Ascender Corporation, 2009) [downloadable] 16 | eufonts Updated fonts for Romanian and Bulgarian (Microsoft, 2008) [downloadable] 17 | fakechinese Creates aliases for Chinese fonts using Source Han Sans fonts (Adobe, 2019) 18 | fakejapanese Creates aliases for Japanese fonts using Source Han Sans fonts (Adobe, 2019) 19 | fakejapanese_ipamona Creates aliases for Japanese fonts using IPAMona fonts (Jun Kobayashi, 2008) 20 | fakejapanese_vlgothic Creates aliases for Japanese Meiryo fonts using VLGothic fonts (Project Vine / Daisuke Suzuki, 2014) 21 | fakekorean Creates aliases for Korean fonts using Source Han Sans fonts (Adobe, 2019) 22 | georgia MS Georgia fonts (Microsoft, 2008) [downloadable] 23 | impact MS Impact fonts (Microsoft, 2008) [downloadable] 24 | ipamona IPAMona Japanese fonts (Jun Kobayashi, 2008) [downloadable] 25 | liberation Red Hat Liberation fonts (Mono, Sans, SansNarrow, Serif) (Red Hat, 2008) [downloadable] 26 | lucida MS Lucida Console font (Microsoft, 1998) [downloadable] 27 | meiryo MS Meiryo font (Microsoft, 2009) [downloadable] 28 | micross MS Sans Serif font (Microsoft, 2004) [downloadable] 29 | opensymbol OpenSymbol fonts (replacement for Wingdings) (libreoffice.org, 2022) [downloadable] 30 | pptfonts All MS PowerPoint Viewer fonts (various, ) [downloadable] 31 | sourcehansans Source Han Sans fonts (Adobe, 2021) [downloadable] 32 | tahoma MS Tahoma font (not part of corefonts) (Microsoft, 1999) [downloadable] 33 | takao Takao Japanese fonts (Jun Kobayashi, 2010) [downloadable] 34 | times MS Times fonts (Microsoft, 2008) [downloadable] 35 | trebuchet MS Trebuchet fonts (Microsoft, 2008) [downloadable] 36 | uff Ubuntu Font Family (Ubuntu, 2010) [downloadable] 37 | unifont Unifont alternative to Arial Unicode MS (Roman Czyborra / GNU, 2021) [downloadable] 38 | verdana MS Verdana fonts (Microsoft, 2008) [downloadable] 39 | vlgothic VLGothic Japanese fonts (Project Vine / Daisuke Suzuki, 2014) [downloadable] 40 | webdings MS Webdings fonts (Microsoft, 2008) [downloadable] 41 | wenquanyi WenQuanYi CJK font (wenq.org, 2009) [downloadable] 42 | wenquanyizenhei WenQuanYi ZenHei font (wenq.org, 2009) [downloadable] 43 | -------------------------------------------------------------------------------- /files/verbs/manual-download.txt: -------------------------------------------------------------------------------- 1 | 3dmark03 2 | 3dmark06 3 | foobar2000 4 | gdiplus_winxp 5 | protectionid 6 | stalker_pripyat_bench 7 | unigine_heaven 8 | utorrent 9 | -------------------------------------------------------------------------------- /files/verbs/settings.txt: -------------------------------------------------------------------------------- 1 | alldlls=builtin Override most common DLLs to builtin 2 | alldlls=default Remove all DLL overrides 3 | autostart_winedbg=disabled Prevent winedbg from launching when an unhandled exception occurs 4 | autostart_winedbg=enabled Automatically launch winedbg when an unhandled exception occurs (default) 5 | bad Fake verb that always returns false 6 | cfc=disabled Disable CheckFloatConstants (default) 7 | cfc=enabled Enable CheckFloatConstants 8 | csmt=force Enable and force serialisation of OpenGL or Vulkan commands between multiple command streams in the same application 9 | csmt=off Disable Command Stream Multithreading 10 | csmt=on Enable Command Stream Multithreading (default) 11 | fontfix Check for broken fonts 12 | fontsmooth=bgr Enable subpixel font smoothing for BGR LCDs 13 | fontsmooth=disable Disable font smoothing 14 | fontsmooth=gray Enable subpixel font smoothing 15 | fontsmooth=rgb Enable subpixel font smoothing for RGB LCDs 16 | forcemono Force using Mono instead of .NET (for debugging) 17 | good Fake verb that always returns true 18 | grabfullscreen=n Disable cursor clipping for full-screen windows (default) 19 | grabfullscreen=y Force cursor clipping for full-screen windows (needed by some games) 20 | graphics=default Set graphics driver to default 21 | graphics=mac Set graphics driver to Quartz (for macOS) 22 | graphics=wayland Set graphics driver to Wayland 23 | graphics=x11 Set graphics driver to X11 24 | gsm=0 Set MaxShaderModelGS to 0 25 | gsm=1 Set MaxShaderModelGS to 1 26 | gsm=2 Set MaxShaderModelGS to 2 27 | gsm=3 Set MaxShaderModelGS to 3 28 | heapcheck Enable heap checking with GlobalFlag 29 | hidewineexports=disable Disable hiding Wine exports from applications (wine-staging) 30 | hidewineexports=enable Enable hiding Wine exports from applications (wine-staging) 31 | hosts Add empty C:\windows\system32\driverstc\{hosts,services} files 32 | isolate_home Remove wineprefix links to /home/austin 33 | mackeyremap=both Enable mapping opt->alt and cmd->ctrl keys for the Mac native driver 34 | mackeyremap=left Enable mapping of left opt->alt and cmd->ctrl keys for the Mac native driver 35 | mackeyremap=none Do not remap keys for the Mac native driver (default) 36 | mimeassoc=off Disable exporting MIME-type file associations to the native desktop 37 | mimeassoc=on Enable exporting MIME-type file associations to the native desktop (default) 38 | mwo=disable Set DirectInput MouseWarpOverride to disable 39 | mwo=enabled Set DirectInput MouseWarpOverride to enabled (default) 40 | mwo=force Set DirectInput MouseWarpOverride to force (needed by some games) 41 | native_mdac Override odbc32, odbccp32 and oledb32 42 | native_oleaut32 Override oleaut32 43 | nocrashdialog Disable crash dialog 44 | npm=repack Set NonPower2Mode to repack 45 | nt351 Set Windows version to Windows NT 3.51 46 | nt40 Set Windows version to Windows NT 4.0 47 | orm=backbuffer Set OffscreenRenderingMode=backbuffer 48 | orm=fbo Set OffscreenRenderingMode=fbo (default) 49 | psm=0 Set MaxShaderModelPS to 0 50 | psm=1 Set MaxShaderModelPS to 1 51 | psm=2 Set MaxShaderModelPS to 2 52 | psm=3 Set MaxShaderModelPS to 3 53 | remove_mono Remove builtin wine-mono 54 | renderer=gdi Set renderer to gdi 55 | renderer=gl Set renderer to gl 56 | renderer=no3d Set renderer to no3d 57 | renderer=vulkan Set renderer to vulkan 58 | rtlm=auto Set RenderTargetLockMode to auto (default) 59 | rtlm=disabled Set RenderTargetLockMode to disabled 60 | rtlm=readdraw Set RenderTargetLockMode to readdraw 61 | rtlm=readtex Set RenderTargetLockMode to readtex 62 | rtlm=texdraw Set RenderTargetLockMode to texdraw 63 | rtlm=textex Set RenderTargetLockMode to textex 64 | sandbox Sandbox the wineprefix - remove links to /home/austin 65 | set_mididevice Set MIDImap device to the value specified in the MIDI_DEVICE environment variable 66 | set_userpath set user PATH variable in wine prefix specified by native and/or wine paths in WINEPATH environment variable with ';' as path separator 67 | shader_backend=arb Set shader_backend to arb 68 | shader_backend=glsl Set shader_backend to glsl 69 | shader_backend=none Set shader_backend to none 70 | sound=alsa Set sound driver to ALSA 71 | sound=coreaudio Set sound driver to Mac CoreAudio 72 | sound=disabled Set sound driver to disabled 73 | sound=oss Set sound driver to OSS 74 | sound=pulse Set sound driver to PulseAudio 75 | ssm=disabled Disable Struct Shader Math (default) 76 | ssm=enabled Enable Struct Shader Math 77 | usetakefocus=n Disable UseTakeFocus (default) 78 | usetakefocus=y Enable UseTakeFocus 79 | vd=1024x768 Enable virtual desktop, set size to 1024x768 80 | vd=1280x1024 Enable virtual desktop, set size to 1280x1024 81 | vd=1440x900 Enable virtual desktop, set size to 1440x900 82 | vd=640x480 Enable virtual desktop, set size to 640x480 83 | vd=800x600 Enable virtual desktop, set size to 800x600 84 | vd=off Disable virtual desktop 85 | videomemorysize=1024 Tell Wine your video card has 1024MB RAM 86 | videomemorysize=2048 Tell Wine your video card has 2048MB RAM 87 | videomemorysize=512 Tell Wine your video card has 512MB RAM 88 | videomemorysize=default Let Wine detect amount of video card memory 89 | vista Set Windows version to Windows Vista 90 | vsm=0 Set MaxShaderModelVS to 0 91 | vsm=1 Set MaxShaderModelVS to 1 92 | vsm=2 Set MaxShaderModelVS to 2 93 | vsm=3 Set MaxShaderModelVS to 3 94 | win10 Set Windows version to Windows 10 95 | win11 Set Windows version to Windows 11 96 | win20 Set Windows version to Windows 2.0 97 | win2k Set Windows version to Windows 2000 98 | win2k3 Set Windows version to Windows 2003 99 | win2k8 Set Windows version to Windows 2008 100 | win2k8r2 Set Windows version to Windows 2008 R2 101 | win30 Set Windows version to Windows 3.0 102 | win31 Set Windows version to Windows 3.1 103 | win7 Set Windows version to Windows 7 104 | win8 Set Windows version to Windows 8 105 | win81 Set Windows version to Windows 8.1 106 | win95 Set Windows version to Windows 95 107 | win98 Set Windows version to Windows 98 108 | windowmanagerdecorated=n Prevent the window manager from decorating windows 109 | windowmanagerdecorated=y Allow the window manager to decorate windows (default) 110 | windowmanagermanaged=n Prevent the window manager from controlling windows 111 | windowmanagermanaged=y Allow the window manager to control windows (default) 112 | winme Set Windows version to Windows ME 113 | winver= Set Windows version to default (win7) 114 | winxp Set Windows version to Windows XP 115 | -------------------------------------------------------------------------------- /files/winetest.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Winetricks/winetricks/89e18c2a8c09b97b79e1025fbf5e5b03f1182337/files/winetest.cat -------------------------------------------------------------------------------- /misc/README: -------------------------------------------------------------------------------- 1 | These files are for development only (i.e., don't package them) 2 | -------------------------------------------------------------------------------- /misc/bisect-wine-winetricks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Script to bisect Wine regressions in Winetricks 4 | # 5 | # Usage: git bisect run $0 winetricks_command 6 | # 7 | # Copyright (C) 2017 Austin English 8 | # 9 | # This software comes with ABSOLUTELY NO WARRANTY. 10 | # 11 | # This is free software, placed under the terms of the GNU Lesser 12 | # Public License version 2.1 (or later), as published by the Free 13 | # Software Foundation. Please see the file COPYING for details. 14 | 15 | # This script should be used for bisecting wine regressions that affect winetricks 16 | # For example, if dotnet20 works in wine-2.0, but not wine-2.2, use: 17 | # $ cd $WINE-GIT 18 | # $ git bisect start 19 | # $ git bisect good wine-2.0 20 | # $ git bisect bad wine-2.2 21 | # Note: -q -v are automatically added 22 | # $ git bisect run /path/to/this/script dotnet20 23 | 24 | set -x 25 | 26 | WINE_GIT="${WINE_GIT:-${HOME}/wine-git}" 27 | 28 | cd "${WINE_GIT}" || exit 125 29 | 30 | git clean -fxd || exit 125 31 | 32 | ./configure --disable-tests || exit 125 33 | 34 | if command -v nproc ; then 35 | make "-j$(nproc)" || exit 125 36 | else 37 | make -j2 38 | fi 39 | 40 | "${WINE_GIT}/server/wineserver" -k || true 41 | 42 | rm -rf "${HOME}/.wine" || exit 125 43 | 44 | WINE="${WINE_GIT}/wine" winetricks -q -v "$@" 45 | -------------------------------------------------------------------------------- /misc/convert_sha1_sha256.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (C) 2017 Austin English 4 | # 5 | # This software comes with ABSOLUTELY NO WARRANTY. 6 | # 7 | # This is free software, placed under the terms of the GNU Lesser 8 | # Public License version 2.1 (or later), as published by the Free 9 | # Software Foundation. Please see the file COPYING for details. 10 | 11 | # Note: This script is GNU/Linux (coreutils) specific. It's intended as a one-off, 12 | # and shouldn't be needed for OSX/FreeBSD/Solaris, it should only be used by the maintainer. 13 | # 14 | # Purpose: for every file in $WINETRICKS_CACHE, convert checksum from sha1 to sha256 15 | # Ideally, run some command/script that populates a lot of verbs, e.g., make test 16 | # 17 | # Other criteria: 18 | # One package per commit 19 | # If package has already been converted, should be a no-op 20 | # Echo failing packages to a log file, and ignore, for manual review 21 | 22 | set -x 23 | 24 | CACHE_DIR="${HOME}/.cache/winetricks" 25 | SRC_DIR="${PWD}" 26 | winetricks="${SRC_DIR}/src/winetricks" 27 | 28 | if [ ! -f README.md ] ; then 29 | echo "Please run from the top level directory" 30 | exit 1 31 | fi 32 | 33 | # Gather list of packages and their checksums 34 | 35 | logdir="${SRC_DIR}/sha-convert-logs" 36 | rm -rf "${logdir}" 37 | mkdir -p "${logdir}" 38 | 39 | for dir in "${CACHE_DIR}/"* ; do 40 | # Skip LATEST/etc. 41 | if [ ! -d "${dir}" ] ; then 42 | continue 43 | fi 44 | 45 | package="$(basename "${dir}")" 46 | 47 | case "${package}" in 48 | win2ksp4|win7sp1|xpsp3|winxpsp3) continue ;; 49 | esac 50 | 51 | for file in "${dir}"/* ; do 52 | # Convert the package: 53 | echo file="${file}" 54 | echo "dir=${dir}, package=${package}, file=${file}" 55 | sha1_file="$(sha1sum "${file}" | awk '{print $1}')" 56 | sha256_file="$(sha256sum "${file}" | awk '{print $1}')" 57 | echo "sha1: ${sha1_file}" 58 | echo "sha256: ${sha256_file}" 59 | sed -i "s!${sha1_file}!${sha256_file}!" "${winetricks}" 60 | done 61 | 62 | # Did it change? 63 | if git diff-index --quiet HEAD -- ; then 64 | echo "no diff detected" 65 | continue 66 | fi 67 | 68 | # Test it 69 | wineserver -k || true 70 | rm -rf "${HOME}/.wine" 71 | 72 | # shellcheck disable=SC2115 73 | rm -rf "${CACHE_DIR}/${package}" 74 | 75 | # Not everything is actually quiet, of course.. 76 | "${winetricks}" -q -v "${package}" 77 | test_status="$?" 78 | 79 | # Commit it (if it worked): 80 | if [ ${test_status} = 0 ] ; then 81 | git commit -m "${package}: convert to sha256" "${winetricks}" 82 | else 83 | git checkout -f 84 | echo "converting ${package} to sha256 failed" >> "${logdir}/conversion.log" 85 | continue 86 | fi 87 | 88 | done 89 | 90 | if [ "$(find "${logdir}" -type f | wc -l)" = 0 ] ; then 91 | rm -rf "${logdir}" 92 | else 93 | echo "There were errors, check logs in ${logdir}" 94 | exit 1 95 | fi 96 | -------------------------------------------------------------------------------- /misc/filelists/README.txt: -------------------------------------------------------------------------------- 1 | This is a list of what files are in the helper verbs (i.e., DirectX / Service Packs) 2 | 3 | Checking into git makes it a lot easier to search without having to manually extract 4 | the files just to see if a native one is easily available. 5 | -------------------------------------------------------------------------------- /misc/filelists/directx-feb2010.txt: -------------------------------------------------------------------------------- 1 | Viewing cabinet: /home/austin/.cache/winetricks.bak/directx9/directx_feb2010_redist.exe 2 | File size | Date Time | Name 3 | -----------+---------------------+------------- 4 | 1347354 | 04.02.2010 10:21:18 | Apr2005_d3dx9_25_x64.cab 5 | 1078962 | 04.02.2010 10:21:18 | Apr2005_d3dx9_25_x86.cab 6 | 1397830 | 04.02.2010 10:21:18 | Apr2006_d3dx9_30_x64.cab 7 | 1115221 | 04.02.2010 10:21:18 | Apr2006_d3dx9_30_x86.cab 8 | 916430 | 04.02.2010 10:21:18 | Apr2006_MDX1_x86.cab 9 | 4162630 | 04.02.2010 10:21:18 | Apr2006_MDX1_x86_Archive.cab 10 | 179133 | 04.02.2010 10:21:20 | Apr2006_XACT_x64.cab 11 | 133103 | 04.02.2010 10:21:20 | Apr2006_XACT_x86.cab 12 | 87101 | 04.02.2010 10:21:20 | Apr2006_xinput_x64.cab 13 | 46010 | 04.02.2010 10:21:20 | Apr2006_xinput_x86.cab 14 | 1607358 | 04.02.2010 10:21:20 | APR2007_d3dx9_33_x64.cab 15 | 1606039 | 04.02.2010 10:21:22 | APR2007_d3dx9_33_x86.cab 16 | 698612 | 04.02.2010 10:21:20 | APR2007_d3dx10_33_x64.cab 17 | 695865 | 04.02.2010 10:21:20 | APR2007_d3dx10_33_x86.cab 18 | 195766 | 04.02.2010 10:21:22 | APR2007_XACT_x64.cab 19 | 151225 | 04.02.2010 10:21:22 | APR2007_XACT_x86.cab 20 | 96817 | 04.02.2010 10:21:22 | APR2007_xinput_x64.cab 21 | 53302 | 04.02.2010 10:21:22 | APR2007_xinput_x86.cab 22 | 1350542 | 04.02.2010 10:21:22 | Aug2005_d3dx9_27_x64.cab 23 | 1077644 | 04.02.2010 10:21:24 | Aug2005_d3dx9_27_x86.cab 24 | 182903 | 04.02.2010 10:21:24 | AUG2006_XACT_x64.cab 25 | 137235 | 04.02.2010 10:21:24 | AUG2006_XACT_x86.cab 26 | 87142 | 04.02.2010 10:21:24 | AUG2006_xinput_x64.cab 27 | 46058 | 04.02.2010 10:21:26 | AUG2006_xinput_x86.cab 28 | 1800160 | 04.02.2010 10:21:26 | AUG2007_d3dx9_35_x64.cab 29 | 1708152 | 04.02.2010 10:21:26 | AUG2007_d3dx9_35_x86.cab 30 | 852286 | 04.02.2010 10:21:26 | AUG2007_d3dx10_35_x64.cab 31 | 796867 | 04.02.2010 10:21:26 | AUG2007_d3dx10_35_x86.cab 32 | 198096 | 04.02.2010 10:21:26 | AUG2007_XACT_x64.cab 33 | 153012 | 04.02.2010 10:21:24 | AUG2007_XACT_x86.cab 34 | 1794084 | 04.02.2010 10:21:26 | Aug2008_d3dx9_39_x64.cab 35 | 1464672 | 04.02.2010 10:21:26 | Aug2008_d3dx9_39_x86.cab 36 | 867612 | 04.02.2010 10:21:26 | Aug2008_d3dx10_39_x64.cab 37 | 849167 | 04.02.2010 10:21:26 | Aug2008_d3dx10_39_x86.cab 38 | 121772 | 04.02.2010 10:21:26 | Aug2008_XACT_x64.cab 39 | 92996 | 04.02.2010 10:21:26 | Aug2008_XACT_x86.cab 40 | 271412 | 04.02.2010 10:21:26 | Aug2008_XAudio_x64.cab 41 | 271038 | 04.02.2010 10:21:26 | Aug2008_XAudio_x86.cab 42 | 919044 | 04.02.2010 10:21:26 | Aug2009_D3DCompiler_42_x64.cab 43 | 900598 | 04.02.2010 10:21:28 | Aug2009_D3DCompiler_42_x86.cab 44 | 3112111 | 04.02.2010 10:21:28 | Aug2009_d3dcsx_42_x64.cab 45 | 3319740 | 04.02.2010 10:21:28 | Aug2009_d3dcsx_42_x86.cab 46 | 930116 | 04.02.2010 10:21:30 | Aug2009_d3dx9_42_x64.cab 47 | 728456 | 04.02.2010 10:21:30 | Aug2009_d3dx9_42_x86.cab 48 | 232635 | 04.02.2010 10:21:28 | Aug2009_d3dx10_42_x64.cab 49 | 192131 | 04.02.2010 10:21:28 | Aug2009_d3dx10_42_x86.cab 50 | 136301 | 04.02.2010 10:21:30 | Aug2009_d3dx11_42_x64.cab 51 | 105044 | 04.02.2010 10:21:30 | Aug2009_d3dx11_42_x86.cab 52 | 122408 | 04.02.2010 10:21:30 | Aug2009_XACT_x64.cab 53 | 93106 | 04.02.2010 10:21:30 | Aug2009_XACT_x86.cab 54 | 273264 | 04.02.2010 10:21:32 | Aug2009_XAudio_x64.cab 55 | 272642 | 04.02.2010 10:21:32 | Aug2009_XAudio_x86.cab 56 | 1155491 | 04.02.2010 10:21:32 | BDANT.cab 57 | 975148 | 04.02.2010 10:21:32 | BDAXP.cab 58 | 1357976 | 04.02.2010 10:21:32 | Dec2005_d3dx9_28_x64.cab 59 | 1079456 | 04.02.2010 10:21:32 | Dec2005_d3dx9_28_x86.cab 60 | 1571154 | 04.02.2010 10:21:32 | DEC2006_d3dx9_32_x64.cab 61 | 1574376 | 04.02.2010 10:21:32 | DEC2006_d3dx9_32_x86.cab 62 | 212807 | 04.02.2010 10:21:32 | DEC2006_d3dx10_00_x64.cab 63 | 191720 | 04.02.2010 10:21:32 | DEC2006_d3dx10_00_x86.cab 64 | 192475 | 04.02.2010 10:21:32 | DEC2006_XACT_x64.cab 65 | 145599 | 04.02.2010 10:21:32 | DEC2006_XACT_x86.cab 66 | 94040 | 04.02.2010 10:21:32 | DSETUP.dll 67 | 1691480 | 04.02.2010 10:21:32 | dsetup32.dll 68 | 44448 | 04.02.2010 10:21:34 | dxdllreg_x86.cab 69 | 13264168 | 04.02.2010 10:21:34 | dxnt.cab 70 | 525656 | 04.02.2010 10:21:34 | DXSETUP.exe 71 | 95820 | 04.02.2010 10:21:34 | dxupdate.cab 72 | 1247499 | 04.02.2010 10:21:34 | Feb2005_d3dx9_24_x64.cab 73 | 1013225 | 04.02.2010 10:21:34 | Feb2005_d3dx9_24_x86.cab 74 | 1362796 | 04.02.2010 10:21:34 | Feb2006_d3dx9_29_x64.cab 75 | 1084720 | 04.02.2010 10:21:34 | Feb2006_d3dx9_29_x86.cab 76 | 178359 | 04.02.2010 10:21:34 | Feb2006_XACT_x64.cab 77 | 132409 | 04.02.2010 10:21:36 | Feb2006_XACT_x86.cab 78 | 194675 | 04.02.2010 10:21:36 | FEB2007_XACT_x64.cab 79 | 147983 | 04.02.2010 10:21:36 | FEB2007_XACT_x86.cab 80 | 54678 | 04.02.2010 10:21:36 | Feb2010_X3DAudio_x64.cab 81 | 20713 | 04.02.2010 10:21:36 | Feb2010_X3DAudio_x86.cab 82 | 122446 | 04.02.2010 10:21:36 | Feb2010_XACT_x64.cab 83 | 93180 | 04.02.2010 10:21:36 | Feb2010_XACT_x86.cab 84 | 276960 | 04.02.2010 10:21:36 | Feb2010_XAudio_x64.cab 85 | 277191 | 04.02.2010 10:21:36 | Feb2010_XAudio_x86.cab 86 | 1336002 | 04.02.2010 10:21:36 | Jun2005_d3dx9_26_x64.cab 87 | 1064925 | 04.02.2010 10:21:36 | Jun2005_d3dx9_26_x86.cab 88 | 180785 | 04.02.2010 10:21:36 | JUN2006_XACT_x64.cab 89 | 133671 | 04.02.2010 10:21:36 | JUN2006_XACT_x86.cab 90 | 1607774 | 04.02.2010 10:21:38 | JUN2007_d3dx9_34_x64.cab 91 | 1607286 | 04.02.2010 10:21:38 | JUN2007_d3dx9_34_x86.cab 92 | 699044 | 04.02.2010 10:21:36 | JUN2007_d3dx10_34_x64.cab 93 | 698472 | 04.02.2010 10:21:38 | JUN2007_d3dx10_34_x86.cab 94 | 197122 | 04.02.2010 10:21:38 | JUN2007_XACT_x64.cab 95 | 152909 | 04.02.2010 10:21:38 | JUN2007_XACT_x86.cab 96 | 1792608 | 04.02.2010 10:21:40 | JUN2008_d3dx9_38_x64.cab 97 | 1463878 | 04.02.2010 10:21:38 | JUN2008_d3dx9_38_x86.cab 98 | 867828 | 04.02.2010 10:21:38 | JUN2008_d3dx10_38_x64.cab 99 | 849919 | 04.02.2010 10:21:38 | JUN2008_d3dx10_38_x86.cab 100 | 55154 | 04.02.2010 10:21:40 | JUN2008_X3DAudio_x64.cab 101 | 21905 | 04.02.2010 10:21:40 | JUN2008_X3DAudio_x86.cab 102 | 121054 | 04.02.2010 10:21:40 | JUN2008_XACT_x64.cab 103 | 93128 | 04.02.2010 10:21:40 | JUN2008_XACT_x86.cab 104 | 269628 | 04.02.2010 10:21:40 | JUN2008_XAudio_x64.cab 105 | 269024 | 04.02.2010 10:21:42 | JUN2008_XAudio_x86.cab 106 | 1769862 | 04.02.2010 10:21:44 | Mar2008_d3dx9_37_x64.cab 107 | 1443282 | 04.02.2010 10:21:44 | Mar2008_d3dx9_37_x86.cab 108 | 844884 | 04.02.2010 10:21:42 | Mar2008_d3dx10_37_x64.cab 109 | 818260 | 04.02.2010 10:21:42 | Mar2008_d3dx10_37_x86.cab 110 | 55058 | 04.02.2010 10:21:44 | Mar2008_X3DAudio_x64.cab 111 | 21867 | 04.02.2010 10:21:44 | Mar2008_X3DAudio_x86.cab 112 | 122336 | 04.02.2010 10:21:44 | Mar2008_XACT_x64.cab 113 | 93734 | 04.02.2010 10:21:44 | Mar2008_XACT_x86.cab 114 | 251194 | 04.02.2010 10:21:44 | Mar2008_XAudio_x64.cab 115 | 226250 | 04.02.2010 10:21:44 | Mar2008_XAudio_x86.cab 116 | 1973702 | 04.02.2010 10:21:44 | Mar2009_d3dx9_41_x64.cab 117 | 1612446 | 04.02.2010 10:21:44 | Mar2009_d3dx9_41_x86.cab 118 | 1067160 | 04.02.2010 10:21:44 | Mar2009_d3dx10_41_x64.cab 119 | 1040745 | 04.02.2010 10:21:44 | Mar2009_d3dx10_41_x86.cab 120 | 54600 | 04.02.2010 10:21:44 | Mar2009_X3DAudio_x64.cab 121 | 21298 | 04.02.2010 10:21:44 | Mar2009_X3DAudio_x86.cab 122 | 121506 | 04.02.2010 10:21:52 | Mar2009_XACT_x64.cab 123 | 92740 | 04.02.2010 10:21:48 | Mar2009_XACT_x86.cab 124 | 275044 | 04.02.2010 10:21:48 | Mar2009_XAudio_x64.cab 125 | 273018 | 04.02.2010 10:21:48 | Mar2009_XAudio_x86.cab 126 | 1802058 | 04.02.2010 10:21:52 | Nov2007_d3dx9_36_x64.cab 127 | 1709360 | 04.02.2010 10:21:52 | Nov2007_d3dx9_36_x86.cab 128 | 864600 | 04.02.2010 10:21:52 | Nov2007_d3dx10_36_x64.cab 129 | 803884 | 04.02.2010 10:21:52 | Nov2007_d3dx10_36_x86.cab 130 | 46144 | 04.02.2010 10:21:52 | NOV2007_X3DAudio_x64.cab 131 | 18496 | 04.02.2010 10:21:52 | NOV2007_X3DAudio_x86.cab 132 | 196762 | 04.02.2010 10:21:52 | NOV2007_XACT_x64.cab 133 | 148264 | 04.02.2010 10:21:52 | NOV2007_XACT_x86.cab 134 | 1906878 | 04.02.2010 10:21:52 | Nov2008_d3dx9_40_x64.cab 135 | 1550796 | 04.02.2010 10:21:52 | Nov2008_d3dx9_40_x86.cab 136 | 994154 | 04.02.2010 10:21:52 | Nov2008_d3dx10_40_x64.cab 137 | 965421 | 04.02.2010 10:21:52 | Nov2008_d3dx10_40_x86.cab 138 | 54522 | 04.02.2010 10:21:52 | Nov2008_X3DAudio_x64.cab 139 | 21851 | 04.02.2010 10:21:52 | Nov2008_X3DAudio_x86.cab 140 | 121794 | 04.02.2010 10:21:52 | Nov2008_XACT_x64.cab 141 | 92684 | 04.02.2010 10:21:52 | Nov2008_XACT_x86.cab 142 | 273960 | 04.02.2010 10:21:52 | Nov2008_XAudio_x64.cab 143 | 272611 | 04.02.2010 10:21:52 | Nov2008_XAudio_x86.cab 144 | 86037 | 04.02.2010 10:21:52 | Oct2005_xinput_x64.cab 145 | 45359 | 04.02.2010 10:21:52 | Oct2005_xinput_x86.cab 146 | 1412902 | 04.02.2010 10:21:52 | OCT2006_d3dx9_31_x64.cab 147 | 1127217 | 04.02.2010 10:21:52 | OCT2006_d3dx9_31_x86.cab 148 | 182361 | 04.02.2010 10:21:52 | OCT2006_XACT_x64.cab 149 | 138017 | 04.02.2010 10:21:52 | OCT2006_XACT_x86.cab 150 | 151 | All done, no errors. 152 | -------------------------------------------------------------------------------- /misc/filelists/directx-jun2010.txt: -------------------------------------------------------------------------------- 1 | Viewing cabinet: /home/austin/.cache/winetricks.bak/directx9/directx_Jun2010_redist.exe 2 | File size | Date Time | Name 3 | -----------+---------------------+------------- 4 | 1347354 | 02.06.2010 05:21:16 | Apr2005_d3dx9_25_x64.cab 5 | 1078962 | 02.06.2010 05:21:16 | Apr2005_d3dx9_25_x86.cab 6 | 1397830 | 02.06.2010 05:21:16 | Apr2006_d3dx9_30_x64.cab 7 | 1115221 | 02.06.2010 05:21:16 | Apr2006_d3dx9_30_x86.cab 8 | 916430 | 02.06.2010 05:21:18 | Apr2006_MDX1_x86.cab 9 | 4162630 | 02.06.2010 05:21:18 | Apr2006_MDX1_x86_Archive.cab 10 | 179133 | 02.06.2010 05:21:18 | Apr2006_XACT_x64.cab 11 | 133103 | 02.06.2010 05:21:18 | Apr2006_XACT_x86.cab 12 | 87101 | 02.06.2010 05:21:20 | Apr2006_xinput_x64.cab 13 | 46010 | 02.06.2010 05:21:34 | Apr2006_xinput_x86.cab 14 | 1607358 | 02.06.2010 05:21:36 | APR2007_d3dx9_33_x64.cab 15 | 1606039 | 02.06.2010 05:21:38 | APR2007_d3dx9_33_x86.cab 16 | 698612 | 02.06.2010 05:21:36 | APR2007_d3dx10_33_x64.cab 17 | 695865 | 02.06.2010 05:21:36 | APR2007_d3dx10_33_x86.cab 18 | 195766 | 02.06.2010 05:21:38 | APR2007_XACT_x64.cab 19 | 151225 | 02.06.2010 05:21:38 | APR2007_XACT_x86.cab 20 | 96817 | 02.06.2010 05:21:38 | APR2007_xinput_x64.cab 21 | 53302 | 02.06.2010 05:21:40 | APR2007_xinput_x86.cab 22 | 1350542 | 02.06.2010 05:21:40 | Aug2005_d3dx9_27_x64.cab 23 | 1077644 | 02.06.2010 05:21:40 | Aug2005_d3dx9_27_x86.cab 24 | 182903 | 02.06.2010 05:21:40 | AUG2006_XACT_x64.cab 25 | 137235 | 02.06.2010 05:21:40 | AUG2006_XACT_x86.cab 26 | 87142 | 02.06.2010 05:21:40 | AUG2006_xinput_x64.cab 27 | 46058 | 02.06.2010 05:21:40 | AUG2006_xinput_x86.cab 28 | 1800160 | 02.06.2010 05:21:42 | AUG2007_d3dx9_35_x64.cab 29 | 1708152 | 02.06.2010 05:21:42 | AUG2007_d3dx9_35_x86.cab 30 | 852286 | 02.06.2010 05:21:42 | AUG2007_d3dx10_35_x64.cab 31 | 796867 | 02.06.2010 05:21:42 | AUG2007_d3dx10_35_x86.cab 32 | 198096 | 02.06.2010 05:21:44 | AUG2007_XACT_x64.cab 33 | 153012 | 02.06.2010 05:21:44 | AUG2007_XACT_x86.cab 34 | 1794084 | 02.06.2010 05:21:44 | Aug2008_d3dx9_39_x64.cab 35 | 1464672 | 02.06.2010 05:21:44 | Aug2008_d3dx9_39_x86.cab 36 | 867612 | 02.06.2010 05:21:42 | Aug2008_d3dx10_39_x64.cab 37 | 849167 | 02.06.2010 05:21:44 | Aug2008_d3dx10_39_x86.cab 38 | 121772 | 02.06.2010 05:21:44 | Aug2008_XACT_x64.cab 39 | 92996 | 02.06.2010 05:21:44 | Aug2008_XACT_x86.cab 40 | 271412 | 02.06.2010 05:21:46 | Aug2008_XAudio_x64.cab 41 | 271038 | 02.06.2010 05:21:46 | Aug2008_XAudio_x86.cab 42 | 919044 | 02.06.2010 05:21:46 | Aug2009_D3DCompiler_42_x64.cab 43 | 900598 | 02.06.2010 05:21:56 | Aug2009_D3DCompiler_42_x86.cab 44 | 3112111 | 02.06.2010 05:21:56 | Aug2009_d3dcsx_42_x64.cab 45 | 3319740 | 02.06.2010 05:21:56 | Aug2009_d3dcsx_42_x86.cab 46 | 930116 | 02.06.2010 05:21:58 | Aug2009_d3dx9_42_x64.cab 47 | 728456 | 02.06.2010 05:21:58 | Aug2009_d3dx9_42_x86.cab 48 | 232635 | 02.06.2010 05:21:58 | Aug2009_d3dx10_42_x64.cab 49 | 192131 | 02.06.2010 05:21:58 | Aug2009_d3dx10_42_x86.cab 50 | 136301 | 02.06.2010 05:21:58 | Aug2009_d3dx11_42_x64.cab 51 | 105044 | 02.06.2010 05:21:58 | Aug2009_d3dx11_42_x86.cab 52 | 122408 | 02.06.2010 05:22:00 | Aug2009_XACT_x64.cab 53 | 93106 | 02.06.2010 05:22:00 | Aug2009_XACT_x86.cab 54 | 273264 | 02.06.2010 05:22:00 | Aug2009_XAudio_x64.cab 55 | 272642 | 02.06.2010 05:22:00 | Aug2009_XAudio_x86.cab 56 | 1357976 | 02.06.2010 05:22:00 | Dec2005_d3dx9_28_x64.cab 57 | 1079456 | 02.06.2010 05:22:00 | Dec2005_d3dx9_28_x86.cab 58 | 1571154 | 02.06.2010 05:22:00 | DEC2006_d3dx9_32_x64.cab 59 | 1574376 | 02.06.2010 05:22:02 | DEC2006_d3dx9_32_x86.cab 60 | 212807 | 02.06.2010 05:22:00 | DEC2006_d3dx10_00_x64.cab 61 | 191720 | 02.06.2010 05:22:00 | DEC2006_d3dx10_00_x86.cab 62 | 192475 | 02.06.2010 05:22:02 | DEC2006_XACT_x64.cab 63 | 145599 | 02.06.2010 05:22:02 | DEC2006_XACT_x86.cab 64 | 95576 | 30.03.2011 11:40:32 | DSETUP.dll 65 | 1566040 | 30.03.2011 11:40:32 | dsetup32.dll 66 | 44624 | 30.03.2011 11:40:32 | dxdllreg_x86.cab 67 | 517976 | 30.03.2011 11:40:34 | DXSETUP.exe 68 | 97152 | 30.03.2011 11:40:32 | dxupdate.cab 69 | 1247499 | 02.06.2010 05:22:02 | Feb2005_d3dx9_24_x64.cab 70 | 1013225 | 02.06.2010 05:22:02 | Feb2005_d3dx9_24_x86.cab 71 | 1362796 | 02.06.2010 05:22:02 | Feb2006_d3dx9_29_x64.cab 72 | 1084720 | 02.06.2010 05:22:04 | Feb2006_d3dx9_29_x86.cab 73 | 178359 | 02.06.2010 05:22:10 | Feb2006_XACT_x64.cab 74 | 132409 | 02.06.2010 05:22:10 | Feb2006_XACT_x86.cab 75 | 194675 | 02.06.2010 05:22:12 | FEB2007_XACT_x64.cab 76 | 147983 | 02.06.2010 05:22:12 | FEB2007_XACT_x86.cab 77 | 54678 | 02.06.2010 05:22:12 | Feb2010_X3DAudio_x64.cab 78 | 20713 | 02.06.2010 05:22:12 | Feb2010_X3DAudio_x86.cab 79 | 122446 | 02.06.2010 05:22:14 | Feb2010_XACT_x64.cab 80 | 93180 | 02.06.2010 05:22:14 | Feb2010_XACT_x86.cab 81 | 276960 | 02.06.2010 05:22:14 | Feb2010_XAudio_x64.cab 82 | 277191 | 02.06.2010 05:22:14 | Feb2010_XAudio_x86.cab 83 | 1336002 | 02.06.2010 05:22:14 | Jun2005_d3dx9_26_x64.cab 84 | 1064925 | 02.06.2010 05:22:16 | Jun2005_d3dx9_26_x86.cab 85 | 180785 | 02.06.2010 05:22:16 | JUN2006_XACT_x64.cab 86 | 133671 | 02.06.2010 05:22:16 | JUN2006_XACT_x86.cab 87 | 1607774 | 02.06.2010 05:22:16 | JUN2007_d3dx9_34_x64.cab 88 | 1607286 | 02.06.2010 05:22:16 | JUN2007_d3dx9_34_x86.cab 89 | 699044 | 02.06.2010 05:22:16 | JUN2007_d3dx10_34_x64.cab 90 | 698472 | 02.06.2010 05:22:16 | JUN2007_d3dx10_34_x86.cab 91 | 197122 | 02.06.2010 05:22:16 | JUN2007_XACT_x64.cab 92 | 152909 | 02.06.2010 05:22:18 | JUN2007_XACT_x86.cab 93 | 1792608 | 02.06.2010 05:22:18 | JUN2008_d3dx9_38_x64.cab 94 | 1463878 | 02.06.2010 05:22:18 | JUN2008_d3dx9_38_x86.cab 95 | 867828 | 02.06.2010 05:22:18 | JUN2008_d3dx10_38_x64.cab 96 | 849919 | 02.06.2010 05:22:18 | JUN2008_d3dx10_38_x86.cab 97 | 55154 | 02.06.2010 05:22:18 | JUN2008_X3DAudio_x64.cab 98 | 21905 | 02.06.2010 05:22:18 | JUN2008_X3DAudio_x86.cab 99 | 121054 | 02.06.2010 05:22:18 | JUN2008_XACT_x64.cab 100 | 93128 | 02.06.2010 05:22:18 | JUN2008_XACT_x86.cab 101 | 269628 | 02.06.2010 05:22:18 | JUN2008_XAudio_x64.cab 102 | 269024 | 02.06.2010 05:22:20 | JUN2008_XAudio_x86.cab 103 | 944460 | 02.06.2010 05:22:28 | Jun2010_D3DCompiler_43_x64.cab 104 | 931471 | 02.06.2010 05:22:28 | Jun2010_D3DCompiler_43_x86.cab 105 | 752783 | 02.06.2010 05:22:28 | Jun2010_d3dcsx_43_x64.cab 106 | 762188 | 02.06.2010 05:22:30 | Jun2010_d3dcsx_43_x86.cab 107 | 937246 | 02.06.2010 05:22:32 | Jun2010_d3dx9_43_x64.cab 108 | 768036 | 02.06.2010 05:22:32 | Jun2010_d3dx9_43_x86.cab 109 | 235955 | 02.06.2010 05:22:30 | Jun2010_d3dx10_43_x64.cab 110 | 197283 | 02.06.2010 05:22:30 | Jun2010_d3dx10_43_x86.cab 111 | 138205 | 02.06.2010 05:22:30 | Jun2010_d3dx11_43_x64.cab 112 | 109445 | 02.06.2010 05:22:30 | Jun2010_d3dx11_43_x86.cab 113 | 124596 | 02.06.2010 05:22:32 | Jun2010_XACT_x64.cab 114 | 93686 | 02.06.2010 05:22:32 | Jun2010_XACT_x86.cab 115 | 277338 | 02.06.2010 05:22:32 | Jun2010_XAudio_x64.cab 116 | 278060 | 02.06.2010 05:22:32 | Jun2010_XAudio_x86.cab 117 | 1769862 | 02.06.2010 05:22:34 | Mar2008_d3dx9_37_x64.cab 118 | 1443282 | 02.06.2010 05:22:34 | Mar2008_d3dx9_37_x86.cab 119 | 844884 | 02.06.2010 05:22:32 | Mar2008_d3dx10_37_x64.cab 120 | 818260 | 02.06.2010 05:22:34 | Mar2008_d3dx10_37_x86.cab 121 | 55058 | 02.06.2010 05:22:34 | Mar2008_X3DAudio_x64.cab 122 | 21867 | 02.06.2010 05:22:34 | Mar2008_X3DAudio_x86.cab 123 | 122336 | 02.06.2010 05:22:36 | Mar2008_XACT_x64.cab 124 | 93734 | 02.06.2010 05:22:36 | Mar2008_XACT_x86.cab 125 | 251194 | 02.06.2010 05:22:36 | Mar2008_XAudio_x64.cab 126 | 226250 | 02.06.2010 05:22:36 | Mar2008_XAudio_x86.cab 127 | 1973702 | 02.06.2010 05:22:36 | Mar2009_d3dx9_41_x64.cab 128 | 1612446 | 02.06.2010 05:22:36 | Mar2009_d3dx9_41_x86.cab 129 | 1067160 | 02.06.2010 05:22:36 | Mar2009_d3dx10_41_x64.cab 130 | 1040745 | 02.06.2010 05:22:36 | Mar2009_d3dx10_41_x86.cab 131 | 54600 | 02.06.2010 05:22:38 | Mar2009_X3DAudio_x64.cab 132 | 21298 | 02.06.2010 05:22:38 | Mar2009_X3DAudio_x86.cab 133 | 121506 | 02.06.2010 05:22:46 | Mar2009_XACT_x64.cab 134 | 92740 | 02.06.2010 05:22:46 | Mar2009_XACT_x86.cab 135 | 275044 | 02.06.2010 05:22:46 | Mar2009_XAudio_x64.cab 136 | 273018 | 02.06.2010 05:22:48 | Mar2009_XAudio_x86.cab 137 | 1802058 | 02.06.2010 05:22:48 | Nov2007_d3dx9_36_x64.cab 138 | 1709360 | 02.06.2010 05:22:48 | Nov2007_d3dx9_36_x86.cab 139 | 864600 | 02.06.2010 05:22:48 | Nov2007_d3dx10_36_x64.cab 140 | 803884 | 02.06.2010 05:22:48 | Nov2007_d3dx10_36_x86.cab 141 | 46144 | 02.06.2010 05:22:50 | NOV2007_X3DAudio_x64.cab 142 | 18496 | 02.06.2010 05:22:50 | NOV2007_X3DAudio_x86.cab 143 | 196762 | 02.06.2010 05:22:50 | NOV2007_XACT_x64.cab 144 | 148264 | 02.06.2010 05:22:50 | NOV2007_XACT_x86.cab 145 | 1906878 | 02.06.2010 05:22:52 | Nov2008_d3dx9_40_x64.cab 146 | 1550796 | 02.06.2010 05:22:52 | Nov2008_d3dx9_40_x86.cab 147 | 994154 | 02.06.2010 05:22:50 | Nov2008_d3dx10_40_x64.cab 148 | 965421 | 02.06.2010 05:22:52 | Nov2008_d3dx10_40_x86.cab 149 | 54522 | 02.06.2010 05:22:52 | Nov2008_X3DAudio_x64.cab 150 | 21851 | 02.06.2010 05:22:52 | Nov2008_X3DAudio_x86.cab 151 | 121794 | 02.06.2010 05:22:52 | Nov2008_XACT_x64.cab 152 | 92684 | 02.06.2010 05:22:52 | Nov2008_XACT_x86.cab 153 | 273960 | 02.06.2010 05:22:54 | Nov2008_XAudio_x64.cab 154 | 272611 | 02.06.2010 05:22:54 | Nov2008_XAudio_x86.cab 155 | 86037 | 02.06.2010 05:22:54 | Oct2005_xinput_x64.cab 156 | 45359 | 02.06.2010 05:22:54 | Oct2005_xinput_x86.cab 157 | 1412902 | 02.06.2010 05:22:54 | OCT2006_d3dx9_31_x64.cab 158 | 1127217 | 02.06.2010 05:22:54 | OCT2006_d3dx9_31_x86.cab 159 | 182361 | 02.06.2010 05:22:54 | OCT2006_XACT_x64.cab 160 | 138017 | 02.06.2010 05:22:54 | OCT2006_XACT_x86.cab 161 | 162 | All done, no errors. 163 | -------------------------------------------------------------------------------- /misc/filelists/vb6sp6.txt: -------------------------------------------------------------------------------- 1 | ComCt232.cab 2 | ComCt232.dep 3 | ComCt232.ocx 4 | ComCt332.cab 5 | ComCt332.dep 6 | ComCt332.ocx 7 | comctl32.cab 8 | comctl32.dep 9 | comctl32.ocx 10 | ComDlg32.cab 11 | ComDlg32.Dep 12 | ComDlg32.ocx 13 | dbadapt.cab 14 | dbadapt.dep 15 | dbadapt.dll 16 | dbgrid32.cab 17 | dbgrid32.Dep 18 | dbgrid32.ocx 19 | dblist32.cab 20 | dblist32.dep 21 | dblist32.ocx 22 | mci32.cab 23 | mci32.dep 24 | mci32.ocx 25 | MSAddnDr.cab 26 | MSAddnDr.Dep 27 | MSAddnDr.dll 28 | MSAdoDc.cab 29 | MSAdoDc.dep 30 | MSAdoDc.ocx 31 | MSBind.cab 32 | MSBind.dep 33 | MSBind.dll 34 | mscdrun.cab 35 | mscdrun.dep 36 | mscdrun.dll 37 | MSChrt20.cab 38 | MSChrt20.Dep 39 | MSChrt20.ocx 40 | mscomct2.cab 41 | mscomct2.dep 42 | mscomct2.ocx 43 | mscomctl.cab 44 | mscomctl.dep 45 | mscomctl.ocx 46 | MSComm32.cab 47 | MSComm32.dep 48 | MSComm32.ocx 49 | MSCsfDbg.dll 50 | MSDatGrd.cab 51 | MSDatGrd.dep 52 | MSDatGrd.ocx 53 | MSDatLst.cab 54 | MSDatLst.dep 55 | MSDatLst.ocx 56 | MSDatRep.cab 57 | MSDatRep.dep 58 | MSDatRep.ocx 59 | MSDbRpt.cab 60 | MSDbRpt.dll 61 | MSDbRptr.cab 62 | MSDbRptr.dep 63 | MSDbRptr.dll 64 | MSFlxGrd.cab 65 | MSFlxGrd.dep 66 | MSFlxGrd.ocx 67 | MShflxgd.cab 68 | MShflxgd.dep 69 | MShflxgd.ocx 70 | MSHtmPgd.cab 71 | MSHtmPgd.dll 72 | MSHtmPgr.cab 73 | MSHtmPgr.dep 74 | MSHtmPgr.dll 75 | MSINET.cab 76 | MSINET.DEP 77 | MSINET.ocx 78 | msmapi32.cab 79 | msmapi32.dep 80 | msmapi32.ocx 81 | msmask32.cab 82 | msmask32.dep 83 | msmask32.ocx 84 | msrdc20.cab 85 | msrdc20.dep 86 | msrdc20.ocx 87 | msrdo20.cab 88 | msrdo20.dep 89 | msrdo20.dll 90 | msstdfmt.cab 91 | msstdfmt.dll 92 | msstkprp.cab 93 | msstkprp.dll 94 | mswcrun.cab 95 | mswcrun.dep 96 | mswcrun.dll 97 | MSWINSCK.cab 98 | MSWINSCK.dep 99 | MSWINSCK.ocx 100 | PicClp32.cab 101 | PicClp32.dep 102 | PicClp32.ocx 103 | richtx32.cab 104 | richtx32.dep 105 | richtx32.ocx 106 | sysinfo.cab 107 | sysinfo.dep 108 | sysinfo.ocx 109 | TabCtl32.cab 110 | TabCtl32.dep 111 | TabCtl32.ocx 112 | wbclsdsr.cab 113 | wbclsdsr.ocx 114 | -------------------------------------------------------------------------------- /misc/filelists/winxpsp2_support_tools.txt: -------------------------------------------------------------------------------- 1 | Viewing cabinet: /home/austin/Downloads/WindowsXP-KB838079-SupportTools-ENU.exe 2 | File size | Date Time | Name 3 | -----------+---------------------+------------- 4 | 11347 | 04.08.2004 02:59:44 | sup_pro.cab 5 | 14930 | 04.08.2004 02:59:44 | sup_srv.cab 6 | 4811582 | 04.08.2004 02:59:44 | support.cab 7 | 219648 | 04.08.2004 02:59:44 | suptools.msi 8 | 9 | Viewing cabinet: sup_pro.cab 10 | File size | Date Time | Name 11 | -----------+---------------------+------------- 12 | 296 | 27.06.2001 21:24:42 | package_description.xml 13 | 108880 | 28.06.2001 16:50:46 | Desktop.hht 14 | 15 | Viewing cabinet: sup_srv.cab 16 | File size | Date Time | Name 17 | -----------+---------------------+------------- 18 | 307 | 27.06.2001 21:19:38 | package_description.xml 19 | 100868 | 27.06.2001 21:18:26 | Server.hht 20 | 83536 | 27.06.2001 21:16:16 | toolsctr.hht 21 | 22 | Viewing cabinet: support.cab 23 | File size | Date Time | Name 24 | -----------+---------------------+------------- 25 | 80896 | 17.08.2001 14:59:50 | acldiag.exe 26 | 74752 | 21.07.2001 19:17:28 | activate.doc 27 | 73728 | 17.08.2001 14:59:50 | activate.exe 28 | 216091 | 17.08.2001 13:04:02 | addiag.exe 29 | 659968 | 17.08.2001 14:56:26 | adprop.dll 30 | 300032 | 17.08.2001 14:59:48 | adsiedit.dll 31 | 42986 | 21.07.2001 14:14:20 | adsiedit.msc 32 | 92672 | 17.08.2001 14:59:48 | apidll.dll 33 | 947 | 21.07.2001 18:22:14 | apimon.cnt 34 | 166912 | 17.08.2001 14:59:50 | apimon.exe 35 | 53228 | 21.07.2001 18:22:14 | apimon.hlp 36 | 7680 | 17.08.2001 14:01:54 | apmstat.exe 37 | 49152 | 17.08.2001 14:59:50 | bindiff.exe 38 | 119296 | 04.08.2004 00:57:00 | bitsadmin.exe 39 | 39936 | 17.08.2001 14:59:50 | browstat.exe 40 | 62976 | 17.08.2001 13:53:20 | cabarc.exe 41 | 33262 | 17.08.2001 12:42:14 | clonegg.vbs 42 | 33418 | 17.08.2001 12:42:16 | cloneggu.vbs 43 | 33315 | 17.08.2001 12:42:16 | clonelg.vbs 44 | 88576 | 17.08.2001 13:53:28 | clonepr.dll 45 | 97280 | 21.07.2001 19:17:28 | clonepr.doc 46 | 32855 | 17.08.2001 12:42:14 | clonepr.vbs 47 | 609584 | 21.07.2001 19:17:24 | comctl32.ocx 48 | 140096 | 21.07.2001 19:17:24 | comdlg32.ocx 49 | 1317 | 21.07.2001 18:37:28 | depends.cnt 50 | 6656 | 17.08.2001 14:59:48 | depends.dll 51 | 615936 | 17.08.2001 14:59:52 | depends.exe 52 | 128264 | 21.07.2001 18:37:30 | depends.hlp 53 | 39936 | 17.08.2001 14:59:52 | dfsutil.exe 54 | 12800 | 17.08.2001 13:48:20 | dhcploc.exe 55 | 14336 | 17.08.2001 14:02:18 | diruse.exe 56 | 158720 | 17.08.2001 14:59:52 | dmdiag.exe 57 | 122880 | 17.08.2001 14:59:52 | dnscmd.exe 58 | 41472 | 17.08.2001 14:59:52 | dsacls.exe 59 | 119296 | 21.07.2001 19:13:36 | dsastat.exe 60 | 1165 | 21.07.2001 19:13:30 | dskprobe.cnt 61 | 94720 | 17.08.2001 14:03:02 | dskprobe.exe 62 | 50501 | 21.07.2001 19:13:32 | dskprobe.hlp 63 | 1748480 | 21.07.2001 19:13:34 | dskprtrb.doc 64 | 5120 | 17.08.2001 14:59:44 | dumpchk.exe 65 | 225792 | 21.07.2001 19:15:04 | dupfinder.exe 66 | 16928 | 21.07.2001 19:15:04 | efsinfo.exe 67 | 16350 | 21.07.2001 19:17:28 | eula.txt 68 | 25088 | 17.08.2001 14:59:54 | exctrlst.exe 69 | 88064 | 04.08.2004 00:57:00 | extract.exe 70 | 12800 | 17.08.2001 14:59:54 | filever.exe 71 | 24064 | 17.08.2001 13:47:44 | ftonline.exe 72 | 4096 | 17.08.2001 14:02:40 | getsid.exe 73 | 32768 | 17.08.2001 14:59:54 | gflags.exe 74 | 41472 | 17.08.2001 13:58:54 | gutils.dll 75 | 831539 | 04.08.2004 00:56:26 | iadstools.dll 76 | 170496 | 21.07.2001 19:17:28 | iadstools.doc 77 | 106496 | 04.08.2004 00:56:52 | ipseccmd.exe 78 | 22016 | 17.08.2001 13:51:24 | ksetup.exe 79 | 76288 | 17.08.2001 13:51:24 | ktpass.exe 80 | 35328 | 21.07.2001 19:17:30 | ldp.doc 81 | 227840 | 17.08.2001 14:59:56 | ldp.exe 82 | 6144 | 17.08.2001 14:59:56 | memsnap.exe 83 | 26112 | 17.08.2001 13:54:32 | movetree.dll 84 | 9728 | 17.08.2001 13:54:32 | movetree.exe 85 | 176128 | 21.07.2001 19:14:14 | msicuu.exe 86 | 83968 | 17.08.2001 13:58:44 | msizap.exe 87 | 50688 | 17.08.2001 14:59:56 | netcap.exe 88 | 321536 | 17.08.2001 14:59:58 | netdiag.exe 89 | 147456 | 03.08.2004 23:01:42 | netdom.exe 90 | 44544 | 17.08.2001 14:03:04 | netset.exe 91 | 189952 | 17.08.2001 13:52:38 | nltest.exe 92 | 45892 | 21.07.2001 19:17:26 | ntdetect.chk 93 | 53248 | 17.08.2001 14:58:20 | ntfrsapi.dll 94 | 9216 | 17.08.2001 14:59:58 | ntfrsutl.exe 95 | 13312 | 17.08.2001 14:59:46 | pfmon.exe 96 | 8704 | 17.08.2001 14:59:46 | pmon.exe 97 | 11264 | 17.08.2001 14:59:46 | poolmon.exe 98 | 8704 | 17.08.2001 14:03:06 | pptpclnt.exe 99 | 8704 | 17.08.2001 14:03:06 | pptpsrv.exe 100 | 8704 | 17.08.2001 14:59:46 | pstat.exe 101 | 25088 | 17.08.2001 14:59:46 | pviewer.exe 102 | 30720 | 17.08.2001 14:59:58 | rasdiag.exe 103 | 130047 | 17.07.2004 11:43:02 | readme.htm 104 | 34304 | 17.08.2001 14:59:58 | remote.exe 105 | 1191987 | 03.08.2004 22:28:52 | replmon.exe 106 | 14336 | 17.08.2001 13:52:18 | rsdiag.exe 107 | 14848 | 17.08.2001 13:52:16 | rsdir.exe 108 | 24064 | 17.08.2001 13:54:32 | sdcheck.exe 109 | 19909 | 21.07.2001 19:04:02 | search.vbs 110 | 9728 | 17.08.2001 15:00:00 | setspn.exe 111 | 11776 | 17.08.2001 14:03:14 | setx.exe 112 | 59392 | 17.08.2001 14:03:30 | showaccs.exe 113 | 18944 | 17.08.2001 15:00:00 | showperf.exe 114 | 4404 | 17.08.2001 12:42:16 | sidhist.vbs 115 | 53248 | 17.08.2001 14:03:34 | sidwalk.exe 116 | 4608 | 21.07.2001 19:14:44 | sidwalk.msc 117 | 102912 | 17.08.2001 14:03:44 | sidwkr.dll 118 | 40960 | 17.08.2001 14:03:44 | snmputilg.exe 119 | 213051 | 17.08.2001 15:00:00 | SPCheck.exe 120 | 735 | 21.07.2001 19:17:30 | st.xml 121 | 788244 | 21.07.2001 19:17:30 | suptools.chm 122 | 8704 | 17.08.2001 14:03:54 | timezone.exe 123 | 18944 | 17.08.2001 15:00:00 | tracefmt.exe 124 | 26624 | 17.08.2001 15:00:00 | tracelog.exe 125 | 90624 | 17.08.2001 15:00:00 | tracepdb.exe 126 | 193536 | 17.08.2001 14:59:48 | traceprt.dll 127 | 528440 | 17.08.2001 13:04:42 | vfi.exe 128 | 32256 | 17.08.2001 14:04:08 | whoami.exe 129 | 105984 | 17.08.2001 14:06:38 | windiff.exe 130 | 17357 | 21.07.2001 19:22:48 | windiff.hlp 131 | 25088 | 17.08.2001 15:00:02 | wsremote.exe 132 | 49664 | 17.08.2001 14:04:12 | xcacls.exe 133 | 16896 | 03.08.2004 23:00:14 | httpcfg.exe 134 | -------------------------------------------------------------------------------- /src/github-api-releases.py: -------------------------------------------------------------------------------- 1 | # Homepage: https://github.com/josephbisch/test-releases-api/blob/master/github-api-releases.py 2 | # 3 | # Copyright: 4 | # Copyright (C) 2016 Joseph Bisch 5 | # 6 | # License: 7 | # This program is free software; you can redistribute it and/or 8 | # modify it under the terms of the GNU Lesser General Public 9 | # License as published by the Free Software Foundation; either 10 | # version 2.1 of the License, or (at your option) any later 11 | # version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU Lesser General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU Lesser General Public 19 | # License along with this program. If not, see 20 | # . 21 | 22 | import requests 23 | import getpass 24 | import json 25 | import sys 26 | import os 27 | import ntpath 28 | import magic 29 | from urllib.parse import urljoin 30 | 31 | GITHUB_API = 'https://api.github.com' 32 | 33 | def check_status(res, j): 34 | if res.status_code >= 400: 35 | msg = j.get('message', 'UNDEFINED') 36 | print('ERROR: %s' % msg) 37 | return 1 38 | return 0 39 | 40 | 41 | def create_release(owner, repo, tag, token): 42 | url = urljoin(GITHUB_API, '/'.join(['repos', owner, repo, 'releases'])) 43 | headers = {'Authorization': token} 44 | data = {'tag_name': tag, 'name': tag, 'body': 'winetricks - %s' % tag} 45 | res = requests.post(url, auth=(owner, token), data=json.dumps(data), headers=headers) 46 | 47 | j = json.loads(res.text) 48 | if check_status(res, j): 49 | return 1 50 | return 0 51 | 52 | 53 | def upload_asset(path, owner, repo, tag): 54 | token = os.environ['GITHUB_TOKEN'] 55 | 56 | url = urljoin(GITHUB_API, 57 | '/'.join(['repos', owner, repo, 'releases', 'tags', tag])) 58 | res = requests.get(url) 59 | 60 | j = json.loads(res.text) 61 | if check_status(res, j): 62 | # release must not exist, creating release from tag 63 | if create_release(owner, repo, tag, token): 64 | return 0 65 | else: 66 | # Need to start over with uploading now that release is created 67 | # Return 1 to indicate we need to run upload_asset again 68 | return 1 69 | upload_url = j['upload_url'] 70 | upload_url = upload_url.split('{')[0] 71 | 72 | fname = ntpath.basename(path) 73 | with open(path) as f: 74 | contents = f.read() 75 | 76 | try: 77 | content_type = mime.from_file(path) 78 | except: 79 | content = magic.detect_from_filename(path) 80 | content_type = content.name 81 | 82 | headers = {'Content-Type': content_type, 'Authorization': token} 83 | params = {'name': fname} 84 | 85 | res = requests.post(upload_url, data=contents, auth=(owner, token), 86 | headers=headers, params=params) 87 | 88 | j = json.loads(res.text) 89 | if check_status(res, j): 90 | return 0 91 | print('SUCCESS: %s uploaded' % fname) 92 | return 0 93 | 94 | if __name__ == '__main__': 95 | path = sys.argv[1] 96 | owner = sys.argv[2] 97 | repo = sys.argv[3] 98 | tag = sys.argv[4] 99 | if not os.path.isabs(path): 100 | path = os.path.join(os.path.dirname(os.path.realpath(__file__)), path) 101 | ret = 1 # Run upload_asset at least once. 102 | while ret: 103 | ret = upload_asset(path, owner, repo, tag) 104 | -------------------------------------------------------------------------------- /src/io.github.winetricks.Winetricks.metainfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | io.github.winetricks.Winetricks 4 | winetricks.desktop 5 | LGPL-2.1+ 6 | CC0-1.0 7 | Winetricks 8 | Austin English and others 9 | 10 | Austin English and others 11 | 12 | Work around problems and install applications under Wine 13 | 14 |

15 | Winetricks is an easy way to work around problems in Wine. 16 |

17 |

18 | It lets you install missing DLLs or tweak various Wine settings individually. 19 | It also has a menu of supported applications for which it can do all the workarounds automatically. 20 |

21 |
22 | https://github.com/Winetricks/winetricks 23 | 24 | 25 | Winetricks main window 26 | https://raw.githubusercontent.com/Winetricks/winetricks/master/screenshot.png 27 | 28 | 29 | 30 |
31 | -------------------------------------------------------------------------------- /src/linkcheck.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Link checker for winetricks. 3 | # 4 | # Copyright (C) 2011-2013 Dan Kegel 5 | # Copyright (C) 2016-2018 Austin English 6 | # 7 | # This software comes with ABSOLUTELY NO WARRANTY. 8 | # 9 | # This is free software, placed under the terms of the GNU Lesser 10 | # Public License version 2.1 (or later), as published by the Free 11 | # Software Foundation. Please see the file COPYING for details. 12 | 13 | set -e 14 | 15 | passes=0 16 | errors=0 17 | 18 | check_deps() { 19 | if ! test -x "$(command -v curl 2>/dev/null)"; then 20 | echo "Please install curl" 21 | exit 1 22 | fi 23 | } 24 | 25 | if [ -f src/winetricks ] ; then 26 | TOP="${PWD}" 27 | shwinetricks="${PWD}/src/winetricks" 28 | elif [ -f ../src/winetricks ] ; then 29 | # realpath isn't available on OSX, use a subshell instead: 30 | TOP="$(cd .. && echo "${PWD}")" 31 | shwinetricks="${TOP}/src/winetricks" 32 | elif [ -f ../../src/winetricks ] ; then 33 | # realpath isn't available on OSX, use a subshell instead: 34 | TOP="$(cd ../.. && echo "${PWD}")" 35 | shwinetricks="${TOP}/src/winetricks" 36 | else 37 | echo "Dude, where's my car?!" 38 | exit 1 39 | fi 40 | 41 | datadir="${TOP}/output/links.d" 42 | mkdir -p "${datadir}" 43 | 44 | # This is used by url-script-fragment.tmp below in extract_all() 45 | # shellcheck disable=SC2317 46 | w_download() { 47 | url="${1}" 48 | urlkey="$(echo "${url}" | tr / _)" 49 | echo "${url}" > "${datadir}/${urlkey}.url" 50 | } 51 | # shellcheck disable=SC2317 52 | w_download_to() { 53 | shift 54 | w_download "$@" 55 | } 56 | 57 | # Extract list of URLs from winetricks 58 | extract_all() { 59 | # w_linkcheck_ignore=1 is a stupid hack to tell linkcheck.sh to ignore a URL (e.g., because it contains a variable) 60 | # Ideally, avoid using the variable, but we can't e.g., for dxvk 61 | # Should not be used for https://example.com/${file1}, as otherwise we can't easily check if the URL is down 62 | 63 | # https://github.com/koalaman/shellcheck/issues/861 64 | # shellcheck disable=SC1003 65 | grep -E '^[^#]*w_download(_to)? .*(http|ftp)s?://' "${shwinetricks}" \ 66 | | grep -vE "(w_linkcheck_ignore|WINETRICKS_SUPER_QUIET)=(TRUE|1)" \ 67 | | sed 's/^.*w_download/w_download/' \ 68 | | sed -E "s/\\$/%24/g" \ 69 | | tr -d '\\' > url-script-fragment.tmp 70 | 71 | # shellcheck disable=SC1091 72 | . ./url-script-fragment.tmp 73 | } 74 | 75 | # Show results for a given url 76 | # Input: .url file 77 | # Output: line with OK or BAD followed by URL, 78 | # optionally followed by lines with more detail 79 | show_one() { 80 | urlfile=$1 81 | base=${urlfile%.url} 82 | url="$(cat "${urlfile}")" 83 | if grep -E "HTTP.*200|HTTP.*30[0-9]|Content-Length" "${base}.log" > /dev/null; then 84 | passes=$((passes + 1)) 85 | else 86 | echo "BAD ${url}" 87 | cat "${base}.log" 88 | echo "" 89 | errors=$((errors + 1)) 90 | fi 91 | } 92 | 93 | # Show full report on most recent crawl 94 | show_all() { 95 | for urlfile in "${datadir}"/*.url ; do 96 | show_one "${urlfile}" 97 | done 98 | } 99 | 100 | # Save info about the given url to a file 101 | # Input: .url file 102 | # Output: 103 | # .log gets the full info 104 | # .dat gets a summary 105 | # Calls show_one to print results out as they come in 106 | crawl_one() { 107 | urlfile=$1 108 | base=${urlfile%.url} 109 | url="$(cat "${urlfile}")" 110 | 111 | curl --connect-timeout 60 --retry-connrefused --retry 10 -s -S -I "${url}" 2>&1 | 112 | tr -d '\015' | 113 | grep . | 114 | sort > "${base}.log" 115 | # more diff-able? 116 | # cat "$base.log" | 117 | # grep -E 'HTTP|Last-Modified:|Content-Length:|ETag:' | 118 | # tr '\012' ' ' | 119 | # sed 's/ Connection:.*//' > "$datadir"/"$urlkey.dat" 120 | # echo "" >> "$base.dat" 121 | show_one "${urlfile}" 122 | } 123 | 124 | # Fetch all info 125 | # Do fetches in background so slow servers don't hang us 126 | # Print quick feedback as results come in 127 | crawl_all() { 128 | for urlfile in "${datadir}"/*.url ; do 129 | url="$(cat "${urlfile}")" 130 | echo "Crawling ${url}" 131 | crawl_one "${urlfile}" & 132 | sleep 1 133 | done 134 | # Wait for fetches to finish 135 | wait 136 | } 137 | 138 | mkdir -p "${datadir}" 139 | 140 | case "$1" in 141 | check-deps) 142 | check_deps 143 | exit $? 144 | ;; 145 | crawl) 146 | check_deps 147 | extract_all 148 | crawl_all 149 | show_all 150 | ;; 151 | report) 152 | show_all 153 | ;; 154 | *) echo "Usage: linkcheck.sh crawl|report"; exit 1;; 155 | esac 156 | 157 | # cleanup 158 | rm -rf "${datadir}" url-script-fragment.tmp 159 | echo "Test over, ${errors} failures, ${passes} successes." 160 | if test ${errors} = 0 && test ${passes} -gt 0; then 161 | echo PASS 162 | exit 0 163 | else 164 | echo FAIL 165 | exit 1 166 | fi 167 | -------------------------------------------------------------------------------- /src/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Trivial release helper for winetricks 3 | # 4 | # Usage: $0 optional_version_name 5 | # 6 | # Copyright (C) 2016 Austin English 7 | # 8 | # This software comes with ABSOLUTELY NO WARRANTY. 9 | # 10 | # This is free software, placed under the terms of the GNU Lesser 11 | # Public License version 2.1 (or later), as published by the Free 12 | # Software Foundation. Please see the file COPYING for details. 13 | 14 | set -e 15 | #set -u 16 | set -x 17 | 18 | nopush=0 19 | # Don't push commits/tags or upload files if --no-push is given: 20 | if [ "$1" = "--no-push" ] ; then 21 | nopush=1 22 | shift 23 | # If we _are_ pushing, we'll need a github token: 24 | elif [ -z "${GITHUB_TOKEN}" ] ; then 25 | echo "--no-push wasn't given, GITHUB_TOKEN must be set in the environment!" 26 | exit 1 27 | fi 28 | 29 | # FIXME: If "--no-push" isn't set, above statement dies, not sure how to construct properly to avoid 30 | set -u 31 | 32 | # For a WINEPREFIX for winetricks list commands: 33 | tmpdir="$(mktemp -d)" 34 | 35 | # WINEPREFIX must be under a directory owned by user, so can't be in /tmp directly.. 36 | export WINEPREFIX="${tmpdir}/wineprefix" 37 | 38 | # Set an empty cache so nothing shows as cached: 39 | export W_CACHE="/dev/null" 40 | 41 | # Set WINEARCH="win32" so we don't get 64-bit warning in output: 42 | export WINEARCH="win32" 43 | 44 | # Needed by the list commands below: 45 | export WINETRICKS_LATEST_VERSION_CHECK="development" 46 | 47 | # Make sure we're at top level: 48 | if [ ! -f Makefile ] ; then 49 | echo "Please run this from the top of the source tree" 50 | exit 1 51 | fi 52 | 53 | version="${1:-$(date +%Y%m%d)}" 54 | 55 | if git tag | grep -w "${version}" ; then 56 | echo "A tag for ${version} already exists!" 57 | exit 1 58 | fi 59 | 60 | # update version in winetricks itself 61 | sed -i -e "s%WINETRICKS_VERSION=.*%WINETRICKS_VERSION=${version}%" src/winetricks 62 | 63 | # update manpage 64 | line=".TH WINETRICKS 1 \"$(date +"%B %Y")\" \"Winetricks ${version}\" \"Wine Package Manager\"" 65 | sed -i -e "s%\\.TH.*%${line}%" src/winetricks.1 66 | 67 | # update LATEST (version) file 68 | echo "${version}" > files/LATEST 69 | 70 | # Update verb lists: 71 | # actual categories 72 | for category in $(./src/winetricks list); do 73 | ./src/winetricks "${category}" list | sed 's/[[:blank:]]*$//' > "files/verbs/${category}.txt" 74 | done 75 | 76 | # meta categories 77 | ./src/winetricks list-all | sed 's/[[:blank:]]*$//' > files/verbs/all.txt 78 | ./src/winetricks list-download | sed 's/[[:blank:]]*$//' > files/verbs/download.txt 79 | ./src/winetricks list-manual-download | sed 's/[[:blank:]]*$//' > files/verbs/manual-download.txt 80 | 81 | git commit files/LATEST files/verbs/*.txt src/winetricks src/winetricks.1 -m "version bump - ${version}" 82 | git tag -s -m "winetricks-${version}" "${version}" 83 | 84 | # update development version in winetricks 85 | sed -i -e "s%WINETRICKS_VERSION=.*%WINETRICKS_VERSION=${version}-next%" src/winetricks 86 | git commit src/winetricks -m "development version bump - ${version}-next" 87 | 88 | if [ ${nopush} = 1 ] ; then 89 | echo "--no-push used, not pushing commits / tags" 90 | else 91 | git push 92 | git push --tags 93 | fi 94 | 95 | # create local tarball, identical to github's generated one 96 | git -c tar.tar.gz.command='gzip -cn' \ 97 | archive --format=tar.gz --prefix="winetricks-${version}/" \ 98 | -o "${tmpdir}/${version}.tar.gz" "${version}" 99 | 100 | # create a detached signature of the tarball 101 | gpg --armor --default-key 0x267BCC1F053F0749 --detach-sign "${tmpdir}/${version}.tar.gz" 102 | 103 | # upload the detached signature to github: 104 | if [ ${nopush} = 1 ] ; then 105 | echo "--no-push used, not uploading signature file" 106 | else 107 | python3 src/github-api-releases.py "${tmpdir}/${version}.tar.gz.asc" Winetricks winetricks "${version}" 108 | rm -rf "${tmpdir}" 109 | fi 110 | 111 | exit 0 112 | -------------------------------------------------------------------------------- /src/uniquefiles.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Script to locate unique files useful for install checks 3 | # 4 | # Copyright (C) 2014 Dan Kegel 5 | # Copyright (C) 2016 Austin English 6 | # 7 | # This software comes with ABSOLUTELY NO WARRANTY. 8 | # 9 | # This is free software, placed under the terms of the GNU Lesser 10 | # Public License version 2.1 (or later), as published by the Free 11 | # Software Foundation. Please see the file COPYING for details. 12 | 13 | set -e 14 | 15 | if ! test "$1"; then 16 | echo "Please specify a bunch of wineprefixes to grub through" 17 | echo "For instance, ~/winetrickstest-prefixes/dotnet20sp{,1,2}" 18 | exit 1 19 | fi 20 | 21 | # Generate list of all filenames (except those which look ephemeral) 22 | rm -f /tmp/allfiles.txt 23 | 24 | for dir; do 25 | ( 26 | cd "${dir}/drive_c" 27 | # FIXME: don't assume there are no ='s in filenames, e.g. rewrite in perl 28 | find . -type f | tr ' ' '=' | grep -E -iv 'tmp|temp|installer|NativeImages' | sort > ../files.txt 29 | cat ../files.txt >> /tmp/allfiles.txt 30 | ) 31 | done 32 | 33 | # Find filenames that occur only once 34 | sort < /tmp/allfiles.txt | uniq -c | awk '$1 == 1 {print $2}' > /tmp/uniqfiles.txt 35 | 36 | # Associate them with the verb they came from 37 | for dir; do 38 | ( 39 | cd "${dir}" 40 | # Undo the space-to-= transformation, too 41 | grep -F -f /tmp/uniqfiles.txt < files.txt | tr '=' ' ' > uniqfiles.txt 42 | ) 43 | echo "${dir}/uniqfiles.txt" 44 | done 45 | -------------------------------------------------------------------------------- /src/winetricks.1: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .TH WINETRICKS 1 "January 2025" "Winetricks 20250102" "Wine Package Manager" 3 | .SH NAME 4 | winetricks \- manage virtual Windows environments using Wine 5 | .SH SYNOPSIS 6 | .BI "winetricks " 7 | [options] [verb ... ] 8 | .SH DESCRIPTION 9 | .B winetricks 10 | is an easy way to work around common problems in Wine. 11 | .PP 12 | It provides simple commands to 13 | tweak Wine settings, 14 | download and install missing Windows DLLs and fonts, 15 | or install various applications with appropriate workarounds for the current version of Wine. 16 | .PP 17 | It can be used via GUI or command line. The command-line mode is intended both for interactive use and as a building block in fancier Wine frontends and in automated regression testing. 18 | 19 | .B winetricks 20 | with no arguments displays a GUI using either Zenity or Kdialog. 21 | 22 | .SH OPTIONS 23 | .TP 24 | .B 25 | \-\-country=CC 26 | Set country code to CC and don't detect your IP address 27 | when retrying downloads 28 | .TP 29 | .B 30 | \-f, \-\-force 31 | Don't check whether packages were already installed 32 | .TP 33 | .B 34 | \-\-gui 35 | Show GUI diagnostics even when driven by the command-line interface 36 | .TP 37 | .B 38 | \-\-gui=OPT 39 | Set OPT to kdialog or zenity to override GUI engine 40 | .TP 41 | .B 42 | \-\-isolate 43 | Install each app or game in its own bottle 44 | .TP 45 | .B 46 | \-\-self\-update 47 | Update this application to the last version 48 | .TP 49 | .B 50 | \-\-update\-rollback 51 | Rollback the last self update 52 | .TP 53 | .B 54 | \-\-no\-isolate 55 | Don't install each app or game in its own bottle (default) 56 | .TP 57 | .B 58 | \-\-no\-clean 59 | Don't delete temp directories (useful during debugging) 60 | .TP 61 | .B 62 | \-\-optin 63 | Opt in to reporting which verbs you use to the Winetricks maintainers 64 | .TP 65 | .B 66 | \-\-optout 67 | Opt out of reporting which verbs you use to the Winetricks maintainers 68 | .TP 69 | .B 70 | \-q, \-\-unattended 71 | Don't ask any questions, just install automatically 72 | .TP 73 | .B 74 | \-t, \-\-torify 75 | Run downloads under torify, if available 76 | .TP 77 | .B 78 | \-v, \-\-verbose 79 | Echo all commands as they are executed 80 | .TP 81 | .B 82 | \-\-verify 83 | Run (automated) GUI tests for verbs, if available 84 | .TP 85 | .B 86 | \-h, \-\-help 87 | Display this message and exit 88 | .TP 89 | .B 90 | \-V, \-\-version 91 | Display version and exit 92 | 93 | .SH COMMANDS 94 | .TP 95 | .B 96 | apps list 97 | list verbs in category 'applications' 98 | .TP 99 | .B 100 | benchmarks list 101 | list verbs in category 'benchmarks' 102 | .TP 103 | .B 104 | dlls list 105 | list verbs in category 'dlls' 106 | .TP 107 | .B 108 | fonts list 109 | list verbs in category 'fonts' 110 | .TP 111 | .B 112 | settings list 113 | list verbs in category 'settings' 114 | .TP 115 | .B 116 | list 117 | list categories 118 | .TP 119 | .B 120 | list-cached 121 | list cached-and-ready-to-install verbs 122 | .TP 123 | .B 124 | list-download 125 | list verbs which download automatically 126 | .TP 127 | .B 128 | list-manual-download 129 | list verbs which download with some help from the user 130 | .TP 131 | .B 132 | list-installed 133 | list already-installed verbs 134 | .TP 135 | .B 136 | arch=32|64 137 | create wineprefix with 32 or 64 bit, this option must be 138 | given before prefix=foobar and will not work in case of 139 | the default wineprefix. 140 | .TP 141 | .B 142 | prefix=foobar 143 | select WINEPREFIX=$HOME/.local/share/wineprefixes/foobar 144 | .TP 145 | .B 146 | annihilate 147 | Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX 148 | 149 | .PP 150 | .SH EXAMPLES 151 | 152 | .TP 153 | To see list of available packages to install: 154 | winetricks list-download 155 | .TP 156 | To install a package: 157 | winetricks 7zip 158 | 159 | .SH ENVIRONMENT VARIABLES 160 | Wine checks several environment variables on startup: 161 | .TP 162 | .I WINE 163 | If set, this specifies which wine binary to use by default 164 | .TP 165 | .I WINESERVER 166 | If set, this specifies which wineserver to use by default 167 | .TP 168 | .I WINEPREFIX 169 | If set, this specifies the location of the default .wine directory ( usually 170 | .IR $HOME/.wine 171 | ). 172 | .TP 173 | .I XDG_CACHE_HOME 174 | If set, this is path to system's user data cache (default: $HOME/.cache) 175 | .I W_CACHE 176 | path to Winetricks' user data cache (default: $XDG_CACHE_HOME/winetricks} 177 | 178 | .SH AUTHORS 179 | Dan Kegel, Austin English, and many others. For a complete list, 180 | please see the "Copyright" section in the file 'winetricks'. 181 | 182 | .SH COPYRIGHT 183 | This program is free software; you can redistribute it and/or 184 | modify it under the terms of the GNU Library General Public 185 | License as published by the Free Software Foundation; either 186 | version 2 of the License, or (at your option) any later version. 187 | See . 188 | .SH BUGS 189 | .PP 190 | Bugs may be reported at 191 | .I https://github.com/Winetricks/winetricks/issues 192 | .PP 193 | .SH AVAILABILITY 194 | The most recent version of 195 | .B winetricks 196 | can be downloaded from 197 | .I https://github.com/Winetricks/winetricks/releases/latest 198 | .PP 199 | The latest snapshot of the code may be obtained via git; see 200 | .I https://github.com/Winetricks/winetricks/ 201 | .PP 202 | Documentation for Winetricks can be found at 203 | .I https://github.com/Winetricks/winetricks/wiki 204 | .PP 205 | For further information about 206 | .B winetricks 207 | see 208 | .I https://github.com/Winetricks/winetricks/ 209 | 210 | .SH "SEE ALSO" 211 | .BR wine (1) 212 | -------------------------------------------------------------------------------- /src/winetricks.bash-completion: -------------------------------------------------------------------------------- 1 | # winetricks(1) completion -*- shell-script -*- 2 | # 3 | # Copyright: 4 | # Copyright (C) 2018 Rob Walker 5 | # 6 | # License: 7 | # This program is free software; you can redistribute it and/or 8 | # modify it under the terms of the GNU Lesser General Public 9 | # License as published by the Free Software Foundation; either 10 | # version 2.1 of the License, or (at your option) any later 11 | # version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU Lesser General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU Lesser General Public 19 | # License along with this program. If not, see 20 | # . 21 | 22 | 23 | ##### Define Global constants / variables ##### 24 | WINETRICKS_PATH="$(command -v winetricks)" 25 | # https://pkgstore.datahub.io/core/country-list/data_csv/data/d7c9d7cfb42cb69f4422dec222dbbaa8/data_csv.csv 26 | COUNTRY_CODES="AF AX AL DZ AS AD AO AI AQ AG AR AM AW AU AT AZ BS BH BD BB BY BE BZ BJ BM BT BA BW BV BR IO BN BG BF BI \ 27 | KH CM CA CV KY CF TD CL CN CX CC CO KM CG CK CR CI HR CU CW CY CZ DK DJ DM DO EC EG SV GQ ER EE ET FK FO FJ FI FR \ 28 | GF PF TF GA GM GE DE GH GI GR GL GD GP GU GT GG GN GW GY HT HM VA HN HK HU IS IN ID IQ IE IM IL IT JM JP JE JO KZ KE KI KW KG \ 29 | LA LV LB LS LR LY LI LT LU MO MG MW MY MV ML MT MH MQ MR MU YT MX MC MN ME MS MA MZ MM NA NR NP NL NC NZ NI NE NG NU NF MP NO \ 30 | OM PK PW PA PG PY PE PH PN PL PT PR QA RE RO RU RW BL KN LC MF PM VC WS SM ST SA SN RS SC SL SG SX SK SI SB SO ZA GS SS ES LK \ 31 | SD SR SJ SZ SE CH SY TJ TH TL TG TK TO TT TN TR TM TC TV UG UA AE GB US UM UY UZ VU VN WF EH YE ZM ZW" 32 | INVERTIBLE_OPTS="isolate opt" 33 | TERMINATING_OPTS="help update version" 34 | TERMINATING_LIST_COMMAND="list" 35 | VERB_WINVER="winver=" 36 | COMMAND_WINEPREFIX="prefix=" 37 | 38 | 39 | ##### Define Global regular expression constants ##### 40 | BLANK_LINE_REGEX="^[[:blank:]]*$" 41 | VERB_REGEX="[[:alnum:]][-_[:alnum:]]*(|=[[:alnum:]][[:alnum:]]*)" 42 | METADATA_REGEX="^w_metadata[[:blank:]][[:blank:]]*[^\\\\]*[\\\\]\$" 43 | SHORT_OPTION_REGEX="[-]([[:alpha:]]|[[:alpha:]][[:alpha:]])" 44 | LONG_OPTION_REGEX="[-][-][[:lower:]][-_=*[:lower:]]*" 45 | FUNCTION_HANDLE_OPTIONS_REGEX="^winetricks_handle_option[(][)]$" 46 | FUNCTION_EXECUTE_COMMAND_REGEX="^execute_command[(][)]$" 47 | COMMAND_LINE_REGEX="^[[:blank:]][[:blank:]]*${VERB_REGEX}(|[=][*])[)]" 48 | REGULAR_VERB_LINE_REGEX="[[:blank:]](w_call|w_do_call)[[:blank:]]" 49 | DEPRECIATED_LINE_REGEX="[[:blank:]]w_warn[[:blank:]]" 50 | 51 | ##### Find and wrap a functioning awk variant ##### 52 | AWK="$(command -v awk 2>/dev/null || command -v mawk 2>/dev/null)" 53 | if [[ -z "${AWK}" ]] || "${AWK}" -W version 2>/dev/null | grep -q -E '^mawk 1\.3\.3'; then 54 | AWK="$(command -v gawk 2>/dev/null || command -v nawk 2>/dev/null)" 55 | [[ -z "${AWK}" ]] && AWK="$(command -v busybox)" && AWK="${AWK}${AWK:+ awk}" 56 | fi 57 | 58 | ##### Define shared awk functions ##### 59 | 60 | # _parse_and_dump_verbs() 61 | # 62 | # 1< array_verbs 63 | # > stdout 64 | # 65 | # awk function to parse an array of verbs or commands. 66 | # Assignment commands/ verbs are grouped in an array and parsed separately 67 | # from regular verbs, i.e. verbs of the form: 68 | # 69 | # videomem=512|1024|2048|default 70 | # 71 | # Dump output in the form: 72 | # 73 | # > 74 | # "verb(1) [... verb(M)] verb(M+1)=...|... [... verb(N)=...|...]" 75 | # 76 | awk_function_parse_and_dump_verbs=\ 77 | 'function _parse_and_dump_verbs(array_verbs, 78 | i, j, test_verb_prefix, verb_prefix, verb_suffix) 79 | { 80 | for (i=1 ; i<=array_verbs[0] ; ++i) { 81 | # Dump non-assignment verbs first... 82 | # Deleting these array entries as we go. 83 | if (array_verbs[i] !~ "=") { 84 | printf("%s ", array_verbs[i]) 85 | delete array_verbs[i] 86 | continue 87 | } 88 | 89 | # Process assignment verbs, by appending the suffix value to 90 | # an existing array entry (with the same prefix), and deleting 91 | # the current array entry... 92 | # Or if no existing, matching array entry exists, then simply leave 93 | # the existing array entry in place and take no further action. 94 | verb_prefix=verb_suffix=array_verbs[i] 95 | sub("=.*$", "", verb_prefix) 96 | sub("^.*=", "", verb_suffix) 97 | for (j=1; j stdout 125 | # 126 | # Dumps winetricks options, which can then be stored for later processing. 127 | # Parse the raw winetricks script, to increase processing and avoid any 128 | # calls to wine. 129 | # 130 | _scrape_options() 131 | { 132 | # shellcheck disable=SC2016 133 | ${AWK} -vblank_line_regex="${BLANK_LINE_REGEX}" \ 134 | -vfunction_handle_options_regex="${FUNCTION_HANDLE_OPTIONS_REGEX}" \ 135 | -vshort_long_option_regex="^[[:blank:]][[:blank:]]*${SHORT_OPTION_REGEX}[|]${LONG_OPTION_REGEX}[)]" \ 136 | -vlong_option_regex="^[[:blank:]][[:blank:]]*${LONG_OPTION_REGEX}[)]" \ 137 | '{ 138 | in_function=in_function || ($0 ~ function_handle_options_regex) 139 | is_blank=($0 ~ blank_line_regex) 140 | is_comment=($0 ~ "^[[:blank:]]*#") 141 | if (!in_function || is_blank || is_comment) 142 | next 143 | 144 | if (($0 ~ long_option_regex) || ($0 ~ short_long_option_regex)) { 145 | gsub("(^[[:blank:]]*|[)][^)]*$)" , "") 146 | printf("%s\n", $0) 147 | } 148 | in_function=($0 !~ "^[}]$") 149 | if (!in_function) 150 | exit 0 151 | }' "${WINETRICKS_PATH}" 2>/dev/null 152 | } 153 | 154 | 155 | # _scrape_commands() 156 | # (< VERB_REGEX, WINETRICKS_RAW_COMMANDS) 157 | # > stdout 158 | # 159 | # Parse list of commands (excluding options) directly from the 160 | # winetricks script. Dump all regular commands, followed by 161 | # a list of assignment commands (i.e. prefix=*) 162 | # 163 | # > 164 | # "command(1) [... command(M)] command(M+1)=...|... [... command(N)=...|...]" 165 | # 166 | _scrape_commands() 167 | { 168 | # shellcheck disable=SC2016 169 | ${AWK} -vfunction_execute_command_regex="${FUNCTION_EXECUTE_COMMAND_REGEX}" \ 170 | -vcommand_line_regex="${COMMAND_LINE_REGEX}" \ 171 | -vregular_verb_line_regex="${REGULAR_VERB_LINE_REGEX}" \ 172 | -vdepreciated_line_regex="${DEPRECIATED_LINE_REGEX}" \ 173 | "${awk_function_parse_and_dump_verbs}"' 174 | 175 | { 176 | in_function=in_function || ($0 ~ function_execute_command_regex) 177 | if (!in_function) 178 | next 179 | 180 | in_function=($0 !~ "^[}]$") 181 | if (!in_function) 182 | exit 0 183 | 184 | is_command=($0 ~ command_line_regex) 185 | is_warning=($0 ~ depreciated_line_regex) 186 | is_normal_verb=($0 ~ regular_verb_line_regex) 187 | if (!is_command || is_warning || is_normal_verb) 188 | next 189 | 190 | gsub("(^[[:blank:]][[:blank:]]*|[)].*)", "") 191 | if ($0 == "*=*") 192 | next 193 | 194 | array_commands[++array_commands[0]]=$0 195 | } 196 | 197 | END{ 198 | _parse_and_dump_verbs(array_commands) 199 | }' "${WINETRICKS_PATH}" 2>/dev/null 200 | } 201 | 202 | 203 | # _scrape_all_categories_and_verbs() 204 | # (< METADATA_REGEX, WINETRICKS_RAW_METADATA) 205 | # > stdout 206 | # 207 | # Parse winetricks list-all to get sets of all categories and 208 | # the verbs contained within that category. 209 | # NB the BASH completion script copes with jumbled up category 210 | # blocks in the main winetricks script (i.e. blocks of one category 211 | # that are interspersed with other categories). 212 | # 213 | # > 214 | # "category(1) 215 | # verb(1) [... verb(N)] 216 | # category(2) 217 | # verb(1) [... verb(N)] 218 | # ..." 219 | # 220 | _scrape_all_categories_and_verbs() 221 | { 222 | # shellcheck disable=SC2016 223 | ${AWK} -vmetadata_regex="${METADATA_REGEX//\\/\\\\}" \ 224 | "${awk_function_parse_and_dump_verbs}"' 225 | 226 | { 227 | if (($0 !~ metadata_regex) || (NF < 3)) 228 | next 229 | 230 | new_verb=$2 231 | new_category=$3 232 | if (category != new_category) { 233 | if (array_verbs[0]) { 234 | printf("%s\n", category) 235 | _parse_and_dump_verbs(array_verbs) 236 | } 237 | category=new_category 238 | delete array_verbs 239 | } 240 | array_verbs[++array_verbs[0]]=new_verb 241 | } 242 | END{ 243 | if (array_verbs[0]) { 244 | printf("%s\n", category) 245 | _parse_and_dump_verbs(array_verbs) 246 | } 247 | }' "${WINETRICKS_PATH}" 2>/dev/null 248 | } 249 | 250 | 251 | ##### Define general BASH helper functions ##### 252 | 253 | 254 | # _list_remove_items() 255 | # 1-N< search-term1 [... search-termN] 256 | # < stdin (list) 257 | # > stdout (list) 258 | # 259 | # Takes a list of items and parses items to stdout. 260 | # Removing any items matching the supplied 'search-term'(s). 261 | # 262 | _list_remove_items() 263 | { 264 | (($#>=1)) || return 1 265 | local found i item search_term 266 | 267 | while read -r -d ' ' item || [[ -n "${item}" ]]; do 268 | [[ -z "${item}" ]] && continue 269 | 270 | found=0 271 | for ((i=1 ; i<=$# ; ++i)); do 272 | # shellcheck disable=SC2124 273 | search_term="${@:i:1}" 274 | [[ -z "${search_term}" ]] && continue 275 | 276 | if [[ "${item}" = "${search_term}" ]]; then 277 | found=1 278 | break 279 | fi 280 | done 281 | 282 | if ((!found)); then 283 | printf "%s " "${item}" 284 | fi 285 | done 286 | } 287 | 288 | 289 | # _list_remove_regex_item() 290 | # 1< regular-expression 291 | # < stdin (list) 292 | # > stdout (list) 293 | # 294 | # Takes a list of items and parses items to stdout. 295 | # Removing any items matching 'regular-expression'. 296 | # 297 | _list_remove_regex_item() 298 | { 299 | (($#==1)) || return 1 300 | local regex_search_term="${1}" item 301 | 302 | while read -r -d ' ' item || [[ -n "${item}" ]]; do 303 | if [[ ! ( -z "${item}" || "${item}" =~ ${regex_search_term} ) ]]; then 304 | printf "%s " "${item}" 305 | fi 306 | done 307 | } 308 | 309 | 310 | # _list_match_item() 311 | # 1 < search-text 312 | # [2-N]< items to match against (list) 313 | # > match? 314 | # 315 | # Match list of items on stdin with 'search-text', 316 | # 317 | # Return 0=match / 1=no match 318 | # 319 | _list_match_item() 320 | { 321 | (($#>=1)) || return 1 322 | [[ -z "${1}" ]] && return 1 323 | local search_text="${1}" 324 | 325 | shift 1 326 | while [[ ! -z "${1}" ]]; do 327 | [[ "${search_text}" = "${1}" ]] && return 0 328 | 329 | shift 1 330 | done 331 | return 1 332 | } 333 | 334 | 335 | # _get_duplicate_options() 336 | # 1-N< Winetricks options (multi-line list) 337 | # (< INVERTIBLE_OPTS) 338 | # > stdout 339 | # 340 | # For each long option determine if it has a matching short option or if 341 | # the long option is invertible (i.e. "--no-xxxx" vs "--xxxx"). 342 | # 343 | # > 344 | # "[short-option(1)|inverted-long-option(1)] long-option(1) 345 | # ... 346 | # [short-option(N)|inverted-long-option(N)] long-option(N)" 347 | # 348 | _get_duplicate_options() 349 | { 350 | (($#>=1)) || return 1 351 | 352 | local first_item item option options invertible_option \ 353 | invertible_options=" ${INVERTIBLE_OPTS} " \ 354 | removed_options="" 355 | 356 | while IFS='' read -r options || [[ -n "${options}" ]]; do 357 | options=" ${options//|/ } " 358 | for option in ${removed_options}; do 359 | options="${options// ${option} / }" 360 | done 361 | 362 | [[ "${options}" =~ ${BLANK_LINE_REGEX} ]] && continue 363 | 364 | unset -v negated_duplicate 365 | # shellcheck disable=SC2016 366 | first_item="$( echo "${options}" | ${AWK} '{print $1}' 2>/dev/null )" 367 | for invertible_option in ${invertible_options}; do 368 | case "${invertible_option}" in 369 | isolate) 370 | negated_duplicate="${first_item/#--no-${invertible_option}/--${invertible_option}}" 371 | [[ "${negated_duplicate}" = "${first_item}" ]] || break 372 | negated_duplicate="${first_item/#--${invertible_option}/--no-${invertible_option}}" 373 | [[ "${negated_duplicate}" = "${first_item}" ]] || break 374 | ;; 375 | opt) 376 | negated_duplicate="${first_item/%${invertible_option}out/${invertible_option}in}" 377 | [[ "${negated_duplicate}" = "${first_item}" ]] || break 378 | negated_duplicate="${first_item/%${invertible_option}in/${invertible_option}out}" 379 | [[ "${negated_duplicate}" = "${first_item}" ]] || break 380 | ;; 381 | esac 382 | done 383 | if [[ ! -z "${negated_duplicate}" && ( ! "${negated_duplicate}" = "${first_item}" ) ]]; then 384 | options="${options} ${negated_duplicate}" 385 | removed_options="${removed_options} ${first_item} ${negated_duplicate}" 386 | invertible_options="${invertible_options// ${invertible_option} / }" 387 | fi 388 | 389 | [[ "${options}" =~ ${BLANK_LINE_REGEX} ]] && continue 390 | 391 | printf " %s \\n" "${options}" 392 | done <<<"${@}" 393 | } 394 | 395 | 396 | # _process_options() 397 | # (< COUNTRY_CODES) 398 | # 1< Winetricks options (multi-line list) 399 | # > stdout 400 | # 401 | # Process winetricks options. Format these into a list of short options 402 | # followed by a list of long options. Expands country codes assignment 403 | # variable arguments. 404 | # 405 | # > 406 | # "short-option(1) [... short-option(N)] long-option(1) [... long-option(N)]" 407 | # 408 | _process_options() 409 | { 410 | (($#==1)) || return 1 411 | [[ -z "${1}" ]] && return 1 412 | 413 | local line long_options option short_options 414 | 415 | while IFS='' read -r line || [[ -n "${line}" ]]; do 416 | while read -r -d '|' option || [[ -n "${option}" ]]; do 417 | case "${option}" in 418 | --*) 419 | if [[ ! "${option}" = "${option/country/}" ]]; then 420 | option="${option%=*}=${COUNTRY_CODES// /|}" 421 | fi 422 | long_options="${long_options} ${option}" 423 | ;; 424 | -*) 425 | short_options="${short_options} ${option}" 426 | ;; 427 | esac 428 | done <<<"${line}" 429 | done <<<"${1}" 430 | 431 | printf "%s\\n" "${short_options}${long_options}" 432 | } 433 | 434 | 435 | # _get_categories() 436 | # ( < CATEGORIES_VERBS_LIST ) 437 | # > stdout 438 | # 439 | # Get a list of categories. 440 | # 441 | # > 442 | # "category(1) [... category(N)]" 443 | # 444 | _get_categories() 445 | { 446 | local categories="" is_category=1 line 447 | 448 | while IFS='' read -r line || [[ -n "${line}" ]]; do 449 | if ((is_category)) && [[ ! "${categories}" =~ ${line} ]]; then 450 | categories="${categories} ${line}" 451 | fi 452 | is_category=$((!is_category)) 453 | done <<<"${CATEGORIES_VERBS_LIST}" 454 | 455 | [[ -z "${categories}" ]] || printf "%s " "${categories}" 456 | } 457 | 458 | 459 | # _get_category_verbs() 460 | # ( < CATEGORIES_VERBS_LIST ) 461 | # [1< category] 462 | # > stdout 463 | # 464 | # For the specified category, print a line of all verbs in that category. 465 | # If no category is specified then print a line of all verbs, for all categories. 466 | # 467 | # > 468 | # "verb(1) [... verb(N)]" 469 | # 470 | _get_category_verbs() 471 | { 472 | local category="${1:-}" is_category=1 line matched 473 | 474 | while IFS='' read -r line || [[ -n "${line}" ]]; do 475 | if ((is_category)); then 476 | matched=0 477 | if [[ -z "${category}" || ( "${category}" = "${line}" ) ]]; then 478 | matched=1 479 | fi 480 | elif ((matched)); then 481 | printf " %s " "${line}" 482 | fi 483 | is_category=$((!is_category)) 484 | done <<<"${CATEGORIES_VERBS_LIST}" 485 | } 486 | 487 | 488 | # _assignment_strip_values() 489 | # 1< new line: 1= TRUE , 0=FALSE (for all items) 490 | # < stdin 491 | # > stdout 492 | # 493 | # Takes a list of verbs or options and processes assignments, 494 | # which use the "=" assignment operator. 495 | # Remove the post-assignment regex values. 496 | # 497 | # < 498 | # "... videomem=default|512|1024|2048 ..." 499 | # > 500 | # "... videomem= ..." 501 | # 502 | _assignment_strip_values() 503 | { 504 | (($#==1)) || return 1 505 | 506 | # shellcheck disable=SC2016 507 | ${AWK} -vnew_line="${1}" \ 508 | '{ 509 | gsub("=[^[:blank:]]*","=") 510 | for (i=1 ; i<=NF ; ++i) 511 | printf("%s%s", $i, new_line ? "\n" : " ") 512 | }' 2>/dev/null 513 | } 514 | 515 | 516 | # _assignment_get_values() 517 | # 1< target 518 | # < stdin 519 | # > stdout 520 | # 521 | # Takes a list of verbs or options and processes a single specified target assignment. 522 | # Remove the prefix target name. 523 | # Convert the postfix regex values to a simple WS separated list. 524 | # 525 | # 1< target="videomem" 526 | # < 527 | # "... videomem=default|512|1024|2048 ..." 528 | # > 529 | # "default 512 1024 2048" 530 | # 531 | _assignment_get_values() 532 | { 533 | (($#==1)) || return 1 534 | 535 | # shellcheck disable=SC2016 536 | ${AWK} -vtarget_prefix="${1}" \ 537 | '{ 538 | for (i=1 ; i<=NF ; ++i) { 539 | verb_prefix=verb_suffix=verb=$i 540 | if (verb !~ "=") 541 | continue 542 | 543 | sub("=.*$", "", verb_prefix) 544 | sub("^.*=", "", verb_suffix) 545 | if (verb_prefix != target_prefix) 546 | continue 547 | 548 | gsub("[|]", " ", verb_suffix) 549 | printf("%s\n", verb_suffix) 550 | } 551 | }' 552 | } 553 | 554 | 555 | # _get_alternate_opt() 556 | # (< DUP_OPTS_LIST) 557 | # 1< search-option 558 | # > stdout (alternate-option) 559 | # 560 | # Given the specified 'search-option' find the alternate 561 | # (or inverse) operation, if one exists. 562 | # Print this to stdout. 563 | # 564 | # < option="--no-isolate" 565 | # > 566 | # "--isolate" 567 | # 568 | _get_alternate_opt() 569 | { 570 | (($#==1)) || return 1 571 | local search_opt="${1}" alt_opt dummy line opt 572 | 573 | while IFS='' read -r line || [[ -n "${line}" ]]; do 574 | # shellcheck disable=SC2034 575 | read -r opt alt_opt dummy<<<"${line}" || continue 576 | [[ -z "${opt}" || -z "${alt_opt}" ]] && continue 577 | 578 | if [[ "${opt}" = "${search_opt}" ]]; then 579 | printf "%s\\n" "${alt_opt}" 580 | elif [[ "${alt_opt}" = "${search_opt}" ]]; then 581 | printf "%s\\n" "${opt}" 582 | fi 583 | done <<<"${DUP_OPTS_LIST}" 584 | } 585 | 586 | 587 | # _get_opt_regex_matches() 588 | # (< OPTS, DUP_OPTS_LIST) 589 | # 1-N < regex [... regex] 590 | # > stdout 591 | # 592 | # Takes a list of regular expressions. 593 | # Match all available options, including duplicate / inverse options, 594 | # against each regular expression. 595 | # Dump all matching options to stdout. 596 | # 597 | # < "help" "update" 598 | # > 599 | # " -h --help --self-update --update-rollback " 600 | # 601 | _get_opt_regex_matches() 602 | { 603 | (($#>=1)) || return 1 604 | local i line opts_list search_regex 605 | 606 | # shellcheck disable=SC2207 607 | opts_list="$( echo "${OPTS}" | _assignment_strip_values 1 )" 608 | opts_list="${opts_list} 609 | ${DUP_OPTS_LIST}" 610 | 611 | while IFS='' read -r line || [[ -n "${line}" ]]; do 612 | for ((i=1 ; i<=$# ; ++i)); do 613 | # shellcheck disable=SC2124 614 | search_regex="${@:i:1}" 615 | if [[ "${line}" =~ ${search_regex} ]]; then 616 | printf "%s " "${line}" 617 | fi 618 | done 619 | done <<<"${opts_list}" 620 | printf " \\n" 621 | } 622 | 623 | 624 | # _cull_duplicate_options() 625 | # 1 < option to remove 626 | # 2-N < option list to process 627 | # > stdout 628 | # 629 | # Takes an option to remove, from an list of options. 630 | # Note: also removes duplicate or inverse option(s) (if any exist). 631 | # 632 | _cull_duplicate_options() 633 | { 634 | (($#>=1)) || return 1 635 | local opt="${1}" alt_other_alt_opt alt_opt other_alt_opt 636 | shift 1 637 | 638 | # Ignore non-option verbs, not starting with '-' 639 | if [[ "${opt#-}" == "${opt}" ]]; then 640 | echo "${@}" 641 | return 642 | fi 643 | 644 | alt_opt="$( _get_alternate_opt "${opt}" )" 645 | 646 | # Try to remove additional duplicate operations of the form: 647 | # --really-verbose = --verbose / -vv = -v 648 | # shellcheck disable=SC1001 649 | if [[ "${opt}" =~ ^\-[[:alpha:]][[:alpha:]]$ ]]; then 650 | other_alt_opt="${opt%?}" 651 | else 652 | other_alt_opt="${opt/really-/}" 653 | fi 654 | alt_other_alt_opt="$( _get_alternate_opt "${other_alt_opt}" )" 655 | echo "${@}" | _list_remove_items "${opt}" "${alt_opt}" "${other_alt_opt}" "${alt_other_alt_opt}" 656 | } 657 | 658 | 659 | ##### Define main BASH completion function ##### 660 | 661 | 662 | _winetricks() 663 | { 664 | local cur i opt test_cur test_prev reply temp_opts temp_verbs terminating_opts 665 | cur="${COMP_WORDS[COMP_CWORD]}" 666 | prev="${COMP_WORDS[COMP_CWORD-1]}" 667 | COMPREPLY=( ) 668 | 669 | # shellcheck disable=SC2086 670 | if _list_match_item "${prev}" ${CATEGORIES_LIST}; then 671 | # shellcheck disable=SC2207 672 | COMPREPLY=( $(compgen -W "${TERMINATING_LIST_COMMAND}" -- "${cur}") ) 673 | return 0 674 | fi 675 | 676 | # Handle the special case when a Wineprefix path needs to be specified. 677 | for ((i=(COMP_CWORD-1) ; i>=(COMP_CWORD-2) ; --i)); do 678 | ((i < 0)) && continue 679 | 680 | if [[ "${COMP_WORDS[i]}=" = "${COMMAND_WINEPREFIX}" ]]; then 681 | _filedir -d 682 | return 0 683 | fi 684 | done 685 | 686 | # Disable tab expansion when a terminating option or command has been typed... 687 | # shellcheck disable=SC2086 688 | 689 | terminating_opts="$(_get_opt_regex_matches ${TERMINATING_OPTS})" 690 | # shellcheck disable=SC2086 691 | if _list_match_item "${prev}" ${terminating_opts} ${COMMANDS} ${TERMINATING_LIST_COMMAND}; then 692 | # shellcheck disable=SC2207 693 | COMPREPLY=( $(compgen -W "" -- "") ) 694 | return 0 695 | fi 696 | 697 | # When an option or verb is specified then disable from being repeated via tab expansion. 698 | # For options also handle any duplicate and inverse/negated variants. 699 | # NB we don't touch the global OPTS / ALL_VERBS variables. If the user starts a new line 700 | # or deletes a term, then we must be able to revert back to the default verbs / options. 701 | temp_opts="${OPTS}" 702 | temp_verbs="${ALL_VERBS}" 703 | for ((i=1 ; i<=(COMP_CWORD-1) ; ++i)); do 704 | # shellcheck disable=SC2086 705 | temp_opts="$( _cull_duplicate_options "${COMP_WORDS[i]}" ${temp_opts} )" 706 | temp_verbs="${temp_verbs// ${COMP_WORDS[i]} / }" 707 | done 708 | 709 | # Parse assignment verbs and options, of the form 'videomem=' 710 | for ((i=(COMP_CWORD-1) ; i<=COMP_CWORD ; ++i)); do 711 | ((i<1)) && continue 712 | 713 | test_cur="${COMP_WORDS[i]}" 714 | test_prev="${COMP_WORDS[i-1]}" 715 | 716 | if [[ ( "${test_cur}" != "=" ) || ( "${test_prev}=" == "${VERB_WINVER}" ) ]]; then 717 | continue 718 | fi 719 | 720 | case "${test_prev}" in 721 | -*) 722 | reply="${temp_opts}" 723 | ;; 724 | *) 725 | reply="${COMMANDS} ${temp_verbs}" 726 | ;; 727 | esac 728 | 729 | # If the reply contains any assignment operations matching the previous term 730 | # then strip the first part of the verb (e.g. 'videomem=') from the reply term. 731 | # Replace this with all the possible assignment values, e.g.: '1024 2048 512 default'. 732 | reply="$( echo "${reply}" | _assignment_get_values "${test_prev}" )" 733 | 734 | # shellcheck disable=SC2207 735 | COMPREPLY=( $(compgen -W "${reply}" -- "${cur%=}") ) 736 | # Suppress starting a new argument when have an assignment option or command... 737 | if [[ "${COMPREPLY[0]%=}=" = "${COMPREPLY[0]}" ]]; then 738 | compopt -o nospace 739 | fi 740 | return 0 741 | done 742 | 743 | # Parse general (non-assignment) verbs and options. 744 | # Only display all available short options when the end user tab completes a hyphen character. 745 | # Only display all available long options when the end user tab completes a pair of hyphen characters. 746 | # Reduces end-user overload! 747 | case "${cur}" in 748 | --*) 749 | reply="$( echo "${temp_opts}" | _assignment_strip_values 0 )" 750 | ;; 751 | -*) 752 | reply="$( echo "${temp_opts}" | _list_remove_regex_item "${LONG_OPTION_REGEX}" )" 753 | ;; 754 | *) 755 | reply="$( echo "${COMMANDS}" "${temp_verbs}" | _assignment_strip_values 0 )" 756 | ;; 757 | esac 758 | 759 | # shellcheck disable=SC2207 760 | COMPREPLY=( $(compgen -W "${reply}" -- "${cur}") ) 761 | if [[ "${COMPREPLY[0]}" = "${VERB_WINVER}" ]]; then 762 | return 0 763 | fi 764 | # Suppress starting a new argument when have an assignment option or command... 765 | if [[ "${COMPREPLY[0]%=}=" = "${COMPREPLY[0]}" ]]; then 766 | compopt -o nospace 767 | fi 768 | return 0 769 | } 770 | 771 | # We've found no winetricks script in the end-user's PATH, so give up now ... 772 | [[ -z "${WINETRICKS_PATH}" || ! -f "${WINETRICKS_PATH}" ]] && return 1 773 | 774 | # We've tried real hard, but the end-user doesn't appear to have a working awk implementation... 775 | [[ -z "${AWK}" ]] && return 1 776 | 777 | # Setup various Global variables (when this script is initially source'd)... 778 | CATEGORIES_VERBS_LIST="$(_scrape_all_categories_and_verbs)" 779 | RAW_OPTIONS="$(_scrape_options)" 780 | COMMANDS="$(_scrape_commands)" 781 | CATEGORIES_LIST="$(_get_categories)" 782 | COMMANDS="${COMMANDS} ${CATEGORIES_LIST}" 783 | OPTS="$(_process_options "${RAW_OPTIONS}")" 784 | DUP_OPTS_LIST="$(_get_duplicate_options "${RAW_OPTIONS}")" 785 | # Convert a multi-line list of all categories and verbs into a single line of verbs... 786 | ALL_VERBS="$(_get_category_verbs "")" 787 | 788 | complete -F _winetricks winetricks 789 | -------------------------------------------------------------------------------- /src/winetricks.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Winetricks 3 | Comment=Work around problems and install applications under Wine 4 | Comment[pl]=Rozwiązuj problemy i instaluj aplikacje z użyciem Wine 5 | Comment[ru]=Решение проблем и установка программ с помощью Wine 6 | Exec=winetricks --gui 7 | Terminal=false 8 | Icon=winetricks 9 | Type=Application 10 | Categories=Utility; 11 | -------------------------------------------------------------------------------- /tests/self-update-test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Tests for --self-update functionality 4 | # 5 | # FIXME: add tests for sudo, rollback, etc. 6 | # 7 | # Copyright (C) 2019 Austin English 8 | # 9 | # This software comes with ABSOLUTELY NO WARRANTY. 10 | # 11 | # This is free software, placed under the terms of the GNU Lesser 12 | # Public License version 2.1 (or later), as published by the Free 13 | # Software Foundation. Please see the file COPYING for details. 14 | 15 | set -e 16 | set -x 17 | 18 | tmpdir="$(mktemp -d)" 19 | wt="${tmpdir}/winetricks" 20 | 21 | # Tried getting an old version via git, but that wasn't reliable. 22 | # Instead we're using a hardcoded old version. It shouldn't matter 23 | # which version is used unless an API change is made. 24 | curl --output "${wt}" https://raw.githubusercontent.com/Winetricks/winetricks/20190310/src/winetricks 25 | 26 | # Make sure the update does something: 27 | current_wt_version="$(sh "${wt}" --version)" 28 | 29 | sh "${wt}" --self-update 30 | 31 | new_wt_version="$(sh "${wt}" --version)" 32 | 33 | # Did the update work? 34 | if [ "${current_wt_version}" = "${new_wt_version}" ]; then 35 | echo "--self-update failed, version info is the same" 36 | exit 1 37 | else 38 | echo "--self-update returned success!" 39 | echo "before: ${current_wt_version}" 40 | echo "after: ${new_wt_version}" 41 | fi 42 | -------------------------------------------------------------------------------- /tests/shell-checks: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Wrapper around shellcheck/whatever other shell checkers I can find 3 | # 4 | # Copyright (C) 2016-2021 Austin English 5 | # 6 | # This software comes with ABSOLUTELY NO WARRANTY. 7 | # 8 | # This is free software, placed under the terms of the GNU Lesser 9 | # Public License version 2.1 (or later), as published by the Free 10 | # Software Foundation. Please see the file COPYING for details. 11 | 12 | set -e 13 | set -x 14 | 15 | ################################################################################################### 16 | # Helpers 17 | ################################################################################################### 18 | 19 | w_die() { 20 | echo "$* failed" 21 | exit 1 22 | } 23 | 24 | w_try() { 25 | "$@" 26 | status=$? 27 | if test ${status} -ne 0; then 28 | w_die "Note: command $* returned status ${status}. Aborting." 29 | fi 30 | } 31 | 32 | ################################################################################################### 33 | # Setup 34 | ################################################################################################### 35 | 36 | if [ ! -f Makefile ] ; then 37 | w_die "$0 should be run from the top of the source tree" 38 | fi 39 | 40 | temp="$(mktemp -d)" 41 | 42 | trap 'rm -fr "$temp"' EXIT 43 | 44 | ################################################################################################### 45 | # Test functions 46 | ################################################################################################### 47 | 48 | # tests using bashate 49 | test_bashate() { 50 | bashate="$(command -v bashate || true)" 51 | 52 | #echo "======================== Begin bashate version info ===========================" 53 | "${bashate}" --help > /dev/null || w_die "bashate must be installed!" 54 | ## bashate doesn't have a --version option (as of bashate-0.3.1) 55 | #"$bashate" --version 56 | #echo "======================== End bashate version info ===========================" 57 | 58 | # Can't ignore individual things for now, filed bug: 59 | # https://bugs.launchpad.net/bash8/+bug/1698088 60 | # E006=line length check 61 | # E044=Use [[ for non-POSIX comparisons 62 | echo "Checking ${shellscript} with bashate:" 63 | w_try "${bashate}" -i E006,E044 "${shellscript}" 64 | } 65 | 66 | # check formatting, (no trailing whitespace, no tabs) 67 | test_formatting() { 68 | # check for trailing spaces 69 | # git diff misses some stuff? (2.18.0 / 2.22.0) 70 | #w_try git diff --check --exit-code "${shellscript}" 71 | if grep -n -r '[[:blank:]]$' "${shellscript}"; then 72 | w_die "${shellscript} contains trailing spaces, remove them." 73 | fi 74 | 75 | # check for tabs 76 | if grep -n "$(printf '\t')" "${shellscript}"; then 77 | w_die "${shellscript} contains tabs, please use spaces instead." 78 | fi 79 | 80 | # make sure `do` isn't on its own line: 81 | if grep -n -w -e ' do$' -e '^do$' "${shellscript}"; then 82 | w_die "Put 'do' on the same line as 'for/while'" 83 | fi 84 | 85 | # make sure `then` isn't on its own line: 86 | if grep -n -w -e ' then$' -e '^then$' "${shellscript}"; then 87 | w_die "Put 'then' on the same line as 'if'" 88 | fi 89 | } 90 | 91 | # tests using shellcheck 92 | test_shellcheck() { 93 | shellcheck="$(command -v shellcheck || true)" 94 | 95 | echo "======================== Begin shellcheck version info ===========================" 96 | "${shellcheck}" --version > /dev/null || w_die "shellcheck must be installed!" 97 | "${shellcheck}" --version 98 | echo "======================== End shellcheck version info ===========================" 99 | 100 | echo "Checking ${shellscript} with shellcheck:" 101 | w_try "${shellcheck}" -s sh "${shellscript}" 102 | } 103 | 104 | # tests for linkcheck 105 | test_linkcheck() { 106 | # Check for uses of variables in w_download when w_linkcheck_ignore isn't set 107 | # Using w_download https://example.com/${file1} breaks src/linkcheck.sh 108 | # Escaped '$', as in '\$' are allowed 109 | 110 | test_func() { 111 | # No comment, only with protocol, skip flagged as ignored, remove indention 112 | # and flags, fix double space, get n-th arg, find vars '$' and ignore '\$'. 113 | func_name=${1} 114 | url_arg=${2} 115 | grep -E '^[^#]*'"${func_name}"' .*(http|ftp)s?://' "src/winetricks" \ 116 | | grep -vE "(w_linkcheck_ignore|WINETRICKS_SUPER_QUIET)=(TRUE|1)" \ 117 | | sed 's/^.*'"${func_name}"'/'"${func_name}"'/' \ 118 | | tr -s " " \ 119 | | cut -d " " -f "${url_arg}" \ 120 | | grep -E "([^\\\\\]+\\$)" 121 | } 122 | 123 | if ( test_func "w_download_to" 3 ) || ( test_func "w_download" 2 ); then 124 | w_die "Do not use variables in these URLs, it breaks src/linkcheck.sh" 125 | else 126 | echo "linkcheck checks passed" 127 | fi 128 | } 129 | 130 | ################################################################################################### 131 | 132 | # Test wrapper 133 | main() { 134 | # Use git ls-files if available, this prevents 'finding' scripts that aren't checked into git. 135 | # E.g., if patching foo fails, then foo.orig would also be 'found'. 136 | # The find fallback is for non git users, e.g., distros packaging winetricks or end users 137 | # running shell-checks from a tarball download. 138 | if [ -d .git ] ; then 139 | files_to_check="$(git ls-files | xargs file | grep -e 'POSIX shell script' | cut -d : -f1)" 140 | else 141 | files_to_check="$(find . -type f -exec file {} \; | grep -e 'POSIX shell script' | cut -d : -f1)" 142 | fi 143 | 144 | # Run once tests: 145 | 146 | # really, this checks winetricks, to make sure it doesn't break linkcheck.sh: 147 | test_linkcheck 148 | 149 | # Generic shellscript checks: 150 | for shellscript in ${files_to_check}; do 151 | test_formatting 152 | test_bashate 153 | test_shellcheck 154 | done 155 | } 156 | 157 | main 158 | 159 | # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 160 | -------------------------------------------------------------------------------- /tests/winetricks-dotnet-grid-test: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Test different dotnet installation combinations 3 | # 4 | # Copyright (C) 2019 Austin English 5 | # 6 | # This software comes with ABSOLUTELY NO WARRANTY. 7 | # 8 | # This is free software, placed under the terms of the GNU Lesser 9 | # Public License version 2.1 (or later), as published by the Free 10 | # Software Foundation. Please see the file COPYING for details. 11 | 12 | set -x 13 | 14 | # FIXME: put logs in $SRCDIR/out/; and use the tempdir for prefixes 15 | # FIXME: prefixes removed by default, but add an option to keep them 16 | # FIXME: make --force optional 17 | outdir="$(mktemp -d "${TMPDIR:-/tmp}/winetricks-test.XXXXXXXX")" 18 | 19 | # Note: skips dotnet20sdk, which is broken AF 20 | dotnet_verbs="$(./src/winetricks dlls list | grep ^dotnet | grep -v -e sdk -e verifier | cut -d ' ' -f1)" 21 | 22 | for verb1 in ${dotnet_verbs}; do 23 | for verb2 in ${dotnet_verbs}; do 24 | if [ "${verb1}" = "${verb2}" ]; then 25 | continue 26 | fi 27 | 28 | combo="${verb1}-${verb2}" 29 | case "${combo}" in 30 | dotnet11*-dotnet20|dotnet11*-dotnet30*|dotnet11*-dotnet35*) 31 | echo "Skipping, has a popup that needs to be automated away in -q mode (but fails anyway, so not worth it)" 32 | echo "${combo} skipped" | tee -a "${outdir}/statuslog.txt" 33 | continue;; 34 | esac 35 | 36 | export WINEPREFIX="${outdir}/prefix-${combo}" 37 | wineserver -k 38 | 39 | ./src/winetricks -q --force --verify "${verb1}" "${verb2}" 2>&1 | tee -a "${outdir}/${combo}.txt" 40 | status="$?" 41 | echo "${combo} exited ${status}" 2>&1 | tee -a "${outdir}/${combo}.txt" 42 | echo "${combo} exited ${status}" 2>&1 | tee -a "${outdir}/statuslog.txt" 43 | 44 | rm -rf "${WINEPREFIX}" 45 | done 46 | done 47 | --------------------------------------------------------------------------------