123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086 |
- #!/bin/sh
- # Name of this version of winetricks (YYYYMMDD)
- # (This doesn't change often, use the sha1sum of the file when reporting problems)
- WINETRICKS_VERSION=20160329
- # This is a utf-8 file
- # You should see an o with two dots over it here [ö]
- # You should see a micro (u with a tail) here [µ]
- # You should see a trademark symbol here [™]
- #--------------------------------------------------------------------
- #
- # Winetricks is a package manager for win32 dlls and applications on posix.
- # Features:
- # - Consists of a single shell script - no installation required
- # - Downloads packages automatically from original trusted sources
- # - Points out and works around known wine bugs automatically
- # - Both commandline and GUI operation
- # - Can install many packages in silent (unattended) mode
- # - Multiplatform; written for Linux, but supports MacOSX and Cygwin, too
- #
- # Uses the following non-Posix system tools:
- # - wine is used to execute win32 apps except on cygwin.
- # - cabextract, unrar, unzip, and 7z are needed by some verbs.
- # - aria2c, wget, or curl is needed for downloading.
- # - sha1sum or openssl is needed for verifying downloads.
- # - zenity is needed by the GUI, though it can limp along somewhat with kdialog.
- # - xdg-open (if present) or open (for Mac OSX) is used to open download pages
- # for the user when downloads cannot be fully automated.
- # - sudo is used to mount .iso images if the user cached them with -k option.
- # - perl is used to munge steam config files
- # On ubuntu, the following lines can be used to install all the prereqs:
- # sudo add-apt-repository ppa:ubuntu-wine/ppa
- # sudo apt-get update
- # sudo apt-get install cabextract p7zip unrar unzip wget wine1.7 zenity
- #
- # See http://winetricks.org for documentation and tutorials, including
- # how to contribute changes to winetricks.
- #
- #--------------------------------------------------------------------
- #
- # Copyright
- # Copyright (C) 2007-2014 Dan Kegel <dank!kegel.com>
- # Copyright (C) 2008-2016 Austin English <austinenglish!gmail.com>
- # Copyright (C) 2010-2011 Phil Blankenship <phillip.e.blankenship!gmail.com>
- # Copyright (C) 2010-2015 Shannon VanWagner <shannon.vanwagner!gmail.com>
- # Copyright (C) 2010 Belhorma Bendebiche <amro256!gmail.com>
- # Copyright (C) 2010 Eleazar Galano <eg.galano!gmail.com>
- # Copyright (C) 2010 Travis Athougies <iammisc!gmail.com>
- # Copyright (C) 2010 Andrew Nguyen
- # Copyright (C) 2010 Detlef Riekenberg
- # Copyright (C) 2010 Maarten Lankhorst
- # Copyright (C) 2010 Rico Schüller
- # Copyright (C) 2011 Scott Jackson <sjackson2!gmx.com>
- # Copyright (C) 2011 Trevor Johnson
- # Copyright (C) 2011 Franco Junio
- # Copyright (C) 2011 Craig Sanders
- # Copyright (C) 2011 Matthew Bauer <mjbauer95>
- # Copyright (C) 2011 Giuseppe Dia
- # Copyright (C) 2011 Łukasz Wojniłowicz
- # Copyright (C) 2011 Matthew Bozarth
- # Copyright (C) 2013-2014 Andrey Gusev <andrey.goosev!gmail.com>
- # Copyright (C) 2013-2015 Hillwood Yang <hillwood!opensuse.org>
- # Copyright (C) 2013,2016 André Hentschel <nerv!dawncrow.de>
- #
- # License
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU Lesser General Public
- # License as published by the Free Software Foundation; either
- # version 2 of the License, or (at your option) any later
- # version.
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU Lesser General Public License for more details.
- # You should have received a copy of the GNU Lesser General Public
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- #
- #--------------------------------------------------------------------
- # Coding standards:
- #
- # Portability:
- # - Portability matters, as this script is run on many operating systems
- # - No bash, zsh, or csh extensions; only use features from
- # the Posix standard shell and utilities; see
- # http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
- # - 'checkbashisms -p -x winetricks' should show no warnings (per Debian policy)
- # - Prefer classic sh idioms as described in e.g.
- # "Portable Shell Programming" by Bruce Blinn, ISBN: 0-13-451494-7
- # - If there is no universally available program for a needed function,
- # support the two most frequently available programs.
- # e.g. fall back to wget if curl is not available; likewise, support
- # both sha1sum and openssl.
- # - When using unix commands like cp, put options before filenames so it will
- # work on systems like MacOSX. e.g. "rm -f foo.dat", not "rm foo.dat -f"
- #
- # Formatting:
- # - Your terminal and editor must be configured for utf-8
- # If you do not see an o with two dots over it here [ö], stop!
- # - Do not use tabs in this file or any verbs.
- # - Indent 4 spaces.
- # - Try to keep line length below 80 (makes printing easier)
- # - Open curly braces ('{') and 'then' at beginning of line,
- # close curlies ('}') and 'fi' should line up with the matching { or if,
- # cases aligned with 'case' and 'esac'. For instance,
- #
- # if test "$FOO" = "bar"
- # then
- # echo "FOO is bar"
- # fi
- # case "$FOO" of
- # bar) echo "FOO is still bar" ;;
- # esac
- #
- # Commenting:
- # - Comments should explain intent in English
- # - Keep functions short and well named to reduce need for comments
- #
- # Naming:
- # Public things defined by this script, for use by verbs:
- # - Variables have uppercase names starting with W_
- # - Functions have lowercase names starting with w_
- #
- # Private things internal to this script, not for use by verbs:
- # - Local variables have lowercase names starting with uppercase _W_
- # - Global variables have uppercase names starting with WINETRICKS_
- # - Functions have lowercase names starting with winetricks_
- # FIXME: A few verbs still use winetricks-private functions or variables.
- #
- # Internationalization / localization:
- # - Important or frequently used message should be internationalized
- # so translations can be easily added. For example:
- # case $LANG in
- # de*) echo "Das ist die deutsche Meldung" ;;
- # *) echo "This is the English message" ;;
- # esac
- #
- #--------------------------------------------------------------------
- XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
- XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
- W_PREFIXES_ROOT="${WINE_PREFIXES:-$XDG_DATA_HOME/wineprefixes}"
- # For temp files before $WINEPREFIX is available:
- if [ -x "`which mktemp 2>/dev/null`" ]
- then
- W_TMP_EARLY="`mktemp -d "${TMPDIR:-/tmp}/winetricks.XXXXXXXX"`"
- W_TMP_EARLY_CLEAN=1
- elif [ -w "$TMPDIR" ]
- then
- W_TMP_EARLY="$TMPDIR"
- else
- W_TMP_EARLY="/tmp"
- fi
- #---- Public Functions ----
- # Ask permission to continue
- w_askpermission()
- {
- echo "------------------------------------------------------"
- echo "$@"
- echo "------------------------------------------------------"
- if test $W_OPT_UNATTENDED
- then
- _W_timeout="--timeout 5"
- fi
- case $WINETRICKS_GUI in
- zenity) $WINETRICKS_GUI $_W_timeout --question --title=winetricks --text="`echo $@ | sed 's,\\\\,\\\\\\\\,g'`" --no-wrap;;
- kdialog) $WINETRICKS_GUI --title winetricks --warningcontinuecancel "$@" ;;
- none) printf %s "Press Y or N, then Enter: " ; read response ; test "$response" = Y || test "$response" = y;;
- esac
- if test $? -ne 0
- then
- w_die "Operation cancelled, quitting."
- exec false
- fi
- unset _W_timeout
- }
- # Display info message. Time out quickly if user doesn't click.
- w_info()
- {
- echo "------------------------------------------------------"
- echo "$@"
- echo "------------------------------------------------------"
- _W_timeout="--timeout 3"
- case $WINETRICKS_GUI in
- zenity) $WINETRICKS_GUI $_W_timeout --info --title=winetricks --text="`echo $@ | sed 's,\\\\,\\\\\\\\,g'`" --no-wrap;;
- kdialog) $WINETRICKS_GUI --title winetricks --msgbox "$@" ;;
- none) ;;
- esac
- unset _W_timeout
- }
- # Display warning message to stderr (since it is called inside redirected code)
- w_warn()
- {
- echo "------------------------------------------------------" >&2
- echo "$@" >&2
- echo "------------------------------------------------------" >&2
- if test $W_OPT_UNATTENDED
- then
- _W_timeout="--timeout 5"
- fi
- case $WINETRICKS_GUI in
- zenity) $WINETRICKS_GUI $_W_timeout --error --title=winetricks --text="`echo $@ | sed 's,\\\\,\\\\\\\\,g'`";;
- kdialog) $WINETRICKS_GUI --title winetricks --error "$@" ;;
- none) ;;
- esac
- unset _W_timeout
- }
- # Display warning message to stderr (since it is called inside redirected code)
- # And give gui user option to cancel (for when used in a loop)
- # If user cancels, exit status is 1
- w_warn_cancel()
- {
- echo "------------------------------------------------------" >&2
- echo "$@" >&2
- echo "------------------------------------------------------" >&2
- if test $W_OPT_UNATTENDED
- then
- _W_timeout="--timeout 5"
- fi
- # Zenity has no cancel button, but will set status to 1 if you click the go-away X
- case $WINETRICKS_GUI in
- zenity) $WINETRICKS_GUI $_W_timeout --error --title=winetricks --text="`echo $@ | sed 's,\\\\,\\\\\\\\,g'`";;
- kdialog) $WINETRICKS_GUI --title winetricks --warningcontinuecancel "$@" ;;
- none) ;;
- esac
- # can't unset, it clears status
- }
- # Display fatal error message and terminate script
- w_die()
- {
- w_warn "$@"
- exit 1
- }
- # Kill all instances of a process in a safe way (Solaris killall kills _everything_)
- w_killall()
- {
- kill -s KILL `pgrep $1`
- }
- # Execute with error checking
- # Put this in front of any command that might fail
- w_try()
- {
- # "VAR=foo w_try cmd" fails to put VAR in the environment
- # with some versions of bash if w_try is a shell function?!
- # This is a problem when trying to pass environment variables to e.g. wine.
- # Adding an explicit export here works around it, so add any we use.
- export WINEDLLOVERRIDES
- printf '%s\n' "Executing $*"
- # On Vista, we need to jump through a few hoops to run commands in cygwin.
- # First, .exe's need to have the executable bit set.
- # Second, only cmd can run setup programs (presumably for security).
- # If $1 ends in .exe, we know we're running on real windows, otherwise
- # $1 would be 'wine'.
- case "$1" in
- *.exe)
- chmod +x "$1" || true # don't care if it fails
- cmd /c "$@"
- ;;
- *)
- "$@"
- ;;
- esac
- status=$?
- if test $status -ne 0
- then
- w_die "Note: command '$@' returned status $status. Aborting."
- fi
- }
- w_try_7z()
- {
- # $1 - directory to extract to
- # $2 - file to extract
- # Not always installed, use Windows 7-zip as a fallback:
- if test -x "`which 7z 2>/dev/null`"
- then
- w_try 7z x "$2" -o"$1"
- else
- w_warn "Cannot find 7z. Using Windows 7-zip instead. (You can avoid this by installing 7z, e.g. 'sudo apt-get install p7zip-full' or 'sudo yum install p7zip p7zip-plugins')."
- WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip
- # errors out if there is a space between -o and path
- w_try "$WINE" "$W_PROGRAMS_X86_WIN\\7-Zip\\7z.exe" x "`w_pathconv -w $2`" -o"`w_pathconv -w $1`"
- fi
- }
- w_try_cabextract()
- {
- # Not always installed, but shouldn't be fatal unless it's being used
- if test ! -x "`which cabextract 2>/dev/null`"
- then
- w_die "Cannot find cabextract. Please install it (e.g. 'sudo apt-get install cabextract' or 'sudo yum install cabextract')."
- fi
- w_try cabextract -q "$@"
- }
- w_try_msiexec64()
- {
- if test "$W_ARCH" != "win64"
- then
- w_die "bug: 64-bit msiexec called from a $W_ARCH prefix."
- fi
- w_try "$WINE" start /wait "$W_SYSTEM64_DLLS_WIN32/msiexec.exe" $W_UNATTENDED_SLASH_Q "$@"
- }
- w_try_regedit()
- {
- # on windows, doesn't work without cmd /c
- case "$OS" in
- "Windows_NT") cmdc="cmd /c";;
- *) unset cmdc ;;
- esac
- w_try winetricks_early_wine $cmdc regedit $W_UNATTENDED_SLASH_S "$@"
- }
- w_try_regsvr()
- {
- w_try "$WINE" regsvr32 $W_UNATTENDED_SLASH_S $@
- }
- w_try_unrar()
- {
- # $1 - zipfile to extract (keeping internal paths, in cwd)
- # Not always installed, use Windows 7-zip as a fallback:
- if test -x "`which unrar 2>/dev/null`"
- then
- w_try unrar x "$@"
- else
- w_warn "Cannot find unrar. Using Windows 7-zip instead. (You can avoid this by installing unrar, e.g. 'sudo apt-get install unrar' or 'sudo yum install unrar')."
- WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip
- w_try "$WINE" "$W_PROGRAMS_X86_WIN\\7-Zip\\7z.exe" x "`w_pathconv -w $1`"
- fi
- }
- w_try_unzip()
- {
- # $1 - directory to extract to
- # $2 - zipfile to extract
- # $3 .. $n - files to extract from the archive
- destdir="$1"
- zipfile="$2"
- shift 2
- # Not always installed, use Windows 7-zip as a fallback:
- if test -x "`which unzip 2>/dev/null`"
- then
- # FreeBSD ships unzip, but it doesn't support self compressed executables
- # If it fails ,fall back to 7-zip:
- unzip -o -q -d"$destdir" "$zipfile" "$@"
- ret=$?
- case $ret in
- 0) return ;;
- 1|*) w_warn "Unzip failed, trying Windows 7-zip instead." ;;
- esac
- else
- w_warn "Cannot find unzip. Using Windows 7-zip instead. (You can avoid this by installing unzip, e.g. 'sudo apt-get install unzip' or 'sudo yum install unzip')."
- fi
- WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip
- # errors out if there is a space between -o and path
- w_try "$WINE" "$W_PROGRAMS_X86_WIN\\7-Zip\\7z.exe" x "`w_pathconv -w $zipfile`" -o"`w_pathconv -w $destdir`" "$@"
- }
- w_read_key()
- {
- if test ! "$W_OPT_UNATTENDED"
- then
- W_KEY=dummy_to_make_autohotkey_happy
- return 0
- fi
- mkdir -p "$W_CACHE/$W_PACKAGE"
- # backwards compatible location
- # Auth doesn't belong in cache, since restoring it requires user input
- _W_keyfile="$W_CACHE/$W_PACKAGE/key.txt"
- if ! test -f "$_W_keyfile"
- then
- _W_keyfile="$WINETRICKS_AUTH/$W_PACKAGE/key.txt"
- fi
- if ! test -f "$_W_keyfile"
- then
- # read key from user
- case $LANG in
- da*) _W_keymsg="Angiv venligst registrerings-nøglen for pakken '$_PACKAGE'"
- _W_nokeymsg="Ingen nøgle angivet"
- ;;
- de*) _W_keymsg="Bitte einen Key für Paket '$W_PACKAGE' eingeben"
- _W_nokeymsg="Keinen Key eingegeben?"
- ;;
- pl*) _W_keymsg="Proszę podać klucz dla programu '$W_PACKAGE'"
- _W_nokeymsg="Nie podano klucza"
- ;;
- ru*) _W_keymsg="Пожалуйста, введите ключ для приложения '$W_PACKAGE'"
- _W_nokeymsg="Ключ не введён"
- ;;
- uk*) _W_keymsg="Будь ласка, введіть ключ для додатка '$W_PACKAGE'"
- _W_nokeymsg="Ключ не надано"
- ;;
- zh_CN*) _W_keymsg="按任意键为 '$W_PACKAGE'"
- _W_nokeymsg="No key given"
- ;;
- zh_TW*|zh_HK*) _W_keymsg="按任意鍵為 '$W_PACKAGE'"
- _W_nokeymsg="No key given"
- ;;
- *) _W_keymsg="Please enter the key for app '$W_PACKAGE'"
- _W_nokeymsg="No key given"
- ;;
- esac
- case $WINETRICKS_GUI in
- *zenity) W_KEY=`zenity --entry --text "$_W_keymsg"` ;;
- *kdialog) W_KEY=`kdialog --inputbox "$_W_keymsg"` ;;
- *xmessage) w_die "sorry, can't read key from gui with xmessage" ;;
- none) printf %s "$_W_keymsg": ; read W_KEY ;;
- esac
- if test "$W_KEY" = ""
- then
- w_die "$_W_nokeymsg"
- fi
- echo "$W_KEY" > "$_W_keyfile"
- fi
- W_RAW_KEY=`cat "$_W_keyfile"`
- W_KEY=`echo $W_RAW_KEY | tr -d '[:blank:][=-=]'`
- unset _W_keyfile _W_keymsg _W_nokeymsg
- }
- # Convert a Windows path to a Unix path quickly.
- # $1 is an absolute Windows path starting with c:\ or C:/
- # with no funny business, so we can use the simplest possible
- # algorithm.
- winetricks_wintounix()
- {
- _W_winp_="$1"
- # Remove drive letter and colon
- _W_winp="${_W_winp_#??}"
- # Prepend the location of drive c
- printf %s "$WINEPREFIX"/dosdevices/c:
- # Change backslashes to slashes
- echo $_W_winp | sed 's,\\,/,g'
- }
- # Convert between Unix path and Windows path
- # Usage is lowest common denominator of cygpath/winepath
- # so -u to convert to unix, and -w to convert to windows
- w_pathconv()
- {
- case "$OS" in
- "Windows_NT")
- # for some reason, cygpath turns some spaces into newlines?!
- cygpath "$@" | tr '\012' '\040' | sed 's/ $//'
- ;;
- *)
- case "$@" in
- -u?c:\\*|-u?C:\\*|-u?c:/*|-u?C:/*) winetricks_wintounix "$2" ;;
- *) winetricks_early_wine winepath "$@" ;;
- esac
- ;;
- esac
- }
- # Expand an environment variable and print it to stdout
- w_expand_env()
- {
- winetricks_early_wine cmd.exe /c echo "%$1%"
- }
- # get sha1sum string and set $_W_gotsum to it
- w_get_sha1sum()
- {
- local _W_file="$1"
- _W_gotsum=`$WINETRICKS_SHA1SUM < "$_W_file" | sed 's/(stdin)= //;s/ .*//'`
- }
- # verify an sha1sum
- w_verify_sha1sum()
- {
- _W_vs_wantsum=$1
- _W_vs_file=$2
- w_get_sha1sum "$_W_vs_file"
- if [ "$_W_gotsum"x != "$_W_vs_wantsum"x ]
- then
- w_die "sha1sum mismatch! Rename $_W_vs_file and try again."
- fi
- unset _W_vs_wantsum _W_vs_file _W_gotsum
- }
- # wget outputs progress messages that look like this:
- # 0K .......... .......... .......... .......... .......... 0% 823K 40s
- # This function replaces each such line with the pair of lines
- # 0%
- # # Downloading... 823K (40s)
- # It uses minimal buffering, so each line is output immediately
- # and the user can watch progress as it happens.
- winetricks_parse_wget_progress()
- {
- # Parse a percentage, a size, and a time into $1, $2 and $3
- # then use them to create the output line.
- perl -p -e \
- '$| = 1; s/^.* +([0-9]+%) +([0-9,.]+[GMKB]) +([0-9hms,.]+).*$/\1\n# Downloading... \2 (\3)/'
- }
- # Execute wget, and if in gui mode, also show a graphical progress bar
- winetricks_wget_progress()
- {
- case $WINETRICKS_GUI in
- zenity)
- # Usa a subshell so if the user clicks 'Cancel',
- # the --auto-kill kills the subshell, not the current shell
- (
- ${torify} wget "$@" 2>&1 |
- winetricks_parse_wget_progress | \
- $WINETRICKS_GUI --progress --width 400 --title="$_W_file" --auto-kill --auto-close
- )
- err=$?
- if test $err -gt 128
- then
- # 129 is 'killed by SIGHUP'
- # Sadly, --auto-kill only applies to parent process,
- # which was the subshell, not all the elements of the pipeline...
- # have to go find and kill the wget.
- # If we ran wget in the background, we could kill it more directly, perhaps...
- if pid=`ps augxw | grep ."$_W_file" | grep -v grep | awk '{print $2}'`
- then
- echo User aborted download, killing wget
- kill $pid
- fi
- fi
- return $err
- ;;
- *) ${torify} wget "$@" ;;
- esac
- }
- w_dotnet_verify()
- {
- case $1 in
- dotnet11) version="1.1" ;;
- dotnet11sp1) version="1.1 SP1" ;;
- dotnet20) version="2.0" ;;
- dotnet20sp1) version="2.0 SP1" ;;
- dotnet20sp2) version="2.0 SP2" ;;
- dotnet30) version="3.0" ;;
- dotnet30sp1) version="3.0 SP1" ;;
- dotnet35) version="3.5" ;;
- dotnet35sp1) version="3.5 SP1" ;;
- dotnet40) version="4 Client" ;;
- dotnet45) version="4.5" ;;
- dotnet452) version="4.5.2" ;;
- *) echo error ; exit 1 ;;
- esac
- w_call dotnet_verifier
- # FIXME: The logfile may be useful somewhere (or at least print the location)
- w_ahk_do "
- SetTitleMatchMode, 2
- ; FIXME; this only works the first time? Check if it's already verified somehow..
- run, netfx_setupverifier.exe /q:a /c:"setupverifier2.exe"
- winwait, Verification Utility
- ControlClick, Button1
- Control, ChooseString, NET Framework $version, ComboBox1
- ControlClick, Button1 ; Verify
- loop, 60
- {
- sleep 1000
- process, exist, setupverifier2.exe
- dn_pid=%ErrorLevel%
- if dn_pid = 0
- {
- break
- }
- ifWinExist, Verification Utility, Product verification failed
- {
- process, close, setupverifier2.exe
- exit 1
- }
- ifWinExist, Verification Utility, Product verification succeeded
- {
- process, close, setupverifier2.exe
- break
- }
- }
- "
- dn_status=$?
- }
- # Checks if the user can run the self-update/rollback commands
- winetricks_check_update_availability()
- {
- # Prevents the development file overwrite:
- if test -d "../.git"
- then
- w_warn "You're running in a dev environment. Please make a copy of the file before running this command."
- exit;
- fi
- # Checks read/write permissions on update directories
- if ! (test -r $0 && test -w $0 && test -w ${0%/*} && test -x ${0%/*})
- then
- w_warn "You don't have the proper permissions to run this command. Try again with sudo or as root."
- exit;
- fi
- }
- winetricks_selfupdate()
- {
- winetricks_check_update_availability
- _W_filename="${0##*/}"
- _W_rollback_file="${0}.bak"
- _W_update_file="${0}.update"
- _W_tmpdir=${TMPDIR:-/tmp}
- _W_tmpdir="`mktemp -d "$_W_tmpdir/$_W_filename.XXXXXXXX"`"
- w_download_to $_W_tmpdir https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
- w_try mv $_W_tmpdir/$_W_filename $_W_update_file.gz
- w_try gunzip $_W_update_file.gz
- w_try rmdir $_W_tmpdir
- w_try cp $0 $_W_rollback_file
- w_try chmod -x $_W_rollback_file
- w_try mv $_W_update_file $0
- w_try chmod +x $0
- w_warn "Update finished! The current version is '`$0 -V`'. Use 'winetricks --update-rollback' to return to the previous version."
- exit;
- }
- winetricks_selfupdate_rollback()
- {
- winetricks_check_update_availability
- _W_rollback_file="${0}.bak"
- if test -f $_W_rollback_file
- then
- w_try mv $_W_rollback_file $0
- w_try chmod +x $0
- w_warn "Rollback finished! The current version is '`$0 -V`'."
- else
- w_warn "Nothing to rollback."
- fi
- exit;
- }
- # Download a file
- # Usage: w_download_to packagename url [sha1sum [filename [cookie jar]]]
- # Caches downloads in winetrickscache/$packagename
- w_download_to()
- {
- _W_packagename="$1"
- _W_url="$2"
- _W_sum="$3"
- _W_file="$4"
- _W_cookiejar="$5"
- case $_W_packagename in
- .) w_die "bug: please do not download packages to top of cache" ;;
- esac
- if echo "$_W_url" | grep ' '
- then
- w_die "bug: please use %20 instead of literal spaces in urls, curl rejects spaces, and they make life harder for linkcheck.sh"
- fi
- if [ "$_W_file"x = ""x ]
- then
- _W_file=`basename "$_W_url"`
- fi
- _W_cache="$W_CACHE/$_W_packagename"
- if test ! -d "$_W_cache"
- then
- w_try mkdir -p "$_W_cache"
- fi
- # Try download twice
- checksum_ok=""
- tries=0
- while test $tries -lt 2
- do
- tries=`expr $tries + 1`
- if test -s "$_W_cache/$_W_file"
- then
- if test "$3"
- then
- if test $tries = 1
- then
- # The cache was full. If the file is larger than 500MB,
- # don't checksum it, that just annoys the user.
- if test `du -k "$_W_cache/$_W_file" | cut -f1` -gt 500000
- then
- checksum_ok=1
- break
- fi
- fi
- # If checksum matches, declare success and exit loop
- w_get_sha1sum "$_W_cache/$_W_file"
- if [ "$_W_gotsum"x = "$3"x ]
- then
- checksum_ok=1
- break
- fi
- if test ! "$WINETRICKS_CONTINUE_DOWNLOAD"
- then
- w_warn "Checksum for $_W_cache/$_W_file did not match, retrying download"
- mv -f "$_W_cache/$_W_file" "$_W_cache/$_W_file".bak
- fi
- else
- # file exists, no checksum known, declare success and exit loop
- break
- fi
- elif test -f "$_W_cache/$_W_file"
- then
- # zero length file, just delete before retrying
- rm "$_W_cache/$_W_file"
- fi
- _W_dl_olddir=`pwd`
- cd "$_W_cache"
- # Mac folks tend to have curl rather than wget
- # On Mac, 'which' doesn't return good exit status
- # Need to jam in --header "Accept-Encoding: gzip,deflate" else
- # redhat.com decompresses liberation-fonts.tar.gz!
- # Note: this causes other sites to compress downloads, hence
- # the kludge further down. See http://code.google.com/p/winezeug/issues/detail?id=77
- echo Downloading $_W_url to $_W_cache
- # For sites that prefer mozilla in the useragent, set W_BROWSERAGENT=1
- case "$W_BROWSERAGENT" in
- 1) _W_agent="Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" ;;
- *) _W_agent= ;;
- esac
- case "$WINETRICKS_OPT_TORIFY" in
- 1) torify=torify ; if [ ! -x "$(which torify 2>/dev/null)" ] ; then
- w_die "--torify was used, but torify is not installed, please install it." ; exit 1 ; fi ;;
- *) torify= ;;
- esac
- if [ -x "$(which aria2c 2>/dev/null)" ]
- then
- # (Slightly fancy) aria2c support
- # See https://github.com/Winetricks/winetricks/issues/612
- # --daemon=false --enable-rpc=false to ensure aria2c doesnt go into the background after starting
- # and prevent any attempts to rebind on the RPC interface specified in someone's config.
- # --input-file='' if the user config has a input-file specified then aria2 will read it and
- # attempt to download everything in that input file again.
- # --save-session='' if the user has specified save-session in their config, their session will be
- # ovewritten by the new aria2 process
- # http-accept-gzip=true (still needed) ?
- # torify needs --async-dns=false, see https://github.com/tatsuhiro-t/aria2/issues/613
- case $WINETRICKS_OPT_TORIFY in
- 1) torify aria2c --async-dns=false --continue --daemon=false --dir "$_W_cache" --enable-rpc=false --input-file='' \
- --max-connection-per-server=5 --out "$_W_file" --save-session='' --stream-piece-selector=geom "$_W_url" ;;
- *) aria2c --continue --daemon=false --dir "$_W_cache" --enable-rpc=false --input-file='' \
- --max-connection-per-server=5 --out "$_W_file" --save-session='' --stream-piece-selector=geom "$_W_url" ;;
- esac
- elif [ -x "`which wget 2>/dev/null`" ]
- then
- # Use -nd to insulate ourselves from people who set -x in WGETRC
- # [*] --retry-connrefused works around the broken sf.net mirroring
- # system when downloading corefonts
- # [*] --read-timeout is useful on the adobe server that doesn't
- # close the connection unless you tell it to (control-C or closing
- # the socket)
- winetricks_wget_progress \
- -O "$_W_file" -nd \
- -c --read-timeout=300 --retry-connrefused \
- --header "Accept-Encoding: gzip,deflate" \
- ${_W_cookiejar:+--load-cookies "$_W_cookiejar"} \
- ${_W_agent:+--user-agent="$_W_agent"} \
- "$_W_url"
- elif [ -x "`which curl 2>/dev/null`" ]
- then
- # curl doesn't get filename from the location given by the server!
- # fortunately, we know it
- $torify curl -L -o "$_W_file" -C - \
- --header "Accept-Encoding: gzip,deflate" \
- ${_W_cookiejar:+--cookie "$_W_cookiejar"} \
- ${_W_agent:+--user-agent "$_W_agent"} \
- "$_W_url"
- else
- w_die "Please install wget or aria2c (or, if those aren't available, curl)"
- fi
- if test $? = 0
- then
- # Need to decompress .exe's that are compressed, else cygwin fails
- # Also affects ttf files on github
- _W_filetype=`which file 2>/dev/null`
- case $_W_filetype-$_W_file in
- /*-*.exe|/*-*.ttf|/*-*.zip)
- case `file "$_W_file"` in
- *:*gzip*) mv "$_W_file" "$_W_file.gz"; gunzip < "$_W_file.gz" > "$_W_file";;
- esac
- esac
- # On cygwin, .exe's must be marked +x
- case "$_W_file" in
- *.exe) chmod +x "$_W_file" ;;
- esac
- cd "$_W_dl_olddir"
- unset _W_dl_olddir
- elif test $tries = 2
- then
- test -f "$_W_file" && rm "$_W_file"
- w_die "Downloading $_W_url failed"
- fi
- # Download from the Wayback Machine on second try
- _W_url="https://web.archive.org/web/$_W_url"
- done
- if test "$3" && test ! "$checksum_ok"
- then
- w_verify_sha1sum $3 "$_W_cache/$_W_file"
- fi
- }
- # Open a folder for the user in the specified directory
- # Usage: w_open_folder directory
- w_open_folder()
- {
- for _W_cmd in xdg-open open cygstart true
- do
- _W_cmdpath=`which $_W_cmd`
- if test -n "$_W_cmdpath"
- then
- break
- fi
- done
- $_W_cmd "$1" &
- unset _W_cmd _W_cmdpath
- }
- # Open a web browser for the user to the given page
- # Usage: w_open_webpage url
- w_open_webpage()
- {
- # See http://www.dwheeler.com/essays/open-files-urls.html
- for _W_cmd in xdg-open sdtwebclient cygstart open firefox true
- do
- _W_cmdpath=`which $_W_cmd`
- if test -n "$_W_cmdpath"
- then
- break
- fi
- done
- $_W_cmd "$1" &
- unset _W_cmd _W_cmdpath
- }
- # Download a file
- # Usage: w_download url [sha1sum [filename [cookie jar]]]
- # Caches downloads in winetrickscache/$W_PACKAGE
- w_download()
- {
- w_download_to $W_PACKAGE "$@"
- }
- # Download one or more files via bittorrent
- # Usage: w_download_torrent [foo.torrent]
- # Caches downloads in $W_CACHE/$W_PACKAGE, torrent files are assumed to be there
- # If no foo.torrent is given, will add ALL .torrent files in $W_CACHE/$W_PACKAGE
- w_download_torrent()
- {
- # FIXME: figure out how to extract the filename from the .torrent file
- # so callers don't need to check if the files are already downloaded.
- w_call utorrent
- UT_WINPATH="$W_CACHE_WIN\\$W_PACKAGE"
- cd "$W_CACHE/$W_PACKAGE"
- if [ "$2"x != ""x ] # foo.torrent parameter supplied
- then
- w_try "$WINE" utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$2" &
- else # grab all torrents
- for torrent in `ls *.torrent`
- do
- w_try "$WINE" utorrent "/DIRECTORY" "$UT_WINPATH" "$UT_WINPATH\\$torrent" &
- done
- fi
- # Start uTorrent, have it wait until all downloads are finished
- w_ahk_do "
- SetTitleMatchMode, 2
- winwait, Torrent
- Loop
- {
- sleep 6000
- ifwinexist, Torrent, default
- {
- ;should uTorrent be the default torrent app?
- controlclick, Button1, Torrent, default ; yes
- continue
- }
- ifwinexist, Torrent, already
- {
- ;torrent already registered, fine
- controlclick, Button1, Torrent, default ; yes
- continue
- }
- ifwinexist, Torrent, Bandwidth
- {
- ;Cancels bandwidth test on first run of uTorrent
- controlclick, Button5, Torrent, Bandwidth
- continue
- }
- ifwinexist, Torrent, version
- {
- ;Decline upgrade to newer version
- controlclick, Button3, Torrent, version
- controlclick, Button2, Torrent, version
- continue
- }
- break
- }
- ;Sets parameter to close uTorrent once all downloads are complete
- winactivate, Torrent 2.0
- send !o
- send a{Down}{Enter}
- winwaitclose, Torrent 2.0
- "
- }
- w_download_manual_to()
- {
- _W_packagename="$1"
- _W_url="$2"
- _W_file="$3"
- _W_sha1sum="$4"
- case "$media" in
- "download")
- w_info "FAIL: bug: media type is download, but w_download_manual was called. Programmer, please change verb's media type to manual_download."
- ;;
- esac
- case $LANG in
- da*) _W_dlmsg="Hent venligst filen $_W_file fra $_W_url og placér den i $W_CACHE/$_W_packagename, kør derefter dette skript.";;
- de*) _W_dlmsg="Bitte laden Sie $_W_file von $_W_url runter, stellen Sie's in $W_CACHE/$_W_packagename, dann wiederholen Sie dieses Kommando.";;
- pl*) _W_dlmsg="Proszę pobrać plik $_W_file z $_W_url, następnie umieścić go w $W_CACHE/$_W_packagename, a na końcu uruchomić ponownie ten skrypt.";;
- ru*) _W_dlmsg="Пожалуйста, скачайте файл $_W_file по адресу $_W_url, и поместите его в $W_CACHE/$_W_packagename, а затем запустите winetricks заново.";;
- uk*) _W_dlmsg="Будь ласка, звантажте $_W_file з $_W_url, розташуйте в $W_CACHE/$_W_packagename, потім запустіть скрипт знову.";;
- zh_CN*) _W_dlmsg="请从 $_W_url 下载 $_W_file,并置放于 $W_CACHE/$_W_packagename, 然后重新运行 winetricks.";;
- zh_TW*|zh_HK*) _W_dlmsg="請從 $_W_url 下載 $_W_file,并置放於 $W_CACHE/$_W_packagename, 然后重新執行 winetricks.";;
- *) _W_dlmsg="Please download $_W_file from $_W_url, place it in $W_CACHE/$_W_packagename, then re-run this script.";;
- esac
- if ! test -f "$W_CACHE/$_W_packagename/$_W_file"
- then
- mkdir -p "$W_CACHE/$_W_packagename"
- w_open_folder "$W_CACHE/$_W_packagename"
- w_open_webpage "$_W_url"
- sleep 3 # give some time for browser to open
- w_die "$_W_dlmsg"
- # FIXME: wait in loop until file is finished?
- fi
- if test "$_W_sha1sum"
- then
- w_verify_sha1sum $_W_sha1sum "$W_CACHE/$_W_packagename/$_W_file"
- fi
- unset _W_url _W_file _W_sha1sum _W_dlmsg
- }
- w_download_manual()
- {
- w_download_manual_to $W_PACKAGE "$@"
- }
- # Turn off news, overlays, and friend interaction in steam
- # Run from inside c:\Program Files\Steam
- w_steam_safemode()
- {
- cat > "$W_TMP/steamconfig.pl" <<"_EOF_"
- #!/usr/bin/env perl
- # Parse steam's localconfig.vcf, add settings to it, and write it out again
- # The file is a recursive dictionary
- #
- # FILE :== CONTAINER
- #
- # VALUE :== "name" "value" NEWLINE
- #
- # CONTAINER :== "name" NEWLINE "{" NEWLINE ( VALUE | CONTAINER ) * "}" NEWLINE
- #
- # We load it into a recursive hash.
- use strict;
- use warnings;
- sub read_into_container{
- my( $pcontainer ) = @_;
- $_ = <FILE> || w_die "Can't read first line of container";
- /{/ || w_die "First line of container was not {";
- while (<FILE>) {
- chomp;
- if (/"([^"]*)"\s*"([^"]*)"$/) {
- ${$pcontainer}{$1} = $2;
- } elsif (/"([^"]*)"$/) {
- my( %newcon, $name );
- $name = $1;
- read_into_container(\%newcon);
- ${$pcontainer}{$name} = \%newcon;
- } elsif (/}/) {
- return;
- } else {
- w_die "huh?";
- }
- }
- }
- sub dump_container{
- my( $pcontainer, $indent ) = @_;
- foreach (sort(keys(%{$pcontainer}))) {
- my( $val ) = ${$pcontainer}{$_};
- if (ref $val eq 'HASH') {
- print "${indent}\"$_\"\n";
- print "${indent}{\n";
- dump_container($val, "$indent\t");
- print "${indent}}\n";
- } else {
- print "${indent}\"${_}\"\t\t\"$val\"\n";
- }
- }
- }
- # Disable anything unsafe or annoying
- sub disable_notifications{
- my( $pcontainer ) = @_;
- ${$pcontainer}{"friends"}{"PersonaStateDesired"} = "1";
- ${$pcontainer}{"friends"}{"Notifications_ShowIngame"} = "0";
- ${$pcontainer}{"friends"}{"Sounds_PlayIngame"} = "0";
- ${$pcontainer}{"friends"}{"Notifications_ShowOnline"} = "0";
- ${$pcontainer}{"friends"}{"Sounds_PlayOnline"} = "0";
- ${$pcontainer}{"friends"}{"Notifications_ShowMessage"} = "0";
- ${$pcontainer}{"friends"}{"Sounds_PlayMessage"} = "0";
- ${$pcontainer}{"friends"}{"AutoSignIntoFriends"} = "0";
- ${$pcontainer}{"News"}{"NotifyAvailableGames"} = "0";
- ${$pcontainer}{"system"}{"EnableGameOverlay"} = "0";
- }
- # Read the file
- my(%top);
- open FILE, $ARGV[0] || w_die "can't open ".$ARGV[0];
- my($line);
- $line = <FILE> || w_die "Could not read first line from ".$ARGV[0];
- $line =~ /"UserLocalConfigStore"/ || w_die "this is not a localconfig.vdf file";
- read_into_container(\%top);
- # Modify it
- disable_notifications(\%top);
- # Write modified file
- print "\"UserLocalConfigStore\"\n";
- print "{\n";
- dump_container(\%top, "\t");
- print "}\n";
- _EOF_
- for file in userdata/*/config/localconfig.vdf
- do
- cp "$file" "$file.old"
- perl "$W_TMP"/steamconfig.pl "$file.old" > "$file"
- done
- }
- w_question()
- {
- case $WINETRICKS_GUI in
- *zenity) $WINETRICKS_GUI --entry --text "$1" ;;
- *kdialog) $WINETRICKS_GUI --inputbox "$1" ;;
- *xmessage) w_die "sorry, can't ask question with xmessage" ;;
- none) echo -n "$1" >&2 ; read W_ANSWER ; echo $W_ANSWER; unset W_ANSWER;;
- esac
- }
- # Reads steam username and password from environment, cache, or user
- # If had to ask user, cache answer.
- w_steam_getid()
- {
- #TODO: Translate
- _W_steamidmsg="Please enter your Steam login ID (not email)"
- _W_steampasswordmsg="Please enter your Steam password"
- if test ! "$W_STEAM_ID"
- then
- if test -f "$W_CACHE"/steam_userid.txt
- then
- W_STEAM_ID=`cat "$W_CACHE"/steam_userid.txt`
- else
- W_STEAM_ID=`w_question "$_W_steamidmsg"`
- echo "$W_STEAM_ID" > "$W_CACHE"/steam_userid.txt
- chmod 600 "$W_CACHE"/steam_userid.txt
- fi
- fi
- if test ! "$W_STEAM_PASSWORD"
- then
- if test -f "$W_CACHE"/steam_password.txt
- then
- W_STEAM_PASSWORD=`cat "$W_CACHE"/steam_password.txt`
- else
- W_STEAM_PASSWORD=`w_question "$_W_steampasswordmsg"`
- echo "$W_STEAM_PASSWORD" > "$W_CACHE"/steam_password.txt
- chmod 600 "$W_CACHE"/steam_password.txt
- fi
- fi
- }
- # Usage:
- # w_steam_install_game steamidnum windowtitle
- w_steam_install_game()
- {
- _W_steamid=$1
- _W_steamtitle="$2"
- w_steam_getid
- # Install the steam runtime
- WINETRICKS_OPT_SHAREDPREFIX=1 w_call steam
- # Steam puts up a bunch of windows. Here's the sequence:
- # "Steam - Updating" - wait for it to close. May appear twice in a row.
- # "Steam - Login" - wait for it to close (credentials already given on cmdline)
- # "Steam" (small window) - connecting, wait for it to close
- # "Steam" (large window) - the main window
- # "Steam - Updates News" - close it forcefully
- # "Install - $title" - send enter, click a couple checkboxes, send enter again
- # "Updating $title" - small download progress dialog
- # "Steam - Ready" game install done. (Only comes up if main window not up.)
- cd "$W_PROGRAMS_X86_UNIX/Steam"
- w_ahk_do "
- SetTitleMatchMode 2
- SetWinDelay 500
- ; Run steam once until it finishes its initial update.
- ; For me, this exits at 26%.
- run steam.exe -applaunch $_W_steamid -login $W_STEAM_ID $W_STEAM_PASSWORD
- Loop
- {
- ifWinExist, Steam - Updating
- {
- winwaitclose, Steam
- process close, Steam.exe
- sleep 1000
- ; Run a second time; let it finish updating, then kill it.
- run steam.exe
- winwait Steam - Updating
- winwaitclose
- process close, Steam.exe
- ; Run a third time, have it log in, wait until it has finished connecting
- run steam.exe -applaunch $_W_steamid -login $W_STEAM_ID $W_STEAM_PASSWORD
- }
- ifWinExist, Steam Login
- {
- break
- }
- sleep 500
- }
- ; wait for login window to close
- winwaitclose
- winwait Steam ; wait for small <<connecting>> window
- winwaitclose
- "
- if [ "$STEAM_DVD" = "TRUE" ]
- then
- w_ahk_do "
- ; Run a fourth time, have it install the app.
- run steam.exe -install ${W_ISO_MOUNT_LETTER}:\\
- "
- else
- w_ahk_do "
- ; Run a fourth time, have it install the app.
- run steam.exe -applaunch $_W_steamid
- "
- fi
- w_ahk_do "
- winwait Install - $_W_steamtitle
- if ( w_opt_unattended > 0 ) {
- send {enter} ; next (for 1st of 3 pages of install dialog)
- sleep 1000
- click 32, 91 ; uncheck create menu item?
- click 32, 119 ; check create desktop icon?
- send {enter} ; next (for 2nd of 3 pages of install dialog)
- ; dismiss any news dialogs, and click 'next' on third page of install dialog
- loop
- {
- sleep 1000
- ifwinexist Steam - Updates News
- {
- winclose
- continue
- }
- ifwinexist Install - $_W_steamtitle
- {
- winactivate
- send {enter} ; next (for 3rd of 3 pages of install dialog)
- }
- ifwinnotexist Install - $_W_steamtitle
- {
- sleep 1000
- ifwinnotexist Install - $_W_steamtitle
- break
- }
- }
- }
- "
- if [ "$STEAM_DVD" = "TRUE" ]
- then
- # Wait for install to finish
- while true
- do
- grep "SetHasAllLocalContent(true) called for $_W_steamid" "$W_PROGRAMS_X86_UNIX/Steam/logs/download_log.txt" && break
- sleep 5
- done
- fi
- w_ahk_do "
- ; For DVD's: theoretically, it should be installed now, but most games want to download updates. Do that now.
- ; For regular downloads: relaunch to coax steam into showing its nice small download progress dialog
- process close, Steam.exe
- run steam.exe -login $W_STEAM_ID $W_STEAM_PASSWORD -applaunch $_W_steamid
- winwait Ready -
- process close, Steam.exe
- "
- # Not all users need this disabled, but let's play it safe for now
- if w_workaround_wine_bug 22053 "Disabling ingame notifications to prevent game crashes on some machines."
- then
- w_steam_safemode
- fi
- unset _W_steamid _W_steamtitle
- }
- #----------------------------------------------------------------
- # Generic GOG.com installer
- # Usage: game_id game_title [other_files,size [reader_control [run_command [download_id [install_dir [installer_size_and_sha1]]]]]]
- # game_id
- # Used for main installer name and download url.
- # game_title
- # Used for AutoHotKey and installation path in bat script.
- # other_files
- # Extra installer files, in one string, space-separated.
- # reader_control
- # If set, the control id of the configuration panel checkbox controling
- # Adobe Reader installation.
- # Some games don't have it, some games do with different ids.
- # run_command
- # Used for bat script, relative to installation path.
- # download_id
- # For games which download url doesn't match their game_id
- # install_dir
- # If different from game_title
- # installer_size_and_sha1
- # exe file SHA1.
- winetricks_load_gog()
- {
- game_id="$1"
- game_title="$2"
- other_files="$3"
- reader_control="$4"
- run_command="$5"
- download_id="$6"
- install_dir="$7"
- installer_size_and_sha1="$8"
- if [ "$download_id"x = ""x ]
- then
- download_id="$game_id"
- fi
- if [ "$install_dir"x = ""x ]
- then
- install_dir="$game_title"
- fi
- installer_path="$W_CACHE/$W_PACKAGE"
- mkdir -p "$installer_path"
- installer="setup_$game_id.exe"
- if test "$installer_size_and_sha1"x = ""x
- then
- files="$installer $other_files"
- else
- files="$installer,$installer_size_and_sha1 $other_files"
- fi
- file_id=0
- for file_and_size_and_sha1 in $files
- do
- case "$file_and_size_and_sha1" in
- *,*,*)
- sha1sum=`echo $file_and_size_and_sha1 | sed "s/.*,//"`
- minsize=`echo $file_and_size_and_sha1 | sed 's/[^,]*,\([^,]*\),.*/\1/'`
- file=`echo $file_and_size_and_sha1 | sed 's/,.*//'`
- ;;
- *,*)
- sha1sum=""
- minsize=`echo $file_and_size_and_sha1 | sed 's/.*,//'`
- file=`echo $file_and_size_and_sha1 | sed 's/,.*//'`
- ;;
- *)
- sha1sum=""
- minsize=1
- file=$file_and_size_and_sha1
- ;;
- esac
- file_path="$installer_path/$file"
- if ! test -s "$file_path" || test `stat -Lc%s "$file_path"` -lt $minsize
- then
- # FIXME: bring back automated download
- w_info "You have to be logged in to gog, and you have to own the game, for the following URL to work. Otherwise it gets a 404."
- w_download_manual "https://www.gog.com/en/download/game/$download_id/$file_id" "$file"
- check_sha1=1
- filesize=`stat -Lc%s "$file_path"`
- if test $minsize -gt 1 && test $filesize -ne $minsize
- then
- check_sha1=""
- w_warn "Expected file size $minsize, please report new size $filesize."
- fi
- if test "$check_sha1" != "" && test "$sha1sum"x != ""x
- then
- w_verify_sha1sum "$sha1sum" "$file_path"
- fi
- fi
- file_id=`expr $file_id + 1`
- done
- cd "$installer_path"
- w_ahk_do "
- run $installer
- WinWait, Setup - $game_title, Start installation
- ControlGet, checkbox_state, Checked,, TCheckBox1 ; EULA
- if (checkbox_state != 1) {
- ControlClick, TCheckBox1
- }
- if (\"$reader_control\") {
- ControlClick, TMCoPShadowButton1 ; Options
- Loop, 10
- {
- ControlGet, visible, Visible,, $reader_control
- if (visible)
- {
- break
- }
- Sleep, 1000
- }
- ControlGet, checkbox_state, Checked,, $reader_control ; Unckeck Adobe/Foxit Reader
- if (checkbox_state != 0) {
- ControlClick, $reader_control
- }
- }
- ControlClick, TMCoPShadowButton2 ; Start Installation
- WinWait, Setup - $game_title, Exit Installer
- ControlClick, TMCoPShadowButton1 ; Exit Installer
- "
- }
- #----------------------------------------------------------------
- # Usage: w_mount "volume name" [filename-to-check [discnum]]
- # Some games have two volumes with identical volume names.
- # For these, please specify discnum 1 for first disc, discnum 2 for 2nd, etc.,
- # else caching can't work.
- # FIXME: should take mount option 'unhide' for poorly mastered discs
- w_mount()
- {
- if test "$3"
- then
- WINETRICKS_IMG="$W_CACHE/$W_PACKAGE/$1-$3.iso"
- else
- WINETRICKS_IMG="$W_CACHE/$W_PACKAGE/$1.iso"
- fi
- mkdir -p "$W_CACHE/$W_PACKAGE"
- if test -f "$WINETRICKS_IMG"
- then
- winetricks_mount_cached_iso
- else
- if test "$WINETRICKS_OPT_KEEPISOS" = 0 || test "$2"
- then
- while true
- do
- winetricks_mount_real_volume "$1"
- if test "$2" = "" || test -f "$W_ISO_MOUNT_ROOT/$2"
- then
- break
- else
- w_warn "Wrong disc inserted, $2 not found"
- fi
- done
- fi
- case "$WINETRICKS_OPT_KEEPISOS" in
- 1)
- winetricks_cache_iso "$1"
- winetricks_mount_cached_iso
- ;;
- esac
- fi
- }
- w_umount()
- {
- if test "$WINE" = ""
- then
- # Windows
- winetricks_load_vcdmount
- cd "$VCD_DIR"
- w_try vcdmount.exe /u
- else
- echo "Running $WINETRICKS_SUDO umount $W_ISO_MOUNT_ROOT"
- case "$WINETRICKS_SUDO" in
- gksudo)
- # -l lazy unmount in case executable still running
- $WINETRICKS_SUDO "umount -l $W_ISO_MOUNT_ROOT"
- w_try $WINETRICKS_SUDO "rm -rf $W_ISO_MOUNT_ROOT"
- ;;
- *)
- $WINETRICKS_SUDO umount -l $W_ISO_MOUNT_ROOT
- w_try $WINETRICKS_SUDO rm -rf $W_ISO_MOUNT_ROOT
- ;;
- esac
- "$WINE" eject ${W_ISO_MOUNT_LETTER}:
- rm -f "$WINEPREFIX"/dosdevices/${W_ISO_MOUNT_LETTER}:
- rm -f "$WINEPREFIX"/dosdevices/${W_ISO_MOUNT_LETTER}::
- fi
- }
- w_ahk_do()
- {
- if ! test -f "$W_CACHE/ahk/AutoHotkey.exe"
- then
- W_BROWSERAGENT=1 \
- w_download_to ahk http://www.autohotkey.com/download/AutoHotkey104805.zip b3981b13fbc45823131f69d125992d6330212f27
- w_try_unzip "$W_CACHE/ahk" "$W_CACHE/ahk/AutoHotkey104805.zip" AutoHotkey.exe AU3_Spy.exe
- chmod +x "$W_CACHE/ahk/AutoHotkey.exe"
- fi
- _W_CR=`printf \\\\r`
- cat <<_EOF_ | sed "s/\$/$_W_CR/" > "$W_TMP"/tmp.ahk
- w_opt_unattended = ${W_OPT_UNATTENDED:-0}
- $@
- _EOF_
- w_try "$WINE" "$W_CACHE_WIN\\ahk\\AutoHotkey.exe" "$W_TMP_WIN"\\tmp.ahk
- unset _W_CR
- }
- # Function to protect wine-specific sections of code.
- # Outputs a message to console explaining what's being skipped.
- # Usage:
- # if w_skip_windows name-of-operation
- # then
- # return
- # fi
- # ... do something that doesn't make sense on windows ...
- w_skip_windows()
- {
- case "$OS" in
- "Windows_NT")
- echo "Skipping operation '$1' on Windows"
- return 0
- ;;
- esac
- return 1
- }
- w_override_dlls()
- {
- w_skip_windows w_override_dlls && return
- _W_mode=$1
- case $_W_mode in
- *=*)
- w_die "w_override_dlls: unknown mode $_W_mode.
- Usage: 'w_override_dlls mode[,mode] dll ...'." ;;
- disabled)
- _W_mode="" ;;
- esac
- shift
- echo Using $_W_mode override for following DLLs: $@
- cat > "$W_TMP"/override-dll.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\DllOverrides]
- _EOF_
- while test "$1" != ""
- do
- case "$1" in
- comctl32)
- rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
- ;;
- esac
- if [ "$_W_mode" = default ]
- then
- # To delete a registry key, give an unquoted dash as value
- echo "\"*$1\"=-" >> "$W_TMP"/override-dll.reg
- else
- # Note: if you want to override even DLLs loaded with an absolute
- # path, you need to add an asterisk:
- echo "\"*$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
- #echo "\"$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
- fi
- shift
- done
- w_try_regedit "$W_TMP_WIN"\\override-dll.reg
- unset _W_mode
- }
- w_override_no_dlls()
- {
- w_skip_windows override && return
- "$WINE" regedit /d 'HKEY_CURRENT_USER\Software\Wine\DllOverrides'
- }
- w_override_all_dlls()
- {
- # Disable all known native Microsoft DLLs in favor of Wine's builtin ones
- # Generated with
- # find ~/wine-git/dlls -maxdepth 1 -type d -print | sed 's,.*/,,' | sort | fmt -50 | sed 's/$/ \\/'
- # Last updated: 2015-09-28
- w_override_dlls builtin \
- acledit aclui activeds actxprxy adsiid advapi32 \
- advpack amstream api-ms-win-core-com-l1-1-0 \
- api-ms-win-core-console-l1-1-0 \
- api-ms-win-core-datetime-l1-1-0 \
- api-ms-win-core-datetime-l1-1-1 \
- api-ms-win-core-debug-l1-1-0 \
- api-ms-win-core-debug-l1-1-1 \
- api-ms-win-core-errorhandling-l1-1-0 \
- api-ms-win-core-errorhandling-l1-1-1 \
- api-ms-win-core-errorhandling-l1-1-2 \
- api-ms-win-core-fibers-l1-1-0 \
- api-ms-win-core-fibers-l1-1-1 \
- api-ms-win-core-file-l1-1-0 \
- api-ms-win-core-file-l1-2-0 \
- api-ms-win-core-file-l2-1-0 \
- api-ms-win-core-file-l2-1-1 \
- api-ms-win-core-handle-l1-1-0 \
- api-ms-win-core-heap-l1-1-0 \
- api-ms-win-core-heap-l1-2-0 \
- api-ms-win-core-heap-obsolete-l1-1-0 \
- api-ms-win-core-interlocked-l1-1-0 \
- api-ms-win-core-interlocked-l1-2-0 \
- api-ms-win-core-io-l1-1-1 \
- api-ms-win-core-kernel32-legacy-l1-1-0 \
- api-ms-win-core-libraryloader-l1-1-0 \
- api-ms-win-core-libraryloader-l1-1-1 \
- api-ms-win-core-localization-l1-2-0 \
- api-ms-win-core-localization-l1-2-1 \
- api-ms-win-core-localization-obsolete-l1-1-0 \
- api-ms-win-core-localregistry-l1-1-0 \
- api-ms-win-core-memory-l1-1-0 \
- api-ms-win-core-memory-l1-1-1 \
- api-ms-win-core-misc-l1-1-0 \
- api-ms-win-core-namedpipe-l1-1-0 \
- api-ms-win-core-namedpipe-l1-2-0 \
- api-ms-win-core-processenvironment-l1-1-0 \
- api-ms-win-core-processenvironment-l1-2-0 \
- api-ms-win-core-processthreads-l1-1-0 \
- api-ms-win-core-processthreads-l1-1-1 \
- api-ms-win-core-processthreads-l1-1-2 \
- api-ms-win-core-profile-l1-1-0 \
- api-ms-win-core-psapi-l1-1-0 \
- api-ms-win-core-registry-l1-1-0 \
- api-ms-win-core-rtlsupport-l1-1-0 \
- api-ms-win-core-rtlsupport-l1-2-0 \
- api-ms-win-core-shlwapi-legacy-l1-1-0 \
- api-ms-win-core-string-l1-1-0 \
- api-ms-win-core-synch-l1-1-0 \
- api-ms-win-core-synch-l1-2-0 \
- api-ms-win-core-sysinfo-l1-1-0 \
- api-ms-win-core-sysinfo-l1-2-0 \
- api-ms-win-core-sysinfo-l1-2-1 \
- api-ms-win-core-threadpool-legacy-l1-1-0 \
- api-ms-win-core-timezone-l1-1-0 \
- api-ms-win-core-url-l1-1-0 \
- api-ms-win-core-util-l1-1-0 \
- api-ms-win-core-winrt-error-l1-1-0 \
- api-ms-win-core-winrt-error-l1-1-1 \
- api-ms-win-core-winrt-l1-1-0 \
- api-ms-win-core-winrt-string-l1-1-0 \
- api-ms-win-core-xstate-l2-1-0 \
- api-ms-win-crt-conio-l1-1-0 \
- api-ms-win-crt-convert-l1-1-0 \
- api-ms-win-crt-environment-l1-1-0 \
- api-ms-win-crt-filesystem-l1-1-0 \
- api-ms-win-crt-heap-l1-1-0 \
- api-ms-win-crt-locale-l1-1-0 \
- api-ms-win-crt-math-l1-1-0 \
- api-ms-win-crt-multibyte-l1-1-0 \
- api-ms-win-crt-private-l1-1-0 \
- api-ms-win-crt-process-l1-1-0 \
- api-ms-win-crt-runtime-l1-1-0 \
- api-ms-win-crt-stdio-l1-1-0 \
- api-ms-win-crt-string-l1-1-0 \
- api-ms-win-crt-time-l1-1-0 \
- api-ms-win-crt-utility-l1-1-0 \
- api-ms-win-downlevel-advapi32-l1-1-0 \
- api-ms-win-downlevel-advapi32-l2-1-0 \
- api-ms-win-downlevel-normaliz-l1-1-0 \
- api-ms-win-downlevel-ole32-l1-1-0 \
- api-ms-win-downlevel-shell32-l1-1-0 \
- api-ms-win-downlevel-shlwapi-l1-1-0 \
- api-ms-win-downlevel-shlwapi-l2-1-0 \
- api-ms-win-downlevel-user32-l1-1-0 \
- api-ms-win-downlevel-version-l1-1-0 \
- api-ms-win-eventing-provider-l1-1-0 \
- api-ms-win-ntuser-dc-access-l1-1-0 \
- api-ms-win-security-base-l1-1-0 \
- api-ms-win-security-base-l1-2-0 \
- api-ms-win-security-sddl-l1-1-0 \
- api-ms-win-service-core-l1-1-1 \
- api-ms-win-service-management-l1-1-0 \
- api-ms-win-service-winsvc-l1-2-0 apphelp \
- appwiz.cpl atl atl100 atl110 atl80 atl90 authz \
- avicap32 avifil32 avifile.dll16 avrt bcrypt \
- browseui cabinet capi2032 cards cfgmgr32 clusapi \
- combase comcat comctl32 comdlg32 commdlg.dll16 \
- comm.drv16 compobj.dll16 compstui comsvcs connect \
- credui crtdll crypt32 cryptdlg cryptdll cryptext \
- cryptnet cryptui ctapi32 ctl3d32 ctl3d.dll16 \
- ctl3dv2.dll16 d2d1 d3d10 d3d10_1 d3d10core \
- d3d11 d3d8 d3d9 d3dcompiler_33 d3dcompiler_34 \
- d3dcompiler_35 d3dcompiler_36 d3dcompiler_37 \
- d3dcompiler_38 d3dcompiler_39 d3dcompiler_40 \
- d3dcompiler_41 d3dcompiler_42 d3dcompiler_43 \
- d3dcompiler_46 d3dcompiler_47 d3dim d3drm \
- d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37 \
- d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 d3dx10_42 \
- d3dx10_43 d3dx11_42 d3dx11_43 d3dx9_24 d3dx9_25 \
- d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30 \
- d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 \
- d3dx9_36 d3dx9_37 d3dx9_38 d3dx9_39 d3dx9_40 \
- d3dx9_41 d3dx9_42 d3dx9_43 d3dxof davclnt \
- dbgeng dbghelp dciman32 ddeml.dll16 ddraw \
- ddrawex devenum dhcpcsvc difxapi dinput \
- dinput8 dispdib.dll16 dispex display.drv16 \
- dlls dmband dmcompos dmime dmloader dmscript \
- dmstyle dmsynth dmusic dmusic32 dnsapi dplay \
- dplayx dpnaddr dpnet dpnhpast dpnlobby dpvoice \
- dpwsockx drmclien dsound dssenh dswave dwmapi \
- dwrite dxdiagn dxerr8 dxerr9 dxgi dxguid dxva2 \
- evr explorerframe ext-ms-win-gdi-devcaps-l1-1-0 \
- faultrep fltlib fntcache fontsub fusion fwpuclnt \
- gameux gdi32 gdi.exe16 gdiplus glu32 gphoto2.ds \
- gpkcsp hal hhctrl.ocx hid hidclass.sys hlink \
- hnetcfg httpapi iccvid icmp ieframe ifsmgr.vxd \
- imaadp32.acm imagehlp imm32 imm.dll16 inetcomm \
- inetcpl.cpl inetmib1 infosoft initpki inkobj \
- inseng iphlpapi itircl itss joy.cpl jscript \
- jsproxy kernel32 keyboard.drv16 krnl386.exe16 \
- ksuser ktmw32 loadperf localspl localui lz32 \
- lzexpand.dll16 mapi32 mapistub mciavi32 mcicda \
- mciqtz32 mciseq mciwave mf mfplat mfreadwrite \
- mgmtapi midimap mlang mmcndmgr mmdevapi \
- mmdevldr.vxd mmsystem.dll16 monodebg.vxd \
- mountmgr.sys mouse.drv16 mpr mprapi msacm32 \
- msacm32.drv msacm.dll16 msadp32.acm msasn1 \
- mscat32 mscms mscoree msctf msctfp msdaps \
- msdmo msftedit msg711.acm msgsm32.acm mshtml \
- mshtml.tlb msi msident msimg32 msimsg msimtf \
- msisip msisys.ocx msls31 msnet32 mspatcha msrle32 \
- msscript.ocx mssign32 mssip32 mstask msvcirt \
- msvcm80 msvcm90 msvcp100 msvcp110 msvcp120 \
- msvcp120_app msvcp60 msvcp70 msvcp71 msvcp80 \
- msvcp90 msvcr100 msvcr110 msvcr120 msvcr120_app \
- msvcr70 msvcr71 msvcr80 msvcr90 msvcrt msvcrt20 \
- msvcrt40 msvcrtd msvfw32 msvidc32 msvideo.dll16 \
- mswsock msxml msxml2 msxml3 msxml4 msxml6 \
- nddeapi ndis.sys netapi32 netcfgx netprofm \
- newdev normaliz npmshtml npptools ntdll ntdsapi \
- ntoskrnl.exe ntprint objsel odbc32 odbccp32 \
- odbccu32 ole2conv.dll16 ole2disp.dll16 ole2.dll16 \
- ole2nls.dll16 ole2prox.dll16 ole2thk.dll16 \
- ole32 oleacc oleaut32 olecli32 olecli.dll16 \
- oledb32 oledlg olepro32 olesvr32 olesvr.dll16 \
- olethk32 openal32 opencl opengl32 packager pdh \
- photometadatahandler pidgen powrprof printui \
- prntvpt propsys psapi pstorec qcap qedit qmgr \
- qmgrprxy quartz query rasapi16.dll16 rasapi32 \
- rasdlg regapi resutils riched20 riched32 \
- rpcrt4 rsabase rsaenh rstrtmgr rtutils \
- samlib sane.ds scarddlg sccbase schannel \
- schedsvc scrrun scsiport.sys secur32 security \
- sensapi serialui setupapi setupx.dll16 sfc \
- sfc_os shdoclc shdocvw shell32 shell.dll16 \
- shfolder shlwapi slbcsp slc snmpapi softpub \
- sound.drv16 spoolss stdole2.tlb stdole32.tlb \
- sti storage.dll16 stress.dll16 strmbase strmiids \
- svrapi sxs system.drv16 t2embed tapi32 taskschd \
- toolhelp.dll16 traffic twain_32 twain.dll16 \
- typelib.dll16 ucrtbase unicows updspapi url \
- urlmon usbd.sys user32 userenv user.exe16 usp10 \
- uuid uxtheme vbscript vcomp vcomp100 vcomp110 \
- vcomp90 vdhcp.vxd vdmdbg ver.dll16 version \
- vmm.vxd vnbt.vxd vnetbios.vxd vssapi vtdapi.vxd \
- vwin32.vxd w32skrnl w32sys.dll16 wbemdisp \
- wbemprox webservices wer wevtapi wiaservc \
- win32s16.dll16 win87em.dll16 winaspi.dll16 \
- windebug.dll16 windowscodecs windowscodecsext \
- winealsa.drv winecoreaudio.drv winecrt0 wined3d \
- winegstreamer winejoystick.drv winemac.drv \
- winemapi winemp3.acm wineoss.drv wineps16.drv16 \
- wineps.drv wineqtdecoder winex11.drv wing32 \
- wing.dll16 winhttp wininet winmm winnls32 \
- winnls.dll16 winscard winsock.dll16 winspool.drv \
- winsta wintab32 wintab.dll16 wintrust wlanapi \
- wldap32 wmi wmiutils wmp wmvcore wnaspi32 wow32 \
- wpcap ws2_32 wshom.ocx wsnmp32 wsock32 wtsapi32 \
- wuapi wuaueng x3daudio1_1 x3daudio1_2 x3daudio1_3 \
- x3daudio1_4 x3daudio1_5 x3daudio1_6 x3daudio1_7 \
- xapofx1_1 xapofx1_3 xapofx1_4 xapofx1_5 xaudio2_7 \
- xaudio2_8 xinput1_1 xinput1_2 xinput1_3 xinput1_4 \
- xinput9_1_0 xmllite xolehlp xpsprint xpssvcs \
- # blank line so you don't have to remove the extra trailing \
- }
- w_override_app_dlls()
- {
- w_skip_windows w_override_app_dlls && return
- _W_app=$1
- shift
- _W_mode=$1
- shift
- # Fixme: handle comma-separated list of modes
- case $_W_mode in
- b|builtin) _W_mode=builtin ;;
- n|native) _W_mode=native ;;
- default) _W_mode=default ;;
- d|disabled)
- _W_mode="" ;;
- *)
- w_die "w_override_app_dlls: unknown mode $_W_mode. (want native, builtin, default, or disabled)
- Usage: 'w_override_app_dlls app mode dll ...'." ;;
- esac
- echo Using $_W_mode override for following DLLs when running $_W_app: $@
- (
- echo REGEDIT4
- echo ""
- echo "[HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\$_W_app\\DllOverrides]"
- ) > "$W_TMP"/override-dll.reg
- while test "$1" != ""
- do
- case "$1" in
- comctl32)
- rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
- ;;
- esac
- if [ "$_W_mode" = default ]
- then
- # To delete a registry key, give an unquoted dash as value
- echo "\"*$1\"=-" >> "$W_TMP"/override-dll.reg
- else
- # Note: if you want to override even DLLs loaded with an absolute
- # path, you need to add an asterisk:
- echo "\"*$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
- #echo "\"$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
- fi
- shift
- done
- w_try_regedit "$W_TMP_WIN"\\override-dll.reg
- rm "$W_TMP"/override-dll.reg
- unset _W_app _W_mode
- }
- # Has to be set in a few places...
- w_set_winver()
- {
- w_skip_windows w_set_winver && return
- # FIXME: This should really be done with winecfg, but it has no CLI options.
- # First, delete any lingering version info, otherwise it may conflict:
- (
- "$WINE" reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion" /v SubVersionNumber /f || true
- "$WINE" reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion" /v VersionNumber /f || true
- "$WINE" reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CSDVersion /f || true
- "$WINE" reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber /f || true
- "$WINE" reg delete "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion /f || true
- "$WINE" reg delete "HKLM\System\CurrentControlSet\Control\ProductOptions" /v ProductType /f || true
- "$WINE" reg delete "HKLM\System\CurrentControlSet\Control\ServiceCurrent" /v OS /f || true
- "$WINE" reg delete "HKLM\System\CurrentControlSet\Control\Windows" /v CSDVersion /f || true
- "$WINE" reg delete "HKCU\Software\Wine" /v Version /f || true
- "$WINE" reg delete "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /f || true
- ) > /dev/null 2>&1
- case $1 in
- win31)
- echo "Setting Windows version to $1"
- cat > "$W_TMP"/set-winver.reg <<_EOF_
- REGEDIT4
- [HKEY_USERS\S-1-5-4\Software\Wine]
- "Version"="win31"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-winver.reg
- return
- ;;
- win95)
- # This key is only used for win 95/98:
- echo "Setting Windows version to $1"
- cat > "$W_TMP"/set-winver.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion]
- "ProductName"="Microsoft Windows 95"
- "SubVersionNumber"=""
- "VersionNumber"="4.0.950"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-winver.reg
- return
- ;;
- win98)
- # This key is only used for win 95/98:
- echo "Setting Windows version to $1"
- cat > "$W_TMP"/set-winver.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion]
- "ProductName"="Microsoft Windows 98"
- "SubVersionNumber"=" A "
- "VersionNumber"="4.10.2222"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-winver.reg
- return
- ;;
- nt40)
- # Similar to modern version, but sets two extra keys:
- echo "Setting Windows version to $1"
- cat > "$W_TMP"/set-winver.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion]
- "CSDVersion"="Service Pack 6a"
- "CurrentBuildNumber"="1381"
- "CurrentVersion"="4.0"
- [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ProductOptions]
- "ProductType"="WinNT"
- [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceCurrent]
- "OS"="Windows_NT"
- [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows]
- "CSDVersion"=dword:00000600
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-winver.reg
- return
- ;;
- win2k)
- csdversion="Service Pack 4"
- currentbuildnumber="2195"
- currentversion="5.0"
- csdversion_hex=dword:00000400
- ;;
- winxp)
- csdversion="Service Pack 3"
- currentbuildnumber="2600"
- currentversion="5.1"
- csdversion_hex=dword:00000300
- ;;
- win2k3)
- csdversion="Service Pack 2"
- currentbuildnumber="3790"
- currentversion="5.2"
- csdversion_hex=dword:00000200
- "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "ServerNT" /f
- ;;
- vista)
- csdversion="Service Pack 2"
- currentbuildnumber="6002"
- currentversion="6.0"
- csdversion_hex=dword:00000200
- "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
- ;;
- win7)
- csdversion="Service Pack 1"
- currentbuildnumber="7601"
- currentversion="6.1"
- csdversion_hex=dword:00000100
- "$WINE" reg add "HKLM\\System\\CurrentControlSet\\Control\\ProductOptions" /v ProductType /d "WinNT" /f
- ;;
- *)
- w_die "Invalid Windows version given."
- ;;
- esac
- echo "Setting Windows version to $1"
- cat > "$W_TMP"/set-winver.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion]
- "CSDVersion"="$csdversion"
- "CurrentBuildNumber"="$currentbuildnumber"
- "CurrentVersion"="$currentversion"
- [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows]
- "CSDVersion"=$csdversion_hex
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-winver.reg
- }
- w_unset_winver()
- {
- w_set_winver winxp
- }
- # Present app $1 with the Windows personality $2
- w_set_app_winver()
- {
- w_skip_windows w_set_app_winver && return
- _W_app="$1"
- _W_version="$2"
- echo "Setting $_W_app to $_W_version mode"
- (
- echo REGEDIT4
- echo ""
- echo "[HKEY_CURRENT_USER\\Software\\Wine\\AppDefaults\\$_W_app]"
- echo "\"Version\"=\"$_W_version\""
- ) > "$W_TMP"/set-winver.reg
- w_try_regedit "$W_TMP_WIN"\\set-winver.reg
- rm "$W_TMP"/set-winver.reg
- unset _W_app
- }
- # Usage: w_wine_version OP VALUE
- # All the integer comparison operators of 'test' are supported, since 'test' does the work.
- # Example:
- # if w_wine_version -gt 1.3.2
- # then
- # ...
- # fi
- w_wine_version()
- {
- # Parse major/minor/micro/nano fields of VALUE. Ignore nano. Abort if major is not 1.
- case $2 in
- 0*|1.0|1.0.*) w_die "bug: $2 is before 1.1, we don't bother with bugs fixed that long ago" ;;
- 1.1.*) _W_minor=1; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.2) _W_minor=2; _W_micro=0;;
- 1.2.*) _W_minor=2; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.3.*) _W_minor=3; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.4) _W_minor=4; _W_micro=0;;
- 1.4.*) _W_minor=4; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.5.*) _W_minor=5; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.6|1.6-rc*) _W_minor=6; _W_micro=0;;
- 1.6.*) _W_minor=6; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.7.*) _W_minor=7; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- 1.8.*) _W_minor=8; _W_micro=`echo $2 | sed 's/.*\.//'`;;
- *) w_die "bug: unrecognized version $2";;
- esac
- # Comparing current wine version 1.$WINETRICKS_WINE_MINOR.$WINETRICKS_WINE_MICRO against 1.$_W_minor.$_W_micro
- if test $WINETRICKS_WINE_MINOR = $_W_minor
- then
- test $WINETRICKS_WINE_MICRO $1 $_W_micro || return 1
- else
- test $WINETRICKS_WINE_MINOR $1 $_W_minor || return 1
- fi
- }
- # Built-in self test for w_wine_version
- #echo Verify that version 1.3.4 is equal to itself
- #WINETRICKS_WINE_MINOR=3 WINETRICKS_WINE_MICRO=4 w_wine_version -eq 1.3.4 || w_die "fail test case wine-1.3.4 = 1.3.4"
- #echo Verify that version 1.3.4 is greater than 1.2
- #WINETRICKS_WINE_MINOR=3 WINETRICKS_WINE_MICRO=4 w_wine_version -gt 1.2 || w_die "fail test case wine-1.3.4 > wine-1.2"
- #echo Verify that version 1.6 is greater than 1.2
- #WINETRICKS_WINE_MINOR=6 WINETRICKS_WINE_MICRO=0 w_wine_version -gt 1.2 || w_die "fail test case wine-1.6 > wine-1.2"
- # Usage: w_wine_version_in range ...
- # True if wine version in any of the given ranges
- # 'range' can be
- # val1, (for >= val1)
- # ,val2 (for <= val2)
- # val1,val2 (for >= val1 && <= val2)
- w_wine_version_in()
- {
- for _W_range
- do
- _W_val1=`echo $_W_range | sed 's/,.*//'`
- _W_val2=`echo $_W_range | sed 's/.*,//'`
- # If in this range, return true
- case $_W_range in
- ,*) w_wine_version -le "$_W_val2" && unset _W_range _W_val1 _W_val2 && return 0;;
- *,) w_wine_version -ge "$_W_val1" && unset _W_range _W_val1 _W_val2 && return 0;;
- *) w_wine_version -ge "$_W_val1" && w_wine_version -le "$_W_val2" && unset _W_range _W_val1 _W_val2 && return 0;;
- esac
- done
- unset _W_range _W_val1 _W_val2
- return 1
- }
- # Built-in self test for w_wine_version_in
- #w_wine_version_in_test()
- #{
- # WINETRICKS_WINE_MINOR=$1 WINETRICKS_WINE_MICRO=$2 w_wine_version_in $3 $4 $5 $6 || w_die "fail test case wine-1.$1.$2 in $3 $4 $5 $6"
- #}
- #w_wine_version_not_in_test()
- #{
- # WINETRICKS_WINE_MINOR=$1 WINETRICKS_WINE_MICRO=$2 w_wine_version_in $3 $4 $5 $6 && w_die "fail test case wine-1.$1.$2 in $3 $4 $5 $6"
- #}
- #echo Verify that version 1.2.0 is in the range 1.2,
- #w_wine_version_in_test 2 0 1.2,
- #echo Verify that version 1.3.4 is in the range 1.2,
- #w_wine_version_in_test 3 4 1.2,
- #echo Verify that version 1.3 is not in the range ,1.2
- #w_wine_version_not_in_test 3 0 ,1.2
- #echo Verify that version 1.6-rc1 is in the range 1.2,
- #w_wine_version_in_test 6 0 1.2,
- #echo test passed
- # Usage: workaround_wine_bug bugnumber [message] [good-wine-version-range ...]
- # Returns true and outputs given msg if the workaround needs to be applied.
- # For debugging: if you want to skip a bug's workaround, put the bug number in
- # the environment variable WINETRICKS_BLACKLIST to disable it.
- w_workaround_wine_bug()
- {
- if test "$WINE" = ""
- then
- echo No need to work around wine bug $1 on windows
- return 1
- fi
- case "$2" in
- [0-9]*) w_die "bug: want message in w_workaround_wine_bug arg 2, got $2" ;;
- "") _W_msg="";;
- *) _W_msg="-- $2";;
- esac
- if test "$3" && w_wine_version_in $3 $4 $5 $6
- then
- echo Current wine does not have wine bug $1, so not applying workaround
- return 1
- fi
- case $1 in
- "$WINETRICKS_BLACKLIST")
- echo wine bug $1 workaround blacklisted, skipping
- return 1
- ;;
- esac
- case $LANG in
- da*) w_warn "Arbejder uden om wine-fejl ${1} $_W_msg" ;;
- de*) w_warn "Wine-Fehler ${1} wird umgegangen $_W_msg" ;;
- pl*) w_warn "Obchodzenie błędu w wine ${1} $_W_msg" ;;
- ru*) w_warn "Обход ошибки ${1} $_W_msg" ;;
- uk*) w_warn "Обхід помилки ${1} $_W_msg" ;;
- zh_CN*) w_warn "绕过 wine bug ${1} $_W_msg" ;;
- zh_TW*|zh_HK*) w_warn "繞過 wine bug ${1} $_W_msg" ;;
- *) w_warn "Working around wine bug ${1} $_W_msg" ;;
- esac
- winetricks_stats_log_command w_workaround_wine_bug-$1
- return 0
- }
- # Function for verbs to register themselves so they show up in the menu.
- # Example:
- # w_metadata wog games \
- # title="World of Goo Demo" \
- # pub="2D Boy" \
- # year="2008" \
- # media="download" \
- # file1="WorldOfGooDemo.1.0.exe"
- w_metadata()
- {
- case $WINETRICKS_OPT_VERBOSE in
- 2) set -x ;;
- *) set +x ;;
- esac
- if test "$installed_exe1" || test "$installed_file1" || test "$publisher" || test "$year"
- then
- w_die "bug: stray metadata tags set: somebody forgot a backslash in a w_metadata somewhere. Run with sh -x to see where."
- fi
- if winetricks_metadata_exists $1
- then
- w_die "bug: a verb named $1 already exists."
- fi
- _W_md_cmd="$1"
- _W_category=$2
- file="$WINETRICKS_METADATA/$_W_category/$1.vars"
- shift
- shift
- # Echo arguments to file, with double quotes around the values.
- # Used to use perl here, but that was too slow on cygwin.
- for arg
- do
- case "$arg" in
- installed_exe1=/*)
- w_die "bug: w_metadata $_W_md_cmd has a unix path for installed_exe1, should be a windows path";;
- installed_file1=/*)
- w_die "bug: w_metadata $_W_md_cmd has a unix path for installed_file1, should be a windows path";;
- media=download_manual)
- w_die "bug: verb $_W_md_cmd has media=download_manual, should be manual_download" ;;
- esac
- # Use longest match when stripping value,
- # and shortest match when stripping name,
- # so descriptions can have embedded equals signs
- # FIXME: backslashes get interpreted here. This screws up
- # installed_file1 fairly often. Fortunately, we can use forward
- # slashes in that variable instead of backslashes.
- echo ${arg%%=*}=\"${arg#*=}\"
- done > "$file"
- echo category='"'$_W_category'"' >> "$file"
- # If the problem described above happens, you'd see errors like this:
- # /tmp/w.dank.4650/metadata/dlls/comctl32.vars: 6: Syntax error: Unterminated quoted string
- # so check for lines that aren't properly quoted.
- # Do sanity check unless running on cygwin, where it's way too slow.
- case "$OS" in
- "Windows_NT")
- ;;
- *)
- if grep '[^"]$' "$file"
- then
- w_die "bug: w_metadata $_W_md_cmd corrupt, might need forward slashes?"
- fi
- ;;
- esac
- unset _W_md_cmd
- # Restore verbosity:
- case $WINETRICKS_OPT_VERBOSE in
- 1|2) set -x ;;
- *) set +x ;;
- esac
- }
- # Function for verbs to register their main executable [or, if name is given, other executables]
- # Deprecated. No-op for backwards compatibility
- w_declare_exe()
- {
- w_warn "w_declare_exe is deprecated, now a noop"
- }
- # Checks that a conflicting verb is not already installed in the prefix
- # Usage: w_conflicts verb_to_install conflicts
- w_conflicts()
- {
- for x in $2
- do
- if grep -qw "$x" "$WINEPREFIX/winetricks.log"
- then
- w_die "error: $1 conflicts with $x, which is already installed."
- fi
- done
- }
- # Call a verb, don't let it affect environment
- # Hope that subshell passes through exit status
- # Usage: w_do_call foo [bar] (calls load_foo bar)
- # Or: w_do_call foo=bar (also calls load_foo bar)
- # Or: w_do_call foo (calls load_foo)
- w_do_call()
- {
- (
- # Hack..
- if test $cmd = vd
- then
- load_vd $arg
- _W_status=$?
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP"
- mkdir -p "$W_TMP"
- return $_W_status
- fi
- case $1 in
- *=*) arg=`echo $1 | sed 's/.*=//'`; cmd=`echo $1 | sed 's/=.*//'`;;
- *) cmd=$1; arg=$2 ;;
- esac
- # Kludge: use Temp instead of temp to avoid \t expansion in w_try
- # but use temp in unix path because that's what wine creates, and having both temp and Temp
- # causes confusion (e.g. makes vc2005trial fail)
- # FIXME: W_TMP is also set in winetricks_set_wineprefix, can we avoid the duplication?
- W_TMP="$W_DRIVE_C/windows/temp/_$1"
- W_TMP_WIN="C:\\windows\\Temp\\_$1"
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP"
- mkdir -p "$W_TMP"
- # Unset all known used metadata values, in case this is a nested call
- unset conflicts installed_file1 installed_exe1
- if winetricks_metadata_exists $1
- then
- . "$WINETRICKS_METADATA"/*/$1.vars
- elif winetricks_metadata_exists $cmd
- then
- . "$WINETRICKS_METADATA"/*/$cmd.vars
- elif test $cmd = native || test $cmd = disabled || test $cmd = builtin || test $cmd = default
- then
- # ugly special case - can't have metadata for these verbs until we allow arbitrary parameters
- w_override_dlls $cmd $arg
- _W_status=$?
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP"
- mkdir -p "$W_TMP"
- return $_W_status
- else
- w_die "No such verb $1"
- fi
- # If needed, set the app's wineprefix
- case "$OS" in
- Windows_NT)
- ;;
- *)
- case "$category"-"$WINETRICKS_OPT_SHAREDPREFIX" in
- apps-0|benchmarks-0|games-0)
- winetricks_set_wineprefix "$cmd"
- # If it's a new wineprefix, give it metadata
- if test ! -f "$WINEPREFIX"/wrapper.cfg
- then
- echo ww_name=\"$title\" > "$WINEPREFIX"/wrapper.cfg
- fi
- ;;
- esac
- ;;
- esac
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP"
- mkdir -p "$W_TMP"
- # Don't install if already installed
- if test "$WINETRICKS_FORCE" != 1 && winetricks_is_installed $1
- then
- echo "$1 already installed, skipping"
- return 0
- fi
- # Don't install if a conflicting verb is already installed:
- if test "$WINETRICKS_FORCE" != 1 && test "$conflicts" && test -f "$WINEPREFIX/winetricks.log"
- then
- for x in $conflicts
- do
- w_conflicts $1 $x
- done
- fi
- # We'd like to get rid of W_PACKAGE, but for now, just set it as late as possible.
- W_PACKAGE=$1
- w_try load_$cmd $arg
- winetricks_stats_log_command $*
- # User-specific postinstall hook.
- # Source it so the script can call w_download() if needed.
- postfile="$WINETRICKS_POST/$1/$1-postinstall.sh"
- if test -f "$postfile"
- then
- chmod +x "$postfile"
- . "$postfile"
- fi
- # Verify install
- if test "$installed_exe1" || test "$installed_file1"
- then
- if ! winetricks_is_installed $1
- then
- w_die "$1 install completed, but installed file $_W_file_unix not found"
- fi
- fi
- # If the user specified --verify, also run gui tests:
- if test "$WINETRICKS_VERIFY" = 1 && type verify_$cmd 2> /dev/null
- then
- w_try verify_$cmd
- fi
- # Clean up after this verb
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$W_TMP"
- mkdir -p "$W_TMP"
- # Calling subshell must explicitly propagate error code with exit $?
- ) || exit $?
- }
- # If you want to check exit status yourself, use w_do_call
- w_call()
- {
- w_try w_do_call $@
- }
- w_register_font()
- {
- file=$1
- shift
- font=$1
- case "$file" in
- *.TTF|*.ttf) font="$font (TrueType)";;
- esac
- # Kludge: use _r to avoid \r expansion in w_try
- cat > "$W_TMP"/_register-font.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts]
- "$font"="$file"
- _EOF_
- # too verbose
- w_try_regedit "$W_TMP_WIN"\\_register-font.reg
- cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$.reg
- # Wine also updates the win9x fonts key, so let's do that, too
- cat > "$W_TMP"/_register-font.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Fonts]
- "$font"="$file"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\_register-font.reg
- cp "$W_TMP"/*.reg "$W_TMP_EARLY"/_reg$$-2.reg
- }
- w_register_font_replacement()
- {
- _W_alias=$1
- shift
- _W_font=$1
- # Kludge: use _r to avoid \r expansion in w_try
- cat > "$W_TMP"/_register-font-replacements.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Fonts\Replacements]
- "$_W_alias"="$_W_font"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\_register-font-replacements.reg
- unset _W_alias _W_font
- }
- w_append_path()
- {
- # Prepend $1 to the windows path in the registry.
- # Use printf %s to avoid interpreting backslashes.
- _W_NEW_PATH="`printf %s $1| sed 's,\\\\,\\\\\\\\,g'`"
- _W_WIN_PATH="`w_expand_env PATH | sed 's,\\\\,\\\\\\\\,g'`"
- sed 's/$/\r/' > "$W_TMP"/path.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session Manager\\Environment]
- "PATH"="$_W_NEW_PATH;$_W_WIN_PATH"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\path.reg
- rm -f "$W_TMP"/path.reg
- unset _W_NEW_PATH _W_WIN_PATH
- }
- #---- Private Functions ----
- winetricks_get_sha1sum_prog() {
- # Mac folks tend to not have sha1sum, but we can make do with openssl
- if [ -x "`which sha1sum 2>/dev/null`" ]
- then
- WINETRICKS_SHA1SUM="sha1sum"
- elif [ -x "`which openssl 2>/dev/null`" ]
- then
- WINETRICKS_SHA1SUM="openssl dgst -sha1"
- else
- w_die "No sha1sum utility available."
- fi
- }
- winetricks_print_version() {
- # normally done by winetricks_init, but we don't want to set up the WINEPREFIX
- # just to get the winetricks version:
- winetricks_get_sha1sum_prog
- w_get_sha1sum $0
- echo "$WINETRICKS_VERSION - sha1sum: $_W_gotsum"
- }
- # Run a small wine command for internal use
- # Handy place to put small workarounds
- winetricks_early_wine()
- {
- # The sed works around http://bugs.winehq.org/show_bug.cgi?id=25838
- # which unfortunately got released in wine-1.3.12
- # We would like to use DISPLAY= to prevent virtual desktops from
- # popping up, but that causes autohotkey's tray icon to not show up.
- # We used to use WINEDLLOVERRIDES=mshtml= here to suppress the gecko
- # autoinstall, but that yielded wineprefixes that *never* autoinstalled
- # gecko (winezeug bug 223).
- # The tr removes carriage returns so expanded variables don't have crud on the end
- # The grep works around using new wineprefixes with old wine
- WINEDEBUG=-all "$WINE" "$@" 2> "$W_TMP_EARLY"/early_wine.err.txt | ( sed 's/.*1h.=//' | tr -d '\r' | grep -v "Module not found" || true)
- }
- winetricks_detect_gui()
- {
- if test -x "`which zenity 2>/dev/null`"
- then
- WINETRICKS_GUI=zenity
- WINETRICKS_MENU_HEIGHT=500
- WINETRICKS_MENU_WIDTH=1010
- elif test -x "`which kdialog 2>/dev/null`"
- then
- echo "Zenity not found! Using kdialog as poor substitute."
- WINETRICKS_GUI=kdialog
- else
- echo "No arguments given, so tried to start GUI, but zenity not found."
- echo "Please install zenity if you want a graphical interface, or "
- echo "run with --help for more options."
- exit 1
- fi
- }
- # Detect which sudo to use
- winetricks_detect_sudo()
- {
- WINETRICKS_SUDO=sudo
- if test "$WINETRICKS_GUI" = "none"
- then
- return
- fi
- if test x"$DISPLAY" != x""
- then
- if test -x "`which gksudo 2>/dev/null`"
- then
- WINETRICKS_SUDO=gksudo
- elif test -x "`which kdesudo 2>/dev/null`"
- then
- WINETRICKS_SUDO=kdesudo
- # fall back to the su versions if sudo isn't available (Fedora, etc.):
- elif test -x "`which gksu 2>/dev/null`"
- then
- WINETRICKS_SUDO=gksu
- elif test -x "`which kdesu 2>/dev/null`"
- then
- WINETRICKS_SUDO=kdesu
- fi
- fi
- }
- winetricks_get_prefix_var()
- {
- (
- . "$W_PREFIXES_ROOT/$p/wrapper.cfg"
- # The cryptic sed is there to turn ' into '\''
- eval echo \$ww_$1 | sed "s/'/'\\\''/"
- )
- }
- # Display prefix menu, get which wineprefix the user wants to work with
- winetricks_prefixmenu()
- {
- case $LANG in
- ru*) _W_msg_title="Winetricks - выберите путь wine (wineprefix)"
- _W_msg_body='Что вы хотите сделать?'
- _W_msg_apps='Установить программу'
- _W_msg_games='Установить игру'
- _W_msg_benchmarks='Установить приложение для оценки производительности'
- _W_msg_default="Выберите путь для wine по умолчанию"
- _W_msg_unattended0="Отключить автоматическую установку"
- _W_msg_unattended1="Включить автоматическую установку"
- _W_msg_showbroken0="Спрятать нерабочие программы (например, использующие DRM)"
- _W_msg_showbroken1="Отобразить нерабочие программы (например, использующие DRM)"
- _W_msg_help="Просмотр справки (в веб браузере)"
- ;;
- uk*) _W_msg_title="Winetricks - виберіть wineprefix"
- _W_msg_body='Що Ви хочете зробити?'
- _W_msg_apps='Встановити додаток'
- _W_msg_games='Встановити гру'
- _W_msg_benchmarks='Встановити benchmark'
- _W_msg_default="Вибрати wineprefix за замовчуванням"
- _W_msg_unattended0="Вимкнути автоматичну установку"
- _W_msg_unattended1="Включити автоматичну установку"
- _W_msg_showbroken0="Сховати нестабільні додатки (наприклад з проблемами з DRM)"
- _W_msg_showbroken1="Показати нестабільні додатки (наприклад з проблемами з DRM)"
- _W_msg_help="Переглянути довідку"
- ;;
- zh_CN*) _W_msg_title="Windows 应用安装向导 - 选择一个 wine 容器"
- _W_msg_body='君欲何为?'
- _W_msg_apps='安装一个 windows 应用'
- _W_msg_games='安装一个游戏'
- _W_msg_benchmarks='安装一个基准测试软件'
- _W_msg_default="选择默认的 wine 容器"
- _W_msg_unattended0="禁用静默安装"
- _W_msg_unattended1="启用静默安装"
- _W_msg_showbroken0="隐藏有问题的程序 (例如那些有数字版权问题)"
- _W_msg_showbroken1="有问题的程序 (例如那些有数字版权问题)"
- _W_msg_help="查看帮助"
- ;;
- zh_TW*|zh_HK*) _W_msg_title="Windows 應用安裝向導 - 選取一個 wine 容器"
- _W_msg_body='君欲何為?'
- _W_msg_apps='安裝一個 windows 應用'
- _W_msg_games='安裝一個游戲'
- _W_msg_benchmarks='安裝一個基准測試軟體'
- _W_msg_default="選取預設的 wine 容器"
- _W_msg_unattended0="禁用靜默安裝"
- _W_msg_unattended1="啟用靜默安裝"
- _W_msg_showbroken0="隱藏有問題的程式 (例如那些有數字版權問題)"
- _W_msg_showbroken1="有問題的程式 (例如那些有數字版權問題)"
- _W_msg_help="檢視輔助說明"
- ;;
- de*) _W_msg_title="Winetricks - wineprefix auswählen"
- _W_msg_body='Was möchten Sie tun?'
- _W_msg_apps='Eine Programm installieren'
- _W_msg_games='Ein Spiel installieren'
- _W_msg_benchmarks='Ein Benchmark installieren'
- _W_msg_default="Standard wineprefix auswählen"
- _W_msg_unattended0="Automatische Installation deaktivieren"
- _W_msg_unattended1="Automatische Installation aktivieren"
- _W_msg_showbroken0="Defekte Programme nicht anzeigen (z.B. solche mit DRM Problemen)"
- _W_msg_showbroken1="Defekte Programme anzeigen (z.B. solche mit DRM Problemen)"
- _W_msg_help="Hilfe anzeigen"
- ;;
- *) _W_msg_title="Winetricks - choose a wineprefix"
- _W_msg_body='What do you want to do?'
- _W_msg_apps='Install an application'
- _W_msg_games='Install a game'
- _W_msg_benchmarks='Install a benchmark'
- _W_msg_default="Select the default wineprefix"
- _W_msg_unattended0="Disable silent install"
- _W_msg_unattended1="Enable silent install"
- _W_msg_showbroken0="Hide broken apps (e.g. those with DRM problems)"
- _W_msg_showbroken1="Show broken apps (e.g. those with DRM problems)"
- _W_msg_help="View help"
- ;;
- esac
- case "$W_OPT_UNATTENDED" in
- 1) _W_cmd_unattended=attended; _W_msg_unattended="$_W_msg_unattended0" ;;
- *) _W_cmd_unattended=unattended; _W_msg_unattended="$_W_msg_unattended1" ;;
- esac
- case "$W_OPT_SHOWBROKEN" in
- 1) _W_cmd_showbroken=hidebroken; _W_msg_showbroken="$_W_msg_showbroken0" ;;
- *) _W_cmd_showbroken=showbroken; _W_msg_showbroken="$_W_msg_showbroken1" ;;
- esac
- case $WINETRICKS_GUI in
- zenity)
- printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --radiolist \
- --column '' \
- --column '' \
- --column '' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- --hide-column 2 \
- FALSE help '$_W_msg_help' \
- FALSE apps '$_W_msg_apps' \
- FALSE benchmarks '$_W_msg_benchmarks' \
- FALSE games '$_W_msg_games' \
- TRUE main '$_W_msg_default' \
- " \
- > "$WINETRICKS_WORKDIR"/zenity.sh
- if ls -d $W_PREFIXES_ROOT/*/dosdevices > /dev/null 2>&1
- then
- for prefix in "$W_PREFIXES_ROOT"/*/dosdevices
- do
- q="${prefix%%/dosdevices}"
- p="${q##*/}"
- if test -f "$W_PREFIXES_ROOT/$p/wrapper.cfg"
- then
- _W_msg_name="$p (`winetricks_get_prefix_var name`)"
- else
- _W_msg_name="$p"
- fi
- case $LANG in
- zh_CN*) printf %s " FALSE prefix='$p' '选择管理 $_W_msg_name' " ;;
- zh_TW*|zh_HK*) printf %s " FALSE prefix='$p' '選擇管理 $_W_msg_name' " ;;
- de*) printf %s " FALSE prefix='$p' '$_W_msg_name auswählen' " ;;
- *) printf %s " FALSE prefix='$p' 'Select $_W_msg_name' " ;;
- esac
- done >> "$WINETRICKS_WORKDIR"/zenity.sh
- fi
- printf %s " FALSE $_W_cmd_unattended '$_W_msg_unattended'" >> "$WINETRICKS_WORKDIR"/zenity.sh
- printf %s " FALSE $_W_cmd_showbroken '$_W_msg_showbroken'" >> "$WINETRICKS_WORKDIR"/zenity.sh
- sh "$WINETRICKS_WORKDIR"/zenity.sh | tr '|' ' '
- ;;
- kdialog)
- (
- printf %s "kdialog \
- --geometry 600x400+100+100 \
- --title '$_W_msg_title' \
- --separate-output \
- --radiolist '$_W_msg_body' \
- help '$_W_msg_help' off \
- games '$_W_msg_games' off \
- benchmarks '$_W_msg_benchmarks' off \
- apps '$_W_msg_apps' off \
- main '$_W_msg_default' on "
- if ls -d "$W_PREFIXES_ROOT"/*/dosdevices > /dev/null 2>&1
- then
- for prefix in "$W_PREFIXES_ROOT"/*/dosdevices
- do
- q="${prefix%%/dosdevices}"
- p="${q##*/}"
- if test -f "$W_PREFIXES_ROOT/$p/wrapper.cfg"
- then
- _W_msg_name="$p (`winetricks_get_prefix_var name`)"
- else
- _W_msg_name="$p"
- fi
- printf %s "prefix='$p' 'Select $_W_msg_name' off "
- done
- fi
- ) > "$WINETRICKS_WORKDIR"/kdialog.sh
- sh "$WINETRICKS_WORKDIR"/kdialog.sh
- ;;
- esac
- unset _W_msg_help _W_msg_body _W_msg_title _W_msg_new _W_msg_default _W_msg_name
- }
- # Display main menu, get which submenu the user wants
- winetricks_mainmenu()
- {
- case $LANG in
- da*) _W_msg_title='Vælg en pakke-kategori'
- _W_msg_body='Hvad ønsker du at gøre?'
- _W_msg_dlls="Install a Windows DLL"
- _W_msg_fonts='Install a font'
- _W_msg_settings='Change Wine settings'
- _W_msg_winecfg='Run winecfg'
- _W_msg_regedit='Run regedit'
- _W_msg_taskmgr='Run taskmgr'
- _W_msg_uninstaller='Run uninstaller'
- _W_msg_shell='Run a commandline shell (for debugging)'
- _W_msg_folder='Browse files'
- _W_msg_annihilate="Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX"
- ;;
- de*) _W_msg_title='Pakettyp auswählen'
- _W_msg_body='Was möchten Sie tun?'
- _W_msg_dlls="Windows-DLL installieren"
- _W_msg_fonts='Schriftart installieren'
- _W_msg_settings='Wine Einstellungen ändern'
- _W_msg_winecfg='winecfg starten'
- _W_msg_regedit='regedit starten'
- _W_msg_taskmgr='taskmgr starten'
- _W_msg_uninstaller='uninstaller starten'
- _W_msg_shell='Eine Kommandozeile zum debuggen starten'
- _W_msg_folder='Ordner durchsuchen'
- _W_msg_annihilate="ALLE DATEIEN UND PROGRAMME IN DIESEM WINEPREFIX Löschen"
- ;;
- pl*) _W_msg_title="Winetricks - obecny prefiks to \"$WINEPREFIX\""
- _W_msg_body='What would you like to do to this wineprefix?'
- _W_msg_dlls="Zainstaluj Windowsową bibliotekę DLL lub komponent"
- _W_msg_fonts='Zainstaluj czcionkę'
- _W_msg_settings='Zmień ustawienia'
- _W_msg_winecfg='Uruchom winecfg'
- _W_msg_regedit='Uruchom regedit'
- _W_msg_taskmgr='Uruchom taskmgr'
- _W_msg_uninstaller='Run uninstaller'
- _W_msg_shell='Uruchom powłokę wiersza poleceń (dla debugowania)'
- _W_msg_folder='Przeglądaj pliki'
- _W_msg_annihilate="Usuń WSZYSTKIE DANE I APLIKACJE WEWNĄTRZ TEGO WINEPREFIXA"
- ;;
- ru*) _W_msg_title="Winetricks - текущий путь для wine (wineprefix) \"$WINEPREFIX\""
- _W_msg_body='Что вы хотите сделать с этим wineprefix?'
- _W_msg_dlls="Установить DLL библиотеку или компонент Windows"
- _W_msg_fonts='Установить шрифт'
- _W_msg_settings='Поменять настройки'
- _W_msg_winecfg='Запустить winecfg (редактор настроек wine)'
- _W_msg_regedit='Запустить regedit (редактор рееста)'
- _W_msg_taskmgr='Запустить taskmgr (менеджер задач)'
- _W_msg_uninstaller='Запустить uninstaller (деинсталятор)'
- _W_msg_shell='Запустить графический терминал (для отладки)'
- _W_msg_folder='Проводник файлов'
- _W_msg_annihilate="Удалить ВСЕ ДАННЫЕ И ПРИЛОЖЕНИЯ В ЭТОМ WINEPREFIX"
- ;;
- uk*) _W_msg_title="Winetricks - поточний prefix \"$WINEPREFIX\""
- _W_msg_body='Що Ви хочете зробити для цього wineprefix?'
- _W_msg_dlls="Встановити Windows DLL чи компонент(и)"
- _W_msg_fonts='Встановити шрифт'
- _W_msg_settings='Змінити налаштування'
- _W_msg_winecfg='Запустити winecfg'
- _W_msg_regedit='Запустити regedit'
- _W_msg_taskmgr='Запустити taskmgr'
- _W_msg_uninstaller='Run uninstaller'
- _W_msg_shell='Запуск командної оболонки (для налагодження)'
- _W_msg_folder='Перегляд файлів'
- _W_msg_annihilate="Видалити УСІ ДАНІ ТА ПРОГРАМИ З ЦЬОГО WINEPREFIX"
- ;;
- zh_CN*) _W_msg_title="Windows 应用安装向导 - 当前容器路径是 \"$WINEPREFIX\""
- _W_msg_body='管理当前容器'
- _W_msg_dlls="安装 Windows DLL 或组件"
- _W_msg_fonts='安装字体'
- _W_msg_settings='修改设置'
- _W_msg_winecfg='运行 winecfg'
- _W_msg_regedit='运行注册表'
- _W_msg_taskmgr='运行任务管理器'
- _W_msg_uninstaller='运行卸载程序'
- _W_msg_shell='运行命令提示窗口 (作为调试)'
- _W_msg_folder='浏览容器中的文件'
- _W_msg_annihilate="删除当前容器所有相关文件,包括启动器,完全卸载"
- ;;
- zh_TW*|zh_HK*) _W_msg_title="Windows 應用裝載向導 - 目前容器路徑是 \"$WINEPREFIX\""
- _W_msg_body='管理目前容器'
- _W_msg_dlls="裝載 Windows DLL 或套件"
- _W_msg_fonts='裝載字型'
- _W_msg_settings='修改設定'
- _W_msg_winecfg='執行 winecfg'
- _W_msg_regedit='執行註冊表'
- _W_msg_taskmgr='執行工作管理者'
- _W_msg_uninstaller='執行反安裝程式'
- _W_msg_shell='執行指令輔助說明視窗 (作為除錯)'
- _W_msg_folder='瀏覽容器中的檔案'
- _W_msg_annihilate="移除目前容器所有相依檔案,包括啟動器,完全卸載"
- ;;
- *) _W_msg_title="Winetricks - current prefix is \"$WINEPREFIX\""
- _W_msg_body='What would you like to do to this wineprefix?'
- _W_msg_dlls="Install a Windows DLL or component"
- _W_msg_fonts='Install a font'
- _W_msg_settings='Change settings'
- _W_msg_winecfg='Run winecfg'
- _W_msg_regedit='Run regedit'
- _W_msg_taskmgr='Run taskmgr'
- _W_msg_uninstaller='Run uninstaller'
- _W_msg_shell='Run a commandline shell (for debugging)'
- _W_msg_folder='Browse files'
- _W_msg_annihilate="Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX"
- ;;
- esac
- case $WINETRICKS_GUI in
- zenity)
- (
- printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --radiolist \
- --column '' \
- --column '' \
- --column '' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- --hide-column 2 \
- FALSE dlls '$_W_msg_dlls' \
- FALSE fonts '$_W_msg_fonts' \
- FALSE settings '$_W_msg_settings' \
- FALSE winecfg '$_W_msg_winecfg' \
- FALSE regedit '$_W_msg_regedit' \
- FALSE taskmgr '$_W_msg_taskmgr' \
- FALSE uninstaller '$_W_msg_uninstaller' \
- FALSE shell '$_W_msg_shell' \
- FALSE folder '$_W_msg_folder' \
- FALSE annihilate '$_W_msg_annihilate' \
- "
- ) > "$WINETRICKS_WORKDIR"/zenity.sh
- sh "$WINETRICKS_WORKDIR"/zenity.sh | tr '|' ' '
- ;;
- kdialog)
- $WINETRICKS_GUI --geometry 600x400+100+100 \
- --title "$_W_msg_title" \
- --separate-output \
- --radiolist \
- "$_W_msg_body"\
- dlls "$_W_msg_dlls" off \
- fonts "$_W_msg_fonts" off \
- settings "$_W_msg_settings" off \
- winecfg "$_W_msg_winecfg" off \
- regedit "$_W_msg_regedit" off \
- taskmgr "$_W_msg_taskmgr" off \
- uninstaller "$_W_msg_uninstaller" off \
- shell "$_W_msg_shell" off \
- folder "$_W_msg_folder" off \
- annihilate "$_W_msg_annihilate" off \
- $_W_cmd_unattended "$_W_msg_unattended" off \
- ;;
- esac
- unset _W_msg_body _W_msg_title _W_msg_apps _W_msg_benchmarks _W_msg_dlls _W_msg_games _W_msg_settings
- }
- winetricks_settings_menu()
- {
- # FIXME: these translations should really be centralized/reused:
- case $LANG in
- da*) _W_msg_title='Vælg en pakke'
- _W_msg_body='Which settings would you like to change?'
- ;;
- de*) _W_msg_title="Winetricks - Aktueller Prefix ist \"$WINEPREFIX\""
- _W_msg_body='Welche Einstellungen möchten Sie ändern?'
- ;;
- pl*) _W_msg_title="Winetricks - obecny prefiks to \"$WINEPREFIX\""
- _W_msg_body='Which settings would you like to change?'
- ;;
- ru*) _W_msg_title="Winetricks - текущий путь wine (wineprefix) \"$WINEPREFIX\""
- _W_msg_body='Какие настройки вы хотите изменить?'
- ;;
- uk*) _W_msg_title="Winetricks - поточний prefix \"$WINEPREFIX\""
- _W_msg_body='Які налаштування Ви хочете змінити?'
- ;;
- zh_CN*) _W_msg_title="Windows 应用安装向导 - 当前容器路径是 \"$WINEPREFIX\""
- _W_msg_body='君欲更改哪项设置?'
- ;;
- zh_TW*|zh_HK*) _W_msg_title="Windows 應用裝載向導 - 目前容器路徑是 \"$WINEPREFIX\""
- _W_msg_body='君欲變更哪項設定?'
- ;;
- *) _W_msg_title="Winetricks - current prefix is \"$WINEPREFIX\""
- _W_msg_body='Which settings would you like to change?'
- ;;
- esac
- case $WINETRICKS_GUI in
- zenity)
- case $LANG in
- da*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Pakke \
- --column Navn \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- de*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Einstellung \
- --column Name \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- pl*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Ustawienie \
- --column Nazwa \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- ru*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Установка \
- --column Имя \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- uk*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Установка \
- --column Назва \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- zh_CN*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column 设置 \
- --column 标题 \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- zh_TW*|zh_HK*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column 設定 \
- --column 標題 \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- *) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Setting \
- --column Title \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- esac > "$WINETRICKS_WORKDIR"/zenity.sh
- for metadatafile in "$WINETRICKS_METADATA"/$WINETRICKS_CURMENU/*.vars
- do
- code=`winetricks_metadata_basename "$metadatafile"`
- (
- title='?'
- author='?'
- . "$metadatafile"
- # Begin 'title' strings localization code
- case $LANG in
- uk*) case "$title_uk" in
- "") ;;
- *) title="$title_uk";;
- esac
- esac
- # End of code
- printf "%s %s %s %s" " " FALSE \
- $code \
- "\"$title\""
- )
- done >> "$WINETRICKS_WORKDIR"/zenity.sh
- sh "$WINETRICKS_WORKDIR"/zenity.sh | tr '|' ' '
- ;;
- kdialog)
- (
- printf %s "kdialog --geometry 600x400+100+100 --title '$_W_msg_title' --separate-output --checklist '$_W_msg_body' "
- winetricks_list_all | sed 's/\([^ ]*\) *\(.*\)/\1 "\1 - \2" off /' | tr '\012' ' '
- ) > "$WINETRICKS_WORKDIR"/kdialog.sh
- sh "$WINETRICKS_WORKDIR"/kdialog.sh
- ;;
- esac
- unset _W_msg_body _W_msg_title
- }
- # Display the current menu, output list of verbs to execute to stdout
- winetricks_showmenu()
- {
- case $LANG in
- da*) _W_msg_title='Vælg en pakke'
- _W_msg_body='Vilken pakke vil du installere?'
- _W_cached="cached"
- ;;
- de*) _W_msg_title="Winetricks - Aktueller Prefix ist \"$WINEPREFIX\""
- _W_msg_body='Welche Paket(e) möchten Sie installieren?'
- _W_cached="gecached"
- ;;
- pl*) _W_msg_title="Winetricks - obecny prefiks to \"$WINEPREFIX\""
- _W_msg_body='Które paczki chesz zainstalować?'
- _W_cached="zarchiwizowane"
- ;;
- ru*) _W_msg_title="Winetricks - текущий путь wine (wineprefix) \"$WINEPREFIX\""
- _W_msg_body='Какое приложение(я) вы хотите установить?'
- _W_cached="в кэше"
- ;;
- uk*) _W_msg_title="Winetricks - поточний prefix \"$WINEPREFIX\""
- _W_msg_body='Які пакунки Ви хочете встановити?'
- _W_cached="кешовано"
- ;;
- zh_CN*) _W_msg_title="Windows 应用安装向导 - 当前容器路径是 \"$WINEPREFIX\""
- _W_msg_body='君欲安装何种应用?'
- _W_cached="已缓存"
- ;;
- zh_TW*|zh_HK*) _W_msg_title="Windows 應用裝載向導 - 目前容器路徑是 \"$WINEPREFIX\""
- _W_msg_body='君欲裝載何種應用?'
- _W_cached="已緩存"
- ;;
- *) _W_msg_title="Winetricks - current prefix is \"$WINEPREFIX\""
- _W_msg_body='Which package(s) would you like to install?'
- _W_cached="cached"
- ;;
- esac
- case $WINETRICKS_GUI in
- zenity)
- case $LANG in
- da*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Pakke \
- --column Navn \
- --column Udgiver \
- --column År \
- --column Medie \
- --column Status \
- --column 'Size (MB)' \
- --column 'Time (sec)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- de*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Paket \
- --column Name \
- --column Herausgeber \
- --column Jahr \
- --column Media \
- --column Status \
- --column 'Größe (MB)' \
- --column 'Zeit (sec)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- pl*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Paczka \
- --column Nazwa \
- --column Wydawca \
- --column Rok \
- --column Media \
- --column Status \
- --column 'Rozmiar (MB)' \
- --column 'Czas (sek)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- ru*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Пакет \
- --column Название \
- --column Издатель \
- --column Год \
- --column Источник \
- --column Статус \
- --column 'Размер (МБ)' \
- --column 'Время (сек)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- uk*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Пакунок \
- --column Назва \
- --column Видавець \
- --column Рік \
- --column Медіа \
- --column Статус \
- --column 'Розмір (МБ)' \
- --column 'Час (сек)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- zh_CN*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column 包名 \
- --column 软件名 \
- --column 发行商 \
- --column 发行年 \
- --column 媒介 \
- --column 状态 \
- --column '文件大小 (MB)' \
- --column '时间 (秒)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- zh_TW*|zh_HK*) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column 包名 \
- --column 軟體名 \
- --column 發行商 \
- --column 發行年 \
- --column 媒介 \
- --column 狀態 \
- --column '檔案大小 (MB)' \
- --column '時間 (秒)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- *) printf %s "zenity \
- --title '$_W_msg_title' \
- --text '$_W_msg_body' \
- --list \
- --checklist \
- --column '' \
- --column Package \
- --column Title \
- --column Publisher \
- --column Year \
- --column Media \
- --column Status \
- --column 'Size (MB)' \
- --column 'Time (sec)' \
- --height $WINETRICKS_MENU_HEIGHT \
- --width $WINETRICKS_MENU_WIDTH \
- "
- ;;
- esac > "$WINETRICKS_WORKDIR"/zenity.sh
- > "$WINETRICKS_WORKDIR"/installed.txt
- for metadatafile in "$WINETRICKS_METADATA"/$WINETRICKS_CURMENU/*.vars
- do
- code=`winetricks_metadata_basename "$metadatafile"`
- (
- title='?'
- author='?'
- . "$metadatafile"
- if test "$W_OPT_SHOWBROKEN" = 1 || test "$wine_showstoppers" = ""
- then
- # Compute cached and downloadable flags
- flags=""
- winetricks_is_cached $code && flags="$_W_cached"
- installed=FALSE
- if winetricks_is_installed $code
- then
- installed=TRUE
- echo $code >> "$WINETRICKS_WORKDIR"/installed.txt
- fi
- printf %s " $installed \
- $code \
- \"$title\" \
- \"$publisher\" \
- \"$year\" \
- \"$media\" \
- \"$flags\" \
- \"$size_MB\" \
- \"$time_sec\" \
- "
- fi
- )
- done >> "$WINETRICKS_WORKDIR"/zenity.sh
- # Filter out any verb that's already installed
- sh "$WINETRICKS_WORKDIR"/zenity.sh |
- tr '|' '\012' |
- fgrep -v -x -f "$WINETRICKS_WORKDIR"/installed.txt |
- tr '\012' ' '
- ;;
- kdialog)
- (
- printf %s "kdialog --geometry 600x400+100+100 --title '$_W_msg_title' --separate-output --checklist '$_W_msg_body' "
- winetricks_list_all | sed 's/\([^ ]*\) *\(.*\)/\1 "\1 - \2" off /' | tr '\012' ' '
- ) > "$WINETRICKS_WORKDIR"/kdialog.sh
- sh "$WINETRICKS_WORKDIR"/kdialog.sh
- ;;
- esac
- unset _W_msg_body _W_msg_title
- }
- # Converts a metadata abolute path to its app code
- winetricks_metadata_basename()
- {
- # Classic, but too slow on cygwin
- #basename $1 .vars
- # first, remove suffix .vars
- _W_mb_tmp=${1%.vars}
- # second, remove any directory prefix
- echo ${_W_mb_tmp##*/}
- unset _W_mb_tmp
- }
- # Returns true if given verb has been registered
- winetricks_metadata_exists()
- {
- test -f "$WINETRICKS_METADATA"/*/$1.vars
- }
- # Returns true if given verb has been cached
- # You must have already loaded its metadata before calling
- winetricks_is_cached()
- {
- # FIXME: also check file2... if given
- _W_path="$W_CACHE/$1/$file1"
- case "$_W_path" in
- *..*)
- # Remove /foo/.. so verbs that don't have their own cache directories
- # can refer to siblings
- _W_path="`echo $_W_path | sed 's,/[^/]*/\.\.,,'`"
- ;;
- esac
- if test -f "$_W_path"
- then
- unset _W_path
- return 0
- fi
- unset _W_path
- return 1
- }
- # Returns true if given verb has been installed
- # You must have already loaded its metadata before calling
- winetricks_is_installed()
- {
- unset _W_file _W_file_unix
- if test "$installed_exe1"
- then
- _W_file="$installed_exe1"
- elif test "$installed_file1"
- then
- _W_file="$installed_file1"
- else
- return 1 # not installed
- fi
- case "$OS" in
- Windows_NT)
- # On Windows, there's no wineprefix, just check if file's there
- _W_file_unix="`w_pathconv -u "$_W_file"`"
- if test -f "$_W_file_unix"
- then
- unset _W_file _W_file_unix _W_prefix
- return 0 # installed
- fi
- ;;
- *)
- # Compute wineprefix for this app
- case "$category"-"$WINETRICKS_OPT_SHAREDPREFIX" in
- apps-0|benchmarks-0|games-0)
- _W_prefix="$W_PREFIXES_ROOT/$1"
- ;;
- *)
- _W_prefix="$WINEPREFIX"
- ;;
- esac
- if test -d "$_W_prefix/dosdevices"
- then
- # 'win7 vcrun2005' creates different file than 'winxp vcrun2005'
- # so let it specify multiple, separated by |
- _W_IFS="$IFS"
- IFS='|'
- for _W_file_ in $_W_file
- do
- _W_file_unix="`WINEPREFIX="$_W_prefix" w_pathconv -u "$_W_file_"`"
- if test -f "$_W_file_unix" && ! grep -q "Wine placeholder DLL" "$_W_file_unix"
- then
- IFS="$_W_IFS"
- unset _W_file _W_file_ _W_file_unix _W_prefix _W_IFS
- return 0 # installed
- fi
- done
- IFS="$_W_IFS"
- fi
- ;;
- esac
- unset _W_file _W_prefix # leak _W_file_unix for caller. Is this wise?
- unset _W_IFS _W_file_
- return 1 # not installed
- }
- # List verbs which are already fully cached locally
- winetricks_list_cached()
- {
- for _W_metadatafile in "$WINETRICKS_METADATA"/*/*.vars
- do
- # Use a subshell to avoid putting metadata in global space
- # If this is too slow, we can unset known metadata by hand
- (
- code=`winetricks_metadata_basename "$_W_metadatafile"`
- . "$_W_metadatafile"
- if winetricks_is_cached $code
- then
- echo $code
- fi
- )
- done | sort
- unset _W_metadatafile
- }
- # List verbs which are automatically downloadable, regardless of whether they're cached yet
- winetricks_list_download()
- {
- cd "$WINETRICKS_METADATA"
- grep -l 'media=.download' */*.vars | sed 's,.*/,,;s/\.vars//' | sort -u
- }
- # List verbs which are downloadable with user intervention, regardless of whether they're cached yet
- winetricks_list_manual_download()
- {
- cd "$WINETRICKS_METADATA"
- grep -l 'media=.manual_download' */*.vars | sed 's,.*/,,;s/\.vars//' | sort -u
- }
- winetricks_list_installed()
- {
- (
- # Jump through a couple hoops to evaluate the verbs in alphabetical order
- # Assume that no filename contains '|'
- cd "$WINETRICKS_METADATA"
- for _W_metadatafile in `ls */*.vars | sed 's,^\(.*\)/,\1|,' | sort -t\| -k 2 | tr '|' /`
- do
- # Use a subshell to avoid putting metadata in global space
- # If this is too slow, we can unset known metadata by hand
- (
- code=`winetricks_metadata_basename "$_W_metadatafile"`
- . "$_W_metadatafile"
- if winetricks_is_installed $code
- then
- echo $code
- fi
- )
- done
- )
- unset _W_metadatafile
- }
- # Helper for adding a string to a list of flags
- winetricks_append_to_flags()
- {
- if test "$flags"
- then
- flags="$flags,"
- fi
- flags="${flags}$1"
- }
- # List all verbs in category WINETRICKS_CURMENU verbosely
- # Format is "verb title (publisher, year) [flags]"
- winetricks_list_all()
- {
- # Note: doh123 relies on 'winetricks list' to list main menu categories
- case $WINETRICKS_CURMENU in
- prefix|main) echo "$WINETRICKS_CATEGORIES" | tr ' ' '\012' ; return;;
- esac
- case $LANG in
- da*) _W_cached="cached" ; _W_download="kan hentes" ;;
- de*) _W_cached="gecached" ; _W_download="herunterladbar";;
- pl*) _W_cached="zarchiwizowane" ; _W_download="do pobrania" ;;
- ru*) _W_cached="в кэше" ; _W_download="доступно для скачивания" ;;
- uk*) _W_cached="кешовано" ; _W_download="завантажуване" ;;
- zh_CN*) _W_cached="已缓存" ; _W_download="可下载" ;;
- zh_TW*|zh_HK*) _W_cached="已緩存" ; _W_download="可下載" ;;
- *) _W_cached="cached" ; _W_download="downloadable" ;;
- esac
- for _W_metadatafile in "$WINETRICKS_METADATA"/$WINETRICKS_CURMENU/*.vars
- do
- # Use a subshell to avoid putting metadata in global space
- # If this is too slow, we can unset known metadata by hand
- (
- code=`winetricks_metadata_basename "$_W_metadatafile"`
- . "$_W_metadatafile"
- # Compute cached and downloadable flags
- flags=""
- test "$media" = "download" && winetricks_append_to_flags "$_W_download"
- winetricks_is_cached $code && winetricks_append_to_flags "$_W_cached"
- test "$flags" && flags="[$flags]"
- if ! test "$year" && ! test "$publisher"
- then
- printf "%-24s %s %s\n" $code "$title" "$flags"
- else
- printf "%-24s %s (%s, %s) %s\n" $code "$title" "$publisher" "$year" "$flags"
- fi
- )
- done
- unset _W_cached _W_metadatafile
- }
- # Abort if user doesn't own the given directory (or its parent, if it doesn't exist yet)
- winetricks_die_if_user_not_dirowner()
- {
- if test -d "$1"
- then
- _W_checkdir="$1"
- else
- # fixme: quoting problem?
- _W_checkdir=`dirname "$1"`
- fi
- _W_nuser=`id -u`
- _W_nowner=`ls -l -n -d -L "$_W_checkdir" | awk '{print $3}'`
- if test x$_W_nuser != x$_W_nowner
- then
- w_die "You (`id -un`) don't own $_W_checkdir. Don't run this tool as another user!"
- fi
- }
- # See
- # http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-119.pdf (iso9660)
- # http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-167.pdf
- # http://www.osta.org/specs/pdf/udf102.pdf
- # http://www.ecma-international.org/publications/techreports/E-TR-071.htm
- # Usage: read_bytes offset count device
- winetricks_read_bytes()
- {
- dd status=noxfer if=$3 bs=1 skip=$1 count=$2 2>/dev/null
- }
- # Usage: read_hex offset count device
- winetricks_read_hex()
- {
- od -j $1 -N $2 -t x1 $3 | # offset $1, count $2, single byte hex format, file $3
- sed 's/^[^ ]* //' | # remove address
- sed '$d' # remove final line which is just final offset
- }
- # Usage: read_decimal offset device
- # Reads single four byte word, outputs in decimal.
- # Uses default endianness.
- # udf uses little endian words, so this only works on little endian machines.
- winetricks_read_decimal()
- {
- od -j $1 -N 4 -t u4 $2 | # offset $1, byte count 4, four byte decimal format, file $2
- sed 's/^[^ ]* //' | # remove address
- sed '$d' # remove final line which is just final offset
- }
- winetricks_read_udf_volume_name()
- {
- # "Anchor volume descriptor pointer" starts at sector 256
- # AVDP Layout (ECMA-167 3/10.2):
- # size offset contents
- # 16 0 descriptor tag (id = 2)
- # 16 8 main (primary?) volume descriptor sequence extent
- # ...
- # descriptor tag layout (ECMA-167 3/7.2):
- # size offset contents
- # 2 0 TagIdentifier
- # ...
- # extent layout (ECMA-167 3/7.1):
- # size offset contents
- # 4 0 length (in bytes)
- # 8 4 location (in 2k sectors)
- # primary volume descriptor layout (ECMA-167 3/10.1):
- # size offset contents
- # 16 0 descriptor tag (id = 1)
- # ...
- # 32 24 volume identifier (dstring)
- # 1. check the 16 bit TagIdentifier of the descriptor tag, make sure it's 2
- tagid=`winetricks_read_hex 524288 2 $1`
- : echo tagid is $tagid
- case "$tagid" in
- "02 00") : echo Found AVDP ;;
- *) echo "Did not find AVDP (tagid was $tagid)"; exit 1;;
- esac
- # 2. read the location of the main volume descriptor:
- offset=`winetricks_read_decimal 524308 $1`
- : echo MVD is at sector $offset
- offset=`expr $offset \* 2048`
- : echo MVD is at byte $offset
- # 3. check the TagIdentifier of the MVD's descriptor tag, make sure it's 1
- tagid=`winetricks_read_hex $offset 2 $1`
- : echo tagid is $tagid
- case "$tagid" in
- "01 00") : echo Found MVD ;;
- *) echo Did not find MVD; exit 1;;
- esac
- # 4. Read whether the name is in 8 or 16 bit chars
- offset=`expr $offset + 24`
- width=`winetricks_read_hex $offset 1 $1`
- offset=`expr $offset + 1`
- # 5. Profit!
- case $width in
- 08) winetricks_read_bytes $offset 30 $1 | sed 's/ *$//' ;;
- 10) winetricks_read_bytes $offset 30 $1 | tr -d '\000' | sed 's/ *$//' ;;
- *) echo "Unhandled dvd volname character width '$width'"; exit 1;;
- esac
- echo ""
- }
- winetricks_read_iso9660_volume_name()
- {
- winetricks_read_bytes 32808 30 $1 | sed 's/ *$//'
- }
- winetricks_read_volume_name()
- {
- # ECMA-119 says that CD-ROMs have sector size 2k, and at sector 16 have:
- # size offset contents
- # 1 0 Volume descriptor type (1 for primary volume descriptor)
- # 5 1 Standard identifier ("CD001" for iso9660)
- # ECMA-167, section 9.1.2, has a table of standard identifiers:
- # "BEA01": ecma-167 9.2, Beginning Extended Area Descriptor
- # "CD001": ecma-119
- # "CDW02": ecma-168
- std_id=`winetricks_read_bytes 32769 5 $1`
- : echo std_id is $std_id
- case $std_id in
- CD001) winetricks_read_iso9660_volume_name $1 ;;
- BEA01) winetricks_read_udf_volume_name $1; ;;
- *) echo "Unrecognized disk type $std_id"; exit 1 ;;
- esac
- }
- winetricks_volname()
- {
- x=`volname $1 2> /dev/null| sed 's/ *$//'`
- if test "x$x" = "x"
- then
- # UDF? See https://bugs.launchpad.net/bugs/678419
- x=`winetricks_read_volume_name $1`
- fi
- echo $x
- }
- # Really, should take a volume name as argument, and use 'mount' to get
- # mount point if system automounted it.
- winetricks_detect_optical_drive()
- {
- case "$WINETRICKS_DEV" in
- "") ;;
- *) return ;;
- esac
- for WINETRICKS_DEV in /dev/cdrom /dev/dvd /dev/sr0
- do
- test -b $WINETRICKS_DEV && break
- done
- case "$WINETRICKS_DEV" in
- "x") w_die "can't find cd/dvd drive" ;;
- esac
- }
- winetricks_cache_iso()
- {
- # WINETRICKS_IMG has already been set by w_mount
- _W_expected_volname="$1"
- winetricks_die_if_user_not_dirowner "$W_CACHE"
- winetricks_detect_optical_drive
- # Horrible hack for Gentoo - make sure we can read from the drive
- if ! test -r $WINETRICKS_DEV
- then
- case "$WINETRICKS_SUDO" in
- gksudo) $WINETRICKS_SUDO "chmod 666 $WINETRICKS_DEV" ;;
- *) $WINETRICKS_SUDO chmod 666 $WINETRICKS_DEV ;;
- esac
- fi
- while true
- do
- # Wait for user to insert disc.
- # Sleep long to make it less likely to close the drive during insertion.
- while ! dd if=$WINETRICKS_DEV of=/dev/null count=1
- do
- sleep 5
- done
- # Some distros automount discs in /media, take advantage of that
- if test -d "/media/_W_expected_volname"
- then
- break
- fi
- # Otherwise try and read it straight from unmounted volume
- _W_volname=`winetricks_volname $WINETRICKS_DEV`
- if test "$_W_expected_volname" != "$_W_volname"
- then
- case $LANG in
- da*) w_warn "Forkert disk [$_W_volname] indsat. Indsæt venligst disken [$_W_expected_volname]" ;;
- de*) w_warn "Falsche Disk [$_W_volname] eingelegt. Bitte legen Sie Disk [$_W_expected_volname] ein!" ;;
- pl*) w_warn "Włożono zły dysk [$_W_volname]. Proszę włożyć dysk [$_W_expected_volname]" ;;
- ru*) w_warn "Неверный диск [$_W_volname]. Пожалуйста, вставьте диск [$_W_expected_volname]" ;;
- uk*) w_warn "Неправильний диск [$_W_volname]. Будь ласка, вставте диск [$_W_expected_volname]" ;;
- zh_CN*) w_warn " [$_W_volname] 光盘插入错误,请插入光盘 [$_W_expected_volname]" ;;
- zh_TW*|zh_HK*) w_warn " [$_W_volname] 光碟插入錯誤,請插入光碟 [$_W_expected_volname]" ;;
- *) w_warn "Wrong disc [$_W_volname] inserted. Please insert disc [$_W_expected_volname]" ;;
- esac
- sleep 10
- else
- break
- fi
- done
- # Copy disc to .iso file, display progress every 5 seconds
- # Use conv=noerror,sync to replace unreadable blocks with zeroes
- case $WINETRICKS_OPT_DD in
- dd)
- $WINETRICKS_OPT_DD if=$WINETRICKS_DEV of="$W_CACHE"/temp.iso bs=2048 conv=noerror,sync &
- WINETRICKS_DD_PID=$!
- ;;
- ddrescue)
- if test "`which ddrescue`" = ""
- then
- w_die "Please install ddrescue first."
- fi
- $WINETRICKS_OPT_DD -v -b 2048 $WINETRICKS_DEV "$W_CACHE"/temp.iso &
- WINETRICKS_DD_PID=$!
- ;;
- esac
- echo $WINETRICKS_DD_PID > "$WINETRICKS_WORKDIR"/dd-pid
- # Note: if user presses ^C, winetricks_cleanup will call winetricks_iso_cleanup
- # FIXME: add progress bar for kde, too
- case $WINETRICKS_GUI in
- none|kdialog)
- while ps -p $WINETRICKS_DD_PID > /dev/null 2>&1
- do
- sleep 5
- ls -l "$W_CACHE"/temp.iso
- done
- ;;
- zenity)
- while ps -p $WINETRICKS_DD_PID > /dev/null 2>&1
- do
- echo 1
- sleep 2
- done | $WINETRICKS_GUI --title "Copying to $_W_expected_volname.iso" --progress --pulsate --auto-kill
- ;;
- esac
- rm "$WINETRICKS_WORKDIR"/dd-pid
- mv "$W_CACHE"/temp.iso "$WINETRICKS_IMG"
- eject $WINETRICKS_DEV || true # punt if eject not found (as on cygwin)
- }
- winetricks_load_vcdmount()
- {
- if test "$WINE" != ""
- then
- return
- fi
- # Call only on real Windows.
- # Sets VCD_DIR and W_ISO_MOUNT_ROOT
- # The only free mount tool I know for Windows Vista is Virtual CloneDrive,
- # which can be downloaded at
- # http://www.slysoft.com/en/virtual-clonedrive.html
- # FIXME: actually install it here
- # Locate vcdmount.exe.
- VCD_DIR="Elaborate Bytes/VirtualCloneDrive"
- if test ! -x "$W_PROGRAMS_UNIX/$VCD_DIR/vcdmount.exe" && test ! -x "$W_PROGRAMS_X86_UNIX/$VCD_DIR/vcdmount.exe"
- then
- w_warn "Installing Virtual CloneDrive"
- w_download_to vcd http://static.slysoft.com/SetupVirtualCloneDrive.exe
- # have to use cmd else vista won't let cygwin run .exe's?
- chmod +x "$W_CACHE"/vcd/SetupVirtualCloneDrive.exe
- cd "$W_CACHE/vcd"
- cmd /c SetupVirtualCloneDrive.exe
- fi
- if test -x "$W_PROGRAMS_UNIX/$VCD_DIR/vcdmount.exe"
- then
- VCD_DIR="$W_PROGRAMS_UNIX/$VCD_DIR"
- elif test -x "$W_PROGRAMS_X86_UNIX/$VCD_DIR/vcdmount.exe"
- then
- VCD_DIR="$W_PROGRAMS_X86_UNIX/$VCD_DIR"
- else
- w_die "can't find Virtual CloneDrive?"
- fi
- # FIXME: Use WMI to locate the drive named
- # "ELBY CLONEDRIVE..." using WMI as described in
- # http://delphihaven.wordpress.com/2009/07/05/using-wmi-to-get-a-drive-friendly-name/
- }
- winetricks_mount_cached_iso()
- {
- # On entry, WINETRICKS_IMG is already set
- w_umount
- if test "$WINE" = ""
- then
- winetricks_load_vcdmount
- my_img_win="`w_pathconv -w $WINETRICKS_IMG | tr '\012' ' ' | sed 's/ $//'`"
- cd "$VCD_DIR"
- w_try vcdmount.exe /l=$letter "$my_img_win"
- tries=0
- while test $tries -lt 20
- do
- for W_ISO_MOUNT_LETTER in e f g h i j k
- do
- # let user blacklist drive letters
- echo "$WINETRICKS_MOUNT_LETTER_IGNORE" | grep -q "$W_ISO_MOUNT_LETTER" && continue
- W_ISO_MOUNT_ROOT=/cygdrive/$W_ISO_MOUNT_LETTER
- if find $W_ISO_MOUNT_ROOT -iname 'setup*' -o -iname '*.exe' -o -iname '*.msi'
- then
- break 2
- fi
- done
- tries=`expr $tries + 1`
- echo "Waiting for mount to finish mounting"
- sleep 1
- done
- else
- # Linux
- # FIXME: find a way to mount or copy from image without sudo
- _W_USERID=`id -u`
- case "$WINETRICKS_SUDO" in
- gksudo)
- w_try $WINETRICKS_SUDO "mkdir -p $W_ISO_MOUNT_ROOT"
- w_try $WINETRICKS_SUDO "mount -o ro,loop,uid=$_W_USERID,unhide $WINETRICKS_IMG $W_ISO_MOUNT_ROOT"
- ;;
- *)
- w_try $WINETRICKS_SUDO mkdir -p $W_ISO_MOUNT_ROOT
- w_try $WINETRICKS_SUDO mount -o ro,loop,uid=$_W_USERID,unhide "$WINETRICKS_IMG" $W_ISO_MOUNT_ROOT
- ;;
- esac
- echo "Mounting as drive ${W_ISO_MOUNT_LETTER}:"
- # Gotta provide a symlink to the raw disc, else installers that check volume names will fail
- rm -f "$WINEPREFIX/dosdevices/${W_ISO_MOUNT_LETTER}:"*
- ln -sf "$WINETRICKS_IMG" "$WINEPREFIX/dosdevices/${W_ISO_MOUNT_LETTER}::"
- ln -sf "$W_ISO_MOUNT_ROOT" "$WINEPREFIX/dosdevices/${W_ISO_MOUNT_LETTER}:"
- unset _W_USERID
- fi
- }
- # List the currently mounted udf or iso9660 filesystems that match the given pattern
- # Output format:
- # dev mountpoint
- # dev mountpoint
- # ...
- # Mountpoints may contain spaces.
- winetricks_list_mounts()
- {
- mount | egrep 'udf|iso9660' | sed 's,^\([^ ]*\) on \(.*\) type .*,\1 \2,'| grep "$1\$"
- }
- # Return success and set _W_dev _W_mountpoint if volume $1 is mounted
- # Note: setting variables as a way of returning results from a
- # shell function exposed several bugs in most shells (except ksh!)
- # related to implicit subshells. It would be better to output
- # one string to stdout instead.
- winetricks_is_mounted()
- {
- # First, check for matching mountpoint
- _W_tmp="`winetricks_list_mounts "$1"`"
- if test "$_W_tmp"
- then
- _W_dev=`echo $_W_tmp | sed 's/ .*//'`
- _W_mountpoint="`echo $_W_tmp | sed 's/^[^ ]* //'`"
- # Volume found!
- return 0
- fi
- # If that fails, read volume name the hard way for each volume
- # Have to use file to return results from implicit subshell
- rm -f "$W_TMP_EARLY/_W_tmp.$LOGNAME"
- winetricks_list_mounts . | while true
- do
- IFS= read _W_tmp
- _W_dev=`echo $_W_tmp | sed 's/ .*//'`
- test "$_W_dev" || break
- _W_mountpoint="`echo $_W_tmp | sed 's/^[^ ]* //'`"
- _W_volname=`winetricks_volname $_W_dev`
- if test "$1" = "$_W_volname"
- then
- # Volume found! Want to return from function here, but can't
- echo "$_W_tmp" > "$W_TMP_EARLY/_W_tmp.$LOGNAME"
- break
- fi
- done
- if test -f "$W_TMP_EARLY/_W_tmp.$LOGNAME"
- then
- # Volume found! Return from function.
- _W_dev=`cat "$W_TMP_EARLY/_W_tmp.$LOGNAME" | sed 's/ .*//'`
- _W_mountpoint="`cat "$W_TMP_EARLY/_W_tmp.$LOGNAME" | sed 's/^[^ ]* //'`"
- rm -f "$W_TMP_EARLY/_W_tmp.$LOGNAME"
- return 0
- fi
- # Volume not found
- unset _W_dev _W_mountpoint _W_volname
- return 1
- }
- winetricks_mount_real_volume()
- {
- _W_expected_volname="$1"
- # Wait for user to insert disc.
- case $LANG in
- da*)_W_mountmsg="Indsæt venligst disken '$_W_expected_volname' (krævet af pakken '$_PACKAGE')" ;;
- de*)_W_mountmsg="Bitte Disk '$_W_expected_volname' einlegen (für Paket '$W_PACKAGE')" ;;
- pl*) _W_mountmsg="Proszę włożyć dysk '$_W_expected_volname' (potrzebny paczce '$W_PACKAGE')" ;;
- ru*) _W_mountmsg="Пожалуйста, вставьте том '$_W_expected_volname' (требуется для пакета '$W_PACKAGE')" ;;
- uk*) _W_mountmsg="Будь ласка, вставте том '$_W_expected_volname' (потрібний для пакунка '$W_PACKAGE')" ;;
- zh_CN*) _W_mountmsg="请插入卷 '$_W_expected_volname' (为包 '$W_PACKAGE 所需')" ;;
- zh_TW*|zh_HK*) _W_mountmsg="請插入卷 '$_W_expected_volname' (為包 '$W_PACKAGE 所需')" ;;
- *) _W_mountmsg="Please insert volume '$_W_expected_volname' (needed for package '$W_PACKAGE')" ;;
- esac
- if test "$WINE" = ""
- then
- # Assume already mounted, just get drive letter
- W_ISO_MOUNT_LETTER=`awk '/iso/ {print $1}' < /proc/mounts | tr -d :`
- W_ISO_MOUNT_ROOT=`awk '/iso/ {print $2}' < /proc/mounts`
- else
- while ! winetricks_is_mounted "$_W_expected_volname"
- do
- w_try w_warn_cancel "$_W_mountmsg"
- # In non-gui case, give user two seconds to futz with disc drive before spamming him again
- sleep 2
- done
- WINETRICKS_DEV=$_W_dev
- W_ISO_MOUNT_ROOT="$_W_mountpoint"
- # Gotta provide a symlink to the raw disc, else installers that check volume names will fail
- rm -f "$WINEPREFIX/dosdevices/${W_ISO_MOUNT_LETTER}:"*
- ln -sf "$WINETRICKS_DEV" "$WINEPREFIX/dosdevices/${W_ISO_MOUNT_LETTER}::"
- ln -sf "$W_ISO_MOUNT_ROOT" "$WINEPREFIX/dosdevices/${W_ISO_MOUNT_LETTER}:"
- fi
- # FIXME: need to remount some discs with unhide option,
- # add that as option to w_mount
- unset _W_mountmsg
- }
- winetricks_cleanup()
- {
- # We don't want to run this multiple times, so unfortunately we have to run it here:
- if test "$W_NGEN_CMD"
- then
- "$W_NGEN_CMD"
- fi
- set +e
- if test -f "$WINETRICKS_WORKDIR/dd-pid"
- then
- kill `cat "$WINETRICKS_WORKDIR/dd-pid"`
- fi
- test "$WINETRICKS_CACHE_SYMLINK" && rm -f "$WINETRICKS_CACHE_SYMLINK"
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$WINETRICKS_WORKDIR"
- # if $W_TMP_EARLY was created by mktemp, remove it:
- test "$W_OPT_NOCLEAN" = 1 || test "$W_TMP_EARLY_CLEAN" = 1 && rm -rf "$W_TMP_EARLY"
- }
- winetricks_set_unattended()
- {
- # We shouldn't use all these extra variables. Instead, we should
- # use ${foo:+bar} to jam in commandline options for silent install
- # only if W_OPT_UNATTENDED is nonempty. See
- # http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02
- # So in attended mode, W_OPT_UNATTENDED should be empty.
- case $1 in
- 1)
- W_OPT_UNATTENDED=1
- # Might want to trim our stable of variables here a bit...
- W_UNATTENDED_DASH_Q="-q"
- W_UNATTENDED_SLASH_Q="/q"
- W_UNATTENDED_SLASH_QB="/qb"
- W_UNATTENDED_SLASH_QN="/qn"
- W_UNATTENDED_SLASH_QNT="/qnt"
- W_UNATTENDED_SLASH_QT="/qt"
- W_UNATTENDED_SLASH_QUIET="/quiet"
- W_UNATTENDED_SLASH_S="/S"
- W_UNATTENDED_DASH_SILENT="-silent"
- W_UNATTENDED_SLASH_SILENT="/silent"
- ;;
- *)
- W_OPT_UNATTENDED=""
- W_UNATTENDED_DASH_Q=""
- W_UNATTENDED_SLASH_Q=""
- W_UNATTENDED_SLASH_QB=""
- W_UNATTENDED_SLASH_QN=""
- W_UNATTENDED_SLASH_QNT=""
- W_UNATTENDED_SLASH_QT=""
- W_UNATTENDED_SLASH_QUIET=""
- W_UNATTENDED_SLASH_S=""
- W_UNATTENDED_DASH_SILENT=""
- W_UNATTENDED_SLASH_SILENT=""
- ;;
- esac
- }
- # Usage: winetricks_set_wineprefix [bottlename]
- # Bottlename must not contain spaces, slashes, or other special characters
- # If bottlename is omitted, the default bottle (~/.wine) is used.
- winetricks_set_wineprefix()
- {
- if ! test "$1"
- then
- WINEPREFIX="$WINETRICKS_ORIGINAL_WINEPREFIX"
- else
- WINEPREFIX="$W_PREFIXES_ROOT/$1"
- fi
- export WINEPREFIX
- #echo "WINEPREFIX is now $WINEPREFIX" >&2
- mkdir -p "`dirname "$WINEPREFIX"`"
- # Run wine here to force creation of the wineprefix so it's there when we want to make the cache symlink a bit later.
- # The folder-name is localized!
- W_PROGRAMS_WIN="`w_expand_env ProgramFiles`"
- case "$W_PROGRAMS_WIN" in
- "") w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned empty string, error message \"`cat $W_TMP_EARLY/early_wine.err.txt`\" ";;
- %*) w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned unexpanded string '$W_PROGRAMS_WIN' ... this can be caused by a corrupt wineprefix, by an old wine, or by not owning $WINEPREFIX" ;;
- *unknown*) w_die "$WINE cmd.exe /c echo '%ProgramFiles%' returned a string containing the word 'unknown', as if a voice had cried out in terror, and was suddenly silenced." ;;
- esac
- case "$OS" in
- "Windows_NT")
- W_DRIVE_C="/cygdrive/c" ;;
- *)
- W_DRIVE_C="$WINEPREFIX/dosdevices/c:" ;;
- esac
- # Kludge: use Temp instead of temp to avoid \t expansion in w_try
- # but use temp in unix path because that's what wine creates, and having both temp and Temp
- # causes confusion (e.g. makes vc2005trial fail)
- if ! test "$1"
- then
- W_TMP="$W_DRIVE_C/windows/temp"
- W_TMP_WIN="C:\\windows\\Temp"
- else
- # Verbs can rely on W_TMP being empty at entry, deleted after return, and a subdir of C:
- W_TMP="$W_DRIVE_C/windows/temp/_$1"
- W_TMP_WIN="C:\\windows\\Temp\\_$1"
- fi
- case "$OS" in
- "Windows_NT")
- W_CACHE_WIN="`w_pathconv -w $W_CACHE`"
- ;;
- *)
- # For case where z: doesn't exist or / is writable (!),
- # make a drive letter for W_CACHE. Clean it up on exit.
- test "$WINETRICKS_CACHE_SYMLINK" && rm -f "$WINETRICKS_CACHE_SYMLINK"
- for letter in y x w v u t s r q p o n m
- do
- if ! test -d "$WINEPREFIX"/dosdevices/${letter}:
- then
- mkdir -p "$WINEPREFIX"/dosdevices
- WINETRICKS_CACHE_SYMLINK="$WINEPREFIX"/dosdevices/${letter}:
- ln -sf "$W_CACHE" "$WINETRICKS_CACHE_SYMLINK"
- break
- fi
- done
- W_CACHE_WIN="${letter}:"
- ;;
- esac
- # FIXME wrong on 64 bit windows for now
- W_COMMONFILES_X86_WIN="`w_expand_env CommonProgramFiles`"
- W_WINDIR_UNIX="$W_DRIVE_C/windows"
- # FIXME: move that tr into w_pathconv, if it's still needed?
- W_PROGRAMS_UNIX="`w_pathconv -u "$W_PROGRAMS_WIN"`"
- # 64 bit windows has a second directory for program files
- W_PROGRAMS_X86_WIN="${W_PROGRAMS_WIN} (x86)"
- W_PROGRAMS_X86_UNIX="${W_PROGRAMS_UNIX} (x86)"
- if ! test -d "$W_PROGRAMS_X86_UNIX"
- then
- W_PROGRAMS_X86_WIN="${W_PROGRAMS_WIN}"
- W_PROGRAMS_X86_UNIX="${W_PROGRAMS_UNIX}"
- fi
- W_APPDATA_WIN="`w_expand_env AppData`"
- W_APPDATA_UNIX="`w_pathconv -u "$W_APPDATA_WIN"`"
- # FIXME: get fonts path from SHGetFolderPath
- # See also http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx
- W_FONTSDIR_WIN="c:\\windows\\Fonts"
- # FIXME: just convert path from windows to unix?
- # Did the user rename Fonts to fonts?
- if test ! -d "$W_WINDIR_UNIX"/Fonts && test -d "$W_WINDIR_UNIX"/fonts
- then
- W_FONTSDIR_UNIX="$W_WINDIR_UNIX"/fonts
- else
- W_FONTSDIR_UNIX="$W_WINDIR_UNIX"/Fonts
- fi
- mkdir -p "${W_FONTSDIR_UNIX}"
- # Win(e) 32/64?
- # Using the variable W_SYSTEM32_DLLS instead of SYSTEM32 because some stuff does go under system32 for both arch's
- # e.g., spool/drivers/color
- if test -d "$W_DRIVE_C/windows/syswow64"
- then
- W_ARCH=win64
- W_SYSTEM32_DLLS="$W_WINDIR_UNIX/syswow64"
- W_SYSTEM32_DLLS_WIN="C:\\windows\\syswow64"
- W_SYSTEM64_DLLS="$W_WINDIR_UNIX/system32"
- W_SYSTEM64_DLLS_WIN32="C:\\windows\\sysnative" # path to access 64-bit dlls from 32-bit apps
- W_SYSTEM64_DLLS_WIN64="C:\\windows\\system32" # path to access 64-bit dlls from 64-bit apps
- # 64-bit prefixes still have plenty of issues:
- w_warn "You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug."
- else
- W_ARCH=win32
- W_SYSTEM32_DLLS="$W_WINDIR_UNIX/system32"
- W_SYSTEM32_DLLS_WIN="C:\\windows\\system32"
- fi
- }
- winetricks_annihilate_wineprefix()
- {
- w_skip_windows "No wineprefix to delete on windows" && return
- w_askpermission "Delete $WINEPREFIX, its apps, icons, and menu items?"
- rm -rf "$WINEPREFIX"/*
- rm -rf "$WINEPREFIX"
- # Also remove menu items.
- find $XDG_DATA_HOME/applications/wine -type f -name '*.desktop' -exec grep -q -l "$WINEPREFIX" '{}' ';' -exec rm '{}' ';'
- # Also remove desktop items.
- # Desktop might be synonym for home directory, so only go one level
- # deep to avoid extreme slowdown if user has lots of files
- (
- if ! test "$XDG_DESKTOP_DIR" && test -f $XDG_CONFIG_HOME/user-dirs.dirs
- then
- . $XDG_CONFIG_HOME/user-dirs.dirs
- fi
- find "$XDG_DESKTOP_DIR" -maxdepth 1 -type f -name '*.desktop' -exec grep -q -l "$WINEPREFIX" '{}' ';' -exec rm '{}' ';'
- )
- # FIXME: recover more nicely. At moment, have to restart to avoid trouble.
- exit 0
- }
- winetricks_init()
- {
- #---- Private Variables ----
- if ! test "$USERNAME"
- then
- # Posix only requires LOGNAME to be defined, and sure enough, when
- # logging in via console and startx in ubuntu 11.04, USERNAME isn't set!
- # And even normal logins in Ubuntu 13.04 doesn't set it.
- # I tried using only LOGNAME in this script, but it's so easy to slip
- # and use USERNAME, so define it here if needed.
- USERNAME="$LOGNAME"
- fi
- # Ephemeral files for this run
- WINETRICKS_WORKDIR="$W_TMP_EARLY/w.$LOGNAME.$$"
- test "$W_OPT_NOCLEAN" = 1 || rm -rf "$WINETRICKS_WORKDIR"
- # Registering a verb creates a file in WINETRICKS_METADATA
- WINETRICKS_METADATA="$WINETRICKS_WORKDIR/metadata"
- # The list of categories is also hardcoded in winetricks_mainmenu() :-(
- WINETRICKS_CATEGORIES="apps benchmarks dlls fonts games settings"
- for _W_cat in $WINETRICKS_CATEGORIES
- do
- mkdir -p "$WINETRICKS_METADATA"/$_W_cat
- done
- # Which subdirectory of WINETRICKS_METADATA is currently active (or main, if none)
- WINETRICKS_CURMENU=prefix
- # Delete work directory after each run, on exit either graceful or abrupt
- trap winetricks_cleanup EXIT HUP INT QUIT ABRT
- # Whether to always cache cached iso's (1) or only use cache if present (0)
- # Can be inherited from environment or set via -k, defaults to off
- WINETRICKS_OPT_KEEPISOS=${WINETRICKS_OPT_KEEPISOS:-0}
- # what program to use to make disc image (dd or ddrescue)
- WINETRICKS_OPT_DD=${WINETRICKS_OPT_DD:-dd}
- # whether to use shared wineprefix (1) or unique wineprefix for each app (0)
- WINETRICKS_OPT_SHAREDPREFIX=${WINETRICKS_OPT_SHAREDPREFIX:-0}
- WINETRICKS_SOURCEFORGE=http://downloads.sourceforge.net
- winetricks_get_sha1sum_prog
- #---- Public Variables ----
- # Where application installers are cached
- # See http://standards.freedesktop.org/basedir-spec/latest/ar01s03.html
- if test -d "$HOME/Library/Caches"
- then
- # MacOSX
- XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/Library/Caches}"
- else
- XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
- fi
- if test "$WINETRICKS_DIR"
- then
- # For backwards compatibility
- W_CACHE="${W_CACHE:-$WINETRICKS_DIR/cache}"
- WINETRICKS_POST="${WINETRICKS_POST:-$WINETRICKS_DIR/postinstall}"
- else
- W_CACHE="${W_CACHE:-$XDG_CACHE_HOME/winetricks}"
- WINETRICKS_POST="${WINETRICKS_POST:-$XDG_DATA_HOME/winetricks/postinstall}"
- fi
- test -d "$W_CACHE" || mkdir -p "$W_CACHE"
- WINETRICKS_AUTH="${WINETRICKS_AUTH:-$XDG_DATA_HOME/winetricks/auth}"
- # System-specific variables
- case "$OS" in
- "Windows_NT")
- WINE=""
- WINESERVER=""
- W_DRIVE_C="C:/"
- ;;
- *)
- WINE="${WINE:-wine}"
- # Find wineserver.
- # Some distros (Debian before wine 1.8-2) don't have it on the path.
- for x in \
- "$WINESERVER" \
- "${WINE}server" \
- "`which wineserver 2> /dev/null`" \
- "`dirname $WINE`/server/wineserver" \
- /usr/bin/wineserver-development \
- /usr/lib/wine/wineserver \
- /usr/lib/i386-kfreebsd-gnu/wine/wineserver \
- /usr/lib/i386-linux-gnu/wine/wineserver \
- /usr/lib/powerpc-linux-gnu/wine/wineserver \
- /usr/lib/i386-kfreebsd-gnu/wine/bin/wineserver \
- /usr/lib/i386-linux-gnu/wine/bin/wineserver \
- /usr/lib/powerpc-linux-gnu/wine/bin/wineserver \
- /usr/lib/x86_64-linux-gnu/wine/bin/wineserver \
- /usr/lib/i386-kfreebsd-gnu/wine-development/wineserver \
- /usr/lib/i386-linux-gnu/wine-development/wineserver \
- /usr/lib/powerpc-linux-gnu/wine-development/wineserver \
- /usr/lib/x86_64-linux-gnu/wine-development/wineserver \
- file-not-found
- do
- if test -x "$x"
- then
- case "$x" in
- /usr/lib/*/wine-development/wineserver|/usr/bin/wineserver-development)
- if test -x /usr/bin/wine-development
- then
- WINE="/usr/bin/wine-development"
- fi
- ;;
- esac
- break
- fi
- done
- case "$x" in
- file-not-found)
- w_die "wineserver not found!" ;;
- *)
- WINESERVER="$x" ;;
- esac
- if test "$WINEPREFIX"
- then
- WINETRICKS_ORIGINAL_WINEPREFIX="$WINEPREFIX"
- else
- WINETRICKS_ORIGINAL_WINEPREFIX="$HOME/.wine"
- fi
- _abswine="`which "$WINE" 2>/dev/null`"
- if ! test -x "$_abswine" || ! test -f "$_abswine"
- then
- w_die "WINE is $WINE, which is neither on the path nor an executable file"
- fi
- case "$WINETRICKS_OPT_VERBOSE" in
- 1|2) echo -n "Wine is '$WINE'; Wine version is "
- "$WINE" --version || w_die "Can't get wine version"
- echo "winetricks is $0 ; winetricks version is $WINETRICKS_VERSION"
- ;;
- esac
- unset _abswine
- ;;
- esac
- winetricks_set_wineprefix $1
- # FIXME: don't hardcode
- W_PROGRAMS_DRIVE=c
- # Whether to automate installs (0=no, 1=yes)
- winetricks_set_unattended ${W_OPT_UNATTENDED:-0}
- # Overridden for windows
- W_ISO_MOUNT_ROOT=/mnt/winetricks
- W_ISO_MOUNT_LETTER=i
- WINETRICKS_WINE_VERSION=`winetricks_early_wine --version | sed 's/.*wine/wine/'`
- # A small hack...
- case "$WINETRICKS_WINE_VERSION" in
- wine-1.4-*) WINETRICKS_WINE_VERSION="wine-1.4.40"; export WINETRICKS_WINE_VERSION;;
- wine-1.4) WINETRICKS_WINE_VERSION="wine-1.4.0"; export WINETRICKS_WINE_VERSION;;
- wine-1.6-*) WINETRICKS_WINE_VERSION="wine-1.6.0"; export WINETRICKS_WINE_VERSION;;
- wine-1.6) WINETRICKS_WINE_VERSION="wine-1.6.0"; export WINETRICKS_WINE_VERSION;;
- wine-1.8-*) WINETRICKS_WINE_VERSION="wine-1.8.0"; export WINETRICKS_WINE_VERSION;;
- wine-1.8) WINETRICKS_WINE_VERSION="wine-1.8.0"; export WINETRICKS_WINE_VERSION;;
- esac
- WINETRICKS_WINE_MINOR=`echo $WINETRICKS_WINE_VERSION | sed 's/wine-1\.\([0-9]*\)\..*/\1/'`
- WINETRICKS_WINE_MICRO=`echo $WINETRICKS_WINE_VERSION | sed 's/wine-1.[0-9][0-9]*\.\([0-9]*\).*/\1/'`
- }
- winetricks_usage()
- {
- case $LANG in
- da*)
- cat <<_EOF_
- Brug: $0 [tilvalg] [verbum|sti-til-verbum] ...
- Kører de angivne verber. Hvert verbum installerer et program eller ændrer en indstilling.
- Tilvalg:
- -k|--keep_isos: lagr iso'er lokalt (muliggør senere installation uden disk)
- -q|--unattended: stil ingen spørgsmål, installér bare automatisk
- -r|--ddrescue: brug alternativ disk-tilgangsmetode (hjælper i tilfælde af en ridset disk)
- -t|--torify: Run downloads under torify, if available
- -v|--verbose: vis alle kommandoer som de bliver udført
- -V|--version: vis programversionen og afslut
- -h|--help: vis denne besked og afslut
- Diverse verber:
- list: vis en liste over alle verber
- list-cached: vis en liste over verber for allerede-hentede installationsprogrammer
- list-download: vis en liste over verber for programmer der kan hentes
- list-manual-download: list applications which can be downloaded with some help from the user
- list-installed: list already-installed applications
- _EOF_
- ;;
- de*)
- cat <<_EOF_
- Benutzung: $0 [options] [Kommando|Verb|Pfad-zu-Verb] ...
- Angegebene Verben ausführen.
- Jedes Verb installiert eine Anwendung oder ändert eine Einstellung.
- Optionen:
- --force Nicht prüfen ob Pakete bereits installiert wurden
- --gui GUI Diagnosen anzeigen, auch wenn von der Kommandozeile gestartet
- --isolate Jedes Programm oder Spiel in eigener Bottle (WINEPREFIX) installieren
- -k, --keep_isos ISOs local speichern (erlaubt spätere Installation ohne Disk)
- --no-clean Temp Verzeichnisse nicht löschen (nützlich beim debuggen)
- -q, --unattended Keine Fragen stellen, alles automatisch installieren
- -r, --ddrescue Alternativer Zugriffsmodus (hilft bei zerkratzten Disks)
- --showbroken Auch Verben anzeigen die momentan in Wine nicht funktionieren
- -t --torify Run downloads under torify, if available
- --verify Wenn Möglisch automatische GUI Tests für Verben starten
- -v, --verbose Alle ausgeführten Kommandos anzeigen
- -h, --help Diese Hilfemeldung anzeigen
- -V, --version Programmversion anzeigen und Beenden
- Kommandos:
- list Kategorien auflisten
- list-all Alle Kategorien und deren Verben auflisten
- apps list Verben der Kategorie 'Anwendungen' auflisten
- benchmarks list Verben der Kategorie 'Benchmarks' auflisten
- dlls list Verben der Kategorie 'DLLs' auflisten
- games list Verben der Kategorie 'Spiele' auflisten
- settings list Verben der Kategorie 'Einstellungen' auflisten
- list-cached Verben für bereits gecachte Installers auflisten
- list-download Verben für automatisch herunterladbare Anwendungen auflisten
- list-manual-download Verben für vom Benutzer herunterladbare Anwendungen auflisten
- list-installed Bereits installierte Verben auflisten
- prefix=foobar WINEPREFIX=$W_PREFIXES_ROOT/foobar auswählen
- _EOF_
- ;;
- *)
- cat <<_EOF_
- Usage: $0 [options] [command|verb|path-to-verb] ...
- Executes given verbs. Each verb installs an application or changes a setting.
- Options:
- --force Don't check whether packages were already installed
- --gui Show gui diagnostics even when driven by commandline
- --isolate Install each app or game in its own bottle (WINEPREFIX)
- --self-update Update this application to the last version
- --update-rollback Rollback the last self update
- -k, --keep_isos Cache isos (allows later installation without disc)
- --no-clean Don't delete temp directories (useful during debugging)
- -q, --unattended Don't ask any questions, just install automatically
- -r, --ddrescue Retry hard when caching scratched discs
- --showbroken Even show verbs that are currently broken in wine
- -t --torify Run downloads under torify, if available
- --verify Run (automated) GUI tests for verbs, if available
- -v, --verbose Echo all commands as they are executed
- -h, --help Display this message and exit
- -V, --version Display version and exit
- Commands:
- list list categories
- list-all list all categories and their verbs
- apps list list verbs in category 'applications'
- benchmarks list list verbs in category 'benchmarks'
- dlls list list verbs in category 'dlls'
- games list list verbs in category 'games'
- settings list list verbs in category 'settings'
- list-cached list cached-and-ready-to-install verbs
- list-download list verbs which download automatically
- list-manual-download list verbs which download with some help from the user
- list-installed list already-installed verbs
- prefix=foobar select WINEPREFIX=$W_PREFIXES_ROOT/foobar
- _EOF_
- ;;
- esac
- }
- winetricks_handle_option()
- {
- case "$1" in
- -r|--ddrescue) WINETRICKS_OPT_DD=ddrescue ;;
- -k|--keep_isos) WINETRICKS_OPT_KEEPISOS=1 ;;
- -q|--unattended) winetricks_set_unattended 1 ;;
- -t|--torify) WINETRICKS_OPT_TORIFY=1 ;;
- -v|--verbose) WINETRICKS_OPT_VERBOSE=1 ; set -x;;
- -vv|--really-verbose) WINETRICKS_OPT_VERBOSE=2 ; set -x ;;
- -V|--version) winetricks_print_version ; exit 0;;
- --verify) WINETRICKS_VERIFY=1 ;;
- -h|--help) winetricks_usage ; exit 0 ;;
- --self-update) winetricks_selfupdate;;
- --update-rollback) winetricks_selfupdate_rollback;;
- --isolate) WINETRICKS_OPT_SHAREDPREFIX=0 ;;
- --no-isolate) WINETRICKS_OPT_SHAREDPREFIX=1 ;;
- --no-clean) W_OPT_NOCLEAN=1 ;;
- --force) WINETRICKS_FORCE=1;;
- --gui) winetricks_detect_gui;;
- --showbroken) W_OPT_SHOWBROKEN=1 ;;
- --optin) WINETRICKS_STATS_REPORT=1;;
- --optout) WINETRICKS_STATS_REPORT=0;;
- -*) w_die "unknown option $1" ;;
- *) return 1 ;;
- esac
- return 0
- }
- # Must initialize variables before calling w_metadata
- if ! test "$WINETRICKS_LIB"
- then
- WINETRICKS_SRCDIR=`dirname "$0"`
- WINETRICKS_SRCDIR=`cd "$WINETRICKS_SRCDIR"; pwd`
- # Which GUI helper to use (none/zenity/kdialog). See winetricks_detect_gui.
- WINETRICKS_GUI=none
- # Default to a shared prefix:
- WINETRICKS_OPT_SHAREDPREFIX=${WINETRICKS_OPT_SHAREDPREFIX:-1}
- # Handle options before init, to avoid starting wine for --help or --version
- while winetricks_handle_option $1
- do
- shift
- done
- # Workaround for https://github.com/Winetricks/winetricks/issues/599
- # If --isolate is used, pass verb to winetricks_init, so it can set the wineprefix using winetricks_set_wineprefix()
- # Otherwise, an arch mismatch between ${WINEPREFIX:-$HOME/.wine} and the prefix to be made for the isolated app would cause it to fail
- case $WINETRICKS_OPT_SHAREDPREFIX in
- 0) winetricks_init $1 ;;
- *) winetricks_init ;;
- esac
- fi
- winetricks_install_app()
- {
- case $LANG in
- da*) fail_msg="Installationen af pakken $1 fejlede" ;;
- de*) fail_msg="Installieren von Paket $1 gescheitert" ;;
- pl*) fail_msg="Niepowodzenie przy instalacji paczki $1" ;;
- ru*) fail_msg="Ошибка установки пакета $1" ;;
- uk*) fail_msg="Помилка встановлення пакунка $1" ;;
- zh_CN*) fail_msg="$1 安装失败" ;;
- zh_TW*|zh_HK*) fail_msg="$1 安裝失敗" ;;
- *) fail_msg="Failed to install package $1" ;;
- esac
- # FIXME: initialize a new wineprefix for this app, set lots of global variables
- if ! w_do_call $1 $2
- then
- w_die "$fail_msg"
- fi
- }
- #---- Builtin Verbs ----
- #----------------------------------------------------------------
- # Runtimes
- #----------------------------------------------------------------
- #----- common download for several verbs
- helper_directx_dl()
- {
- # February 2010 DirectX 9c User Redistributable
- # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0cef8180-e94a-4f56-b157-5ab8109cb4f5
- # FIXME: none of the verbs that use this will show download status right
- # until file1 metadata is extended to handle common cache dir
- w_download_to directx9 http://download.microsoft.com/download/E/E/1/EE17FF74-6C45-4575-9CF4-7FC2597ACD18/directx_feb2010_redist.exe a97c820915dc20929e84b49646ec275760012a42
- DIRECTX_NAME=directx_feb2010_redist.exe
- }
- helper_directx_Jun2010()
- {
- # June 2010 DirectX 9c User Redistributable
- # http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3b170b25-abab-4bc3-ae91-50ceb6d8fa8d
- w_download_to directx9 http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe
- DIRECTX_NAME=directx_Jun2010_redist.exe
- }
- helper_d3dx9_xx()
- {
- dllname=d3dx9_$1
- helper_directx_dl
- # Even kinder, less invasive directx - only extract and override d3dx9_xx.dll
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x86*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "$dllname.dll" "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x64*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F "$dllname.dll" "$x"
- done
- fi
- w_override_dlls native $dllname
- }
- helper_win2ksp4()
- {
- filename=$1
- # http://www.microsoft.com/downloads/details.aspx?FamilyID=1001AAF1-749F-49F4-8010-297BD6CA33A0&displaylang=en
- w_download_to win2ksp4 http://download.microsoft.com/download/E/6/A/E6A04295-D2A8-40D0-A0C5-241BFECD095E/W2KSP4_EN.EXE fadea6d94a014b039839fecc6e6a11c20afa4fa8
- w_try_cabextract -d "$W_TMP" -L -F $filename "$W_CACHE"/win2ksp4/W2KSP4_EN.EXE
- }
- helper_xpsp3()
- {
- filename=$1
- # http://www.microsoft.com/en-us/download/details.aspx?id=24
- w_download_to xpsp3 http://download.microsoft.com/download/d/3/0/d30e32d8-418a-469d-b600-f32ce3edf42d/WindowsXP-KB936929-SP3-x86-ENU.exe c81472f7eeea2eca421e116cd4c03e2300ebfde4
- w_try_cabextract -d "$W_TMP" -L -F $filename "$W_CACHE"/xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe
- }
- helper_win7sp1()
- {
- filename=$1
- # https://www.microsoft.com/en-us/download/details.aspx?id=5842
- w_download_to win7sp1 http://download.microsoft.com/download/0/A/F/0AFB5316-3062-494A-AB78-7FB0D4461357/windows6.1-KB976932-X86.exe c3516bc5c9e69fee6d9ac4f981f5b95977a8a2fa
- w_try_cabextract -d "$W_TMP" -L -F $filename "$W_CACHE"/win7sp1/windows6.1-KB976932-X86.exe
- }
- #---------------------------------------------------------
- w_metadata adobeair dlls \
- title="Adobe AIR 20.x" \
- publisher="Adobe" \
- year="2015" \
- media="download" \
- file1="AdobeAIRInstaller.exe" \
- installed_file1="$W_COMMONFILES_X86_WIN/Adobe AIR/Versions/1.0/Adobe AIR.dll" \
- homepage="http://www.adobe.com/products/air/"
- load_adobeair()
- {
- # 2010-02-02: sha1sum 5c95f51a680f8c175a92755238127be4ad22c53b
- # 2010-02-20: sha1sum 6f03e723bd855abbe00eb8fdf22da54fb49c62db
- # 2010-07-29: 2.0.2 sha1sum 7b93aedaf48ad7854940e7a4e7d9394a255e888b
- # 2010-12-08: 2.5.1 sha1sum 2664207ca8e836f5070ee356064829a39785a92e
- # 2011-04-13: 2.6 sha1sum 3d9c2f9d8f3533424cfea84d61fcb9464278d9fc
- # 2011-10-26: 2.7 sha1sum dfa337d4b53e9d924356febc116450190fa183dd
- # 2014-03-01: 4.0 sha1sum 0034bdd4e0b2ce0fa6198b0b715fba85754d9a57
- # http://helpx.adobe.com/en/flash-player/release-note/fp_12_air_4_release_notes.html
- # 2014-09-30: 15.0 sha1sum 46341f1358bc6e0b9ddeae3591662a2ac68dc360
- # 2014-11-24: 15.0.0.356 sha1sum c0e6b8b1ed5ffa282945d21b21f8a5e03febc904
- # 2015-11-06: 19.x sha1sum 3bc2a568204a3a9b59ca347ab49585f0c5fab279
- # 2015-12-27: 20.0 sha1sum 9c10b7be43771869c381c73197c9a0fcd1b727cf
- # 2015-12-29: 20.0.0.233 (had to check with strings on Adobe AIR.dll) sha1sum 7161fb8b47721485882f52720f8b41dbfe3b69d0
- # 2016-02-17: 20.0.0.260 (strings 'Adobe AIR.dll' | grep 20\\. ) sha1sum 2fdd561556fe881c4e5538d4ee37f523871befd3
- w_download http://airdownload.adobe.com/air/win/download/20.0/AdobeAIRInstaller.exe 2fdd561556fe881c4e5538d4ee37f523871befd3
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" AdobeAIRInstaller.exe $W_UNATTENDED_DASH_SILENT
- }
- #----------------------------------------------------------------
- w_metadata amstream dlls \
- title="MS amstream.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/amstream.dll"
- load_amstream()
- {
- helper_directx_dl
- mkdir "$W_CACHE"/amstream # kludge so test -f $file1 works
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'amstream.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr amstream.dll
- w_override_dlls native amstream
- }
- #----------------------------------------------------------------
- w_metadata art2kmin dlls \
- title="MS Access 2007 runtime" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- file1="AccessRuntime.exe" \
- installed_file1="$W_COMMONFILES_X86_WIN/Microsoft Shared/OFFICE12/ACEES.DLL"
- load_art2kmin()
- {
- # See http://www.microsoft.com/downloads/details.aspx?familyid=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed&displaylang=en
- w_download http://download.microsoft.com/download/D/2/A/D2A2FC8B-0447-491C-A5EF-E8AA3A74FB98/AccessRuntime.exe 571811b7536e97cf4e4e53bbf8260cddd69f9b2d
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" AccessRuntime.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata atmlib dlls \
- title="Adobe Type Manager" \
- publisher="Adobe" \
- year="2009" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/atmlib.dll"
- load_atmlib()
- {
- helper_win2ksp4 i386/atmlib.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/atmlib.dl_
- }
- #----------------------------------------------------------------
- w_metadata avifil32 dlls \
- title="MS avifil32" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/avifil32.dll"
- load_avifil32()
- {
- helper_xpsp3 i386/avifil32.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/avifil32.dl_
- w_override_dlls native avifil32
- }
- #----------------------------------------------------------------
- w_metadata cabinet dlls \
- title="Microsoft cabinet.dll" \
- publisher="Microsoft" \
- year="2002" \
- media="download" \
- file1="mdac_typ.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/cabinet.dll"
- load_cabinet()
- {
- # http://www.microsoft.com/downloads/en/details.aspx?FamilyId=9AD000F2-CAE7-493D-B0F3-AE36C570ADE8&displaylang=en
- w_download http://download.microsoft.com/download/3/b/f/3bf74b01-16ba-472d-9a8c-42b2b4fa0d76/mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/cabinet/$file1
- w_try cp "$W_TMP"/cabinet.dll "$W_SYSTEM32_DLLS"/cabinet.dll
- w_override_dlls native,builtin cabinet
- }
- #----------------------------------------------------------------
- w_metadata cmd dlls \
- title="MS cmd.exe" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="Q811493_W2K_SP4_X86_EN.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/cmd.exe"
- load_cmd()
- {
- w_download ftp://ftp.sunet.se/pub/security/vendor/microsoft/win2000/Security_Bulletins/Q811493_W2K_SP4_X86_EN.exe ac6e28cfd12942e74aa08bddf7715705edb85b6b
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_CACHE/$W_PACKAGE/$file1" -F cmd.exe
- w_override_dlls native,builtin cmd.exe
- }
- #----------------------------------------------------------------
- w_metadata comctl32 dlls \
- title="MS common controls 5.80" \
- publisher="Microsoft" \
- year="2001" \
- media="download" \
- file1="cc32inst.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/comctl32.dll"
- load_comctl32()
- {
- # 2011-01-17: http://www.microsoft.com/downloads/details.aspx?familyid=6f94d31a-d1e0-4658-a566-93af0d8d4a1e
- # 2012-08-11: w_download http://download.microsoft.com/download/platformsdk/redist/5.80.2614.3600/w9xnt4/en-us/cc32inst.exe 94c3c494258cc54bd65d2f0153815737644bffde
- # 2016/01/07: w_download ftp://ftp.ie.debian.org/disk1/download.sourceforge.net/pub/sourceforge/p/po/pocmin/Win%2095_98%20Controls/Win%2095_98%20Controls/CC32inst.exe
- w_download ftp://ftp.ie.debian.org/disk1/download.sourceforge.net/pub/sourceforge/p/po/pocmin/Win%2095_98%20Controls/Win%2095_98%20Controls/CC32inst.exe 94c3c494258cc54bd65d2f0153815737644bffde cc32inst.exe
- w_try "$WINE" "$W_CACHE"/comctl32/cc32inst.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q
- w_try_unzip "$W_TMP" "$W_TMP"/comctl32.exe
- w_try "$WINE" "$W_TMP"/x86/50ComUpd.Exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q
- w_try cp "$W_TMP"/comcnt.dll "$W_SYSTEM32_DLLS"/comctl32.dll
- w_override_dlls native,builtin comctl32
- # some builtin apps don't like native comctl32
- w_override_app_dlls winecfg.exe builtin comctl32
- w_override_app_dlls explorer.exe builtin comctl32
- w_override_app_dlls iexplore.exe builtin comctl32
- }
- #----------------------------------------------------------------
- w_metadata comctl32ocx dlls \
- title="MS comctl32.ocx and mscomctl.ocx, comctl32 wrappers for VB6" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="VisualBasic6-KB896559-v1-ENU.exe" \
- file2="mscomct2.cab" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mscomctl.ocx"
- load_comctl32ocx()
- {
- # http://www.microsoft.com/downloads/details.aspx?FamilyID=25437D98-51D0-41C1-BB14-64662F5F62FE
- w_download http://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c-bb01-af67dc2f96fc/VisualBasic6-KB896559-v1-ENU.exe f52cf2034488235b37a1da837d1c40eb2a1bad84
- # More ActiveX controls. See https://support.microsoft.com/kb/297381
- w_download http://activex.microsoft.com/controls/vb6/mscomct2.cab 766f9ccf8849a04d757faee379da54d635c8ac71
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comctl32ocx/VisualBasic6-KB896559-v1-ENU.exe
- w_try cp "$W_TMP"/mscomctl.ocx "$W_SYSTEM32_DLLS"/mscomctl.ocx
- w_try cp "$W_TMP"/comctl32.ocx "$W_SYSTEM32_DLLS"/comctl32.ocx
- w_try_regsvr comctl32.ocx
- w_try_regsvr mscomctl.ocx
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comctl32ocx/mscomct2.cab
- w_try cp "$W_TMP"/mscomct2.ocx "$W_SYSTEM32_DLLS"/mscomct2.ocx
- w_try_regsvr mscomct2.ocx
- }
- #----------------------------------------------------------------
- w_metadata comdlg32ocx dlls \
- title="Common Dialog ActiveX Control for VB6" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="ComDlg32.cab" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/comdlg32.ocx"
- load_comdlg32ocx()
- {
- # By analogy with vb5 version in http://support.microsoft.com/kb/168917
- w_download http://activex.microsoft.com/controls/vb6/ComDlg32.cab d4f3e193c6180eccd73bad53a8500beb5b279cbf
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/comdlg32ocx/${file1}
- w_try cp "$W_TMP"/comdlg32.ocx "$W_SYSTEM32_DLLS"/comdlg32.ocx
- w_try_regsvr comdlg32.ocx
- }
- #----------------------------------------------------------------
- w_metadata crypt32 dlls \
- title="MS crypt32" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/crypt32.dll"
- load_crypt32()
- {
- w_call msasn1
- helper_xpsp3 i386/crypt32.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/crypt32.dl_
- w_override_dlls native crypt32
- }
- #----------------------------------------------------------------
- w_metadata binkw32 dlls \
- title="RAD Game Tools binkw32.dll" \
- publisher="RAD Game Tools, Inc." \
- year="2000" \
- media="download" \
- file1="__32-binkw32.dll3.0.0.0.zip" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/binkw32.dll"
- load_binkw32()
- {
- # Mirror: http://www.dlldump.com/download-dll-files_new.php/dllfiles/B/binkw32.dll/1.0q/download.html
- # Sha1sum of the decompressed file: 613f81f82e12131e86ae60dd318941f40db2200f
- #
- # Zip sha1sum:
- # 2015-03-28: 991f77e8df513ccb8663dc4a2753fbf90338ef5c
- # 2015-12-27: 6a30900885390ef361dbb67444a7944143db36bf
- w_download http://www.down-dll.com/dll/b/__32-binkw32.dll3.0.0.0.zip 6a30900885390ef361dbb67444a7944143db36bf
- w_try_unzip "$W_TMP" "$W_CACHE"/binkw32/__32-binkw32.dll3.0.0.0.zip
- w_try cp "$W_TMP"/binkw32.dll "$W_SYSTEM32_DLLS"/binkw32.dll
- w_override_dlls native binkw32
- }
- #----------------------------------------------------------------
- w_metadata d3dcompiler_43 dlls \
- title="MS d3dcompiler_43.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dcompiler_43.dll" \
- wine_showstoppers="24013" # list a showstopper to hide this from average users for now
- load_d3dcompiler_43()
- {
- dllname=d3dcompiler_43
- helper_directx_Jun2010
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x86*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "$dllname.dll" "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x64*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F "$dllname.dll" "$x"
- done
- fi
- w_override_dlls native $dllname
- }
- #----------------------------------------------------------------
- w_metadata d3drm dlls \
- title="MS d3drm.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3drm.dll"
- load_d3drm()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F "dxnt.cab" "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "d3drm.dll" "$W_TMP/dxnt.cab"
- w_override_dlls native d3drm
- }
- #----------------------------------------------------------------
- w_metadata d3dx9 dlls \
- title="MS d3dx9_??.dll from DirectX 9 redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_43.dll"
- load_d3dx9()
- {
- helper_directx_Jun2010
- # Kinder, less invasive directx - only extract and override d3dx9_??.dll
- w_try_cabextract -d "$W_TMP" -L -F '*d3dx9*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'd3dx9*.dll' "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F '*d3dx9*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'd3dx9*.dll' "$x"
- done
- fi
- # For now, not needed, but when Wine starts preferring our builtin dll over native it will be.
- w_override_dlls native d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29 d3dx9_30
- w_override_dlls native d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37
- w_override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_26 dlls \
- title="MS d3dx9_26.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_26.dll"
- load_d3dx9_26()
- {
- helper_d3dx9_xx 26
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_28 dlls \
- title="MS d3dx9_28.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_28.dll"
- load_d3dx9_28()
- {
- helper_d3dx9_xx 28
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_31 dlls \
- title="MS d3dx9_31.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_31.dll"
- load_d3dx9_31()
- {
- helper_d3dx9_xx 31
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_35 dlls \
- title="MS d3dx9_35.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_35.dll"
- load_d3dx9_35()
- {
- helper_d3dx9_xx 35
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_36 dlls \
- title="MS d3dx9_36.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_36.dll"
- load_d3dx9_36()
- {
- helper_d3dx9_xx 36
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_39 dlls \
- title="MS d3dx9_39.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_39.dll"
- load_d3dx9_39()
- {
- helper_d3dx9_xx 39
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_42 dlls \
- title="MS d3dx9_42.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_42.dll"
- load_d3dx9_42()
- {
- helper_d3dx9_xx 42
- }
- #----------------------------------------------------------------
- w_metadata d3dx9_43 dlls \
- title="MS d3dx9_43.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx9_43.dll"
- load_d3dx9_43()
- {
- dllname=d3dx9_43
- helper_directx_Jun2010
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x86*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "$dllname.dll" "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x64*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F "$dllname.dll" "$x"
- done
- fi
- w_override_dlls native $dllname
- }
- #----------------------------------------------------------------
- w_metadata d3dx11_42 dlls \
- title="MS d3dx11_42.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx11_42.dll"
- load_d3dx11_42()
- {
- dllname=d3dx11_42
- helper_directx_Jun2010
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x86*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "$dllname.dll" "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x64*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F "$dllname.dll" "$x"
- done
- fi
- w_override_dlls native $dllname
- }
- #----------------------------------------------------------------
- w_metadata d3dx11_43 dlls \
- title="MS d3dx11_43.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx11_43.dll"
- load_d3dx11_43()
- {
- dllname=d3dx11_43
- helper_directx_Jun2010
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x86*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "$dllname.dll" "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F "*$dllname*x64*" "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F "$dllname.dll" "$x"
- done
- fi
- w_override_dlls native $dllname
- }
- #----------------------------------------------------------------
- w_metadata d3dx10 dlls \
- title="MS d3dx10_??.dll from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx10_33.dll"
- load_d3dx10()
- {
- helper_directx_Jun2010
- # Kinder, less invasive directx10 - only extract and override d3dx10_??.dll
- w_try_cabextract -d "$W_TMP" -L -F '*d3dx10*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'd3dx10*.dll' "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F '*d3dx10*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'd3dx10*.dll' "$x"
- done
- fi
- # For now, not needed, but when Wine starts preferring our builtin dll over native it will be.
- w_override_dlls native d3dx10_33 d3dx10_34 d3dx10_35 d3dx10_36 d3dx10_37
- w_override_dlls native d3dx10_38 d3dx10_39 d3dx10_40 d3dx10_41 d3dx10_42 d3dx10_43
- }
- #----------------------------------------------------------------
- w_metadata d3dxof dlls \
- title="MS d3dxof.dll from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dxof.dll"
- load_d3dxof()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'd3dxof.dll' "$W_TMP/dxnt.cab"
- w_override_dlls native d3dxof
- }
- #----------------------------------------------------------------
- w_metadata dbghelp dlls \
- title="MS dbghelp" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dbghelp.dll"
- load_dbghelp()
- {
- helper_xpsp3 i386/dbghelp.dll
- w_try cp -f "$W_TMP"/i386/dbghelp.dll "$W_SYSTEM32_DLLS"
- w_override_dlls native dbghelp
- }
- #----------------------------------------------------------------
- w_metadata devenum dlls \
- title="MS devenum.dll from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/devenum.dll"
- load_devenum()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE/directx9/$DIRECTX_NAME"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'devenum.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr devenum.dll
- w_override_dlls native devenum
- }
- #----------------------------------------------------------------
- w_metadata dinput dlls \
- title="MS dinput.dll; breaks mouse, use only on Rayman 2 etc." \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dinput.dll"
- load_dinput()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dinput.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr dinput
- w_override_dlls native dinput
- }
- #----------------------------------------------------------------
- w_metadata dinput8 dlls \
- title="MS DirectInput 8 from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dinput8.dll"
- load_dinput8()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dinput8.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr dinput8
- w_override_dlls native dinput8
- }
- #----------------------------------------------------------------
- w_metadata directmusic dlls \
- title="MS DirectMusic from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dmusic.dll"
- load_directmusic()
- {
- # Untested. Based off http://bugs.winehq.org/show_bug.cgi?id=4805 and http://bugs.winehq.org/show_bug.cgi?id=24911
- w_call dsound
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'devenum.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmband.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmcompos.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmime.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmloader.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmscript.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmstyle.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmsynth.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmusic.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmusic32.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dswave.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'streamci.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'quartz.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr devenum.dll
- w_try_regsvr dmband.dll
- w_try_regsvr dmcompos.dll
- w_try_regsvr dmime.dll
- w_try_regsvr dmloader.dll
- w_try_regsvr dmscript.dll
- w_try_regsvr dmstyle.dll
- w_try_regsvr dmsynth.dll
- w_try_regsvr dmusic.dll
- w_try_regsvr dswave.dll
- w_try_regsvr quartz.dll
- w_override_dlls native devenum dmband dmcompos dmime dmloader dmscript dmstyle dmsynth dmusic dmusic32 dswave streamci quartz
- }
- #----------------------------------------------------------------
- w_metadata directplay dlls \
- title="MS DirectPlay from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dplayx.dll"
- load_directplay()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dplaysvr.exe' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dplayx.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpnet.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpnhpast.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpnsvr.exe' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpwsockx.dll' "$W_TMP/dxnt.cab"
- w_override_dlls native dplayx dpnet dpnhpast dpnsvr.exe dpwsockx
- w_try_regsvr dplayx.dll
- w_try_regsvr dpnet.dll
- w_try_regsvr dpnhpast.dll
- }
- #----------------------------------------------------------------
- w_metadata directx9 dlls \
- title="MS DirectX 9 (Usually overkill. Try d3dx9_36 first)" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/d3dx10_33.dll"
- load_directx9()
- {
- helper_directx_dl
- w_warn "You probably shouldn't be using this. d3dx9 or, better, d3dx9_36 usually suffice."
- # Stefan suggested that, when installing, one should override as follows:
- # 1) use builtin wintrust (we don't run native properly somehow?)
- # 2) disable mscoree (else if it's present some module misbehaves?)
- # 3) override native any directx DLL whose Wine version doesn't register itself well yet
- # For #3, I have no idea which DLLs don't register themselves well yet,
- # so I'm just listing a few of the basic ones. Let's whittle that
- # list down as soon as we can.
- # Setting windows version to win2k apparently crashes the installer on OS X.
- # See http://code.google.com/p/winezeug/issues/detail?id=71
- w_set_winver winxp
- cd "$W_CACHE/$W_PACKAGE"
- WINEDLLOVERRIDES="wintrust=b,mscoree=,ddraw,d3d8,d3d9,dsound,dinput=n" \
- w_try "$WINE" $DIRECTX_NAME /t:"$W_TMP_WIN" $W_UNATTENDED_SLASH_Q
- # How many of these do we really need?
- # We should probably remove most of these...?
- w_override_dlls native d3dim d3drm d3dx8 d3dx9_24 d3dx9_25 d3dx9_26 d3dx9_27 d3dx9_28 d3dx9_29
- w_override_dlls native d3dx9_30 d3dx9_31 d3dx9_32 d3dx9_33 d3dx9_34 d3dx9_35 d3dx9_36 d3dx9_37
- w_override_dlls native d3dx9_38 d3dx9_39 d3dx9_40 d3dx9_41 d3dx9_42 d3dx9_43 d3dxof
- w_override_dlls native dciman32 ddrawex devenum dmband dmcompos dmime dmloader dmscript dmstyle
- w_override_dlls native dmsynth dmusic dmusic32 dnsapi dplay dplayx dpnaddr dpnet dpnhpast dpnlobby
- w_override_dlls native dswave dxdiagn msdmo qcap quartz streamci
- w_override_dlls native dxdiag.exe
- w_override_dlls builtin d3d8 d3d9 dinput dinput8 dsound
- w_try "$WINE" "$W_TMP_WIN"\\DXSETUP.exe $W_UNATTENDED_SLASH_SILENT
- }
- #----------------------------------------------------------------
- w_metadata dpvoice dlls \
- title="Microsoft dpvoice dpvvox dpvacm Audio dlls" \
- publisher="Microsoft" \
- year="2002" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dpvoice.dll" \
- installed_file2="$W_SYSTEM32_DLLS_WIN/dpvvox.dll" \
- installed_file2="$W_SYSTEM32_DLLS_WIN/dpvacm.dll"
- load_dpvoice()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F 'dxnt.cab' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpvoice.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpvvox.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dpvacm.dll' "$x"
- done
- w_try_regsvr dpvoice.dll
- w_try_regsvr dpvvox.dll
- w_try_regsvr dpvacm.dll
- w_override_dlls native dpvoice
- w_override_dlls native dpvvox
- w_override_dlls native dpvacm
- }
- #----------------------------------------------------------------
- w_metadata dsdmo dlls \
- title="MS dsdmo.dll" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dsdmo.dll"
- load_dsdmo()
- {
- helper_directx_dl
- mkdir "$W_CACHE"/dsdmo # kludge so test -f $file1 works
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dsdmo.dll' "$W_TMP/dxnt.cab"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dsdmoprp.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr dsdmo.dll
- w_try_regsvr dsdmoprp.dll
- }
- #----------------------------------------------------------------
- w_metadata dxsdk_nov2006 dlls \
- title="MS DirectX SDK, November 2006 (developers only)" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="dxsdk_aug2006.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Microsoft DirectX SDK (August 2006)/Lib/x86/d3d10.lib"
- load_dxsdk_nov2006()
- {
- w_download http://download.microsoft.com/download/9/e/5/9e5bfc66-a621-4e0d-8bfe-6688058c3f00/dxsdk_aug2006.exe 1e9cdbef391ebfbf781e6c87a375138d8c195c57
- # dxview.dll uses mfc42u while registering
- w_call mfc42
- w_try_cabextract "$W_CACHE"/dxsdk_nov2006/dxsdk_aug2006.exe
- w_try_unzip "$W_TMP" dxsdk.exe
- cd "$W_TMP"
- w_try "$WINE" msiexec /i Microsoft_DirectX_SDK.msi $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata dxsdk_jun2010 dlls \
- title="MS DirectX SDK, June 2010 (developers only)" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="DXSDK_Jun10.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Microsoft DirectX SDK (June 2010)/Lib/x86/d3d11.lib"
- load_dxsdk_jun2010()
- {
- w_download http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe 8fe98c00fde0f524760bb9021f438bd7d9304a69
- # Without dotnet20, install aborts halfway through
- w_call dotnet20
- cd "$W_TMP"
- w_try "$WINE" "$W_CACHE"/dxsdk_jun2010/DXSDK_Jun10.exe ${W_OPT_UNATTENDED:+/U}
- }
- #----------------------------------------------------------------
- w_metadata dmsynth dlls \
- title="MS midi synthesizer from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dmsynth.dll"
- load_dmsynth()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dmsynth.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr dmsynth.dll
- w_override_dlls native dmsynth
- }
- #----------------------------------------------------------------
- w_metadata dotnet11 dlls \
- title="MS .NET 1.1" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet30 dotnet30sp1 dotnet35 dotnet35sp1 vjrun20" \
- file1="dotnetfx.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v1.1.4322/ndpsetup.ico"
- load_dotnet11()
- {
- if [ $W_ARCH = win64 ]
- then
- w_die "This package does not work on a 64-bit installation"
- fi
- # http://www.microsoft.com/downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3
- w_download http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe 16a354a2207c4c8846b617cbc78f7b7c1856340e
- w_call remove_mono
- w_call corefonts
- w_call fontfix
- w_try cd "$W_CACHE/dotnet11"
- # Use builtin regsvcs.exe to work around https://bugs.winehq.org/show_bug.cgi?id=25120
- if test $W_OPT_UNATTENDED
- then
- WINEDLLOVERRIDES="regsvcs.exe=b" w_ahk_do "
- SetTitleMatchMode, 2
- run, dotnetfx.exe /q /C:\"install /q\"
- Loop
- {
- sleep 1000
- ifwinexist, Fatal error, Failed to delay load library
- {
- WinClose, Fatal error, Failed to delay load library
- continue
- }
- Process, exist, dotnetfx.exe
- dotnet_pid = %ErrorLevel% ; Save the value immediately since ErrorLevel is often changed.
- if dotnet_pid = 0
- {
- break
- }
- }
- "
- else
- WINEDLLOVERRIDES="regsvcs.exe=b" w_try "$WINE" dotnetfx.exe
- fi
- W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v1.1.4322/ngen.exe executequeueditems"
- }
- verify_dotnet11()
- {
- w_dotnet_verify dotnet11
- }
- #----------------------------------------------------------------
- w_metadata dotnet11sp1 dlls \
- title="MS .NET 1.1 SP1" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="NDP1.1sp1-KB867460-X86.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v1.1.4322/CONFIG/web_hightrust.config.default"
- load_dotnet11sp1()
- {
- w_download http://download.microsoft.com/download/8/b/4/8b4addd8-e957-4dea-bdb8-c4e00af5b94b/NDP1.1sp1-KB867460-X86.exe 74a5b25d65a70b8ecd6a9c301a0aea10d8483a23
- w_call remove_mono
- w_call dotnet11
- w_try cd "$W_CACHE/dotnet11sp1"
- # Use builtin regsvcs.exe to work around http://bugs.winehq.org/show_bug.cgi?id=25120
- if test $W_OPT_UNATTENDED
- then
- WINEDLLOVERRIDES="regsvcs.exe=b" w_ahk_do "
- SetTitleMatchMode, 2
- run, NDP1.1sp1-KB867460-X86.exe /q /C:"install /q"
- Loop
- {
- sleep 1000
- ifwinexist, Fatal error, Failed to delay load library
- {
- WinClose, Fatal error, Failed to delay load library
- continue
- }
- Process, exist, dotnetfx.exe
- dotnet_pid = %ErrorLevel% ; Save the value immediately since ErrorLevel is often changed.
- if dotnet_pid = 0
- {
- break
- }
- }
- "
- else
- WINEDLLOVERRIDES="regsvcs.exe=b" w_try "$WINE" "$W_CACHE"/dotnet11sp1/NDP1.1sp1-KB867460-X86.exe
- fi
- W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v1.1.4322/ngen.exe executequeueditems"
- }
- verify_dotnet11sp1()
- {
- w_dotnet_verify dotnet11sp1
- }
- #----------------------------------------------------------------
- w_metadata dotnet20 dlls \
- title="MS .NET 2.0" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- conflicts="dotnet11" \
- file1="dotnetfx.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v2.0.50727/Microsoft .NET Framework 2.0/install.exe"
- load_dotnet20()
- {
- # http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
- w_download http://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkvantage_en/dotnetfx.exe a3625c59d7a2995fb60877b5f5324892a1693b2a
- w_call remove_mono
- w_call fontfix
- # Recipe from http://bugs.winehq.org/show_bug.cgi?id=10467#c57
- # and http://bugs.winehq.org/show_bug.cgi?id=30845#c10
- w_set_winver win2k
- # FIXME: verify on pristine windows XP:
- if w_workaround_wine_bug 34803
- then
- "$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' /f
- fi
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" dotnetfx.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"}
- w_unset_winver
- # We can't stop installing dotnet20 in win2K mode until wine supports
- # reparse/junction points
- # (see http://bugs.winehq.org/show_bug.cgi?id=10467#c57 )
- # so for now just remove the bogus msvc*80.dll files it installs.
- # See also http://bugs.winehq.org/show_bug.cgi?id=16577
- # This affects Victoria 2 demo, see http://forum.paradoxplaza.com/forum/showthread.php?p=11523967
- rm -f "$W_SYSTEM32_DLLS"/msvc?80.dll
- W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v2.0.50727/ngen.exe executequeueditems"
- }
- verify_dotnet20()
- {
- w_dotnet_verify dotnet20
- }
- #----------------------------------------------------------------
- w_metadata dotnet20sdk dlls \
- title="MS .NET 2.0 SDK" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- conflicts="dotnet11 dotnet20sp1 dotnet20sp2 dotnet30 dotnet40" \
- file1="setup.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Microsoft.NET/SDK/v2.0/Bin/cordbg.exe"
- load_dotnet20sdk()
- {
- # http://www.microsoft.com/en-us/download/details.aspx?id=19988
- w_download http://download.microsoft.com/download/c/4/b/c4b15d7d-6f37-4d5a-b9c6-8f07e7d46635/setup.exe 4e4b1072b5e65e855358e2028403f2dc52a62ab4
- w_call remove_mono
- w_call dotnet20
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, setup.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"}
- Loop
- {
- sleep 1000
- ifwinexist, Microsoft Document Explorer, Application Data folder
- {
- WinClose, Microsoft Document Explorer, Application Data folder
- continue
- }
- ifwinexist, Microsoft CLR Debugger, Application Data folder
- {
- WinClose, Microsoft CLR Debugger, Application Data folder
- continue
- }
- ; FIXME: only appears if dotnet30sp1 is run first?
- ifwinexist, Microsoft .NET Framework 2.0 SDK Setup, This wizard will guide
- {
- ControlClick, Button22, Microsoft .NET Framework 2.0 SDK Setup
- Winwait, Microsoft .NET Framework 2.0 SDK Setup, By clicking
- sleep 100
- ControlClick, Button21
- sleep 100
- ControlClick, Button18
- WinWait, Microsoft .NET Framework 2.0 SDK Setup, Select from
- sleep 100
- ControlClick, Button12
- WinWait, Microsoft .NET Framework 2.0 SDK Setup, Type the path
- sleep 100
- ControlClick, Button8
- WinWait, Microsoft .NET Framework 2.0 SDK Setup, successfully installed
- sleep 100
- ControlClick, Button2
- sleep 100
- }
- Process, exist, setup.exe
- dotnet_pid = %ErrorLevel%
- if dotnet_pid = 0
- {
- break
- }
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata dotnet20sp1 dlls \
- title="MS .NET 2.0 SP1 (experimental)" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- conflicts="dotnet11 dotnet20sp2 dotnet35sp1" \
- file1="NetFx20SP1_x86.exe" \
- installed_file1="c:/windows/winsxs/manifests/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2.cat"
- load_dotnet20sp1()
- {
- # FIXME: URL?
- w_download http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe eef5a36924cdf0c02598ccf96aa4f60887a49840
- w_call remove_mono
- w_call dotnet20
- WINEDLLOVERRIDES=
- w_warn "Setting windows version so installer works"
- # Stop services
- # Recipe from http://bugs.winehq.org/show_bug.cgi?id=16956
- $WINESERVER -k
- # Fight a race condition, see bug 16956 comment 43
- w_set_winver win2k
- $WINESERVER -w
- WINEDLLOVERRIDES=ngen.exe,regsvcs.exe,mscorsvw.exe=b
- export WINEDLLOVERRIDES
- # FIXME: still needed?
- # Workaround Wine/Mono integration:
- "$WINE" reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727" /v Version /t REG_SZ /d "2.0.50727" /f
- cd "$W_CACHE/$W_PACKAGE"
- "$WINE" NetFx20SP1_x86.exe ${W_OPT_UNATTENDED:+/q}
- status=$?
- case $status in
- 0) ;;
- 105) echo "exit status $status - normal, user selected 'restart now'" ;;
- 194) echo "exit status $status - normal, user selected 'restart later'" ;;
- *) w_die "exit status $status - $W_PACKAGE installation failed" ;;
- esac
- # We can't stop installing dotnet20sp1 in win2K mode until wine supports
- # reparse/junction points
- # (see http://bugs.winehq.org/show_bug.cgi?id=10467#c57 )
- # so for now just remove the bogus msvc*80.dll files it installs.
- # See also http://bugs.winehq.org/show_bug.cgi?id=16577
- # This affects Victoria 2 demo, see http://forum.paradoxplaza.com/forum/showthread.php?p=11523967
- rm -f "$W_SYSTEM32_DLLS"/msvc?80.dll
- w_unset_winver
- W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v2.0.50727/ngen.exe executequeueditems"
- }
- verify_dotnet20sp1()
- {
- w_dotnet_verify dotnet20sp1
- }
- #----------------------------------------------------------------
- w_metadata dotnet20sp2 dlls \
- title="MS .NET 2.0 SP2 (experimental)" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- conflicts="dotnet11" \
- file1="NetFx20SP2_x86.exe" \
- installed_file1="c:/windows/winsxs/manifests/x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.3053_x-ww_b80fa8ca.cat"
- load_dotnet20sp2()
- {
- # http://www.microsoft.com/downloads/details.aspx?familyid=5B2C0358-915B-4EB5-9B1D-10E506DA9D0F
- w_download http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe 22d776d4d204863105a5db99e8b8888be23c61a7
- w_call remove_mono
- w_call dotnet20
- # FIXME: verify on pristine windows XP:
- if w_workaround_wine_bug 34803
- then
- "$WINE" reg delete 'HKLM\Software\Microsoft\.NETFramework\v2.0.50727\SBSDisabled' /f
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, NetFx20SP2_x86.exe ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"}
- Loop
- {
- sleep 1000
- ifwinexist,, cannot be uninstalled
- {
- WinClose,, cannot be uninstalled
- continue
- }
- Process, exist, NetFx20SP2_x86.exe
- dotnet_pid = %ErrorLevel%
- if dotnet_pid = 0
- {
- break
- }
- }
- "
- status=$?
- case $status in
- 0) ;;
- 105) echo "exit status $status - normal, user selected 'restart now'" ;;
- 194) echo "exit status $status - normal, user selected 'restart later'" ;;
- *) w_die "exit status $status - $W_PACKAGE installation failed" ;;
- esac
- w_unset_winver
- W_NGEN_CMD="w_try $WINE $DRIVE_C/windows/Microsoft.NET/Framework/v2.0.50727/ngen.exe executequeueditems"
- }
- verify_dotnet20sp2()
- {
- w_dotnet_verify dotnet20sp2
- }
- #----------------------------------------------------------------
- w_metadata dotnet30 dlls \
- title="MS .NET 3.0" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- conflicts="dotnet11 dotnet20sp1 dotnet20sp2 dotnet30sp1 dotnet35 dotnet35sp1 dotnet45 dotnet452" \
- file1="dotnetfx3.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v3.0/Microsoft .NET Framework 3.0/logo.bmp"
- load_dotnet30()
- {
- # http://msdn.microsoft.com/en-us/netframework/bb264589.aspx
- w_download http://download.microsoft.com/download/3/F/0/3F0A922C-F239-4B9B-9CB0-DF53621C57D9/dotnetfx3.exe f3d2c3c7e4c0c35450cf6dab1f9f2e9e7ff50039
- w_call remove_mono
- if test -f /proc/sys/kernel/yama/ptrace_scope
- then
- case `cat /proc/sys/kernel/yama/ptrace_scope` in
- 0) ;;
- *) w_warn "If install fails, set /proc/sys/kernel/yama/ptrace_scope to 0. See http://bugs.winehq.org/show_bug.cgi?id=30410" ;;
- esac
- fi
- case "$OS" in
- "Windows_NT")
- osver=`cmd /c ver`
- case "$osver" in
- *Version?6*) w_die "Vista and up bundle .net 3.0, so you can't install it like this" ;;
- esac
- ;;
- esac
- w_call dotnet20
- w_warn "Installing .net 3.0 runtime takes 3 minutes on a very fast machine, and the Finished dialog may hide in the taskbar."
- # AF's workaround to avoid long pause
- LANGPACKS_BASE_PATH="${W_WINDIR_UNIX}/SYSMSICache/Framework/v3.0"
- test -d "${LANGPACKS_BASE_PATH}" || mkdir -p "${LANGPACKS_BASE_PATH}"
- for lang in ar cs da de el es fi fr he it jp ko nb nl pl pt-BR pt-PT ru \
- sv tr zh-CHS zh-CHT
- do
- ln -sf "${W_SYSTEM32_DLLS}/spupdsvc.exe" "${LANGPACKS_BASE_PATH}/dotnetfx3langpack${lang}.exe"
- done
- w_set_winver winxp
- # Delete FontCache 3.0 service, it's in Wine for Mono, breaks native .NET
- # OK if this fails, that just means you have an older wine.
- "$WINE" sc delete "FontCache3.0.0.0"
- WINEDLLOVERRIDES="ngen.exe,mscorsvw.exe=b;$WINEDLLOVERRIDES"
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /q /c:"install.exe /q"}
- # Doesn't install any ngen.exe
- # W_NGEN_CMD=""
- }
- verify_dotnet30()
- {
- w_dotnet_verify dotnet30
- }
- #----------------------------------------------------------------
- w_metadata dotnet30sp1 dlls \
- title="MS .NET 3.0 SP1" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- conflicts="dotnet11 dotnet20sdk dotnet20sp1 dotnet20sp2" \
- file1="NetFx30SP1_x86.exe" \
- installed_file1="c:/windows/system32/XpsFilt.dll" # we're cheating a bit here
- load_dotnet30sp1()
- {
- # FIXME: URL?
- w_download http://download.microsoft.com/download/8/F/E/8FEEE89D-9E4F-4BA3-993E-0FFEA8E21E1B/NetFx30SP1_x86.exe 8d779e337920b097aa0c01859912950606e9fc12
- # Recipe from http://bugs.winehq.org/show_bug.cgi?id=25060#c10
- w_download http://download.microsoft.com/download/2/5/2/2526f55d-32bc-410f-be18-164ba67ae07d/XPSEP%20XP%20and%20Server%202003%2032%20bit.msi 5d332ebd1025e294adafe72030fe33db707b2c82 "XPSEP XP and Server 2003 32 bit.msi"
- w_call remove_mono
- w_call dotnet30
- $WINESERVER -w
- w_call dotnet20sp1
- $WINESERVER -w
- cd "$W_CACHE/$W_PACKAGE"
- "$WINE" reg add "HKLM\\Software\\Microsoft\\Net Framework Setup\\NDP\\v3.0" /v Version /t REG_SZ /d "3.0" /f
- "$WINE" reg add "HKLM\\Software\\Microsoft-\\Net Framework Setup\\NDP\\v3.0" /v SP /t REG_DWORD /d 0001 /f
- w_try "$WINE" msiexec /i "XPSEP XP and Server 2003 32 bit.msi" ${W_UNATTENDED_SLASH_QB}
- "$WINE" sc delete FontCache3.0.0.0
- "$WINE" $file1 ${W_OPT_UNATTENDED:+/q}
- status=$?
- w_info $file1 exited with status $status
- # Doesn't install any ngen.exe
- # W_NGEN_CMD=""
- }
- verify_dotnet30sp1()
- {
- w_dotnet_verify dotnet30sp1
- }
- #----------------------------------------------------------------
- w_metadata dotnet35 dlls \
- title="MS .NET 3.5" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- conflicts="dotnet11 dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2" \
- file1="dotnetfx35.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v3.5/MSBuild.exe"
- load_dotnet35()
- {
- case "$OS" in
- "Windows_NT") ;;
- *) w_warn "dotnet35 does not yet fully work or install on wine. Caveat emptor." ;;
- esac
- # http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6
- w_download http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe 0a271bb44531aadef902829f98dfad66e4a57586
- w_call remove_mono
- w_call dotnet30sp1
- $WINESERVER -w
- if w_workaround_wine_bug 33450 "Installing msxml3" ,1.5.28
- then
- w_call msxml3
- fi
- "$WINE" reg delete "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5" /f
- # See also http://blogs.msdn.com/astebner/archive/2008/07/17/8745415.aspx
- cd "$W_TMP"
- w_try_cabextract $W_UNATTENDED_DASH_Q "$W_CACHE"/dotnet35/dotnetfx35.exe
- cd wcu/dotNetFramework
- "$WINE" dotNetFx35setup.exe /lang:ENU $W_UNATTENDED_SLASH_Q
- # Doesn't install any ngen.exe
- # W_NGEN_CMD=""
- }
- verify_dotnet35()
- {
- w_dotnet_verify dotnet35
- }
- #----------------------------------------------------------------
- w_metadata dotnet35sp1 dlls \
- title="MS .NET 3.5 SP1" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- conflicts="dotnet11 dotnet20sp1 dotnet20sp2" \
- file1="dotnetfx35.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v3.5/Microsoft .NET Framework 3.5 SP1/logo.bmp"
- load_dotnet35sp1()
- {
- case "$OS" in
- "Windows_NT") ;;
- *) w_warn "dotnet35sp1 does not yet fully work or install on wine. Caveat emptor." ;;
- esac
- # http://www.microsoft.com/download/en/details.aspx?id=25150
- w_download http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe 3dce66bae0dd71284ac7a971baed07030a186918
- w_call remove_mono
- w_call dotnet35
- $WINESERVER -w
- w_call dotnet20sp2
- $WINESERVER -w
- # Work around hang in http://bugs.winehq.org/show_bug.cgi?id=25060#c19
- WINEDLLOVERRIDES=ngen.exe,mscorsvw.exe=b
- export WINEDLLOVERRIDES
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, dotnetfx35.exe /lang:ENU $W_UNATTENDED_SLASH_Q
- Loop
- {
- sleep 1000
- ifwinexist,, cannot be uninstalled
- {
- WinClose,, cannot be uninstalled
- continue
- }
- Process, exist, dotnetfx35.exe
- dotnet_pid = %ErrorLevel%
- if dotnet_pid = 0
- {
- break
- }
- }
- "
- # Doesn't install any ngen.exe
- # W_NGEN_CMD=""
- }
- verify_dotnet35sp1()
- {
- w_dotnet_verify dotnet35sp1
- }
- #----------------------------------------------------------------
- w_metadata dotnet40 dlls \
- title="MS .NET 4.0" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- conflicts="dotnet20sdk" \
- file1="dotNetFx40_Full_x86_x64.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe"
- load_dotnet40()
- {
- if [ $W_ARCH = win64 ]
- then
- w_die "This package does not work on a 64-bit installation"
- fi
- case "$OS" in
- "Windows_NT") ;;
- *) w_warn "dotnet40 does not yet fully work or install on wine. Caveat emptor." ;;
- esac
- # http://www.microsoft.com/download/en/details.aspx?id=17718
- w_download http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe 58da3d74db353aad03588cbb5cea8234166d8b99
- w_call remove_mono
- # Remove Mono registry entry:
- "$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
- w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
- cd "$W_CACHE/$W_PACKAGE"
- WINEDLLOVERRIDES=fusion=b "$WINE" dotNetFx40_Full_x86_x64.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"} || true
- w_override_dlls native mscoree
- "$WINE" reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Install /t REG_DWORD /d 0001 /f
- "$WINE" reg add "HKLM\\Software\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full" /v Version /t REG_SZ /d "4.0.30319" /f
- W_NGEN_CMD="$WINE $WINEPREFIX/drive_c/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe executequeueditems"
- }
- verify_dotnet40()
- {
- w_dotnet_verify dotnet40
- }
- #----------------------------------------------------------------
- w_metadata dotnet45 dlls \
- title="MS .NET 4.5" \
- publisher="Microsoft" \
- year="2012" \
- media="download" \
- conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 vjrun20" \
- file1="dotnetfx45_full_x86_x64.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v4.0.30319/Microsoft.Windows.ApplicationServer.Applications.45.man"
- load_dotnet45()
- {
- if [ $W_ARCH = win64 ]
- then
- w_warn "This package may not work on a 64-bit installation"
- fi
- # http://www.microsoft.com/download/en/details.aspx?id=17718
- w_download http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe b2ff712ca0947040ca0b8e9bd7436a3c3524bb5d
- w_call remove_mono
- # Remove Mono registry entry:
- "$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
- w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
- # See https://appdb.winehq.org/objectManager.php?sClass=version&iId=25478 for Focht's recipe
- w_call dotnet35
- w_call dotnet40
- w_set_winver win7
- cd "$W_CACHE/$W_PACKAGE"
- WINEDLLOVERRIDES=fusion=b "$WINE" dotnetfx45_full_x86_x64.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"}
- status=$?
- case $status in
- 0) ;;
- 105) echo "exit status $status - normal, user selected 'restart now'" ;;
- 194) echo "exit status $status - normal, user selected 'restart later'" ;;
- *) w_die "exit status $status - $W_PACKAGE installation failed" ;;
- esac
- w_override_dlls native mscoree
- w_warn "Setting Windows version to 2003, otherwise applications using .NET 4.5 will subtly fail"
- w_set_winver win2k3
- }
- verify_dotnet45()
- {
- w_dotnet_verify dotnet45
- }
- #----------------------------------------------------------------
- w_metadata dotnet452 dlls \
- title="MS .NET 4.5.2" \
- publisher="Microsoft" \
- year="2012" \
- media="download" \
- conflicts="dotnet20 dotnet20sdk dotnet20sp1 dotnet20sp2 dotnet35sp1 dotnet40 dotnet45 vjrun20" \
- file1="dotnetfx45_full_x86_x64.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/v4.0.30319/Microsoft.Windows.ApplicationServer.Applications.45.man"
- load_dotnet452()
- {
- if [ $W_ARCH = win64 ]
- then
- w_warn "This package may not work on a 64-bit installation"
- fi
- # http://www.microsoft.com/download/en/details.aspx?id=17718
- w_download http://download.microsoft.com/download/E/2/1/E21644B5-2DF2-47C2-91BD-63C560427900/NDP452-KB2901907-x86-x64-AllOS-ENU.exe 89f86f9522dc7a8a965facce839abb790a285a63
- w_call remove_mono
- # Remove Mono registry entry:
- "$WINE" reg delete "HKLM\Software\Microsoft\NET Framework Setup\NDP\v4" /f
- w_try rm -f "$W_WINDIR_UNIX/system32/mscoree.dll"
- # See https://appdb.winehq.org/objectManager.php?sClass=version&iId=25478 for Focht's recipe
- w_call dotnet35
- w_call dotnet40
- w_set_winver win7
- cd "$W_CACHE/$W_PACKAGE"
- WINEDLLOVERRIDES=fusion=b "$WINE" NDP452-KB2901907-x86-x64-AllOS-ENU.exe ${W_OPT_UNATTENDED:+/q /c:"install.exe /q"}
- status=$?
- case $status in
- 0) ;;
- 105) echo "exit status $status - normal, user selected 'restart now'" ;;
- 194) echo "exit status $status - normal, user selected 'restart later'" ;;
- *) w_die "exit status $status - $W_PACKAGE installation failed" ;;
- esac
- w_override_dlls native mscoree
- w_warn "Setting Windows version to 2003, otherwise applications using .NET 4.5 will subtly fail"
- w_set_winver win2k3
- }
- verify_dotnet452()
- {
- w_dotnet_verify dotnet452
- }
- #----------------------------------------------------------------
- w_metadata dotnet_verifier dlls \
- title="MS .NET Verifier" \
- publisher="Microsoft" \
- year="2012" \
- media="download" \
- file1="netfx_5F00_setupverifier_5F00_new.zip" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/netfx_setupverifier.exe"
- load_dotnet_verifier()
- {
- # http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx
- # 2013/03/28: sha1sum 0eba832a0733cd47b7639463dd5a22a41e95ee6e
- # 2014/01/23: sha1sum 8818f3460826145e2a66bb91727afa7cd531037b
- # 2014/11/22: sha1sum 47de0b849c4c3d354df23588c709108e7816d788
- # 2015/07/31: sha1sum 32f24526a5716737281dc260451b60a641b23c7e
- # 2015/12/27: sha1sum b9712da2943e057668f21f68c473657a205c5cb8
- w_download http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-08-99-90-04/netfx_5F00_setupverifier_5F00_new.zip b9712da2943e057668f21f68c473657a205c5cb8
- cd "$W_CACHE/$W_PACKAGE"
- w_try_unzip "$W_SYSTEM32_DLLS" netfx_5F00_setupverifier_5F00_new.zip netfx_setupverifier.exe
- }
- #----------------------------------------------------------------
- w_metadata dxdiagn dlls \
- title="DirectX Diagnostic Library" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dxdiagn.dll"
- load_dxdiagn()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F dxdiagn.dll "$W_TMP/dxnt.cab"
- w_override_dlls native dxdiagn
- }
- #----------------------------------------------------------------
- w_metadata dsound dlls \
- title="MS DirectSound from DirectX user redistributable" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dsound.dll"
- load_dsound()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'dsound.dll' "$W_TMP/dxnt.cab"
- w_try_regsvr dsound.dll
- w_override_dlls native dsound
- }
- #----------------------------------------------------------------
- w_metadata esent dlls \
- title="MS Extensible Storage Engine" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="../win7sp1/windows6.1-KB976932-X86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/esent.dll"
- load_esent()
- {
- helper_win7sp1 x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll
- w_try cp "$W_TMP/x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll" "$W_SYSTEM32_DLLS/esent.dll"
- w_override_dlls native,builtin esent
- }
- #----------------------------------------------------------------
- # FIXME: update winetricks_is_installed to look at installed_file2..n
- w_metadata flash dlls \
- title="Flash Player 14" \
- publisher="Adobe" \
- year="2014" \
- media="download" \
- file1="install_flash_player.exe" \
- file2="install_flash_player_ax.exe" \
- file3="flashplayer_14_sa.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/FlashUtil32_14_0_0_179_Plugin.exe" \
- installed_file2="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/FlashUtil32_14_0_0_176_ActiveX.exe" \
- installed_file3="$W_SYSTEM32_DLLS_WIN/Macromed/Flash/flashplayer_14_sa.exe" \
- homepage="http://www.adobe.com/products/flashplayer/"
- load_flash()
- {
- # As of July 9, 2013, Flash 10 is no longer supported.
- # And as of June 24, 2013, Flash 10.3 won't even install for me,
- # it tells you to go get a newer version!
- # See
- # http://blogs.adobe.com/psirt/
- # http://get.adobe.com/de/flashplayer/otherversions/
- # Now, we install older versions by using zipfiles at
- # http://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html
- # Active X plugin
- # 2013-03-28
- #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.6.602.180/install_flash_player_ax.exe 359f231d7007c17b419f777125e0f28fffc2e6a1
- # 2013-06-24
- # w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.7.700.224/install_flash_player_ax.exe fdadce901fc7da7a175f71cc8f1f2dd0db78ec8e
- # 2014-01-21
- #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/12.0.0.38/install_flash_player_ax.exe 8deb33bcbbbbecfcbcbeb0f861d2c7492599da2b
- # 2014-08-17
- #w_download https://fpdownload.macromedia.com/get/flashplayer/pdc/14.0.0.176/install_flash_player_ax.exe 16231b509d8e689dc34ae36597d41c4fb1b3a67e
- # 2014-10-02
- w_download http://download.macromedia.com/pub/flashplayer/installers/archive/fp_14.0.0.176_archive.zip 40df72ab2c22bcd4442aa35eb586000776129982
- w_try_unzip "$W_TMP" "$W_CACHE"/flash/fp_14.0.0.176_archive.zip fp_14.0.0.176_archive/14_0_r0_176/flashplayer14_0r0_176_winax.exe
- cd "$W_TMP"/fp_14.0.0.176_archive/14_0_r0_176
- w_try "$WINE" flashplayer14_0r0_176_winax.exe ${W_OPT_UNATTENDED:+ /install}
- # Mozilla / Firefox plugin
- # 2013-03-28
- #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.6.602.180/install_flash_player.exe bf44990ade52aa92078495ec39035d8489ff6e05
- # 2013-06-24
- #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/11.7.700.224/install_flash_player.exe 9c519fd5a7202c43b5713f9f6b083d970810112e
- # 2014-01-21
- #w_download http://fpdownload.macromedia.com/get/flashplayer/pdc/12.0.0.43/install_flash_player.exe 5a68f7aa21c4217cf801a46616fe724d601f773a
- # 2014-08-17
- #w_download https://fpdownload.macromedia.com/get/flashplayer/pdc/14.0.0.179/install_flash_player.exe 1d5725fd0d50eb1361213179ffae9ee24944755a
- # 2014-10-02
- w_download http://download.macromedia.com/pub/flashplayer/installers/archive/fp_14.0.0.179_archive.zip b94860ca0eff3e1420c24f9647a5f9f5e610ce34
- w_try_unzip "$W_TMP" "$W_CACHE"/flash/fp_14.0.0.179_archive.zip fp_14.0.0.179_archive/14_0_r0_179/flashplayer14_0r0_179_win.exe
- cd "$W_TMP"/fp_14.0.0.179_archive/14_0_r0_179
- w_try "$WINE" flashplayer14_0r0_179_win.exe ${W_OPT_UNATTENDED:+ /install}
- # Projector (standalone player)
- # 2015-07-06
- w_download http://download.macromedia.com/pub/flashplayer/updaters/14/flashplayer_14_sa.exe 62e5bc2e88b50091847408b9d473ee4a6c185167
- w_try cp "${W_CACHE}/${W_PACKAGE}/${file3}" "$W_SYSTEM32_DLLS/Macromed/Flash"
- # After updating the above, you should carry the following steps out by
- # hand to verify that plugin works. (Ideally you'd also do it on
- # wine-1.5.6 to make sure the new version still uses vcrun2005 and
- # not something newer.)
- # rm -rf ~/.cache/winetricks/flash
- # cd ~/winetricks/src
- # rm -rf ~/.wine
- # sh winetricks -q flash ie7
- # cd ~/".wine/drive_c/Program Files/Internet Explorer"
- # wine iexplore.exe http://www.adobe.com/software/flash/about
- # Verify that the version of flash shows up and that you're not prompted
- # to install flash again
- #
- # cd ~/winetricks/src
- # rm -rf ~/.wine
- # sh winetricks -q flash firefox
- # cd ~/.wine/drive_c/Program\ Files/Mozilla\ Firefox
- # wine firefox.exe http://www.adobe.com/software/flash/about
- # Verify that the version of flash shows up and that you're not prompted
- # to install flash again
- }
- #----------------------------------------------------------------
- w_metadata gdiplus dlls \
- title="MS GDI+" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="../win7sp1/windows6.1-KB976932-X86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/gdiplus.dll"
- load_gdiplus()
- {
- # gdiplus has changed in win7. See http://bugs.winehq.org/show_bug.cgi?id=32163#c3
- helper_win7sp1 x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80/gdiplus.dll
- w_try cp "$W_TMP/x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80/gdiplus.dll" "$W_SYSTEM32_DLLS/gdiplus.dll"
- # For some reason, native,builtin isn't good enough...?
- w_override_dlls native gdiplus
- }
- #----------------------------------------------------------------
- w_metadata gdiplus_winxp dlls \
- title="MS GDI+" \
- publisher="Microsoft" \
- year="2004" \
- media="manual_download" \
- file1="NDP1.0sp2-KB830348-X86-Enu.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/gdiplus.dll"
- load_gdiplus_winxp()
- {
- w_download_manual http://download.cnet.com/NET-Framework-1-0-GDIPLUS-DLL-Security-Update/3000-10250_4-10732223.html NDP1.0sp2-KB830348-X86-Enu.exe 6113cd89d77525958295ccbd73b5fb8b89abd0aa
- cd "$W_CACHE/$W_PACKAGE"
- w_try_cabextract -d "$W_TMP" -F FL_gdiplus_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8 "$W_CACHE/${W_PACKAGE}/$file1"
- w_try cp "$W_TMP/FL_gdiplus_dll_____X86.3643236F_FC70_11D3_A536_0090278A1BB8" "$W_SYSTEM32_DLLS/gdiplus.dll"
- # For some reason, native,builtin isn't good enough...?
- w_override_dlls native gdiplus
- }
- #----------------------------------------------------------------
- w_metadata glidewrapper dlls \
- title="GlideWrapper" \
- publisher="Rolf Neuberger" \
- year="2005" \
- media="download" \
- file1="GlideWrapper084c.exe" \
- installed_file1="c:/windows/glide3x.dll"
- load_glidewrapper()
- {
- w_download http://www.zeckensack.de/glide/archive/GlideWrapper084c.exe 7a9d60a18b660473742b476465e9aea7bd5ab6f8
- cd "$W_CACHE/$W_PACKAGE"
- # The installer opens its README in a web-browser, really annoying when doing make check/test:
- # FIXME: maybe we should back up this key first?
- if test ${W_OPT_UNATTENDED}
- then
- cat > "$W_TMP"/disable-browser.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\WineBrowser]
- "Browsers"=""
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\disable-browser.reg
- fi
- # NSIS installer
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S}
- if test ${W_OPT_UNATTENDED}
- then
- "$WINE" reg delete "HKEY_CURRENT_USER\Software\Wine\WineBrowser" /v Browsers /f || true
- fi
- }
- #----------------------------------------------------------------
- w_metadata gfw dlls \
- title="MS Games For Windows Live (xlive.dll)" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="gfwlivesetupmin.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/xlive.dll"
- load_gfw()
- {
- # http://www.microsoft.com/games/en-us/live/pages/livejoin.aspx
- # http://www.next-gen.biz/features/should-games-for-windows-live-die
- w_download http://download.microsoft.com/download/5/5/8/55846E20-4A46-4EF8-B272-7F988BC9090A/gfwlivesetupmin.exe 6f9e0ba052c68c8b51bb0e3ce6024d0e1c7b20b2
- # FIXME: Depends on .Net 20, but is it really needed? For now, skip it.
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" gfwlivesetupmin.exe /nodotnet $W_UNATTENDED_SLASH_Q
- w_call msasn1
- }
- #----------------------------------------------------------------
- w_metadata glut dlls \
- title="The glut utility library for OpenGL" \
- publisher="Mark J. Kilgard" \
- year="2001" \
- media="download" \
- file1="glut-3.7.6-bin.zip" \
- installed_file1="c:/glut-3.7.6-bin/glut32.lib"
- load_glut()
- {
- w_download http://press.liacs.nl/researchdownloads/glut.win32/glut-3.7.6-bin.zip fb4731885c05b3cf2c79e85aabe8fc9949616ef4
- # FreeBSD unzip rm -rf's inside the target dir before extracting:
- w_try_unzip "$W_TMP" "$W_CACHE"/glut/glut-3.7.6-bin.zip
- w_try mv "$W_TMP/glut-3.7.6-bin" "$W_DRIVE_C"
- w_try cp "$W_DRIVE_C"/glut-3.7.6-bin/glut32.dll "$W_SYSTEM32_DLLS"
- w_warn "If you want to compile glut programs, add c:/glut-3.7.6-bin to LIB and INCLUDE"
- }
- #----------------------------------------------------------------
- w_metadata gmdls dlls \
- title="General MIDI DLS Collection" \
- publisher="Microsoft / Roland" \
- year="1999" \
- media="download" \
- file1="../directx8/DX81Redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/drivers/gm.dls"
- load_gmdls()
- {
- w_download_to directx8 http://download.microsoft.com/download/whistler/Update/8.1/W982KMeXP/EN-US/DX81Redist.exe ea2345f602741343e97a5ece5d1d2c3cc44296c3
- w_try_unzip "$W_TMP" "$W_CACHE"/directx8/DX81Redist.exe "*/*/DirectX.cab"
- w_try_cabextract -d "$W_TMP" -F gm16.dls "$W_TMP"/*/*/DirectX.cab
- w_try mv "$W_TMP"/gm16.dls "$W_SYSTEM32_DLLS"/drivers/gm.dls
- if test "$W_ARCH" = "win64"
- then
- w_try cd "$W_SYSTEM64_DLLS"/drivers
- w_try ln -s ../../syswow64/drivers/gm.dls
- fi
- }
- #----------------------------------------------------------------
- # um, codecs are kind of clustered here. They probably deserve their own real category.
- w_metadata allcodecs dlls \
- title="All codecs (dirac, ffdshow, icodecs, l3codecx, xvid) except wmp" \
- publisher="various" \
- year="1998-2009" \
- media="download"
- load_allcodecs()
- {
- w_call dirac
- w_call l3codecx
- w_call ffdshow
- w_call icodecs
- w_call xvid
- }
- #----------------------------------------------------------------
- w_metadata dirac dlls \
- title="The Dirac directshow filter v1.0.2" \
- publisher="Dirac" \
- year="2009" \
- media="download" \
- file1="DiracDirectShowFilter-1.0.2.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Dirac/DiracDecoder.dll"
- load_dirac()
- {
- w_download $WINETRICKS_SOURCEFORGE/dirac/DiracDirectShowFilter-1.0.2.exe c912d30a8fa500c7841444559feb1f49301611c4
- # Avoid mfc90 not found error. (DiracSplitter-libschroedinger.ax needs mfc90 to register itself, I think.)
- w_call vcrun2008
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run DiracDirectShowFilter-1.0.2.exe
- WinWait, Dirac, Welcome
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button2
- WinWait, Dirac, License
- ControlClick, Button2
- WinWait, Dirac, Location
- ControlClick, Button2
- WinWait, Dirac, Components
- ControlClick, Button2
- WinWait, Dirac, environment
- ControlCLick, Button1
- WinWait, Dirac, installed
- ControlClick, Button2
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata ffdshow dlls \
- title="ffdshow video codecs" \
- publisher="doom9 folks" \
- year="2010" \
- media="download" \
- file1="ffdshow_beta7_rev3154_20091209.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/ffdshow/ff_liba52.dll" \
- homepage="http://ffdshow-tryout.sourceforge.net"
- load_ffdshow()
- {
- w_download $WINETRICKS_SOURCEFORGE/ffdshow-tryout/ffdshow_beta7_rev3154_20091209.exe 8534c31489e51df70ee9583438d6211e6f0696d0
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" ffdshow_beta7_rev3154_20091209.exe $W_UNATTENDED_SLASH_SILENT
- }
- #----------------------------------------------------------------
- w_metadata hid dlls \
- title="MS hid" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/hid.dll"
- load_hid()
- {
- helper_win2ksp4 i386/hid.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/hid.dl_
- w_override_dlls native hid
- }
- #----------------------------------------------------------------
- w_metadata icodecs dlls \
- title="Indeo codecs" \
- publisher="Intel" \
- year="1998" \
- media="download" \
- file1="codinstl.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/ir50_32.dll"
- load_icodecs()
- {
- # Note: this codec is insecure, see
- # http://support.microsoft.com/kb/954157
- # Original source, ftp://download.intel.com/support/createshare/camerapack/codinstl.exe, had same checksum
- # 2010-11-14: http://codec.alshow.co.kr/Down/codinstl.exe
- # 2014-04-11: http://www.cucusoft.com/codecdownload/codinstl.exe (linked from http://www.cucusoft.com/codec.asp)
- w_download "http://www.cucusoft.com/codecdownload/codinstl.exe" 2c5d64f472abe3f601ce352dcca75b4f02996f8a
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run codinstl.exe
- winwait, Welcome
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, Button1 ; Next
- winwait, Software License Agreement
- sleep 1000
- controlclick, Button2 ; Yes
- }
- winwait, Setup Complete
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, Button4 ; Finish
- }
- winwaitclose
- "
- # Work around bug in codec's installer?
- # http://support.britannica.com/other/touchthesky/win/issues/TSTUw_150.htm
- # http://appdb.winehq.org/objectManager.php?sClass=version&iId=7091
- w_try_regsvr ir50_32.dll
- }
- #----------------------------------------------------------------
- w_metadata jet40 dlls \
- title="MS Jet 4.0 Service Pack 8" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="jet40sp8_9xnt.exe" \
- installed_file1="$W_COMMONFILES_X86_WIN/Microsoft Shared/dao/dao360.dll"
- load_jet40()
- {
- w_call mdac27
- w_call wsh57
- # http://support.microsoft.com/kb/239114
- # See also http://bugs.winehq.org/show_bug.cgi?id=6085
- # FIXME: "failed with error 2"
- w_download http://www.autoxplorer.com/exe/Jet40SP8_9xNT.exe 8cd25342030857969ede2d8fcc34f3f7bcc2d6d4
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" jet40sp8_9xnt.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata ie8_kb2936068 dlls \
- title="Cumulative Security Update for Internet Explorer 8" \
- publisher="Microsoft" \
- year="2014" \
- media="download" \
- file1="IE8-WindowsXP-KB2936068-x86-ENU.exe" \
- installed_file1="c:/windows/KB2936068-IE8.log"
- load_ie8_kb2936068()
- {
- w_call ie8
- w_download https://download.microsoft.com/download/3/8/C/38CE0ABB-01FD-4C0A-A569-BC5E82C34A17/IE8-WindowsXP-KB2936068-x86-ENU.exe 1bdeb741085b8f1ef6efc83f8615121373107347
- if [ $W_UNATTENDED_SLASH_Q ]
- then
- quiet="$W_UNATTENDED_SLASH_QUIET /forcerestart"
- else
- quiet=""
- fi
- cd "$W_CACHE"/"$W_PACKAGE"
- "$WINE" IE8-WindowsXP-KB2936068-x86-ENU.exe $quiet
- status=$?
- case $status in
- 0|194) ;;
- *) w_die "$W_PACKAGE installation failed"
- esac
- }
- #----------------------------------------------------------------
- w_metadata kde apps \
- title="KDE on Windows" \
- publisher="various" \
- year="2013" \
- media="download" \
- file1="kdewin-installer-gui-1.0.0.exe" \
- installed_exe1="$W_PROGRAMS_WIN/kde/etc/installer.ini" \
- homepage="http://windows.kde.org" \
- unattended="no"
- load_kde()
- {
- w_download http://mirrors.mit.edu/kde/stable/kdewin/installer/kdewin-installer-gui-1.0.0.exe 0d798facb7fbf11529e7ecd067e875d76adb9d78
- mkdir -p "$W_PROGRAMS_UNIX/kde"
- w_try cp "$W_CACHE/kde/${file1}" "$W_PROGRAMS_UNIX/kde"
- cd "$W_PROGRAMS_UNIX/kde"
- # There's no unattended option, probably because there are so many choices,
- # it's like cygwin
- w_try "$WINE" "${file1}"
- }
- #----------------------------------------------------------------
- w_metadata kindle apps \
- title="Amazon Kindle" \
- publisher="Amazon" \
- year="2016" \
- media="download" \
- file1="KindleForPC-installer-1.15.43061.exe" \
- installed_exe1="$W_PROGRAMS_WIN/Amazon/Kindle/Kindle.exe" \
- homepage="http://www.amazon.com/gp/feature.html/?docId=1000426311"
- load_kindle()
- {
- w_download http://kindleforpc.amazon.com/43061/KindleForPC-installer-1.15.43061.exe 27364a6867aac562426494312c2b3f4b673f13e2
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S}
- if w_workaround_wine_bug 32859
- then
- w_warn "You may need to run with taskset -c 0 to avoid a libX11 crash"
- fi
- }
- #----------------------------------------------------------------
- w_metadata l3codecx dlls \
- title="MPEG Layer-3 Audio Codec for Microsoft DirectShow" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/l3codecx.ax"
- load_l3codecx()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'l3codecx.ax' "$W_TMP/dxnt.cab"
- w_try_regsvr l3codecx.ax
- }
- #----------------------------------------------------------------
- # FIXME: installed location is
- # $W_PROGRAMS_X86_WIN/Gemeinsame Dateien/System/ADO/msado26.tlb
- # in German... need a variable W_COMMONFILES or something like that
- w_metadata mdac27 dlls \
- title="Microsoft Data Access Components 2.7 sp1" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="mdac_typ.exe" \
- installed_file1="$W_COMMONFILES_X86_WIN/System/ADO/msado26.tlb"
- load_mdac27()
- {
- if test $W_ARCH = win64
- then
- w_die "Installer doesn't support 64-bit architecture."
- fi
- # http://www.microsoft.com/downloads/en/details.aspx?FamilyId=9AD000F2-CAE7-493D-B0F3-AE36C570ADE8&displaylang=en
- w_download http://download.microsoft.com/download/3/b/f/3bf74b01-16ba-472d-9a8c-42b2b4fa0d76/mdac_typ.exe f68594d1f578c3b47bf0639c46c11c5da161feee
- load_native_mdac
- w_set_winver nt40
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" mdac_typ.exe ${W_OPT_UNATTENDED:+ /q /C:"setup $W_UNATTENDED_SLASH_QNT"}
- w_unset_winver
- }
- #----------------------------------------------------------------
- w_metadata mdac28 dlls \
- title="Microsoft Data Access Components 2.8 sp1" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="MDAC_TYP.EXE" \
- installed_file1="$W_COMMONFILES_X86_WIN/System/ADO/msado27.tlb"
- load_mdac28()
- {
- # http://www.microsoft.com/downloads/en/details.aspx?familyid=78cac895-efc2-4f8e-a9e0-3a1afbd5922e
- w_download http://download.microsoft.com/download/4/a/a/4aafff19-9d21-4d35-ae81-02c48dcbbbff/MDAC_TYP.EXE 4fbc272c79da59e38818924d8575accb0af776fb
- load_native_mdac
- w_set_winver nt40
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" mdac_typ.exe ${W_OPT_UNATTENDED:+ /q /C:"setup $W_UNATTENDED_SLASH_QNT"}
- w_unset_winver
- }
- #----------------------------------------------------------------
- w_metadata mdx dlls \
- title="Managed DirectX" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="C:/windows/assembly/GAC/microsoft.directx/1.0.2902.0__31bf3856ad364e35/microsoft.directx.dll"
- load_mdx()
- {
- helper_directx_dl
- cd "$W_TMP"
- w_try_cabextract -F "*MDX*" "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -F "*.cab" *Archive.cab
- # Install assemblies
- w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/1.0.2902.0" -F "microsoft.directx*" *MDX1_x86.cab
- for file in mdx_*.cab
- do
- ver="${file%%_x86.cab}"
- ver="${ver##mdx_}"
- w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/$ver" -F "microsoft.directx*" "$file"
- done
- w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/1.0.2911.0" -F "microsoft.directx.direct3dx*" *MDX1_x86.cab
- # Add them to GAC
- cd "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code"
- for ver in *
- do
- cd "$ver"
- for asm in *.dll
- do
- name="${asm%%.dll}"
- w_try mkdir -p "$W_WINDIR_UNIX/assembly/GAC/$name/${ver}__31bf3856ad364e35"
- w_try cp "$asm" "$W_WINDIR_UNIX/assembly/GAC/$name/${ver}__31bf3856ad364e35"
- done
- cd -
- done
- # AssemblyFolders
- cat > "$W_TMP"/asmfolders.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2902.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2902.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2903.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2903.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2904.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2904.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2905.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2905.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2906.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2906.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2907.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2907.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2908.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2908.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2909.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2909.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2910.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2910.0\\\\"
- [HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2911.0]
- @="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2911.0\\\\"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\asmfolders.reg
- }
- #----------------------------------------------------------------
- w_metadata mf dlls \
- title="MS Media Foundation" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="../win7sp1/windows6.1-KB976932-X86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mf.dll"
- load_mf()
- {
- helper_win7sp1 x86_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_9e6699276b03c38e/mf.dll
- w_try cp "$W_TMP/x86_microsoft-windows-mediafoundation_31bf3856ad364e35_6.1.7601.17514_none_9e6699276b03c38e/mf.dll" "$W_SYSTEM32_DLLS/mf.dll"
- w_override_dlls native,builtin mf
- }
- #----------------------------------------------------------------
- w_metadata mfc40 dlls \
- title="MS mfc40 (Microsoft Foundation Classes from Visual C++ 4.0)" \
- publisher="Microsoft" \
- year="1999" \
- media="download" \
- file1="mfc40.cab" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc40.dll"
- load_mfc40()
- {
- w_download http://activex.microsoft.com/controls/vc/mfc40.cab 53c570e2c811674d6e4fa46cff5a3a04cd0ffc24
- w_try_cabextract -d "$W_TMP" "$W_CACHE"/mfc40/mfc40.cab
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -F *40.dll "$W_TMP"/mfc40.exe
- }
- #----------------------------------------------------------------
- w_metadata mozillabuild apps \
- title="Mozilla build environment" \
- publisher="The Mozilla Foundation" \
- year="2015" \
- media="download" \
- file1="MozillaBuildSetup-2.0.0.exe" \
- installed_file1="c:/mozilla-build/moztools/bin/nsinstall.exe" \
- homepage="https://wiki.mozilla.org/MozillaBuild"
- load_mozillabuild()
- {
- w_download http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/MozillaBuildSetup-2.0.0.exe daba4bc03ae9014c68611fd36b05dcc4083c6fdb
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" MozillaBuildSetup-2.0.0.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata msacm32 dlls \
- title="MS ACM32" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msacm32.dll"
- load_msacm32()
- {
- helper_xpsp3 i386/msacm32.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/msacm32.dl_
- w_override_dlls native,builtin msacm32
- }
- #----------------------------------------------------------------
- w_metadata msasn1 dlls \
- title="MS ASN1" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msasn1.dll"
- load_msasn1()
- {
- helper_win2ksp4 i386/msasn1.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/msasn1.dl_
- }
- #----------------------------------------------------------------
- w_metadata msctf dlls \
- title="MS Text Service Module" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msctf.dll"
- load_msctf()
- {
- helper_xpsp3 i386/msctf.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/msctf.dl_
- w_override_dlls native,builtin msctf
- }
- #----------------------------------------------------------------
- w_metadata msdxmocx dlls \
- title="MS Windows Media Player 2 ActiveX control for VB6" \
- publisher="Microsoft" \
- year="1999" \
- media="download" \
- file1="mpfull.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msdxm.ocx"
- load_msdxmocx()
- {
- # Previously at http://www.oldapps.com/windows_media_player.php?old_windows_media_player=3?download
- # (2015/12/01) Iceweasel gave a security warning (!), but clamscan and virustotal.com report it as clean
- #
- # (2016/02/18) Since then, oldapps.com removed it. It's on a Finnish mirror, where it's been since 2001/10/20
- # Found using http://www.filewatcher.com/m/mpfull.exe.3593680-0.html
- # The sha1sum is different. Perhaps Iceweasel was right. This one is also clean according to clamscan/virustotal.com
- w_download ftp://www.define.fi/Pub/Fixes/Microsoft/Windows%2095/mpfull.exe 99691df6ac455233230faac7514bdea781ba0ce3
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_CACHE/$W_PACKAGE/${file1}"
- w_try_regsvr msdxm.ocx
- }
- #----------------------------------------------------------------
- w_metadata msflxgrd dlls \
- title="MS FlexGrid Control (msflxgrd.ocx)" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="MsFlxGrd.cab" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/MSFLXGRD.OCX"
- load_msflxgrd()
- {
- # http://msdn.microsoft.com/en-us/library/aa240864(VS.60).aspx
- # may 2011: f497c3b390cd80d5bcd1f13d5c0c68b206369aa7
- # 2015/11/09: Removed from Microsoft.com, archive.org has an older copy:
- # 2015/11/09: 3d6c04e923781d4ce0d3ab62189b8de352ab25d5
- w_download http://activex.microsoft.com/controls/vb6/MsFlxGrd.cab 3d6c04e923781d4ce0d3ab62189b8de352ab25d5
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msflxgrd/${file1}
- w_try cp -f "$W_TMP"/[Mm][Ss][Ff][Ll][Xx][Gg][Rr][Dd].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS"
- w_try_regsvr MSFLXGRD.OCX
- }
- #----------------------------------------------------------------
- w_metadata mshflxgd dlls \
- title="MS Hierarchical FlexGrid Control (mshflxgd.ocx)" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="MSHFLXGD.CAB" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/MSHFLXGD.OCX"
- load_mshflxgd()
- {
- # http://msdn.microsoft.com/en-us/library/aa240864(VS.60).aspx
- # orig: 5f9c7a81022949bfe39b50f2bbd799c448bb7377
- # Jan 2009: 7ad74e589d5eefcee67fa14e65417281d237a6b6
- # May 2009: bd8aa796e16e5f213414af78931e0379d9cbe292
- # 2015/11/09: Removed from Microsoft.com, archive.org has the original copy:
- # 2015/11/09: 5f9c7a81022949bfe39b50f2bbd799c448bb7377
- w_download http://activex.microsoft.com/controls/vb6/MSHFLXGD.CAB 5f9c7a81022949bfe39b50f2bbd799c448bb7377
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/mshflxgd/MSHFLXGD.CAB
- w_try cp -f "$W_TMP"/[Mm][Ss][Hh][Ff][Ll][Xx][Gg][Dd].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS"
- w_try_regsvr MSHFLXGD.OCX
- }
- #----------------------------------------------------------------
- w_metadata mspatcha dlls \
- title="MS mspatcha" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_exe1="$W_SYSTEM32_DLLS_WIN/mspatcha.dll"
- load_mspatcha()
- {
- helper_win2ksp4 i386/mspatcha.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/mspatcha.dl_
- w_override_dlls native,builtin mspatcha
- }
- #----------------------------------------------------------------
- w_metadata msscript dlls \
- title="MS Windows Script Control" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="sct10en.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msscript.ocx"
- load_msscript()
- {
- # http://msdn.microsoft.com/scripting/scriptcontrol/x86/sct10en.exe
- # http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac
- w_download http://download.microsoft.com/download/d/2/a/d2a7430c-6d5b-48e9-96c4-3c751be7bffe/sct10en.exe fd9f2f23357ab11ae70682d6864f7e9f188adf2a
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msscript/sct10en.exe
- w_try cp -f "$W_TMP"/msscript.ocx "$W_SYSTEM32_DLLS"
- w_try_regsvr msscript.ocx
- }
- #----------------------------------------------------------------
- w_metadata msls31 dlls \
- title="MS Line Services" \
- publisher="Microsoft" \
- year="2001" \
- media="download" \
- file1="InstMsiW.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msls31.dll"
- load_msls31()
- {
- # Needed by native richedit and internet explorer
- w_download http://download.microsoft.com/download/WindowsInstaller/Install/2.0/NT45/EN-US/InstMsiW.exe 4fc3bf0dc96b5cf5ab26430fac1c33c5c50bd142
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msls31/InstMsiW.exe
- w_try cp -f "$W_TMP"/msls31.dll "$W_SYSTEM32_DLLS"
- }
- #----------------------------------------------------------------
- w_metadata msmask dlls \
- title="MS Masked Edit Control" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="MSMASK32.CAB" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msmask32.ocx"
- load_msmask()
- {
- # http://msdn.microsoft.com/en-us/library/11405hcf(VS.71).aspx
- # http://bugs.winehq.org/show_bug.cgi?id=2934
- # old: 3c6b26f68053364ea2e09414b615dbebafb9d5c3
- # May 2009: 30e55679e4a13fe4d9620404476f215f93239292
- # 2015/11/09: Removed from Microsoft.com, archive.org has an older copy:
- # 2015/11/09: bdd2bb3a32d18926a048f302aff18b1e6d250d9d
- w_download http://activex.microsoft.com/controls/vb6/MSMASK32.CAB bdd2bb3a32d18926a048f302aff18b1e6d250d9d
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msmask/MSMASK32.CAB
- w_try cp -f "$W_TMP"/[Mm][Ss][Mm][Aa][Ss][Kk]32.[Oo][Cc][Xx] "$W_SYSTEM32_DLLS"/msmask32.ocx
- w_try_regsvr msmask32.ocx
- }
- #----------------------------------------------------------------
- w_metadata msftedit dlls \
- title="Microsoft RichEdit Control" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="../win7sp1/windows6.1-KB976932-X86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msftedit.dll"
- load_msftedit()
- {
- helper_win7sp1 x86_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_d7d862f19573a5ff/msftedit.dll
- w_try cp "$W_TMP/x86_microsoft-windows-msftedit_31bf3856ad364e35_6.1.7601.17514_none_d7d862f19573a5ff/msftedit.dll" "$W_SYSTEM32_DLLS/msftedit.dll"
- w_override_dlls native,builtin mstfedit
- }
- #----------------------------------------------------------------
- w_metadata msxml3 dlls \
- title="MS XML Core Services 3.0" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="msxml3.msi" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msxml3.dll"
- load_msxml3()
- {
- # Service Pack 5
- #w_download http://download.microsoft.com/download/a/5/e/a5e03798-2454-4d4b-89a3-4a47579891d8/msxml3.msi
- # Service Pack 7
- w_download http://download.microsoft.com/download/8/8/8/888f34b7-4f54-4f06-8dac-fa29b19f33dd/msxml3.msi d4c2178dfb807e1a0267fce0fd06b8d51106d913
- # it won't install on top of wine's msxml3, which has a pretty high version number, so delete wine's fake dll
- rm "$W_SYSTEM32_DLLS"/msxml3.dll
- w_override_dlls native msxml3
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec /i msxml3.msi $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata msxml4 dlls \
- title="MS XML Core Services 4.0" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="msxml.msi" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msxml4.dll"
- load_msxml4()
- {
- # MS06-071: http://www.microsoft.com/downloads/details.aspx?familyid=24B7D141-6CDF-4FC4-A91B-6F18FE6921D4
- # w_download http://download.microsoft.com/download/e/2/e/e2e92e52-210b-4774-8cd9-3a7a0130141d/msxml4-KB927978-enu.exe d364f9fe80c3965e79f6f64609fc253dfeb69c25
- # MS07-042: http://www.microsoft.com/downloads/details.aspx?FamilyId=021E12F5-CB46-43DF-A2B8-185639BA2807
- # w_download http://download.microsoft.com/download/9/4/2/9422e6b6-08ee-49cb-9f05-6c6ee755389e/msxml4-KB936181-enu.exe 73d75d7b41f8a3d49f272e74d4f73bb5e82f1acf
- # SP3 (2009): http://www.microsoft.com/downloads/details.aspx?familyid=7F6C0CB4-7A5E-4790-A7CF-9E139E6819C0
- w_download http://download.microsoft.com/download/A/2/D/A2D8587D-0027-4217-9DAD-38AFDB0A177E/msxml.msi aa70c5c1a7a069af824947bcda1d9893a895318b
- w_override_dlls native,builtin msxml4
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec /i msxml.msi $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata msxml6 dlls \
- title="MS XML Core Services 6.0 sp1" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- file1="msxml6_x86.msi" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msxml6.dll"
- load_msxml6()
- {
- # Service Pack 1
- # http://www.microsoft.com/downloads/details.aspx?familyid=D21C292C-368B-4CE1-9DAB-3E9827B70604
- if [ $W_ARCH = win64 ]
- then
- w_download http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x64.msi ca0c0814a9c7024583edb997296aad7cb0a3cbf7
- else
- w_download http://download.microsoft.com/download/e/a/f/eafb8ee7-667d-4e30-bb39-4694b5b3006f/msxml6_x86.msi 5125220e985b33c946bbf9f60e2b222c7570bfa2
- fi
- w_override_dlls native,builtin msxml6
- rm -f "$W_SYSTEM32_DLLS/msxml6.dll"
- if [ $W_ARCH = win64 ]
- then
- rm -f "$W_SYSTEM64_DLLS/msxml6.dll"
- w_try_msiexec64 /i "$W_CACHE"/msxml6/msxml6_x64.msi
- else
- w_try "$WINE" msiexec /i "$W_CACHE"/msxml6/msxml6_x86.msi $W_UNATTENDED_SLASH_Q
- fi
- }
- #----------------------------------------------------------------
- w_metadata nuget dlls \
- title="NuGet Package manager" \
- publisher="Outercurve Foundation" \
- year="2013" \
- media="download" \
- file1="nuget.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/nuget.exe" \
- homepage="https://nuget.org"
- load_nuget()
- {
- w_call dotnet40
- # 2014-01-22: d4082afc4f89df195fa1e83ee1cf02bce3dd2f13
- # 2014-02-26: 9bc98ced9c2d2b51ab687f86b5580913c025b8b0
- # 2014-04-17: 3210cc9a2e575384d59b0604c892bccce760e9b6
- # probably changes too rapidly to check
- w_download https://nuget.org/nuget.exe
- w_try cp "$W_CACHE/$W_PACKAGE"/nuget.exe "$W_SYSTEM32_DLLS"
- w_warn "To run nuget, use the commandline \"$WINE nuget\"."
- }
- #----------------------------------------------------------------
- w_metadata ogg dlls \
- title="OpenCodecs 0.85: flac, speex, theora, vorbis, WebM" \
- publisher="xiph.org" \
- year="2011" \
- media="download" \
- file1="opencodecs_0.85.17777.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Xiph.Org/Open Codecs/AxPlayer.dll" \
- homepage="http://xiph.org/dshow"
- load_ogg()
- {
- w_download http://downloads.xiph.org/releases/oggdsf/opencodecs_0.85.17777.exe 386cf7cd29ffcbf8705eff8c8233de448ecf33ab
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata ollydbg110 apps \
- title="OllyDbg" \
- publisher="ollydbg.de" \
- year="2004" \
- media="download" \
- file1="odbg110.zip" \
- installed_file1="c:/ollydbg110/OLLYDBG.EXE" \
- homepage="http://ollydbg.de"
- load_ollydbg110()
- {
- # the graphical user interface is unreadable without having corefonts installed
- w_call corefonts
- w_download http://www.ollydbg.de/odbg110.zip 8403d8049a0841887c16cf64889596ad52b84da8
- w_try_unzip "$W_DRIVE_C/ollydbg110" "$W_CACHE/$W_PACKAGE"/odbg110.zip
- }
- #----------------------------------------------------------------
- w_metadata ollydbg200 apps \
- title="OllyDbg" \
- publisher="ollydbg.de" \
- year="2010" \
- media="download" \
- file1="odbg200.zip" \
- installed_file1="c:/ollydbg200/ollydbg.exe" \
- homepage="http://ollydbg.de"
- load_ollydbg200()
- {
- # the graphical user interface is unreadable without having corefonts installed
- w_call corefonts
- w_download http://www.ollydbg.de/odbg200.zip 68e572d94a0555e8f14516b55b6b96b879900fe9
- w_try_unzip "$W_DRIVE_C/ollydbg200" "$W_CACHE/$W_PACKAGE"/odbg200.zip
- }
- #----------------------------------------------------------------
- w_metadata ollydbg201 apps \
- title="OllyDbg" \
- publisher="ollydbg.de" \
- year="2013" \
- media="download" \
- file1="odbg201.zip" \
- installed_file1="c:/ollydbg201/ollydbg.exe" \
- homepage="http://ollydbg.de"
- load_ollydbg201()
- {
- # the graphical user interface is unreadable without having corefonts installed
- w_call corefonts
- w_download http://www.ollydbg.de/odbg201.zip d41fe77a2801d38476f20468ab61ddce14c3abb8
- w_try_unzip "$W_DRIVE_C/ollydbg201" "$W_CACHE/$W_PACKAGE"/odbg201.zip
- # ollydbg201 is affected by wine bug 36012 if debug symbols are available.
- # As a workaround native 'dbghelp' can be installed. We don't do this automatically
- # because for some people it might work even without additional workarounds.
- # Older versions of OllyDbg were not affected by this bug.
- }
- #----------------------------------------------------------------
- w_metadata openwatcom apps \
- title="Open Watcom C/C++ compiler (can compile win16 code!)" \
- publisher="Watcom" \
- year="2010" \
- media="download" \
- file1="open-watcom-c-win32-1.9.exe" \
- installed_file1="c:/WATCOM/owsetenv.bat" \
- homepage="http://www.openwatcom.org"
- load_openwatcom()
- {
- # 2016/03/11: upstream http://www.openwatcom.org appears dead (404)
- w_download "http://openwatcom.mirror.fr/open-watcom-c-win32-1.9.exe" 236ac33ebd463006be4ecd83d7ebea1c026eb55a
- if [ $W_UNATTENDED_SLASH_Q ]
- then
- # Options documented at http://bugzilla.openwatcom.org/show_bug.cgi?id=898
- # But they don't seem to work on wine, so jam them into setup.inf
- # Pick smallest installation that supports 16 bit C and C++
- cd "$W_TMP"
- cp "$W_CACHE"/openwatcom/open-watcom-c-win32-1.9.exe .
- w_try_unzip . open-watcom-c-win32-1.9.exe setup.inf
- sed -i 's/tools16=.*/tools16=true/' setup.inf
- w_try zip -f open-watcom-c-win32-1.9.exe
- w_try "$WINE" open-watcom-c-win32-1.9.exe -s
- else
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" open-watcom-c-win32-1.9.exe
- fi
- if test ! -f "$W_DRIVE_C"/WATCOM/binnt/wcc.exe
- then
- w_warn "c:/watcom/binnt/wcc.exe not found; you probably didn't select 16 bit tools, and won't be able to buld win16test"
- fi
- }
- #----------------------------------------------------------------
- w_metadata pdh dlls \
- title="MS pdh.dll (Performance Data Helper)" \
- publisher="Microsoft" \
- year="2001" \
- media="download" \
- file1="pdhinst.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/pdh.dll"
- load_pdh()
- {
- # http://support.microsoft.com/kb/284996
- w_download http://download.microsoft.com/download/platformsdk/Redist/5.0.2195.2668/NT4/EN-US/pdhinst.exe f42448660def8cd7f42b34aa7bc7264745f4425e
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/pdh/pdhinst.exe
- w_try_unzip "$W_TMP" "$W_TMP"/pdh.exe
- w_try cp -f "$W_TMP"/x86/Pdh.Dll "$W_SYSTEM32_DLLS"/pdh.dll
- }
- #----------------------------------------------------------------
- w_metadata physx dlls \
- title="PhysX" \
- publisher="NVidia" \
- year="2014" \
- media="download" \
- file1="PhysX-9.14.0702-SystemSoftware.msi" \
- installed_file1="$W_PROGRAMS_WIN/NVIDIA Corporation/PhysX/Engine/v2.8.3/PhysXCore.dll"
- load_physx()
- {
- # Has a minor issue, see bug report http://bugs.winehq.org/show_bug.cgi?id=34167
- w_download http://uk.download.nvidia.com/Windows/9.14.0702/PhysX-9.14.0702-SystemSoftware.msi 81e2d38e2356e807ad80cdf150ed5acfff839c8b
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec /i PhysX-9.14.0702-SystemSoftware.msi $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata pngfilt dlls \
- title="pngfilt.dll (from ie5)" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="IE5.01sp4-KB871260-Windows2000sp4-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/pngfilt.dll"
- load_pngfilt()
- {
- # http://www.microsoft.com/en-us/download/details.aspx?id=3907
- w_download http://download.microsoft.com/download/5/0/c/50c42d0e-07a8-4a2b-befb-1a403bd0df96/IE5.01sp4-KB871260-Windows2000sp4-x86-ENU.exe 6f5db296ebf58e81c49bc667049a3f88a3f1ec3d
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F pngfilt.dll "$W_CACHE"/pngfilt/IE5.01sp4-KB871260-Windows2000sp4-x86-ENU.exe
- w_try_regsvr pngfilt.dll
- }
- #----------------------------------------------------------------
- w_metadata qdvd dlls \
- title="qdvd.dll (from Directx 9 user redistributable)" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/qdvd.dll"
- load_qdvd()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F qdvd.dll "$W_TMP/dxnt.cab"
- w_try_regsvr qdvd.dll
- w_override_dlls native qdvd
- }
- #----------------------------------------------------------------
- w_metadata quartz dlls \
- title="quartz.dll (from Directx 9 user redistributable)" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/quartz.dll"
- load_quartz()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F quartz.dll "$W_TMP/dxnt.cab"
- w_try_regsvr quartz.dll
- w_override_dlls native quartz
- }
- #----------------------------------------------------------------
- w_metadata quicktime72 dlls \
- title="Apple Quicktime 7.2" \
- publisher="Apple" \
- year="2010" \
- media="download" \
- file1="QuickTimeInstaller.exe" \
- installed_file1="c:/windows/Installer/{95A890AA-B3B1-44B6-9C18-A8F7AB3EE7FC}/QTPlayer.ico"
- load_quicktime72()
- {
- # https://support.apple.com/downloads/quicktime
- w_download http://appldnld.apple.com.edgesuite.net/content.info.apple.com/QuickTime/061-2915.20070710.pO94c/QuickTimeInstaller.exe bb89981f10cf21de57b9453e53cf81b9194271a9
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" ${file1} ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No $W_UNATTENDED_SLASH_QN > /dev/null 2>&1
- if w_workaround_wine_bug 11681
- then
- # Following advice verified with test movies from
- # http://support.apple.com/kb/HT1425
- # in QuickTimePlayer.
- w_warn "In Quicktime preferences, check Advanced / Safe Mode (gdi), or movies won't play."
- if test "$W_UNATTENDED_SLASH_Q" = ""
- then
- w_try "$WINE" control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl"
- else
- # FIXME: script the control panel with autohotkey?
- # We could probably also overwrite QuickTime.qtp but
- # the format isn't known, so we'd have to override all other settings, too.
- :
- fi
- fi
- }
- #----------------------------------------------------------------
- w_metadata quicktime76 dlls \
- title="Apple Quicktime 7.6" \
- publisher="Apple" \
- year="2010" \
- media="download" \
- file1="QuickTimeInstaller.exe" \
- installed_file1="c:/windows/Installer/{57752979-A1C9-4C02-856B-FBB27AC4E02C}/QTPlayer.ico"
- load_quicktime76()
- {
- # http://www.apple.com/quicktime/download/
- w_download http://appldnld.apple.com/QuickTime/041-0025.20101207.Ptrqt/QuickTimeInstaller.exe 1eec8904f041d9e0ad3459788bdb690e45dbc38e
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" QuickTimeInstaller.exe ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No $W_UNATTENDED_SLASH_QN > /dev/null 2>&1
- if w_workaround_wine_bug 11681
- then
- # Following advice verified with test movies from
- # http://support.apple.com/kb/HT1425
- # in QuickTimePlayer.
- w_warn "In Quicktime preferences, check Advanced / Safe Mode (gdi), or movies won't play."
- if test "$W_UNATTENDED_SLASH_Q" = ""
- then
- w_try "$WINE" control "$W_PROGRAMS_WIN\\QuickTime\\QTSystem\\QuickTime.cpl"
- else
- # FIXME: script the control panel with autohotkey?
- # We could probably also overwrite QuickTime.qtp but
- # the format isn't known, so we'd have to override all other settings, too.
- :
- fi
- fi
- }
- #----------------------------------------------------------------
- w_metadata remove_mono settings \
- title_uk="Видалити вбудоване wine-mono" \
- title="Remove builtin wine-mono"
- load_remove_mono()
- {
- # FIXME: fold other .NET cleanups here (registry entries).
- # Probably should only do that for wine >= 1.5.6
- mono_uuid="`$WINE uninstaller --list | grep Mono | cut -f1 -d\|`"
- if test "$mono_uuid"
- then
- "$WINE" uninstaller --remove $mono_uuid
- else
- w_warn "Mono does not appear to be installed."
- fi
- }
- #----------------------------------------------------------------
- w_metadata riched20 dlls \
- title="MS RichEdit Control version 2.0 (riched20.dll)" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/riched20.dll"
- load_riched20()
- {
- # FIXME: this verb used to also install riched32. Does anyone need that?
- helper_win2ksp4 i386/riched20.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/riched20.dl_
- w_override_dlls native,builtin riched20
- # https://code.google.com/p/winetricks/issues/detail?id=292
- w_call msls31
- }
- #----------------------------------------------------------------
- # Problem - riched20 and riched30 both install riched20.dll!
- # We may need a better way to distinguish between installed files.
- w_metadata riched30 dlls \
- title="MS RichEdit Control version 3.0 (riched20.dll, msls31.dll)" \
- publisher="Microsoft" \
- year="2001" \
- media="download" \
- file1="InstMsiA.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/riched20.dll" \
- installed_file2="$W_SYSTEM32_DLLS_WIN/msls31.dll"
- load_riched30()
- {
- # http://www.novell.com/documentation/nm1/readmeen_web/readmeen_web.html#Akx3j64
- # claims that Groupwise Messenger's View / Text Size command
- # only works with riched30, and recommends getting it by installing
- # msi 2, which just happens to come with riched30 version of riched20
- # (though not with a corresponding riched32, which might be a problem)
- # http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=CEBBACD8-C094-4255-B702-DE3BB768148F
- w_download http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/riched30/InstMsiA.exe
- w_try cp -f "$W_TMP"/riched20.dll "$W_SYSTEM32_DLLS"
- w_try cp -f "$W_TMP"/msls31.dll "$W_SYSTEM32_DLLS"
- w_override_dlls native,builtin riched20
- }
- #----------------------------------------------------------------
- w_metadata richtx32 dlls \
- title="MS Rich TextBox Control 6.0" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="richtx32.cab" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/RichTx32.Ocx"
- load_richtx32()
- {
- w_download http://activex.microsoft.com/controls/vb6/richtx32.cab da404b566df3ad74fe687c39404a36c3e7cadc07
- w_try_cabextract "$W_CACHE"/richtx32/richtx32.cab -d "$W_SYSTEM32_DLLS" -F RichTx32.ocx
- w_try_regsvr RichTx32.ocx
- }
- #----------------------------------------------------------------
- w_metadata sdl dlls \
- title="Simple DirectMedia Layer" \
- publisher="Sam Lantinga" \
- year="2009" \
- media="download" \
- file1="SDL-1.2.14-win32.zip" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/SDL.dll"
- load_sdl()
- {
- # http://www.libsdl.org/download-1.2.php
- w_download http://www.libsdl.org/release/SDL-1.2.14-win32.zip d22c71d1c2bdf283548187c4b0bd7ef9d0c1fb23
- w_try_unzip "$W_SYSTEM32_DLLS" "$W_CACHE"/sdl/SDL-1.2.14-win32.zip SDL.dll
- }
- #----------------------------------------------------------------
- w_metadata secur32 dlls \
- title="MS Security Support Provider Interface" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="Windows2000-KB959426-x86-ENU.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/secur32.dll"
- load_secur32()
- {
- # http://www.microsoft.com/downloads/details.aspx?familyid=c4e408d7-6716-4a12-ad3a-8029667f5c84
- w_download http://download.microsoft.com/download/6/9/5/69501788-B62F-44D8-933F-B6FAA576CA87/Windows2000-KB959426-x86-ENU.EXE bf930a4d2982165a0793465bb255d494ba5b4cf7
- w_try_cabextract "$W_CACHE"/secur32/Windows2000-KB959426-x86-ENU.EXE -d "$W_SYSTEM32_DLLS" -F secur32.dll
- w_override_dlls native,builtin secur32
- }
- #----------------------------------------------------------------
- w_metadata setupapi dlls \
- title="MS Setup API" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/setupapi.dll"
- load_setupapi()
- {
- helper_xpsp3 i386/setupapi.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/setupapi.dl_
- w_override_dlls native,builtin setupapi
- }
- #----------------------------------------------------------------
- w_metadata shockwave dlls \
- title="Shockwave" \
- publisher="Adobe" \
- year="2010" \
- media="download" \
- file1="sw_lic_full_installer.msi" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/Adobe/Shockwave 12/shockwave_Projector_Loader.dcr"
- load_shockwave() {
- # Not silent enough, use msi instead
- #w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/Shockwave_Installer_Full.exe 840e34e9b067cf247bfa9092665b8966158f38e3
- #w_try "$WINE" "$W_CACHE"/Shockwave_Installer_Full.exe $W_UNATTENDED_SLASH_S
- # old sha1sum: 6a91a9da4b54c3fdc97130a15e1a173117e5f4ff
- # 2009-07-31 sha1sum: 0bb506ef67a268e8d3fb6c7ce556320ee10b9da5
- # 2009-12-13 sha1sum: d35649883bf13cb1a86f5650e1050d15533ac0f4
- # 2010-01-23 sha1sum: 4a837d238c28c5f345d73f105711f20c6d059273
- # 2010-05-15 sha1sum: bdce02afc82233801e84137e78c2c5fe574db253
- # 2010-09-02 sha1sum: fed20eccc29fec2f64162b7265343514d43884bc
- # 2010-11-03 sha1sum: 2ff28665543e80f3bd4ff1933ac05ec9314aaac6
- # 2011-02-03 sha1sum: e71ddc4fa42662208b2f52c1bd34a40e7775ad75
- # 2011-06-13 sha1sum: 7fd6cc61bb20d0bef654a44f4501a5a65b55b0c9
- # 2011-11-10 sha1sum: b55974b471c516f13fb032424247c07390baf380
- # 2012-03-07 sha1sum: 3b10f645ba1a6815fa97924a6bde4eda3177ff68
- # 2012-04-26 sha1sum: 48b1a44b2c12c486916d641f3b4e20abffb3d6e4
- # 2012-08-08 sha1sum: 3c4d531ccf0bb5788f1c197c63e9c0aa89885ee6
- # 2013-06-15 sha1sum: 9c02499deaf567bde7d827493705e5680833d02e
- # 2014-01-22 sha1sum: c8f1b2c137a1373d591f7c1d48db9c6baa961caf
- # 2014-02-26 sha1sum: ae2855b729bfaedc766f3addd8c2b74eac576909
- # 2014-04-15 sha1sum: c2ea56450fb4a5bac66cb7d70e3b522431521787
- # 2014-05-21 sha1sum: d95d1a14ee264235b29e093105bd2baa8b06eb12
- # 2014-11-22 sha1sum: 644d3228654ded798eabe40e7044b96b90e742f6
- # 2015-03-30 sha1sum: 9f2d4d929e7210ae9fb633881127b21586ffd8ce
- # 2015-04-27 sha1sum: 244e6a5c5fa2dd26c136bc5b402f6cad588763d7
- # 2015-08-02 sha1sum: e2efa2eb7db0a6de08905cd61bb3efcf58fda994
- # 2015-11-09 sha1sum: d13420a6fdc4f8d9c45c5ee6767974f0f0054cdc
- # 2015-12-27 sha1sum: 3ac6d85e54dffb2940c89fc10e63363a47ec96d0
- # 2016-02-18 sha1sum: 45147a791e3f71bd67ead1622d9120060dd196e5
- # 2016-03-11 sha1sum: 4f955f42984ae69d2f6078d3a3fe9fadc4a25e34
-
- w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi 4f955f42984ae69d2f6078d3a3fe9fadc4a25e34
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec /i sw_lic_full_installer.msi $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata speechsdk dlls \
- title="MS Speech SDK 5.1" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="SpeechSDK51.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Microsoft Speech SDK 5.1/Bin/SAPI51SampleApp.exe"
- load_speechsdk()
- {
- # http://www.microsoft.com/download/en/details.aspx?id=10121
- w_download http://download.microsoft.com/download/B/4/3/B4314928-7B71-4336-9DE7-6FA4CF00B7B3/SpeechSDK51.exe f69efaee8eb47f8c7863693e8b8265a3c12c4f51
- w_try_unzip "$W_TMP" "$W_CACHE"/speechsdk/SpeechSDK51.exe
- # Otherwise it only installs the SDK and not the redistributable:
- w_set_winver win2k
- cd "$W_TMP"
- w_try "$WINE" msiexec /i "Microsoft Speech SDK 5.1.msi" $W_UNATTENDED_SLASH_Q
- w_unset_winver
- }
- #----------------------------------------------------------------
- w_metadata tabctl32 dlls \
- title="Microsoft Tabbed Dialog Control 6.0 (tabctl32.ocx)" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="TABCTL32.CAB" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/tabctl32.ocx"
- load_tabctl32()
- {
- # http://msdn.microsoft.com/en-us/library/aa240864(VS.60).aspx
- # Nov 2012: tabctl32
- w_download http://activex.microsoft.com/controls/vb6/TABCTL32.CAB beca51d05924a5466ab80eb0f8d0cdf8bc1ac697
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/tabctl32/${file1}
- w_try cp -f "$W_TMP"/[Tt][Aa][Bb][Cc][Tt][Ll][3][2].[Oo][Cc][Xx] "$W_SYSTEM32_DLLS"
- w_try_regsvr tabctl32.ocx
- }
- #----------------------------------------------------------------
- w_metadata updspapi dlls \
- title="Windows Update Service API" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="../xpsp3/WindowsXP-KB936929-SP3-x86-ENU.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/updspapi.dll"
- load_updspapi()
- {
- helper_xpsp3 i386/update/updspapi.dll
- w_try cp -f "$W_TMP"/i386/update/updspapi.dll "$W_SYSTEM32_DLLS"
- w_override_dlls native,builtin updspapi
- }
- #----------------------------------------------------------------
- w_metadata usp10 dlls \
- title="Uniscribe 1.325 " \
- publisher="Microsoft" \
- year="2001" \
- media="download" \
- file1="../msi2/InstMsiA.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/usp10.dll"
- load_usp10()
- {
- # http://en.wikipedia.org/wiki/Uniscribe
- # http://www.microsoft.com/downloads/details.aspx?familyid=cebbacd8-c094-4255-b702-de3bb768148f
- w_download_to msi2 http://download.microsoft.com/download/WindowsInstaller/Install/2.0/W9XMe/EN-US/InstMsiA.exe e739c40d747e7c27aacdb07b50925b1635ee7366
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/msi2/InstMsiA.exe
- w_try cp -f "$W_TMP"/usp10.dll "$W_SYSTEM32_DLLS"
- w_override_dlls native,builtin usp10
- }
- #----------------------------------------------------------------
- w_metadata vb2run dlls \
- title="MS Visual Basic 2 runtime" \
- publisher="Microsoft" \
- year="1993" \
- media="download" \
- file1="VBRUN200.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/VBRUN200.DLL"
- load_vb2run()
- {
- # Not referenced on MS web anymore, but the old Microsoft Software Library FTP still has it.
- # See ftp://ftp.microsoft.com/Softlib/index.txt
- # 2014/05/31: Microsoft FTP is down ftp://$ftp_microsoft_com/Softlib/MSLFILES/VBRUN200.EXE
- # 2015/08/10: chatnfiles is down, conradshome.com is up (and has a LOT of old MS installers archived!)
- w_download http://www.conradshome.com/win31/archive/softlib/vbrun200.exe ac0568b73ee375408778e9b505df995f79ab907e
- w_try_unzip "$W_TMP" "$W_CACHE"/vb2run/VBRUN200.EXE
- w_try cp -f "$W_TMP/VBRUN200.DLL" "$W_SYSTEM32_DLLS"
- }
- #----------------------------------------------------------------
- w_metadata vb3run dlls \
- title="MS Visual Basic 3 runtime" \
- publisher="Microsoft" \
- year="1998" \
- media="download" \
- file1="vb3run.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/Vbrun300.dll"
- load_vb3run()
- {
- # See http://support.microsoft.com/kb/196285
- w_download http://download.microsoft.com/download/vb30/utility/1/w9xnt4/en-us/vb3run.exe 518fcfefde9bf680695cadd06512efadc5ac2aa7
- w_try_unzip "$W_TMP" "$W_CACHE"/vb3run/vb3run.exe
- w_try cp -f "$W_TMP/Vbrun300.dll" "$W_SYSTEM32_DLLS"
- }
- #----------------------------------------------------------------
- w_metadata vb4run dlls \
- title="MS Visual Basic 4 runtime" \
- publisher="Microsoft" \
- year="1998" \
- media="download" \
- file1="vb4run.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/Vb40032.dll"
- load_vb4run()
- {
- # See http://support.microsoft.com/kb/196286
- w_download http://download.microsoft.com/download/vb40ent/sample27/1/w9xnt4/en-us/vb4run.exe 83e968063272e97bfffd628a73bf0ff5f8e1023b
- w_try_unzip "$W_TMP" "$W_CACHE"/vb4run/vb4run.exe
- w_try cp -f "$W_TMP/Vb40032.dll" "$W_SYSTEM32_DLLS"
- w_try cp -f "$W_TMP/Vb40016.dll" "$W_SYSTEM32_DLLS"
- }
- #----------------------------------------------------------------
- w_metadata vb5run dlls \
- title="MS Visual Basic 5 runtime" \
- publisher="Microsoft" \
- year="2001" \
- media="download" \
- file1="msvbvm50.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msvbvm50.dll"
- load_vb5run()
- {
- w_download http://download.microsoft.com/download/vb50pro/utility/1/win98/en-us/msvbvm50.exe 28bfaf09b8ac32cf5ffa81252f3e2fadcb3a8f27
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msvbvm50.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata vb6run dlls \
- title="MS Visual Basic 6 runtime sp6" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="vbrun60sp6.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/MSVBVM60.DLL"
- load_vb6run()
- {
- # http://support.microsoft.com/kb/290887
- if test ! -f "$W_CACHE"/vb6run/vbrun60sp6.exe
- then
- w_download http://download.microsoft.com/download/5/a/d/5ad868a0-8ecd-4bb0-a882-fe53eb7ef348/VB6.0-KB290887-X86.exe 73ef177008005675134d2f02c6f580515ab0d842
- w_try "$WINE" "$W_CACHE"/vb6run/VB6.0-KB290887-X86.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q
- if test ! -f "$W_TMP"/vbrun60sp6.exe
- then
- w_die vbrun60sp6.exe not found
- fi
- w_try mv "$W_TMP"/vbrun60sp6.exe "$W_CACHE"/vb6run
- fi
- # Delete some fake DLLs to ensure that the installer overwrites them.
- rm -f "$W_SYSTEM32_DLLS"/comcat.dll
- rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll
- rm -f "$W_SYSTEM32_DLLS"/olepro32.dll
- rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb
- cd "$W_CACHE/$W_PACKAGE"
- # Exits with status 43 for some reason?
- "$WINE" vbrun60sp6.exe $W_UNATTENDED_SLASH_Q
- status=$?
- case $status in
- 0|43) ;;
- *) w_die $W_PACKAGE installation failed
- esac
- }
- #----------------------------------------------------------------
- winetricks_vcrun6_helper() {
- if test ! -f "$W_CACHE"/vcrun6/vcredist.exe
- then
- w_download_to vcrun6 http://download.microsoft.com/download/vc60pro/Update/2/W9XNT4/EN-US/VC6RedistSetup_deu.exe a8c4dd33e281c166488846a10edf97ff0ce37044
- w_try "$WINE" "$W_CACHE"/vcrun6/vc6redistsetup_deu.exe "/T:$W_TMP_WIN" /c $W_UNATTENDED_SLASH_Q
- if test ! -f "$W_TMP"/vcredist.exe
- then
- w_die vcredist.exe not found
- fi
- mv "$W_TMP"/vcredist.exe "$W_CACHE"/vcrun6
- fi
- }
- w_metadata vcrun6 dlls \
- title="Visual C++ 6 sp4 libraries (mfc42, msvcp60, msvcirt)" \
- publisher="Microsoft" \
- year="2000" \
- media="download" \
- file1="vc6redistsetup_deu.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc42.dll"
- load_vcrun6()
- {
- # Load the Visual C++ 6 runtime libraries, including the elusive mfc42u.dll
- winetricks_vcrun6_helper
- # Delete some fake dlls to avoid vcredist installer warnings
- rm -f "$W_SYSTEM32_DLLS"/comcat.dll
- rm -f "$W_SYSTEM32_DLLS"/msvcrt.dll
- rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll
- rm -f "$W_SYSTEM32_DLLS"/olepro32.dll
- rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb
- "$WINE" "$W_CACHE"/vcrun6/vcredist.exe
- status=$?
- case $status in
- 0|43) ;;
- *) w_die vcrun6 installation failed
- esac
- # And then some apps need mfc42u.dll, dunno what right way
- # is to get it, vcredist doesn't install it by default?
- load_mfc42
- }
- w_metadata mfc42 dlls \
- title="Visual C++ 6 sp4 mfc42 library; part of vcrun6" \
- publisher="Microsoft" \
- year="2000" \
- media="download" \
- file1="../vcrun6/vc6redistsetup_deu.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc42u.dll"
- load_mfc42()
- {
- winetricks_vcrun6_helper
- w_try_cabextract "$W_CACHE"/vcrun6/vcredist.exe -d "$W_SYSTEM32_DLLS" -F "mfc42*.dll"
- }
- w_metadata msvcirt dlls \
- title="Visual C++ 6 sp4 msvcirt library; part of vcrun6" \
- publisher="Microsoft" \
- year="2000" \
- media="download" \
- file1="../vcrun6/vc6redistsetup_deu.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msvcirt.dll"
- load_msvcirt()
- {
- winetricks_vcrun6_helper
- w_try_cabextract "$W_CACHE"/vcrun6/vcredist.exe -d "$W_SYSTEM32_DLLS" -F msvcirt.dll
- }
- #----------------------------------------------------------------
- # FIXME: we don't currently have an install check that can distinguish
- # between sp4 and sp6, it would have to check size or version of a file,
- # or maybe a registry key.
- w_metadata vcrun6sp6 dlls \
- title="Visual C++ 6 sp6 libraries (with fixes in atl and mfc)" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="Vs6sp6.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc42.dll"
- load_vcrun6sp6()
- {
- w_download http://download.microsoft.com/download/1/9/f/19fe4660-5792-4683-99e0-8d48c22eed74/Vs6sp6.exe 2292437a8967349261c810ae8b456592eeb76620
- # No EULA is presented when passing command-line extraction arguments,
- # so we'll simplify extraction with cabextract.
- w_try_cabextract "$W_CACHE"/vcrun6sp6/Vs6sp6.exe -d "$W_TMP" -F vcredist.exe
- cd "$W_TMP"
- # Delete some fake dlls to avoid vcredist installer warnings
- w_try rm -f "$W_SYSTEM32_DLLS"/comcat.dll
- w_try rm -f "$W_SYSTEM32_DLLS"/msvcrt.dll
- w_try rm -f "$W_SYSTEM32_DLLS"/oleaut32.dll
- w_try rm -f "$W_SYSTEM32_DLLS"/olepro32.dll
- w_try rm -f "$W_SYSTEM32_DLLS"/stdole2.tlb
- # vcredist still exits with status 43. Anyone know why?
- "$WINE" vcredist.exe
- status=$?
- case $status in
- 0|43) ;;
- *) w_die $W_PACKAGE installation failed
- esac
- # And then some apps need mfc42u.dll, dunno what right way
- # is to get it, vcredist doesn't install it by default?
- w_try_cabextract vcredist.exe -d "$W_SYSTEM32_DLLS" -F mfc42u.dll
- # Should the mfc42 verb install this one instead?
- }
- #----------------------------------------------------------------
- w_metadata vcrun2003 dlls \
- title="Visual C++ 2003 libraries (mfc71,msvcp71,msvcr71)" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="BZEditW32_1.6.5.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/msvcp71.dll"
- load_vcrun2003()
- {
- # Load the Visual C++ 2003 runtime libraries
- # Sadly, I know of no Microsoft URL for these
- echo "Installing BZFlag (which comes with the Visual C++ 2003 runtimes)"
- # winetricks-test can't handle ${file1} in url since it does a raw parsing :/
- w_download https://sourceforge.net/projects/bzflag/files/bzedit%20win32/1.6.5/BZEditW32_1.6.5.exe bdd1b32c4202fd77e6513fd507c8236888b09121
- w_try "$WINE" "$W_CACHE"/vcrun2003/${file1} $W_UNATTENDED_SLASH_S
- w_try cp "$W_PROGRAMS_X86_UNIX/BZEdit1.6.5"/m*71* "$W_SYSTEM32_DLLS"
- }
- #----------------------------------------------------------------
- # Temporary fix for bug 169
- # The | symbol in installed_file1 means "or".
- # (Adding an installed_file2 would mean 'and'.)
- # Perhaps we should test for one if winxp mode, and the other if win7 mode;
- # if that becomes important to get right, we'll do something like
- # "if installed_file1 is just the single char @, call test_installed_$verb"
- # and then define that function here.
- w_metadata vcrun2005 dlls \
- title="Visual C++ 2005 libraries (mfc80,msvcp80,msvcr80)" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="vcredist_x86.EXE" \
- installed_file1="c:/windows/winsxs/x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.6195_x-ww_150c9e8b/mfc80.dll|c:/windows/winsxs/x86_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.6195_none_deadbeef/mfc80.dll"
- load_vcrun2005()
- {
- # June 2011 security update, see
- # http://www.microsoft.com/technet/security/bulletin/MS11-025.mspx or
- # http://support.microsoft.com/kb/2538242
- w_download http://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.EXE b8fab0bb7f62a24ddfe77b19cd9a1451abd7b847
- cd "$W_CACHE/$W_PACKAGE"
- w_override_dlls native,builtin atl80 msvcm80 msvcp80 msvcr80 vcomp
- w_try "$WINE" $file1 $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata vcrun2008 dlls \
- title="Visual C++ 2008 libraries (mfc90,msvcp90,msvcr90)" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="vcredist_x86.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Common Files/Microsoft Shared/VC/msdia90.dll"
- load_vcrun2008()
- {
- # June 2011 security update, see
- # http://www.microsoft.com/technet/security/bulletin/MS11-025.mspx or
- # http://support.microsoft.com/kb/2538242
- w_download http://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe 470640aa4bb7db8e69196b5edb0010933569e98d
- w_override_dlls native,builtin atl90 msvcm90 msvcp90 msvcr90 vcomp90
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata vcrun2010 dlls \
- title="Visual C++ 2010 libraries (mfc100,msvcp100,msvcr100)" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="vcredist_x86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc100.dll"
- load_vcrun2010()
- {
- # See http://www.microsoft.com/downloads/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84
- w_download http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe 372d9c1670343d3fb252209ba210d4dc4d67d358
- w_override_dlls native,builtin msvcp100 msvcr100 vcomp100 atl100
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" vcredist_x86.exe $W_UNATTENDED_SLASH_Q
- case "$W_ARCH" in
- win64)
- # Also install the 64 bit version
- # http://www.microsoft.com/en-us/download/details.aspx?id=13523
- w_download http://download.microsoft.com/download/A/8/0/A80747C3-41BD-45DF-B505-E9710D2744E0/vcredist_x64.exe 027d0c2749ec5eb21b031f46aee14c905206f482
- if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls"
- then
- w_try_cabextract --directory="$W_TMP" vcredist_x64.exe -F '*.cab'
- w_try_cabextract --directory="$W_TMP" "$W_TMP"/vc_red.cab
- cp "$W_TMP"/F_CENTRAL_mfc100_x64 "$W_SYSTEM64_DLLS"/mfc100.dll
- cp "$W_TMP"/F_CENTRAL_mfc100u_x64 "$W_SYSTEM64_DLLS"/mfc100u.dll
- cp "$W_TMP"/F_CENTRAL_msvcr100_x64 "$W_SYSTEM64_DLLS"/msvcr100.dll
- cp "$W_TMP"/F_CENTRAL_msvcp100_x64 "$W_SYSTEM64_DLLS"/msvcp100.dll
- cp "$W_TMP"/F_CENTRAL_vcomp100_x64 "$W_SYSTEM64_DLLS"/vcomp100.dll
- cp "$W_TMP"/F_CENTRAL_atl100_x64 "$W_SYSTEM64_DLLS"/atl100.dll
- else
- w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q
- fi
- ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata vcrun2012 dlls \
- title="Visual C++ 2012 libraries (atl110,mfc110,mfc110u,msvcp110,msvcr110,vcomp110)" \
- publisher="Microsoft" \
- year="2012" \
- media="download" \
- file1="vcredist_x86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc110.dll"
- load_vcrun2012()
- {
- # http://www.microsoft.com/download/details.aspx?id=30679
- w_download http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe 96b377a27ac5445328cbaae210fc4f0aaa750d3f
- w_override_dlls native,builtin atl110 msvcp110 msvcr110 vcomp110
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" vcredist_x86.exe $W_UNATTENDED_SLASH_Q
- case "$W_ARCH" in
- win64)
- # Also install the 64 bit version
- # 2015/10/19: 1a5d93dddbc431ab27b1da711cd3370891542797
- w_download http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe 1a5d93dddbc431ab27b1da711cd3370891542797
- if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls"
- then
- rm -f "$W_TMP"/* # Avoid permission error
- w_try_cabextract --directory="$W_TMP" vcredist_x64.exe
- w_try_cabextract --directory="$W_TMP" "$W_TMP/a2"
- w_try_cabextract --directory="$W_TMP" "$W_TMP/a3"
- cp "$W_TMP"/F_CENTRAL_atl110_x64 "$W_SYSTEM64_DLLS"/atl110.dll
- cp "$W_TMP"/F_CENTRAL_mfc110_x64 "$W_SYSTEM64_DLLS"/mfc110.dll
- cp "$W_TMP"/F_CENTRAL_mfc110u_x64 "$W_SYSTEM64_DLLS"/mfc110u.dll
- cp "$W_TMP"/F_CENTRAL_msvcp110_x64 "$W_SYSTEM64_DLLS"/msvcp110.dll
- cp "$W_TMP"/F_CENTRAL_msvcr110_x64 "$W_SYSTEM64_DLLS"/msvcr110.dll
- cp "$W_TMP"/F_CENTRAL_vcomp110_x64 "$W_SYSTEM64_DLLS"/vcomp110.dll
- else
- w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q
- fi
- ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata vcrun2013 dlls \
- title="Visual C++ 2013 libraries (mfc120,mfc120u,msvcp120,msvcr120,vcomp120)" \
- publisher="Microsoft" \
- year="2013" \
- media="download" \
- file1="vcredist_x86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc120.dll"
- load_vcrun2013()
- {
- # http://www.microsoft.com/en-us/download/details.aspx?id=40784
- # 2014/07/26: 18f81495bc5e6b293c69c28b0ac088a96debbab2
- # 2015/01/14: df7f0a73bfa077e483e51bfb97f5e2eceedfb6a3
- w_download http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe df7f0a73bfa077e483e51bfb97f5e2eceedfb6a3
- w_override_dlls native,builtin atl120 msvcp120 msvcr120 vcomp120
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" vcredist_x86.exe $W_UNATTENDED_SLASH_Q
- case "$W_ARCH" in
- win64)
- # Also install the 64 bit version
- # 2015/10/19: 8bf41ba9eef02d30635a10433817dbb6886da5a2
- w_download http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe 8bf41ba9eef02d30635a10433817dbb6886da5a2
- if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls"
- then
- rm -f "$W_TMP"/* # Avoid permission error
- w_try_cabextract --directory="$W_TMP" vcredist_x64.exe
- w_try_cabextract --directory="$W_TMP" "$W_TMP/a2"
- w_try_cabextract --directory="$W_TMP" "$W_TMP/a3"
- cp "$W_TMP"/F_CENTRAL_mfc120_x64 "$W_SYSTEM64_DLLS"/mfc120.dll
- cp "$W_TMP"/F_CENTRAL_mfc120u_x64 "$W_SYSTEM64_DLLS"/mfc120u.dll
- cp "$W_TMP"/F_CENTRAL_msvcp120_x64 "$W_SYSTEM64_DLLS"/msvcp120.dll
- cp "$W_TMP"/F_CENTRAL_msvcr120_x64 "$W_SYSTEM64_DLLS"/msvcr120.dll
- cp "$W_TMP"/F_CENTRAL_vcomp120_x64 "$W_SYSTEM64_DLLS"/vcomp120.dll
- else
- w_try "$WINE" vcredist_x64.exe $W_UNATTENDED_SLASH_Q
- fi
- ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata vcrun2015 dlls \
- title="Visual C++ 2015 libraries (concrt140.dll,mfc140.dll,mfc140u.dll,mfcm140.dll,mfcm140u.dll,msvcp140.dll,vcamp140.dll,vccorlib140.dll,vcomp140.dll,vcruntime140.dll)" \
- publisher="Microsoft" \
- year="2015" \
- media="download" \
- file1="vc_redist.x86.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/mfc140.dll"
- load_vcrun2015()
- {
- # https://www.microsoft.com/en-us/download/details.aspx?id=48145
- # 2015/10/12: bfb74e498c44d3a103ca3aa2831763fb417134d1
- w_download https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe bfb74e498c44d3a103ca3aa2831763fb417134d1
- if w_workaround_wine_bug 37781
- then
- w_warn "This may fail in non-XP mode, see https://bugs.winehq.org/show_bug.cgi?id=37781"
- fi
- w_override_dlls native,builtin atl140 msvcp140 msvcr140 vcomp140
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" vc_redist.x86.exe $W_UNATTENDED_SLASH_Q
- case "$W_ARCH" in
- win64)
- # Also install the 64 bit version
- # 2015/10/12: 3155cb0f146b927fcc30647c1a904cd162548c8c
- w_download https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe 3155cb0f146b927fcc30647c1a904cd162548c8c
- if w_workaround_wine_bug 30713 "Manually extracting the 64-bit dlls"
- then
- rm -f "$W_TMP"/* # Avoid permission error
- w_try_cabextract --directory="$W_TMP" vc_redist.x64.exe
- w_try_cabextract --directory="$W_TMP" "$W_TMP/a10"
- w_try_cabextract --directory="$W_TMP" "$W_TMP/a11"
- cp "$W_TMP"/concrt140.dll "$W_SYSTEM64_DLLS"/concrt140.dll
- cp "$W_TMP"/mfc140.dll "$W_SYSTEM64_DLLS"/mfc140.dll
- cp "$W_TMP"/mfc140u.dll "$W_SYSTEM64_DLLS"/mfc140u.dll
- cp "$W_TMP"/mfcm140.dll "$W_SYSTEM64_DLLS"/mfcm140.dll
- cp "$W_TMP"/mfcm140u.dll "$W_SYSTEM64_DLLS"/mfcm140u.dll
- cp "$W_TMP"/msvcp140.dll "$W_SYSTEM64_DLLS"/msvcp140.dll
- cp "$W_TMP"/vcamp140.dll "$W_SYSTEM64_DLLS"/vcamp140.dll
- cp "$W_TMP"/vccorlib140.dll "$W_SYSTEM64_DLLS"/vccorlib140.dll
- cp "$W_TMP"/vcomp140.dll "$W_SYSTEM64_DLLS"/vcomp140.dll
- cp "$W_TMP"/vcruntime140.dll "$W_SYSTEM64_DLLS"/vcruntime140.dll
- w_override_dlls native,builtin api-ms-win-crt-conio-l1-1-0 api-ms-win-crt-heap-l1-1-0 api-ms-win-crt-locale-l1-1-0 api-ms-win-crt-math-l1-1-0.dll api-ms-win-crt-runtime-l1-1-0 api-ms-win-crt-stdio-l1-1-0 ucrtbase vcruntime140
- cp "$W_TMP"/api_ms_win_crt_conio_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-conio-l1-1-0.dll
- cp "$W_TMP"/api_ms_win_crt_heap_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-heap-l1-1-0.dll
- cp "$W_TMP"/api_ms_win_crt_locale_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-locale-l1-1-0.dll
- cp "$W_TMP"/api_ms_win_crt_math_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-math-l1-1-0.dll
- cp "$W_TMP"/api_ms_win_crt_runtime_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-runtime-l1-1-0.dll
- cp "$W_TMP"/api_ms_win_crt_stdio_l1_1_0.dll "$W_SYSTEM64_DLLS"/api-ms-win-crt-stdio-l1-1-0.dll
- cp "$W_TMP"/ucrtbase.dll "$W_SYSTEM64_DLLS"/ucrtbase.dll
- else
- w_try "$WINE" vc_redist.x64.exe $W_UNATTENDED_SLASH_Q
- fi
- ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata vjrun20 dlls \
- title="MS Visual J# 2.0 SE libraries (requires dotnet20)" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- conflicts="dotnet11 dotnet20sp1 dotnet20sp2" \
- file1="vjredist.exe" \
- installed_file1="c:/windows/Microsoft.NET/Framework/VJSharp/VJSharpSxS10.dll"
- load_vjrun20()
- {
- if [ $W_ARCH = win64 ]
- then
- w_warn "vjrun20 depends on dotnet20, which doesn't work on 64-bit wine yet. Skipping."
- return
- fi
- w_call dotnet20
- # See http://www.microsoft.com/downloads/details.aspx?FamilyId=E9D87F37-2ADC-4C32-95B3-B5E3A21BAB2C
- w_download http://download.microsoft.com/download/9/2/3/92338cd0-759f-4815-8981-24b437be74ef/vjredist.exe 80a098e36b90d159da915aebfbfbacf35f302bd8
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" vjredist.exe ${W_OPT_UNATTENDED:+ /q /C:"install $W_UNATTENDED_SLASH_QNT"}
- }
- #----------------------------------------------------------------
- # FIXME: two exe's, one for win64, one for win32..
- w_metadata windowscodecs dlls \
- title="MS Windows Imaging Component" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="wic_x86_enu.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/WindowsCodecs.dll"
- load_windowscodecs()
- {
- # separate 32/64 bit installers:
- if [ "$W_ARCH" = "win32" ] ; then
- # https://www.microsoft.com/en-us/download/details.aspx?id=32
- w_download http://download.microsoft.com/download/f/f/1/ff178bb1-da91-48ed-89e5-478a99387d4f/wic_x86_enu.exe 53c18652ac2f8a51303deb48a1b7abbdb1db427f
- EXE="wic_x86_enu.exe"
- else
- # https://www.microsoft.com/en-us/download/details.aspx?id=1385
- w_download https://download.microsoft.com/download/6/4/5/645FED5F-A6E7-44D9-9D10-FE83348796B0/wic_x64_enu.exe 4bdbf76a7bc96453306c893b4a7b2b8ae6127f67
- EXE="wic_x64_enu.exe"
- fi
- # Avoid a file existence check.
- w_try rm -f "$W_SYSTEM32_DLLS"/windowscodecs.dll "$W_SYSTEM32_DLLS"/windowscodecsext.dll "$W_SYSTEM32_DLLS"/photometadatahandler.dll
- if [ "$W_ARCH" = "win64" ]
- then
- w_try rm -f "$W_SYSTEM64_DLLS"/windowscodecs.dll "$W_SYSTEM64_DLLS"/windowscodecsext.dll "$W_SYSTEM64_DLLS"/photometadatahandler.dll
- fi
- # AF says in appdb entry for .net 3.0 that windowscodecs has to be native only
- w_override_dlls native windowscodecs windowscodecsext
- # Always run the WIC installer in passive mode.
- # See http://bugs.winehq.org/show_bug.cgi?id=16876 and
- # http://bugs.winehq.org/show_bug.cgi?id=23232
- cd "$W_CACHE/$W_PACKAGE"
- if test -x /usr/bin/taskset && w_workaround_wine_bug 32859 "Working around possibly broken libX11"
- then
- TASKSET="taskset -c 0"
- else
- TASKSET=""
- fi
- w_try $TASKSET "$WINE" "$EXE" /passive
- }
- #----------------------------------------------------------------
- w_metadata winhttp dlls \
- title="MS Windows HTTP Services" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/winhttp.dll"
- load_winhttp()
- {
- helper_win2ksp4 i386/new/winhttp.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/new/winhttp.dl_
- w_override_dlls native,builtin winhttp
- }
- #----------------------------------------------------------------
- w_metadata wininet dlls \
- title="MS Windows Internet API" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="../win2ksp4/W2KSP4_EN.EXE" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/wininet.dll"
- load_wininet()
- {
- helper_win2ksp4 i386/wininet.dl_
- w_try_cabextract --directory="$W_SYSTEM32_DLLS" "$W_TMP"/i386/wininet.dl_
- w_override_dlls native,builtin wininet
- }
- #----------------------------------------------------------------
- w_metadata wmi dlls \
- title="Windows Management Instrumentation (aka WBEM) Core 1.5" \
- publisher="Microsoft" \
- year="2000" \
- media="download" \
- file1="wmi9x.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/wbem/wbemcore.dll"
- load_wmi()
- {
- if test $W_ARCH = win64
- then
- w_die "Installer doesn't support 64-bit architecture."
- fi
- # WMI for NT4.0 need validation: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c174cfb1-ef67-471d-9277-4c2b1014a31e
- # See also http://www.microsoft.com/downloads/en/details.aspx?FamilyId=98A4C5BA-337B-4E92-8C18-A63847760EA5
- w_download http://download.microsoft.com/download/platformsdk/wmi9x/1.5/W9X/EN-US/wmi9x.exe 62752e9c1b879688c26f205eebf07d3783906c3e
- w_set_winver win98
- w_override_dlls native,builtin wbemprox wmiutils
- # Note: there is a crash in the background towards the end, doesn't seem to hurt; see http://bugs.winehq.org/show_bug.cgi?id=7920
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" wmi9x.exe $W_UNATTENDED_SLASH_S
- w_unset_winver
- }
- #----------------------------------------------------------------
- w_metadata wsh56js dlls \
- title="MS Windows scripting 5.6, jscript only, no cscript" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="Windows2000-KB917344-56-x86-enu.exe" \
- installed_file1="c:/windows/inf/jscren.inf"
- load_wsh56js()
- {
- # This installs jscript 5.6 (but not vbscript)
- # See also http://www.microsoft.com/downloads/details.aspx?FamilyID=16dd21a1-c4ee-4eca-8b80-7bd1dfefb4f8&DisplayLang=en
- w_download http://download.microsoft.com/download/b/c/3/bc3a0c36-fada-497d-a3de-8b0139766f3b/Windows2000-KB917344-56-x86-enu.exe add5f74c5bd4da6cfae47f8306de213ec6ed52c8
- cd "$W_CACHE/$W_PACKAGE"
- w_override_dlls native,builtin jscript
- # setupapi looks at the versions in new and original jscript.dll, and wine's original is newer than wsh56js's, so have to nuke the original
- w_try rm "$W_SYSTEM32_DLLS/jscript.dll"
- w_try "$WINE" Windows2000-KB917344-56-x86-enu.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata wsh56vb dlls \
- title="MS Windows scripting 5.6, vbscript only, no cscript" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- file1="vbs56men.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/vbscript.dll"
- load_wsh56vb()
- {
- # This installs vbscript 5.6 (but not jscript)
- # See also http://www.microsoft.com/downloads/details.aspx?familyid=4F728263-83A3-464B-BCC0-54E63714BC75
- w_download http://download.microsoft.com/download/IE60/Patch/Q318089/W9XNT4Me/EN-US/vbs56men.exe 48f14a93db33caff271da0c93f334971f9d7cb22
- cd "$W_CACHE/$W_PACKAGE"
- w_override_dlls native,builtin vbscript
- # setupapi looks at the versions in new and original vbscript.dll, and wine's original is newer than wsh56vb's, so have to nuke the original
- w_try rm "$W_SYSTEM32_DLLS/vbscript.dll"
- w_try "$WINE" vbs56men.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata wsh57 dlls \
- title="MS Windows Scripting Host 5.7" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- file1="scripten.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/scrrun.dll"
- load_wsh57()
- {
- # See also http://www.microsoft.com/downloads/details.aspx?FamilyID=47809025-D896-482E-A0D6-524E7E844D81&displaylang=en
- w_download http://download.microsoft.com/download/4/4/d/44de8a9e-630d-4c10-9f17-b9b34d3f6417/scripten.exe b15c6a834b7029e2dfed22127cf905b06857e6f5
- w_try_cabextract -d "$W_SYSTEM32_DLLS" "$W_CACHE"/wsh57/scripten.exe
- # Wine doesn't provide the other dll's (yet?)
- w_override_dlls native,builtin jscript scrrun vbscript cscript.exe wscript.exe
- w_try_regsvr dispex.dll jscript.dll scrobj.dll scrrun.dll vbscript.dll wshcon.dll wshext.dll
- }
- #----------------------------------------------------------------
- w_metadata xact dlls \
- title="MS XACT Engine" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/xactengine2_0.dll"
- load_xact()
- {
- helper_directx_dl
- # Extract xactengine?_?.dll, X3DAudio?_?.dll, xaudio?_?.dll, xapofx?_?.dll
- w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xactengine*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xaudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'x3daudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xapofx*.dll' "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xactengine*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xaudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'x3daudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xapofx*.dll' "$x"
- done
- fi
- # Register xactengine?_?.dll
- for x in "$W_SYSTEM32_DLLS"/xactengine*
- do
- w_try_regsvr `basename "$x"`
- done
- # and xaudio?_?.dll, but not xaudio2_8 (unsupported)
- for x in 0 1 2 3 4 5 6 7
- do
- w_try_regsvr `basename "$W_SYSTEM32_DLLS/xaudio2_${x}"`
- done
- }
- #----------------------------------------------------------------
- w_metadata xact_jun2010 dlls \
- title="MS XACT Engine" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_Jun2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/xactengine2_0.dll"
- load_xact_jun2010()
- {
- helper_directx_Jun2010
- # Extract xactengine?_?.dll, X3DAudio?_?.dll, xaudio?_?.dll, xapofx?_?.dll
- w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xactengine*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xaudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'x3daudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xapofx*.dll' "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F '*_xact_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_x3daudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_TMP" -L -F '*_xaudio_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xactengine*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xaudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'x3daudio*.dll' "$x"
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xapofx*.dll' "$x"
- done
- fi
- # Register xactengine?_?.dll
- for x in "$W_SYSTEM32_DLLS"/xactengine*
- do
- w_try_regsvr `basename "$x"`
- done
- # and xaudio?_?.dll, but not xaudio2_8 (unsupported)
- for x in 0 1 2 3 4 5 6 7
- do
- w_try_regsvr `basename "$W_SYSTEM32_DLLS/xaudio2_${x}"`
- done
- }
- #----------------------------------------------------------------
- w_metadata xinput dlls \
- title="Microsoft XInput (Xbox controller support)" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/xinput1_1.dll"
- load_xinput()
- {
- helper_directx_dl
- w_try_cabextract -d "$W_TMP" -L -F '*_xinput_*x86*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*.cab
- do
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F 'xinput*.dll' "$x"
- done
- if test "$W_ARCH" = "win64"
- then
- w_try_cabextract -d "$W_TMP" -L -F '*_xinput_*x64*' "$W_CACHE"/directx9/$DIRECTX_NAME
- for x in "$W_TMP"/*x64.cab
- do
- w_try_cabextract -d "$W_SYSTEM64_DLLS" -L -F 'xinput*.dll' "$x"
- done
- fi
- w_override_dlls native xinput1_1
- w_override_dlls native xinput1_2
- w_override_dlls native xinput1_3
- w_override_dlls native xinput9_1_0
- }
- #----------------------------------------------------------------
- # FIXME: extend metadata to allow file1_en, file1_fr, etc.
- w_metadata xmllite dlls \
- title="MS xmllite dll" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/xmllite.dll"
- load_xmllite()
- {
- case $LANG in
- en*) w_download http://download.microsoft.com/download/f/9/6/f964059a-3747-4ed8-9326-ba1e639031b1/WindowsXP-KB915865-v11-x86-ENU.exe 226d246a1c64e693791de5c727509002d089b0d5 ;;
- fr*) w_download http://download.microsoft.com/download/4/1/d/41de58a0-6715-4d3e-99e7-ff0c11283d1b/WindowsXP-KB915865-v11-x86-FRA.exe abb70b6a96be7dce453b00877739e90c6f3efba0 ;;
- de*) w_download http://download.microsoft.com/download/9/b/6/9b67efdb-cce3-4247-a2e0-386673859a1b/WindowsXP-KB915865-v11-x86-DEU.exe a03a325815acf9d624db58ab94a140a5586e64c8 ;;
- ja*) w_download http://download.microsoft.com/download/f/5/c/f5cf73b7-4dc4-4042-815d-29d2fd24ae6f/WindowsXP-KB915865-v11-x86-JPN.exe eaf443d04d9b13cb86f927f8a7fe372268386395 ;;
- *) w_die "sorry, xmllite install not yet implemented for language $LANG" ;;
- esac
- # Doesn't install in newer versions:
- w_set_winver winxp
- cd "$W_CACHE/$W_PACKAGE"
- w_override_dlls native xmllite
- case $LANG in
- en*) w_try "$WINE" WindowsXP-KB915865-v11-x86-ENU.exe $W_UNATTENDED_SLASH_Q ;;
- fr*) w_try "$WINE" WindowsXP-KB915865-v11-x86-FRA.exe $W_UNATTENDED_SLASH_Q ;;
- de*) w_try "$WINE" WindowsXP-KB915865-v11-x86-DEU.exe $W_UNATTENDED_SLASH_Q ;;
- ja*) w_try "$WINE" WindowsXP-KB915865-v11-x86-JPN.exe $W_UNATTENDED_SLASH_Q ;;
- esac
- w_unset_winver
- }
- #----------------------------------------------------------------
- w_metadata xna31 dlls \
- title="MS XNA Framework Redistributable 3.1" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="xnafx31_redist.msi" \
- installed_file1="C:/windows/assembly/GAC_32/Microsoft.Xna.Framework.Game/3.1.0.0__6d5c3888ef60e27d/Microsoft.Xna.Framework.Game.dll"
- load_xna31()
- {
- w_call dotnet20sp2
- w_download http://download.microsoft.com/download/5/9/1/5912526C-B950-4662-99B6-119A83E60E5C/xnafx31_redist.msi bdd33b677c9576a63ff2a6f65e12c0563cc116e6
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec $W_UNATTENDED_SLASH_QUIET /i $file1
- }
- #----------------------------------------------------------------
- w_metadata xna40 dlls \
- title="MS XNA Framework Redistributable 4.0" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="xnafx40_redist.msi" \
- installed_file1="$W_PROGRAMS_X86_WIN/Common Files/Microsoft Shared/XNA/Framework/v4.0/XnaNative.dll"
- load_xna40()
- {
- if w_workaround_bug 30718
- then
- w_warn "$W_PACKAGE may not install properly in wine yet"
- fi
- w_call dotnet45
- # http://www.microsoft.com/en-us/download/details.aspx?id=20914
- w_download http://download.microsoft.com/download/A/C/2/AC2C903B-E6E8-42C2-9FD7-BEBAC362A930/xnafx40_redist.msi 49efdc29f65fc8263c196338552c7009fc96c5de
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec $W_UNATTENDED_SLASH_QUIET /i $file1
- }
- #----------------------------------------------------------------
- w_metadata xvid dlls \
- title="Xvid Video Codec" \
- publisher="xvid.org" \
- year="2009" \
- media="download" \
- file1="Xvid-1.3.2-20110601.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Xvid/xvid.ico"
- load_xvid()
- {
- w_call vcrun6
- w_download http://www.koepi.info/Xvid-1.3.2-20110601.exe 0a11498a96f75ad019c4c7d06161504140337dc0
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ --mode unattended --decode_divx 1 --decode_3ivx 1 --decode_other 1}
- }
- #----------------------------------------------------------------
- # Fonts
- #----------------------------------------------------------------
- w_metadata baekmuk fonts \
- title="Baekmuk Korean fonts" \
- publisher="Wooderart Inc. / kldp.net" \
- year="1999" \
- media="download" \
- file1="fonts-baekmuk_2.2.orig.tar.gz" \
- installed_file1="$W_FONTSDIR_WIN/batang.ttf"
- load_baekmuk()
- {
- # See http://kldp.net/projects/baekmuk for project page
- # Need to download from Debian as the project page has unique captcha tokens per visitor
- w_download http://http.debian.net/debian/pool/main/f/fonts-baekmuk/fonts-baekmuk_2.2.orig.tar.gz afdee34f700007de6ea87b43c92a88b7385ba65b
- cd "$W_TMP"
- tar zxvf "$W_CACHE/$W_PACKAGE/$file1" baekmuk-ttf-2.2/ttf
- w_try mv baekmuk-ttf-2.2/ttf/*.ttf "$W_FONTSDIR_UNIX"
- w_register_font batang.ttf "Baekmuk Batang"
- w_register_font gulim.ttf "Baekmuk Gulim"
- w_register_font dotum.ttf "Baekmuk Dotum"
- w_register_font hline.ttf "Baekmuk Headline"
- }
- #----------------------------------------------------------------
- w_metadata cjkfonts fonts \
- title="All Chinese, Japanese, Korean fonts and aliases" \
- publisher="various" \
- date="1999-2010" \
- media="download"
- load_cjkfonts()
- {
- w_call fakechinese
- w_call fakejapanese
- w_call fakekorean
- w_call unifont
- }
- #----------------------------------------------------------------
- w_metadata cambria fonts \
- title="MS Cambria font" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="PowerPointViewer.exe" \
- installed_file1="$W_FONTSDIR_WIN/cambria.ttc"
- load_cambria()
- {
- # http://www.microsoft.com/en-us/download/details.aspx?id=13
- w_download_to consolas http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe ab48a8ebac88219c84f293c6c1e81f1a0f420da6
- w_try_cabextract -d "$W_TMP" -L -F ppviewer.cab "$W_CACHE"/consolas/PowerPointViewer.exe
- w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'CAMBRIA*.TT*' "$W_TMP"/ppviewer.cab
- w_register_font cambria.ttc "Cambria"
- w_register_font cambriab.ttf "Cambria Bold"
- w_register_font cambriai.ttf "Cambria Italic"
- w_register_font cambriaz.ttf "Cambria Bold Italic"
- }
- #----------------------------------------------------------------
- w_metadata constantia fonts \
- title="MS Constantia font" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="PowerPointViewer.exe" \
- installed_file1="$W_FONTSDIR_WIN/constan.ttf"
- load_constantia()
- {
- # http://www.microsoft.com/en-us/download/details.aspx?id=13
- w_download_to consolas http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe ab48a8ebac88219c84f293c6c1e81f1a0f420da6
- w_try_cabextract -d "$W_TMP" -L -F ppviewer.cab "$W_CACHE"/consolas/PowerPointViewer.exe
- w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'CONSTAN*.TTF' "$W_TMP"/ppviewer.cab
- w_register_font constan.ttf "Constantia"
- w_register_font constanb.ttf "Constantia Bold"
- w_register_font constani.ttf "Constantia Italic"
- w_register_font constanz.ttf "Constantia Bold Italic"
- }
- #----------------------------------------------------------------
- w_metadata consolas fonts \
- title="MS Consolas Console font" \
- publisher="Microsoft" \
- year="2011" \
- media="download" \
- file1="PowerPointViewer.exe" \
- installed_file1="$W_FONTSDIR_WIN/consola.ttf"
- load_consolas()
- {
- # http://www.microsoft.com/en-us/download/details.aspx?id=13
- w_download http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3EB-27C9F8C8F696/PowerPointViewer.exe ab48a8ebac88219c84f293c6c1e81f1a0f420da6
- w_try_cabextract -d "$W_TMP" -L -F ppviewer.cab "$W_CACHE"/consolas/PowerPointViewer.exe
- w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'CONSOL*.TTF' "$W_TMP"/ppviewer.cab
- w_register_font consola.ttf "Consoleas"
- w_register_font consolab.ttf "Consoleas Bold"
- w_register_font consolai.ttf "Consoleas Italic"
- w_register_font consolaz.ttf "Consoleas Bold Italic"
- }
- #----------------------------------------------------------------
- w_metadata corefonts fonts \
- title="MS Arial, Courier, Times fonts" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="arial32.exe" \
- installed_file1="$W_FONTSDIR_WIN/Arial.TTF"
- load_corefonts()
- {
- # FIXME: why is this commented out? Should be removed or enabled.
- #w_download ftp://ftp.fi.debian.org/gentoo/distfiles/andale32.exe c4db8cbe42c566d12468f5fdad38c43721844c69
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/arial32.exe 6d75f8436f39ab2da5c31ce651b7443b4ad2916e
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/arialb32.exe d45cdab84b7f4c1efd6d1b369f50ed0390e3d344
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/comic32.exe 2371d0327683dcc5ec1684fe7c275a8de1ef9a51
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/courie32.exe 06a745023c034f88b4135f5e294fece1a3c1b057
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/georgi32.exe 90e4070cb356f1d811acb943080bf97e419a8f1e
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/impact32.exe 86b34d650cfbbe5d3512d49d2545f7509a55aad2
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/times32.exe 20b79e65cdef4e2d7195f84da202499e3aa83060
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/trebuc32.exe 50aab0988423efcc9cf21fac7d64d534d6d0a34a
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/verdan32.exe f5b93cedf500edc67502f116578123618c64a42a
- w_download ftp://ftp.fi.debian.org/gentoo/distfiles/webdin32.exe 2fb4a42c53e50bc70707a7b3c57baf62ba58398f
- # Natively installed versions of these fonts will cause the installers
- # to exit silently. Because there are apps out there that depend on the
- # files being present in the Windows font directory we use cabextract
- # to obtain the files and register the fonts by hand.
- # Andale needs a FontSubstitutes entry
- # w_try_cabextract --directory="$W_TMP" "$W_CACHE"/corefonts/andale32.exe
- # Display EULA
- test x"$W_UNATTENDED_SLASH_Q" = x"" || w_try "$WINE" "$W_CACHE"/corefonts/arial32.exe $W_UNATTENDED_SLASH_Q
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/arial32.exe
- w_try cp -f "$W_TMP"/Arial*.TTF "$W_FONTSDIR_UNIX"
- w_register_font Arial.TTF "Arial"
- w_register_font Arialbd.TTF "Arial Bold"
- w_register_font Arialbi.TTF "Arial Bold Italic"
- w_register_font Ariali.TTF "Arial Italic"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/arialb32.exe
- w_try cp -f "$W_TMP"/AriBlk.TTF "$W_FONTSDIR_UNIX"
- w_register_font AriBlk.TTF "Arial Black"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/comic32.exe
- w_try cp -f "$W_TMP"/Comic*.TTF "$W_FONTSDIR_UNIX"
- w_register_font Comic.TTF "Comic Sans MS"
- w_register_font Comicbd.TTF "Comic Sans MS Bold"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/courie32.exe
- w_try cp -f "$W_TMP"/cour*.ttf "$W_FONTSDIR_UNIX"
- w_register_font Cour.TTF "Courier New"
- w_register_font CourBD.TTF "Courier New Bold"
- w_register_font CourBI.TTF "Courier New Bold Italic"
- w_register_font Couri.TTF "Courier New Italic"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/georgi32.exe
- w_try cp -f "$W_TMP"/Georgia*.TTF "$W_FONTSDIR_UNIX"
- w_register_font Georgia.TTF "Georgia"
- w_register_font Georgiab.TTF "Georgia Bold"
- w_register_font Georgiaz.TTF "Georgia Bold Italic"
- w_register_font Georgiai.TTF "Georgia Italic"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/impact32.exe
- w_try cp -f "$W_TMP"/Impact.TTF "$W_FONTSDIR_UNIX"
- w_register_font Impact.TTF "Impact"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/times32.exe
- w_try cp -f "$W_TMP"/Times*.TTF "$W_FONTSDIR_UNIX"
- w_register_font Times.TTF "Times New Roman"
- w_register_font Timesbd.TTF "Times New Roman Bold"
- w_register_font Timesbi.TTF "Times New Roman Bold Italic"
- w_register_font Timesi.TTF "Times New Roman Italic"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/trebuc32.exe
- w_try cp -f "$W_TMP"/[tT]rebuc*.ttf "$W_FONTSDIR_UNIX"
- w_register_font Trebuc.TTF "Trebucet MS"
- w_register_font Trebucbd.TTF "Trebucet MS Bold"
- w_register_font Trebucbi.TTF "Trebucet MS Bold Italic"
- w_register_font Trebucit.TTF "Trebucet MS Italic"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/verdan32.exe
- w_try cp -f "$W_TMP"/Verdana*.TTF "$W_FONTSDIR_UNIX"
- w_register_font Verdana.TTF "Verdana"
- w_register_font Verdanab.TTF "Verdana Bold"
- w_register_font Verdanaz.TTF "Verdana Bold Italic"
- w_register_font Verdanai.TTF "Verdana Italic"
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/corefonts/webdin32.exe
- w_try cp -f "$W_TMP"/Webdings.TTF "$W_FONTSDIR_UNIX"
- w_register_font Webdings.TTF "Webdings"
- }
- #----------------------------------------------------------------
- w_metadata droid fonts \
- title="Droid fonts" \
- publisher="Ascender Corporation" \
- year="2009" \
- media="download" \
- file1="DroidSans-Bold.ttf" \
- installed_file1="$W_FONTSDIR_WIN/DroidSans-Bold.ttf"
- do_droid() {
- w_download ${DROID_URL}$1'?raw=true' $3 $1
- w_try cp -f "$W_CACHE"/droid/$1 "$W_FONTSDIR_UNIX"
- w_register_font $1 "$2"
- }
- load_droid()
- {
- # See http://en.wikipedia.org/wiki/Droid_(font)
- # Old url was http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob_plain;f=data/fonts/'
- # Then it was https://github.com/android/platform_frameworks_base/blob/master/data/fonts/
- # but the fonts are no longer in master. Using an older commit instead:
- DROID_URL='https://github.com/android/platform_frameworks_base/blob/feef9887e8f8eb6f64fc1b4552c02efb5755cdc1/data/fonts/'
- do_droid DroidSans-Bold.ttf "Droid Sans Bold" 560e4bcafdebaf29645fbf92633a2ae0d2f9801f
- do_droid DroidSansFallback.ttf "Droid Sans Fallback" c5e4f11e2f1d0b84e5f268a7ebfd28b54dc6bcdc
- do_droid DroidSansJapanese.ttf "Droid Sans Japanese" b3a248c11692aa88a30eb25df425b8910fe05dc5
- do_droid DroidSansMono.ttf "Droid Sans Mono" 133fb6cf26ea073b456fb557b94ce8c46143b117
- do_droid DroidSans.ttf "Droid Sans" 62f2841f61e4be66a0303cd1567ed2d300b4e31c
- do_droid DroidSerif-BoldItalic.ttf "Droid Serif Bold Italic" 41ce5fef1bd0164caed6958885d7285c841c95f1
- do_droid DroidSerif-Bold.ttf "Droid Serif Bold" 2775e9b8e96a3e9593acb5cf6923abb2e6008187
- do_droid DroidSerif-Italic.ttf "Droid Serif Italic" e91cc6c1ae9a6699683bcee024551cb58d1be790
- do_droid DroidSerif-Regular.ttf "Droid Serif" a689ce25a4063cf501c12d616f832f2235b5b93b
- }
- #----------------------------------------------------------------
- w_metadata eufonts fonts \
- title="Updated fonts for Romanian and Bulgarian" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="EUupdate.EXE" \
- installed_file1="$W_FONTSDIR_WIN/trebucbd.ttf"
- load_eufonts()
- {
- # https://www.microsoft.com/downloads/details.aspx?FamilyID=0ec6f335-c3de-44c5-a13d-a1e7cea5ddea&displaylang=en
- w_download http://download.microsoft.com/download/a/1/8/a180e21e-9c2b-4b54-9c32-bf7fd7429970/EUupdate.EXE 9b076c40cb63aa0d8512aa8e610ba11d3466e441
- w_try_cabextract -q --directory="$W_TMP" "$W_CACHE"/eufonts/EUupdate.EXE
- w_try cp -f "$W_TMP"/*.ttf "$W_FONTSDIR_UNIX"
- w_register_font ArialBI.ttf "Arial Bold Italic"
- w_register_font ArialI.ttf "Arial Italic"
- w_register_font Arial.ttf "Arial"
- w_register_font TimesBd.ttf "Times New Roman Bold"
- w_register_font TimesBI.ttf "Times New Roman Bold Italic"
- w_register_font TimesI.ttf "Times New Roman Italic"
- w_register_font Times.ttf "Times New Roman"
- w_register_font trebucbd.ttf "Trebuchet Bold"
- w_register_font trebucbi.ttf "Trebuchet Bold Italic"
- w_register_font trebucit.ttf "Trebuchet Italic"
- w_register_font trebuc.ttf "Trebuchet"
- w_register_font Verdanab.ttf "Verdana Bold"
- w_register_font Verdanai.ttf "Verdana Italian"
- w_register_font Verdana.ttf "Verdana"
- w_register_font Verdanaz.ttf "Verdana Bold Italic"
- }
- #----------------------------------------------------------------
- w_metadata fakechinese fonts \
- title="Creates aliases for Chinese fonts using WenQuanYi fonts" \
- publisher="wenq.org" \
- year="2009"
- load_fakechinese()
- {
- w_call wenquanyi
- # Loads Wenquanyi fonts and sets aliases for Microsoft Chinese fonts
- # Reference : http://en.wikipedia.org/wiki/List_of_Microsoft_Windows_fonts
- w_register_font_replacement "Microsoft JhengHei" "WenQuanYi Micro Hei"
- w_register_font_replacement "Microsoft YaHei" "WenQuanYi Micro Hei"
- w_register_font_replacement "SimHei" "WenQuanYi Micro Hei"
- w_register_font_replacement "DFKai-SB" "WenQuanYi Micro Hei"
- w_register_font_replacement "FangSong" "WenQuanYi Micro Hei"
- w_register_font_replacement "KaiTi" "WenQuanYi Micro Hei"
- w_register_font_replacement "PMingLiU" "WenQuanYi Micro Hei"
- w_register_font_replacement "MingLiU" "WenQuanYi Micro Hei"
- w_register_font_replacement "NSimSun" "WenQuanYi Micro Hei"
- w_register_font_replacement "SimKai" "WenQuanYi Micro Hei"
- w_register_font_replacement "SimSun" "WenQuanYi Micro Hei"
- }
- #----------------------------------------------------------------
- w_metadata fakejapanese fonts \
- title="Creates aliases for Japanese fonts using Takao fonts" \
- publisher="Jun Kobayashi" \
- year="2010"
- load_fakejapanese()
- {
- w_call takao
- # Loads Takao fonts and sets aliases for MS Gothic, MS UI Gothic, and MS PGothic, mainly for Japanese language support
- # Aliases to set:
- # MS Gothic --> TakaoGothic
- # MS UI Gothic --> TakaoGothic
- # MS PGothic --> TakaoPGothic
- # MS Mincho --> TakaoMincho
- # MS PMincho --> TakaoPMincho
- # These aliases were taken from what was listed in Ubuntu's fontconfig definitions.
- w_register_font_replacement "MS Gothic" "TakaoGothic"
- w_register_font_replacement "MS UI Gothic" "TakaoGothic"
- w_register_font_replacement "MS PGothic" "TakaoPGothic"
- w_register_font_replacement "MS Mincho" "TakaoMincho"
- w_register_font_replacement "MS PMincho" "TakaoPMincho"
- }
- #----------------------------------------------------------------
- w_metadata fakejapanese_ipamona fonts \
- title="Creates aliases for Japanese fonts using IPAMona fonts" \
- publisher="Jun Kobayashi" \
- year="2008"
- load_fakejapanese_ipamona()
- {
- w_call ipamona
- # Aliases to set:
- # MS UI Gothic --> IPAMonaUIGothic
- # MS Gothic (MS ゴシック) --> IPAMonaGothic
- # MS PGothic (MS Pゴシック) --> IPAMonaPGothic
- # MS Mincho (MS 明朝) --> IPAMonaMincho
- # MS PMincho (MS P明朝) --> IPAMonaPMincho
- jpname_msgothic="$(echo "MS ゴシック" | iconv -f utf8 -t cp932)"
- jpname_mspgothic="$(echo "MS Pゴシック" | iconv -f utf8 -t cp932)"
- jpname_msmincho="$(echo "MS 明朝" | iconv -f utf8 -t cp932)"
- jpname_mspmincho="$(echo "MS P明朝" | iconv -f utf8 -t cp932)"
- w_register_font_replacement "MS UI Gothic" "IPAMonaUIGothic"
- w_register_font_replacement "MS Gothic" "IPAMonaGothic"
- w_register_font_replacement "MS PGothic" "IPAMonaPGothic"
- w_register_font_replacement "MS Mincho" "IPAMonaMincho"
- w_register_font_replacement "MS PMincho" "IPAMonaPMincho"
- w_register_font_replacement "$jpname_msgothic" "IPAMonaGothic"
- w_register_font_replacement "$jpname_mspgothic" "IPAMonaPGothic"
- w_register_font_replacement "$jpname_msmincho" "IPAMonaMincho"
- w_register_font_replacement "$jpname_mspmincho" "IPAMonaPMincho"
- }
- #----------------------------------------------------------------
- w_metadata fakekorean fonts \
- title="Creates aliases for Korean fonts using Baekmuk fonts" \
- publisher="Wooderart Inc. / kldp.net" \
- year="1999"
- load_fakekorean()
- {
- w_call baekmuk
- # Loads Baekmuk fonts and sets as an alias for Gulim, Dotum, and Batang for Korean language support
- # Aliases to set:
- # Gulim --> Baekmuk Gulim
- # GulimChe --> Baekmuk Gulim
- # Batang --> Baekmuk Batang
- # BatangChe --> Baekmuk Batang
- # Dotum --> Baekmuk Dotum
- # DotumChe --> Baekmuk Dotum
- w_register_font_replacement "Gulim" "Baekmuk Gulim"
- w_register_font_replacement "GulimChe" "Baekmuk Gulim"
- w_register_font_replacement "Batang" "Baekmuk Batang"
- w_register_font_replacement "BatangChe" "Baekmuk Batang"
- w_register_font_replacement "Dotum" "Baekmuk Dotum"
- w_register_font_replacement "DotumChe" "Baekmuk Dotum"
- }
- #----------------------------------------------------------------
- w_metadata fontfix settings \
- title="Check for broken fonts"
- load_fontfix()
- {
- # some versions of ukai.ttf and uming.ttf crash .net and picasa
- # See http://bugs.winehq.org/show_bug.cgi?id=7098#c9
- # Very unlikely to still be around, so downgrade to fatal warning
- if test -f /usr/share/fonts/truetype/arphic/ukai.ttf
- then
- w_get_sha1sum /usr/share/fonts/truetype/arphic/ukai.ttf
- if [ "$_W_gotsum"x = "96e1121f89953e5169d3e2e7811569148f573985"x ]
- then
- w_die "Your installed ukai.ttf is known to be broken. Upgrade your ttf-arphic font package!"
- fi
- fi
- if test -f /usr/share/fonts/truetype/arphic/uming.ttf
- then
- w_get_sha1sum /usr/share/fonts/truetype/arphic/uming.ttf
- if [ "$_W_gotsum"x = "2a4f4a69e343c21c24d044b2cb19fd4f0decc82c"x ]
- then
- w_die "Your installed uming.ttf is known to be broken. Upgrade your ttf-uming font package!"
- fi
- fi
- # Focht says Samyak is bad news, and font substitution isn't a good workaround.
- # I've seen psdkwin7 setup crash because of this; the symptom was a messagebox saying
- # SDKSetup encountered an error: The type initializer for 'Microsoft.WizardFramework.WizardSettings' threw an exception
- # and WINEDEBUG=+relay,+seh shows an exception very quickly after
- # Call KERNEL32.CreateFileW(0c83b36c L"Z:\\USR\\SHARE\\FONTS\\TRUETYPE\\TTF-ORIYA-FONTS\\SAMYAK-ORIYA.TTF",80000000,00000001,00000000,00000003,00000080,00000000) ret=70d44091
- if xlsfonts 2>/dev/null | egrep -i "samyak.*oriya"
- then
- w_die "Please uninstall the Samyak/Oriya font, e.g. 'sudo dpkg -r ttf-oriya-fonts', then log out and log in again. That font causes strange crashes in .net programs."
- fi
- }
- #----------------------------------------------------------------
- w_metadata ipamona fonts \
- title="IPAMona Japanese fonts" \
- publisher="Jun Kobayashi" \
- year="2008" \
- media="download" \
- file1="opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8.tar.gz" \
- installed_file1="$W_FONTSDIR_WIN/ipag-mona.ttf" \
- homepage="http://www.geocities.jp/ipa_mona/"
- load_ipamona()
- {
- w_download http://www.geocities.jp/ipa_mona/$file1 57dd13ab58c0005d3ee2932539e4987ab0242bc7
- cd "$W_TMP"
- gunzip -dc "$W_CACHE/$W_PACKAGE/$file1" | tar -xf -
- w_try mv *IPAMonaFonts*/fonts/*.ttf "$W_FONTSDIR_UNIX"
- w_register_font ipagui-mona.ttf "IPAMonaUIGothic"
- w_register_font ipag-mona.ttf "IPAMonaGothic"
- w_register_font ipagp-mona.ttf "IPAMonaPGothic"
- w_register_font ipam-mona.ttf "IPAMonaMincho"
- w_register_font ipamp-mona.ttf "IPAMonaPMincho"
- }
- #----------------------------------------------------------------
- w_metadata liberation fonts \
- title="Red Hat Liberation fonts (Sans, Serif, Mono)" \
- publisher="Red Hat" \
- year="2008" \
- media="download" \
- file1="liberation-fonts-1.04.tar.gz" \
- installed_file1="$W_FONTSDIR_WIN/LiberationMono-BoldItalic.ttf"
- load_liberation()
- {
- # http://www.redhat.com/promo/fonts/
- case `uname -s` in
- SunOS|Solaris)
- echo "If you get 'ERROR: Certificate verification error for fedorahosted.org: unable to get local issuer certificate':"
- echo "Then you need to add Verisign root certificates to your local keystore."
- echo "OpenSolaris users, see: http://www.linuxtopia.org/online_books/opensolaris_2008/SYSADV1/html/swmgrpatchtasks-14.html"
- echo "Or edit winetricks's download function, and add '--no-check-certificate' to the command."
- ;;
- esac
- w_download https://fedorahosted.org/releases/l/i/liberation-fonts/liberation-fonts-1.04.tar.gz 097882c92e3260742a3dc3bf033792120d8635a3
- cd "$W_TMP"
- gunzip -dc "$W_CACHE"/liberation/liberation-fonts-1.04.tar.gz | tar -xf -
- mv liberation-fonts-1.04/*.ttf "$W_FONTSDIR_UNIX"
- w_register_font LiberationMono-BoldItalic.ttf "LiberationMono-BoldItalic"
- w_register_font LiberationMono-Bold.ttf "LiberationMono-Bold"
- w_register_font LiberationMono-Italic.ttf "LiberationMono-Italic"
- w_register_font LiberationMono-Regular.ttf "LiberationMono-Regular"
- w_register_font LiberationSans-BoldItalic.ttf "LiberationSans-BoldItalic"
- w_register_font LiberationSans-Bold.ttf "LiberationSans-Bold"
- w_register_font LiberationSans-Italic.ttf "LiberationSans-Italic"
- w_register_font LiberationSans-Regular.ttf "LiberationSans-Regular"
- w_register_font LiberationSerif-BoldItalic.ttf "LiberationSerif-BoldItalic"
- w_register_font LiberationSerif-Bold.ttf "LiberationSerif-Bold"
- w_register_font LiberationSerif-Italic.ttf "LiberationSerif-Italic"
- w_register_font LiberationSerif-Regular.ttf "LiberationSerif-Regular"
- }
- #----------------------------------------------------------------
- w_metadata lucida fonts \
- title="MS Lucida Console font" \
- publisher="Microsoft" \
- year="1998" \
- media="download" \
- file1="eurofixi.exe" \
- installed_file1="$W_FONTSDIR_WIN/lucon.ttf"
- load_lucida()
- {
- w_download ftp://ftp.fu-berlin.de/pc/security/ms-patches/winnt/usa/NT40TSE/hotfixes-postSP3/Euro-fix/eurofixi.exe 64c47ad92265f6f10b0fd909a703d4fd1b05b2d5
- w_try_cabextract -d "$W_FONTSDIR_UNIX" -L -F 'lucon.ttf' "$W_CACHE"/lucida/eurofixi.exe
- w_register_font lucon.ttf "Lucida Console"
- }
- #----------------------------------------------------------------
- w_metadata opensymbol fonts \
- title="OpenSymbol fonts (replacement for Wingdings)" \
- publisher="OpenOffice.org" \
- year="2014" \
- media="download" \
- file1="fonts-opensymbol_102.6+LibO4.3.3-2+deb8u3_all.deb" \
- installed_file1="$W_FONTSDIR_WIN/opens___.ttf"
- load_opensymbol()
- {
- # The OpenSymbol fonts are a replacement for the Windows Wingdings font from OpenOffice.org.
- # Need to w_download Debian since I can't find a standalone download from OpenOffice
- # Note: The source download package on debian is for _all_ of OpenOffice, which is 266 MB.
- w_download http://security.debian.org/debian-security/pool/updates/main/libr/libreoffice/fonts-opensymbol_102.6+LibO4.3.3-2+deb8u3_all.deb d3e2dd921c6694d24865600e40eceaf2a635d1c6
- cd "$W_TMP"
- w_try ar x "$W_CACHE/$W_PACKAGE/$file1" data.tar.xz
- w_try tar Jvxf data.tar.xz ./usr/share/fonts/truetype/openoffice/opens___.ttf
- w_try mv "$W_TMP/usr/share/fonts/truetype/openoffice/opens___.ttf" "$W_FONTSDIR_UNIX"
- w_register_font opens___.ttf "OpenSymbol"
- }
- #----------------------------------------------------------------
- w_metadata tahoma fonts \
- title="MS Tahoma font (not part of corefonts)" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- file1="tahoma32.exe" \
- installed_file1="$W_FONTSDIR_WIN/tahoma.ttf"
- load_tahoma()
- {
- # The tahoma and tahomabd fonts are needed by e.g. Steam
- w_download http://download.microsoft.com/download/office97pro/fonts/1/w95/en-us/tahoma32.exe 888ce7b7ab5fd41f9802f3a65fd0622eb651a068
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/tahoma/tahoma32.exe
- w_try cp -f "$W_TMP"/Tahoma.TTF "$W_FONTSDIR_UNIX"/tahoma.ttf
- w_try cp -f "$W_TMP"/Tahomabd.TTF "$W_FONTSDIR_UNIX"/tahomabd.ttf
- # FIXME: Wine seems to nuke the registry entries for Tahoma. Why? Font Xplorer always lists it as 'not installed'.
- w_register_font tahoma.ttf "Tahoma"
- w_register_font tahomabd.ttf "Tahoma Bold"
- # ? does some app assume it can overwrite these, or is this a leftover from before we had install checks?
- chmod +w "$W_FONTSDIR_UNIX"/tahoma*.ttf
- }
- #----------------------------------------------------------------
- w_metadata takao fonts \
- title="Takao Japanese fonts" \
- publisher="Jun Kobayashi" \
- year="2010" \
- media="download" \
- file1="takao-fonts-ttf-003.02.01.zip" \
- installed_file1="$W_FONTSDIR_WIN/TakaoGothic.ttf"
- load_takao()
- {
- # The Takao font provides Japanese glyphs. May also be needed with fakejapanese function above.
- # See http://launchpad.net/takao-fonts for project page
- w_download http://launchpad.net/takao-fonts/trunk/003.02.01/+download/takao-fonts-ttf-003.02.01.zip 4f636d5c7c1bc16b96ea723adb16838cfb6df059
- cp -f "$W_CACHE"/takao/takao-fonts-ttf-003.02.01.zip "$W_TMP"
- w_try_unzip "$W_TMP" "$W_TMP"/takao-fonts-ttf-003.02.01.zip
- w_try cp -f "$W_TMP"/takao-fonts-ttf-003.02.01/*.ttf "$W_FONTSDIR_UNIX"
- w_register_font TakaoGothic.ttf "TakaoGothic"
- w_register_font TakaoPGothic.ttf "TakaoPGothic"
- w_register_font TakaoMincho.ttf "TakaoMincho"
- w_register_font TakaoPMincho.ttf "TakaoPMincho"
- w_register_font TakaoExGothic.ttf "TakaoExGothic"
- w_register_font TakaoExMincho.ttf "TakaoExMincho"
- }
- #----------------------------------------------------------------
- w_metadata uff fonts \
- title="Ubuntu Font Family" \
- publisher="Ubuntu" \
- year="2010" \
- media="download" \
- file1="ubuntu-font-family-0.70.1.zip" \
- installed_file1="$W_FONTSDIR_WIN/Ubuntu-R.ttf" \
- homepage="https://launchpad.net/ubuntu-font-family"
- load_uff()
- {
- w_download http://font.ubuntu.com/download/ubuntu-font-family-0.70.1.zip efbab0d5d8cb5cff091307d2360dcb1bfe1ae6e1
- cd "$W_TMP"
- w_try_unzip . "$W_CACHE"/uff/ubuntu-font-family-0.70.1.zip
- mv ubuntu-font-family-0.70.1/*.ttf "$W_FONTSDIR_UNIX"
- w_register_font Ubuntu-R.ttf "Ubuntu"
- w_register_font Ubuntu-I.ttf "Ubuntu Italic"
- w_register_font Ubuntu-B.ttf "Ubuntu Bold"
- w_register_font Ubuntu-BI.ttf "Ubuntu Bold Italic"
- }
- #----------------------------------------------------------------
- w_metadata wenquanyi fonts \
- title="WenQuanYi CJK font" \
- publisher="wenq.org" \
- year="2009" \
- media="download" \
- file1="wqy-microhei-0.2.0-beta.tar.gz" \
- installed_file1="$W_FONTSDIR_WIN/wqy-microhei.ttc"
- load_wenquanyi()
- {
- # See http://wenq.org/enindex.cgi
- # Donate at http://wenq.org/enindex.cgi?Download(en)#MicroHei_Beta if you want to help support free CJK font development
- w_download $WINETRICKS_SOURCEFORGE/wqy/wqy-microhei-0.2.0-beta.tar.gz 28023041b22b6368bcfae076de68109b81e77976
- cd "$W_TMP/"
- gunzip -dc "$W_CACHE/wenquanyi/wqy-microhei-0.2.0-beta.tar.gz" | tar -xf -
- w_try mv wqy-microhei/wqy-microhei.ttc "$W_FONTSDIR_UNIX"
- w_register_font wqy-microhei.ttc "WenQuanYi Micro Hei"
- }
- #----------------------------------------------------------------
- w_metadata unifont fonts \
- title="Unifont alternative to Arial Unicode MS" \
- publisher="Roman Czyborra / GNU" \
- year="2008" \
- media="download" \
- file1="unifont-5.1.20080907.zip" \
- installed_file1="$W_FONTSDIR_WIN/unifont.ttf"
- load_unifont()
- {
- # The GNU Unifont provides glyphs for just about everything in common language. It is intended for multilingual usage.
- # See http://unifoundry.com/unifont.html for project page
- w_download http://unifoundry.com/unifont-5.1.20080907.zip bb8a3960dc0a96aa305de28312ea8a0ab64123d2
- cp -f "$W_CACHE"/unifont/unifont-5.1.20080907.zip "$W_TMP"
- w_try_unzip "$W_TMP" "$W_TMP"/unifont-5.1.20080907.zip
- w_try cp -f "$W_TMP"/unifont-5.1.20080907.ttf "$W_FONTSDIR_UNIX/unifont.ttf"
- w_register_font unifont.ttf "Unifont"
- w_register_font_replacement "Arial Unicode MS" "Unifont"
- }
- #----------------------------------------------------------------
- w_metadata allfonts fonts \
- title="All fonts" \
- publisher="various" \
- year="1998-2010" \
- media="download"
- load_allfonts()
- {
- # This verb uses reflection, should probably do it portably instead, but that would require keeping it up to date
- for file in "$WINETRICKS_METADATA"/fonts/*.vars
- do
- cmd=`basename $file .vars`
- case $cmd in
- allfonts|cjkfonts) ;;
- *) w_call $cmd;;
- esac
- done
- }
- #----------------------------------------------------------------
- # Apps
- #----------------------------------------------------------------
- w_metadata 3m_library apps \
- title="3M Cloud Library" \
- publisher="3M Company" \
- year="2015" \
- media="download" \
- file1="3M-TM-Cloud-Library-PC-App-LIVE-Installer-1.51.735677.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/3M(TM) Cloud Library PC App/3MCloudLibrary.exe"
- homepage="http://www.3m.com/us/library/eBook/index.html"
- load_3m_library()
- {
- w_download http://www.3m.com/us/library/eBook/docs/3M-TM-Cloud-Library-PC-App-LIVE-Installer-1.51.735677.exe 810dc5f6b74ab7b34893288ee44ef7dc563a4ee7
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" 3M-TM-Cloud-Library-PC-App-LIVE-Installer-1.51.735677.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata 7zip apps \
- title="7-Zip 15.05 beta" \
- publisher="Igor Pavlov" \
- year="2015" \
- media="download" \
- file1="7z1505.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/7-Zip/7zFM.exe"
- load_7zip()
- {
- w_download http://www.7-zip.org/a/7z1505.exe ece8bbd4c8903095d44e99196219c953a1d47bfd
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" 7z1505.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata abiword apps \
- title="AbiWord 2.8.6" \
- publisher="AbiSource" \
- year="2010" \
- media="download" \
- file1="abiword-setup-2.8.6.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/AbiWord/bin/AbiWord.exe"
- load_abiword()
- {
- w_download http://www.abisource.com/downloads/abiword/2.8.6/Windows/abiword-setup-2.8.6.exe a91acd3f60e842d23556032d34f1600602768318
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" abiword-setup-2.8.6.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata adobe_diged apps \
- title="Adobe Digital Editions 1.7" \
- publisher="Adobe" \
- year="2011" \
- media="download" \
- file1="setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Adobe/Adobe Digital Editions/digitaleditions.exe" \
- homepage="http://www.adobe.com/products/digitaleditions/"
- load_adobe_diged()
- {
- w_download http://kb2.adobe.com/cps/403/kb403051/attachments/setup.exe 4c79685408fa6ca12ef8bb0e0eaa4a846e21f915
- # NSIS installer
- w_try "$WINE" "$W_CACHE"/$W_PACKAGE/setup.exe ${W_OPT_UNATTENDED:+ /S}
- }
- #----------------------------------------------------------------
- w_metadata adobe_diged4 apps \
- title="Adobe Digital Editions 4.5" \
- publisher="Adobe" \
- year="2015" \
- media="download" \
- file1="ADE_4.5_Installer.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Adobe/Adobe Digital Editions 4.5/DigitalEditions.exe" \
- homepage="http://www.adobe.com/products/digitaleditions/"
- load_adobe_diged4()
- {
- w_download http://download.adobe.com/pub/adobe/digitaleditions/ADE_4.5_Installer.exe
- if w_workaround_wine_bug 32323
- then
- w_call corefonts
- fi
- if [ ! -x "`which winbindd 2>/dev/null`" ]
- then
- w_warn "Adobe Digital Editions 4.5 requires winbind (part of samba) to be installed, but winbind was not detected."
- fi
- w_call dotnet40
- #w_call win7
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, ${file1} ${W_OPT_UNATTENDED:+ /S}
- winwait, Installing Adobe Digital Editions
- ControlClick, Button1 ; Don't install Norton Internet Security
- ControlClick, Static19 ; Next
- "
- }
- #----------------------------------------------------------------
- w_metadata audible apps \
- title="Audible.com Manager / Player" \
- publisher="Audible" \
- year="2011" \
- media="download" \
- file1="ActiveSetupN.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Audible/Bin/Manager.exe" \
- homepage="http://www.audible.com"
- load_audible()
- {
- w_download http://download.audible.com/AM50/ActiveSetupN.exe 49f501471912ccca442bcc1c8f2c69160579f712
- cd "$W_CACHE/$W_PACKAGE"
- # Use exact title match!
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 3
- Run, $file1
- WinWait, AudibleManager Setup
- ControlClick, Button3 ; accept
- WinWait, AudibleManager Setup, Start by
- ControlClick, Button6 ; OK
- WinWaitClose
- ; many windows come and go, quite a few of them starting with AudibleManager, so use exact match to get the real mccoy
- WinWait, AudibleManager ; the dang thing starts up
- WinKill
- "
- }
- #----------------------------------------------------------------
- w_metadata audibledm apps \
- title="Audible.com Download Manager" \
- publisher="Audible" \
- year="2011" \
- media="download" \
- file1="AudibleDM_iTunesSetup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Audible/Bin/AudibleDownloadHelper.exe" \
- homepage="http://www.audible.com"
- load_audibledm()
- {
- w_download http://download.audible.com/AM50/AudibleDM_iTunesSetup.exe 03261d77a59ebbceedf6683b5301c162bc0c7788
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 2
- Run, AudibleDM_iTunesSetup.exe
- WinWait, Audible Download Manager Setup
- ControlClick, Button2 ; accept
- WinWait, Audible Download Manager Setup, Choose where
- ControlClick, Button1 ; OK
- WinWait, Audible Download Manager Setup, Manage
- ControlClick, Button1 ; OK
- WinWait, Audible Download Manager Setup, success
- ControlClick, Button1 ; OK
- WinWaitClose
- WinWait, Audible Download Manager ; the dang thing starts up
- WinKill
- "
- }
- #----------------------------------------------------------------
- w_metadata autohotkey apps \
- title="Autohotkey" \
- publisher="autohotkey.org" \
- year="2010" \
- media="download" \
- file1="AutoHotkey104805_Install.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/AutoHotkey/AutoHotkey.exe"
- load_autohotkey()
- {
- W_BROWSERAGENT=1 \
- w_download http://www.autohotkey.com/download/AutoHotkey104805_Install.exe 13e5a9ca6d5b7705f1cd02560c3af4d38b1904fc
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" AutoHotkey104805_Install.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata cmake apps \
- title="CMake 2.8" \
- publisher="Kitware" \
- year="2013" \
- media="download" \
- file1="cmake-2.8.11.2-win32-x86.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/CMake 2.8/bin/cmake-gui.exe"
- load_cmake()
- {
- w_download http://www.cmake.org/files/v2.8/cmake-2.8.11.2-win32-x86.exe d79af5715c0ad48d78bb731cce93b5ad89b16512
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" cmake-2.8.11.2-win32-x86.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata colorprofile apps \
- title="Standard RGB color profile" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="ColorProfile.exe" \
- installed_exe1="c:/windows/system32/spool/drivers/color/sRGB Color Space Profile.icm"
- load_colorprofile()
- {
- w_download http://download.microsoft.com/download/whistler/hwdev1/1.0/wxp/en-us/ColorProfile.exe 6b72836b32b343c82d0760dff5cb51c2f47170eb
- w_try_unzip "$W_TMP" "$W_CACHE"/colorprofile/ColorProfile.exe
- # It's in system32 for both win32/win64
- mkdir -p "$W_WINDIR_UNIX"/system32/spool/drivers/color
- w_try cp -f "$W_TMP/sRGB Color Space Profile.icm" "$W_WINDIR_UNIX"/system32/spool/drivers/color
- }
- #----------------------------------------------------------------
- w_metadata controlpad apps \
- title="MS ActiveX Control Pad" \
- publisher="Microsoft" \
- year="1997" \
- media="download" \
- file1="setuppad.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/ActiveX Control Pad/PED.EXE"
- load_controlpad()
- {
- # http://msdn.microsoft.com/en-us/library/ms968493.aspx
- w_call wsh57
- w_download http://download.microsoft.com/download/activexcontrolpad/install/4.0.0.950/win98mexp/en-us/setuppad.exe 8921e0f52507ca6a373c94d222777c750fb48af7
- w_try_cabextract --directory="$W_TMP" "$W_CACHE"/controlpad/setuppad.exe
- echo "If setup says 'Unable to start DDE ...', press Ignore"
- cd "$W_TMP"
- w_try "$WINE" setup $W_UNATTENDED_SLASH_QT
- if ! test -f "$W_SYSTEM32_DLLS"/FM20.DLL
- then
- w_die "Install failed. Please report, If you just wanted fm20.dll, try installing art2min instead."
- fi
- }
- #----------------------------------------------------------------
- w_metadata controlspy apps \
- title="Control Spy 2.0 " \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="ControlSpy.msi" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft/ControlSpy/ControlSpyV6.exe"
- load_controlspy()
- {
- w_download http://download.microsoft.com/download/a/3/1/a315b133-03a8-4845-b428-ec585369b285/ControlSpy.msi efe33701f78b5853ba73353f028b777b4c849e77
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec /i ControlSpy.msi ${W_UNATTENDED_SLASH_QB}
- }
- #----------------------------------------------------------------
- # dxdiag is a system component that one usually adds to an existing wineprefix,
- # so it belongs in 'dlls', not apps.
- w_metadata dxdiag dlls \
- title="DirectX Diagnostic Tool" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="../directx9/directx_feb2010_redist.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/dxdiag.exe"
- load_dxdiag()
- {
- helper_directx_dl
- w_call gmdls
- w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
- w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "dxdiag.exe" "$W_TMP/dxnt.cab"
- mkdir -p "$W_WINDIR_UNIX/help"
- w_try_cabextract -d "$W_WINDIR_UNIX/help" -L -F "dxdiag.chm" "$W_TMP/dxnt.cab"
- w_override_dlls native dxdiag.exe
- if w_workaround_wine_bug 1429
- then
- w_call dxdiagn
- fi
- if w_workaround_wine_bug 9027
- then
- w_call directmusic
- fi
- }
- #----------------------------------------------------------------
- w_metadata emu8086 apps \
- title="emu8086" \
- publisher="emu8086.com" \
- year="2015" \
- media="download" \
- file1="emu8086v408r11.zip" \
- installed_exe1="c:/emu8086/emu8086.exe"
- load_emu8086()
- {
- w_download http://www.emu8086.com/files/emu8086v408r11.zip aa71b46ee9259e5b31a300c820277e551969da7b
- w_try_unzip "$W_TMP" "$W_CACHE/$W_PACKAGE"/$file1
- w_try "$WINE" "$W_TMP/Setup.exe" $W_UNATTENDED_SLASH_SILENT
- }
- #----------------------------------------------------------------
- w_metadata ev3 apps \
- title="Lego Mindstorms EV3 Home Edition" \
- publisher="Lego" \
- year="2014" \
- media="download" \
- file1="LMS-EV3-WIN32-ENUS-01-02-01-full-setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/LEGO Software/LEGO MINDSTORMS EV3 Home Edition/MindstormsEV3.exe"
- load_ev3()
- {
- if w_workaround_wine_bug 40192 "Installing vcrun2005 as Wine does not have MFC80.dll"
- then
- w_call vcrun2005
- fi
- if w_workaround_wine_bug 40193 "Installing IE8 is built-in Gecko is not sufficient"
- then
- w_call ie8
- fi
- w_call dotnet40
- # 2016-02-18: LMS-EV3-WIN32-ENUS-01-01-01-full-setup.exe 855c914d9a3cf0f4793a046872658fd661389671
- # 2016-03-22: LMS-EV3-WIN32-ENUS-01-02-01-full-setup.exe f4f077befd837e8f5716dbd134dc6828d6c4cc77
- w_download http://esd.lego.com.edgesuite.net/digitaldelivery/mindstorms/6ecda7c2-1189-4816-b2dd-440e22d65814/public/LMS-EV3-WIN32-ENUS-01-02-01-full-setup.exe f4f077befd837e8f5716dbd134dc6828d6c4cc77
- if [ $W_UNATTENDED_SLASH_Q ]
- then
- quiet="$W_UNATTENDED_SLASH_QB /AcceptLicenses yes"
- else
- quiet=""
- fi
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" "$file1" ${quiet}
- if w_workaround_wine_bug 40174 "Setting override for urlmon.dll to native to avoid crash"
- then
- w_override_dlls native urlmon
- fi
- if w_workaround_wine_bug 34897 "Installing update KB2936068 to work around bug 34897"
- then
- w_call ie8_kb2936068
- fi
- }
- #----------------------------------------------------------------
- w_metadata firefox apps \
- title="Firefox 39.0" \
- publisher="Mozilla" \
- year="2015" \
- media="download" \
- file1="FirefoxSetup39.0.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Mozilla Firefox/firefox.exe"
- load_firefox()
- {
- w_download "https://download.mozilla.org/?product=firefox-39.0-SSL&os=win&lang=en-US" 75eccbd9b2d44210b551c9a5045f03f01e899528 "$file1"
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" "$file1" ${W_OPT_UNATTENDED:+ -ms}
- }
- #----------------------------------------------------------------
- w_metadata fontxplorer apps \
- title="Font Xplorer 1.2.2" \
- publisher="Moon Software" \
- year="2001" \
- media="download" \
- file1="Font_Xplorer_122_Free.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Font Xplorer/FXplorer.exe" \
- homepage="http://www.moonsoftware.com/fxplorer.asp"
- load_fontxplorer()
- {
- w_download http://www.moonsoftware.com/files/legacy/Font_Xplorer_122_Free.exe 22feb63be28730cbfad5458b139464490a25a68d
- cd "$W_CACHE/fontxplorer"
- w_try "$WINE" Font_Xplorer_122_Free.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata foobar2000 apps \
- title="foobar2000 v1.3.6" \
- publisher="Peter Pawlowski" \
- year="2014" \
- media="manual_download" \
- file1="foobar2000_v1.3.6.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/foobar2000/foobar2000.exe"
- load_foobar2000()
- {
- w_download_manual http://www.foobar2000.org/download foobar2000_v1.3.6.exe 77d1c3aa766853701d29e46b3018aaf1e1b5dd39
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata iceweasel apps \
- title="GNU Icecat 31.7.0" \
- publisher="GNU Foundation" \
- year="2015" \
- media="download" \
- file1="icecat-31.7.0.en-US.win32.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/icecat/icecat.exe"
- load_iceweasel()
- {
- w_download https://ftp.gnu.org/gnu/gnuzilla/31.7.0/icecat-31.7.0.en-US.win32.zip cf52a728c1af29065b7dc7bdddc9265a79eb5328
- w_try_unzip "${W_PROGRAMS_X86_UNIX}" "${W_CACHE}/${W_PACKAGE}/${file1}"
- }
- #----------------------------------------------------------------
- w_metadata irfanview apps \
- title="Irfanview" \
- publisher="Irfan Skiljan" \
- year="2014" \
- media="download" \
- file1="iview438_setup.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/IrfanView/i_view32.exe" \
- homepage="http://www.irfanview.com/"
- load_irfanview()
- {
- w_download http://fossies.org/windows/misc/iview438_setup.exe c55c2fd91ac1af03e8063442b110ba771357d42e
- if w_workaround_wine_bug 657 "Installing mfc42"
- then
- w_call mfc42
- fi
- cd "$W_CACHE/$W_PACKAGE"
- if test "$W_OPT_UNATTENDED"
- then
- w_ahk_do "
- SetWinDelay 200
- SetTitleMatchMode, 2
- run $file1
- winwait, Setup, This program will install
- winactivate, Setup, This program will install
- Sleep 900
- ControlClick, Button7 ; Uncheck All
- Sleep 900
- ControlClick, Button11 ; Next
- Sleep 900
- winwait, Setup, version
- Sleep 900
- ControlClick, Button11 ; Next
- Sleep 900
- winwait, Setup, associate extensions
- Sleep 900
- ControlClick, Button1 ; Images Only associations
- Sleep 900
- ControlClick, Button16 ; Next
- Sleep 900
- winwait, Setup, Search
- Sleep 900
- ControlClick, Button1 ; deselect chrome googsrch
- Sleep 900
- ControlClick, Button18 ; Next
- Sleep 1000
- winwait, Setup, INI
- Sleep 1000
- ControlClick, Button23 ; Next
- Sleep 1000
- winwait, Setup, You want to change
- winactivate, Setup, really
- Sleep 900
- ControlClick, Button1 ; Yes
- Sleep 900
- winwait, Setup, successful
- winactivate, Setup, successful
- Sleep 900
- ControlClick, Button2 ; no start irfanview
- Sleep 900
- ControlClick, Button27 ; done
- Sleep 900
- winwaitclose
- "
- else
- w_try "$WINE" $file1
- fi
- }
- #----------------------------------------------------------------
- # FIXME: ie6 always installs to C:/Program Files even if LANG is de_DE.utf-8,
- # so we have to hard code that, but that breaks on 64 bit windows.
- w_metadata ie6 dlls \
- title="Internet Explorer 6" \
- publisher="Microsoft" \
- year="2002" \
- media="download" \
- file1="ie60.exe" \
- installed_file1="c:/Program Files/Internet Explorer/iedetect.dll"
- load_ie6()
- {
- # Installer doesn't support Win64, and I can't find a x64 version on microsoft.com
- if [ $W_ARCH = win64 ]
- then
- w_die "This package does not work on a 64-bit installation"
- fi
- w_download http://download.oldapps.com/Internet_Explorer/ie60.exe 8e483db28ff01a7cabd39147ab6c59753ea1f533
- cd "$W_TMP"
- "$WINE" "$W_CACHE"/"$W_PACKAGE"/$file1
- w_call msls31
- # Unregister Wine IE
- if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ]
- then
- w_override_dlls builtin iexplore.exe
- w_try "$WINE" iexplore -unregserver
- fi
- # Change the override to the native so we are sure we use and register them
- w_override_dlls native,builtin iexplore.exe inetcpl.cpl itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi
- # Remove the fake dlls, if any
- mv "$W_PROGRAMS_UNIX"/"Internet Explorer"/iexplore.exe "$W_PROGRAMS_UNIX"/"Internet Explorer"/iexplore.exe.bak
- for dll in itircl itss jscript mlang mshtml msimtf shdoclc shdocvw shlwapi
- do
- test -f "$W_SYSTEM32_DLLS"/$dll.dll &&
- mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak
- done
- # The installer doesn't want to install iexplore.exe in XP mode.
- w_set_winver win2k
- # Workaround http://bugs.winehq.org/show_bug.cgi?id=21009
- # See also http://code.google.com/p/winezeug/issues/detail?id=78
- rm -f "$W_SYSTEM32_DLLS"/browseui.dll "$W_SYSTEM32_DLLS"/inseng.dll
- # Otherwise regsvr32 crashes later
- rm -f "$W_SYSTEM32_DLLS"/inetcpl.cpl
- # Work around http://bugs.winehq.org/show_bug.cgi?id=25432
- w_try_cabextract -F inseng.dll "$W_TMP/IE 6.0 Full/ACTSETUP.CAB"
- mv inseng.dll "$W_SYSTEM32_DLLS"
- w_override_dlls native inseng
- cd "$W_TMP/IE 6.0 Full"
- if [ $W_UNATTENDED_SLASH_Q ]
- then
- "$WINE" IE6SETUP.EXE /q:a /r:n /c:"ie6wzd /S:""#e"" /q:a /r:n"
- else
- "$WINE" IE6SETUP.EXE
- fi
- # IE6 exits with 194 to signal a reboot
- status=$?
- case $status in
- 0|194) ;;
- *) w_die ie6 installation failed
- esac
- # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed
- # FIXME: whittle down this list
- cd "$W_SYSTEM32_DLLS"
- for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \
- dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll imgutil.dll \
- inetcomm.dll inetcpl.cpl inseng.dll isetup.dll jscript.dll laprxy.dll \
- mlang.dll mshtml.dll mshtmled.dll msi.dll msident.dll \
- msoeacct.dll msrating.dll mstime.dll msxml3.dll occache.dll \
- ole32.dll oleaut32.dll olepro32.dll pngfilt.dll quartz.dll \
- rpcrt4.dll rsabase.dll rsaenh.dll scrobj.dll scrrun.dll \
- shdocvw.dll shell32.dll vbscript.dll webcheck.dll \
- wshcon.dll wshext.dll asctrls.ocx hhctrl.ocx mscomct2.ocx \
- plugin.ocx proctexe.ocx tdc.ocx webcheck.dll wshom.ocx
- do
- "$WINE" regsvr32 /i $i > /dev/null 2>&1
- done
- # Set windows version back to user's default. Leave at win2k for better rendering (is there a bug for that?)
- w_unset_winver
- # the ie6 we use these days lacks pngfilt, so grab that
- w_call pngfilt
- }
- #----------------------------------------------------------------
- w_metadata ie7 dlls \
- title="Internet Explorer 7" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="IE7-WindowsXP-x86-enu.exe" \
- installed_file1="c:/windows/ie7.log"
- load_ie7()
- {
- # Unregister Wine IE
- if grep -q -i "wine placeholder" "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe"
- then
- w_override_dlls builtin iexplore.exe
- w_try "$WINE" iexplore -unregserver
- fi
- # Change the override to the native so we are sure we use and register them
- w_override_dlls native,builtin itircl itss jscript mshtml msimtf shdoclc shdocvw shlwapi urlmon wininet xmllite
- # IE7 installer will check the version number of iexplore.exe which causes IE7 installer to fail on wine-1.9.0+
- w_override_dlls native iexplore.exe
- # Bundled updspapi cannot work on wine
- w_override_dlls builtin updspapi
- # Remove the fake dlls from the existing WINEPREFIX
- if [ -f "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe" ]
- then
- mv "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe" "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe.bak"
- fi
- for dll in itircl itss jscript mshtml msimtf shdoclc shdocvw shlwapi urlmon
- do
- test -f "$W_SYSTEM32_DLLS"/$dll.dll &&
- mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak
- done
- # See http://bugs.winehq.org/show_bug.cgi?id=16013
- # Find instructions to create this file in dlls/wintrust/tests/crypt.c
- w_download https://github.com/Winetricks/winetricks/raw/master/files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f
- # Put a dummy catalog file in place
- mkdir -p "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}
- w_try cp -f "$W_CACHE"/ie7/winetest.cat "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat
- # KLUDGE: if / is writable (as on MacOSX?), having a z: mapping to it
- # causes ie7 to put temporary directories on Z:\
- # so hide it temporarily. This is not very robust!
- if test -w /
- then
- rm -f "$WINEPREFIX/dosdevices/z:.bak_wt"
- mv "$WINEPREFIX/dosdevices/z:" "$WINEPREFIX/dosdevices/z:.bak_wt"
- fi
- # Install
- w_download http://download.microsoft.com/download/3/8/8/38889DC1-848C-4BF2-8335-86C573AD86D9/IE7-WindowsXP-x86-enu.exe d39b89c360fbaa9706b5181ae4718100687a5326
- cd "$W_CACHE/$W_PACKAGE"
- "$WINE" IE7-WindowsXP-x86-enu.exe $W_UNATTENDED_SLASH_QUIET
- # IE7 exits with 194 to signal a reboot
- status=$?
- case $status in
- 0) ;;
- 105) echo "exit status $status - normal, user selected 'restart now'" ;;
- 194) echo "exit status $status - normal, user selected 'restart later'" ;;
- *) w_die "exit status $status - $W_PACKAGE installation failed" ;;
- esac
- if test -w /
- then
- # END KLUDGE: restore z:, assuming user didn't kill us
- mv "$WINEPREFIX/dosdevices/z:.bak_wt" "$WINEPREFIX/dosdevices/z:"
- fi
- # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed
- # FIXME: whittle down this list
- cd "$W_SYSTEM32_DLLS"
- for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \
- dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \
- imgutil.dll inetcomm.dll inseng.dll isetup.dll jscript.dll laprxy.dll \
- mlang.dll mshtml.dll mshtmled.dll msi.dll msident.dll \
- msoeacct.dll msrating.dll mstime.dll msxml3.dll occache.dll \
- ole32.dll oleaut32.dll olepro32.dll pngfilt.dll quartz.dll \
- rpcrt4.dll rsabase.dll rsaenh.dll scrobj.dll scrrun.dll \
- shdocvw.dll shell32.dll urlmon.dll vbscript.dll webcheck.dll \
- wshcon.dll wshext.dll asctrls.ocx hhctrl.ocx mscomct2.ocx \
- plugin.ocx proctexe.ocx tdc.ocx webcheck.dll wshom.ocx
- do
- "$WINE" regsvr32 /i $i > /dev/null 2>&1
- done
- # Seeing is believing
- case $WINETRICKS_GUI in
- none)
- w_warn "To start ie7, use the command "$WINE" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'"
- ;;
- *)
- w_warn "Starting ie7. To start it later, use the command "$WINE" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'"
- "$WINE" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore" http://www.microsoft.com/windows/internet-explorer/ie7/ > /dev/null 2>&1 &
- ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata ie8 dlls \
- title="Internet Explorer 8" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="IE8-WindowsXP-x86-ENU.exe" \
- installed_file1="c:/windows/ie8_main.log"
- load_ie8()
- {
- # Unregister Wine IE
- if grep -q -i "wine placeholder" "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe"
- #if [ ! -f "$W_SYSTEM32_DLLS"/plugin.ocx ]
- then
- w_override_dlls builtin iexplore.exe
- w_try "$WINE" iexplore -unregserver
- fi
- w_call msls31
- # Change the override to the native so we are sure we use and register them
- w_override_dlls native,builtin itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon wininet xmllite
- # IE8 installer will check the version number of iexplore.exe which causes IE8 installer to fail on wine-1.9.0+
- w_override_dlls native iexplore.exe
- # Bundled updspapi cannot work on wine
- w_override_dlls builtin updspapi
- # Remove the fake dlls from the existing WINEPREFIX
- if [ -f "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe" ]
- then
- mv "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe" "$W_PROGRAMS_X86_UNIX/Internet Explorer/iexplore.exe.bak"
- fi
- for dll in browseui.dll inseng.dll itircl itss jscript msctf mshtml shdoclc shdocvw shlwapi urlmon
- do
- test -f "$W_SYSTEM32_DLLS"/$dll.dll &&
- mv "$W_SYSTEM32_DLLS"/$dll.dll "$W_SYSTEM32_DLLS"/$dll.dll.bak
- done
- # See http://bugs.winehq.org/show_bug.cgi?id=16013
- # Find instructions to create this file in dlls/wintrust/tests/crypt.c
- w_download https://github.com/Winetricks/winetricks/raw/master/files/winetest.cat ac8f50dd54d011f3bb1dd79240dae9378748449f
- # Put a dummy catalog file in place
- mkdir -p "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}
- w_try cp -f "$W_CACHE"/ie8/winetest.cat "$W_SYSTEM32_DLLS"/catroot/\{f750e6c3-38ee-11d1-85e5-00c04fc295ee\}/oem0.cat
- w_download http://download.microsoft.com/download/C/C/0/CC0BD555-33DD-411E-936B-73AC6F95AE11/IE8-WindowsXP-x86-ENU.exe e489483e5001f95da04e1ebf3c664173baef3e26
- if [ $W_UNATTENDED_SLASH_QUIET ]
- then
- quiet="$W_UNATTENDED_SLASH_QUIET /forcerestart"
- else
- quiet=""
- fi
- cd "$W_CACHE/$W_PACKAGE"
- # KLUDGE: if / is writable, having a z: mapping to it causes ie8 to put temporary directories on Z:\
- # so hide it temporarily. This is not very robust!
- rm -f "$WINEPREFIX/dosdevices/z:.bak_wt"
- mv "$WINEPREFIX/dosdevices/z:" "$WINEPREFIX/dosdevices/z:.bak_wt"
- # FIXME: There's an option for /updates-noupdates to disable checking for updates, but that
- # forces the install to fail on Wine. Not sure if it's an IE8 or Wine bug...
- # FIXME: can't check status, as it always reports failure on wine?
- "$WINE" IE8-WindowsXP-x86-ENU.exe $quiet
- # END KLUDGE: restore z:, assuming user didn't kill us
- mv "$WINEPREFIX/dosdevices/z:.bak_wt" "$WINEPREFIX/dosdevices/z:"
- # Work around DLL registration bug until ierunonce/RunOnce/wineboot is fixed
- # FIXME: whittle down this list
- cd "$W_SYSTEM32_DLLS"
- for i in actxprxy.dll browseui.dll browsewm.dll cdfview.dll ddraw.dll \
- dispex.dll dsound.dll iedkcs32.dll iepeers.dll iesetup.dll \
- imgutil.dll inetcomm.dll isetup.dll jscript.dll laprxy.dll \
- mlang.dll msctf.dll mshtml.dll mshtmled.dll msi.dll msimtf.dll msident.dll \
- msoeacct.dll msrating.dll mstime.dll msxml3.dll occache.dll \
- ole32.dll oleaut32.dll olepro32.dll pngfilt.dll quartz.dll \
- rpcrt4.dll rsabase.dll rsaenh.dll scrobj.dll scrrun.dll \
- shdocvw.dll shell32.dll urlmon.dll vbscript.dll webcheck.dll \
- wshcon.dll wshext.dll asctrls.ocx hhctrl.ocx mscomct2.ocx \
- plugin.ocx proctexe.ocx tdc.ocx uxtheme.dll webcheck.dll wshom.ocx
- do
- "$WINE" regsvr32 /i $i > /dev/null 2>&1
- done
- if w_workaround_wine_bug 25648 "Setting TabProcGrowth=0 to avoid hang"
- then
- cat > "$W_TMP"/set-tabprocgrowth.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
- "TabProcGrowth"=dword:00000000
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-tabprocgrowth.reg
- fi
- # Seeing is believing
- case $WINETRICKS_GUI in
- none)
- w_warn "To start ie8, use the command "$WINE" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'"
- ;;
- *)
- w_warn "Starting ie8. To start it later, use the command "$WINE" '${W_PROGRAMS_WIN}\\\\Internet Explorer\\\\iexplore'"
- "$WINE" "${W_PROGRAMS_WIN}\\Internet Explorer\\iexplore" http://www.microsoft.com/windows/internet-explorer > /dev/null 2>&1 &
- ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata kobo apps \
- title="Kobo e-book reader" \
- publisher="Kobo" \
- year="2011" \
- media="download" \
- file1="KoboSetup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Kobo/Kobo.exe" \
- homepage="http://www.borders.com/online/store/MediaView_ereaderapps"
- load_kobo()
- {
- w_download http://download.kobobooks.com/desktop/1/KoboSetup.exe 31a5f5583edf4b716b9feacb857d2170104cabd9
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S}
- }
- #----------------------------------------------------------------
- w_metadata mingw apps \
- title="Minimalist GNU for Windows, including GCC for Windows" \
- publisher="GNU" \
- year="2013" \
- media="download" \
- file1="mingw-get-setup.exe" \
- installed_exe1="c:/MinGW/bin/gcc.exe" \
- homepage="http://mingw.org/wiki/Getting_Started"
- load_mingw()
- {
- w_download "$WINETRICKS_SOURCEFORGE/mingw/files/mingw-get-setup.exe" 66f1355f16ac1e328243e877880eb6e45e8b30e2
- cd "$W_CACHE/mingw"
- w_try "$WINE" "$file1"
- w_append_path 'C:\MinGW\bin'
- w_try "$WINE" mingw-get update
- w_try "$WINE" mingw-get install gcc msys-base
- }
- #----------------------------------------------------------------
- w_metadata mpc apps \
- title="Media Player Classic - Home Cinema" \
- publisher="doom9 folks" \
- year="2014" \
- media="download" \
- file1="MPC-HC.1.7.5.x86.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/MPC-HC/mpc-hc.exe" \
- homepage="http://mpc-hc.sourceforge.net"
- load_mpc()
- {
- w_download $WINETRICKS_SOURCEFORGE/project/mpc-hc/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.5_x86/MPC-HC.1.7.5.x86.exe 39f90869929007ae0576ae30dca6cd22ed5a59c2
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" MPC-HC.1.7.5.x86.exe ${W_OPT_UNATTENDED:+ /VERYSILENT}
- }
- #----------------------------------------------------------------
- w_metadata mspaint apps \
- title="MS Paint" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="WindowsXP-KB978706-x86-ENU.exe" \
- installed_file1="c:/windows/mspaint.exe"
- load_mspaint()
- {
- if w_workaround_wine_bug 657 "Native mspaint.exe from XP requires mfc42.dll"
- then
- w_call mfc42
- fi
- w_download http://download.microsoft.com/download/0/A/4/0A40DF5C-2BAE-4C63-802A-84C33B34AC98/WindowsXP-KB978706-x86-ENU.exe f4e076b3867c2f08b6d258316aa0e11d6822b8d7
- w_try $WINE "$W_CACHE"/mspaint/WindowsXP-KB978706-x86-ENU.exe /q /x:"$W_TMP"/WindowsXP-KB978706-x86-ENU
- w_try cp -f "$W_TMP"/WindowsXP-KB978706-x86-ENU/SP3GDR/mspaint.exe "$W_WINDIR_UNIX"/mspaint.exe
- }
- #----------------------------------------------------------------
- w_metadata mt4 apps \
- title="Meta Trader 4" \
- year="2005" \
- media="download" \
- file1="mt4setup.exe"
- load_mt4()
- {
- w_download https://download.mql5.com/cdn/web/metaquotes.software.corp/mt4/mt4setup.exe 07c094fc95916ba2b8d0282795717db3f4a5a9ba
- if w_workaround_wine_bug 7156 "${title} needs wingdings.ttf, installing opensymbol"
- then
- w_call opensymbol
- fi
- # Opens a webpage
- WINEDLLOVERRIDES="winebrowser.exe="
- export WINEDLLOVERRIDES
- # No documented silent install option, unfortunately..
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- Run, ${file1}
- WinWait, MetaTrader 4 Setup, license agreement
- ControlClick, Button1
- Sleep 100
- ControlClick, Button3
- WinWait, MetaTrader 4 Setup, Installation successfully completed
- ControlClick, Button4
- Process, Wait, terminal.exe
- Process, Close, terminal.exe
- "
- }
- #----------------------------------------------------------------
- w_metadata nook apps \
- title="Nook for PC (e-book reader)" \
- publisher="Barnes & Noble" \
- year="2011" \
- media="download" \
- file1="bndr2_setup_latest.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Barnes & Noble/BNDesktopReader/BNDReader.exe" \
- homepage="http://www.barnesandnoble.com/u/free-nook-apps/379002321/"
- load_nook()
- {
- # dates from curl --head
- # 10 Feb 2011 sha1sum 4a06a529b93ed33c3518326d874b40d8d7b70e7a
- # 7 Oct 2011 sha1sum 3b0301bd55471cc47cced44501547411fac9fcea
- # 7 Mar 2012 sha1sum e7060a63b9b303ddd820de762d9df254e1c931bc
- w_download http://images.barnesandnoble.com/PResources/download/eReader2/bndr2_setup_latest.exe e7060a63b9b303ddd820de762d9df254e1c931bc
- cd "$W_CACHE/$W_PACKAGE"
- "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S}
- # normally has exit status 199?
- }
- #----------------------------------------------------------------
- w_metadata npp apps \
- title="Notepad++" \
- publisher="Don Ho" \
- year="2015" \
- media="download" \
- file1="npp.6.7.9.2.Installer.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Notepad++/notepad++.exe"
- load_npp()
- {
- w_download https://notepad-plus-plus.org/repository/6.x/6.7.9.2/npp.6.7.9.2.Installer.exe 34574fb2e4e06ff941061bf444b57ce926ce23d7
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" "${file1}" $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata office2003pro apps \
- title="Microsoft Office 2003 Professional" \
- publisher="Microsoft" \
- year="2002" \
- media="cd" \
- file1="setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Office/Office11/WINWORD.EXE"
- load_office2003pro()
- {
- w_mount OFFICE11
- w_read_key
- w_ahk_do "
- if ( w_opt_unattended > 0 ) {
- run ${W_ISO_MOUNT_LETTER}:setup.exe /EULA_ACCEPT=YES /PIDKEY=$W_KEY
- } else {
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- }
- SetTitleMatchMode, 2
- WinWait,Microsoft Office 2003 Setup, Welcome
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- WinWait,Microsoft Office 2003 Setup,Key
- Sleep 500
- ControlClick Button1 ; Next
- WinWait,Microsoft Office 2003 Setup,Initials
- Sleep 500
- ControlClick Button1 ; Next
- WinWait,Microsoft Office 2003 Setup,End-User
- Sleep 500
- ControlClick Button1 ; I accept
- ControlClick Button2 ; Next
- WinWait,Microsoft Office 2003 Setup,Recommended
- Sleep 500
- ControlClick Button7 ; Next
- WinWait,Microsoft Office 2003 Setup,Summary
- Sleep 500
- ControlClick Button1 ; Install
- }
- WinWait,Microsoft Office 2003 Setup,Completed
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button2 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata office2007pro apps \
- title="Microsoft Office 2007 Professional" \
- publisher="Microsoft" \
- year="2006" \
- media="cd" \
- file1="setup.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Microsoft Office/Office12/WINWORD.EXE"
- load_office2007pro()
- {
- if w_workaround_wine_bug 14980 "Using native riched20"
- then
- w_override_app_dlls winword.exe n riched20
- w_override_app_dlls excel.exe n riched20
- w_override_app_dlls powerpnt.exe n riched20
- w_override_app_dlls msaccess.exe n riched20
- w_override_app_dlls outlook.exe n riched20
- w_override_app_dlls mspub.exe n riched20
- w_override_app_dlls infopath.exe n riched20
- fi
- w_mount OFFICE12
- w_read_key
- if test $W_OPT_UNATTENDED
- then
- # See
- # http://blogs.technet.com/b/office_resource_kit/archive/2009/01/29/configure-a-silent-install-of-the-2007-office-system-with-config-xml.aspx
- # http://www.symantec.com/connect/articles/office-2007-silent-installation-lessons-learned
- cat > "$W_TMP"/config.xml <<__EOF__
- <Configuration Product="ProPlus">
- <Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
- <PIDKEY Value="$W_KEY" />
- </Configuration>
- __EOF__
- "$WINE" ${W_ISO_MOUNT_LETTER}:setup.exe /config "$W_TMP_WIN"\\config.xml
- status=$?
- case $status in
- 0|43) ;;
- 78)
- w_die "Installing $W_PACKAGE failed, product key $W_KEY \
- might be wrong. Try again without -q, or put correct key in \
- $W_CACHE/$W_PACKAGE/key.txt and rerun."
- ;;
- *)
- w_die "Installing $W_PACKAGE failed."
- ;;
- esac
- else
- w_try "$WINE" ${W_ISO_MOUNT_LETTER}:setup.exe
- fi
- }
- #----------------------------------------------------------------
- w_metadata opera apps \
- title="Opera 11" \
- publisher="Opera Software" \
- year="2011" \
- media="download" \
- file1="Opera_1150_en_Setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Opera/opera.exe"
- load_opera()
- {
- w_download ftp://ftp.opera.com/pub/opera/win/1150/en/Opera_1150_en_Setup.exe df50c7aed50e92af858e8834f833dd0543014b46
- cd "$W_CACHE"/$W_PACKAGE
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /silent /launchopera 0 /allusers}
- }
- #----------------------------------------------------------------
- w_metadata picasa39 apps \
- title="Picasa 3.9" \
- publisher="Google" \
- year="2014" \
- file1="picasa39-setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Google/Picasa3/Picasa3.exe"
- load_picasa39()
- {
- # 2015/01/17: 39b2df46dbc423e250371e826026a2827f55b956
- # 2015/09/21: 55907fc84b1d9d6a450463869b16927f07737298
- # 2016/01/02: b3f7e2ee168811cb1d924eb34afe2b0d8153f89f
- w_download http://dl.google.com/picasa/picasa39-setup.exe b3f7e2ee168811cb1d924eb34afe2b0d8153f89f
- if w_workaround_wine_bug 29434 "Picasa 3.9 fails to authenticate with Google"
- then
- w_warn "Picasa 3.9 authentication to the Google account is currently broken under wine. See http://bugs.winehq.org/show_bug.cgi?id=29434 for more details."
- fi
- cd "$W_CACHE"/$W_PACKAGE
- w_ahk_do "
- SetTitleMatchMode, 2
- run picasa39-setup.exe
- WinWait, Picasa 3 Setup
- if ( w_opt_unattended > 0 ) {
- Sleep 1000
- ControlClick Button2 ;I Agree - License
- Sleep 1000
- WinWait, Picasa 3 Setup, Choose Install Location
- ControlClick Button2 ;Install
- Sleep 1000
- WinWait, Picasa 3 Setup, Picasa 3 has been installed on your computer
- Sleep 500
- ControlClick Button5 ; Desktop Icon
- Sleep 500
- ControlClick Button6 ; Quick Launch
- Sleep 500
- ControlClick Button7 ; Default search off
- Sleep 500
- ControlClick Button8 ; Usage statistics sent
- Sleep 500
- ControlClick Button4 ; Run Picasa
- Sleep 500
- ControlClick Button2 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata protectionid apps \
- title="Protection ID" \
- publisher="CDKiLLER & TippeX" \
- year="2015" \
- media="download" \
- file1="ProtectionId.670.halloween.2015.rar" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/protection_id.exe"
- load_protectionid()
- {
- w_download http://pid.gamecopyworld.com/dl.php?f=ProtectionId.670.halloween.2015.rar a307e15f28d00959cffddd8fda073aac6df943c8 "$file1"
- cd "$W_SYSTEM32_DLLS"
- w_try_unrar "${W_CACHE}/${W_PACKAGE}/${file1}"
- # ProtectionId.670.halloween.2015 has a different executable name than usual, this may need to be disabled on next update:
- mv Protection_ID.eXe protection_id.exe
- }
- #----------------------------------------------------------------
- w_metadata psdk2003 apps \
- title="MS Platform SDK 2003" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img" \
- installed_file1="$W_PROGRAMS_X86_WIN/Microsoft Platform SDK/SetEnv.Cmd"
- load_psdk2003()
- {
- w_call mfc42
- # http://www.microsoft.com/en-us/download/details.aspx?id=15656
- w_download http://download.microsoft.com/download/7/5/e/75ec7f04-4c8c-4f38-b582-966e76602643/5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img
- # Unpack ISO (how handy that 7z can do this!)
- # Only the windows version of 7z can handle .img files?
- WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip
- cd "$W_PROGRAMS_X86_UNIX"/7-Zip
- w_try "$WINE" 7z.exe x -y -o"$W_TMP_WIN" "$W_CACHE_WIN\\psdk2003\\5.2.3790.1830.15.PlatformSDK_Svr2003SP1_rtm.img"
- cd "$W_TMP/Setup"
- # Sanity check...
- w_verify_sha1sum 6376ab5394226f426366d0646bf244d26156697b PSDK-x86.msi
- w_try "$WINE" msiexec /i PSDK-x86.msi ${W_UNATTENDED_SLASH_QB}
- }
- #----------------------------------------------------------------
- w_metadata psdkwin7 apps \
- title="MS Windows 7 SDK" \
- publisher="Microsoft" \
- year="2009" \
- media="download" \
- file1="winsdk_web.exe" \
- installed_exe1="C:/Program Files/Microsoft SDKs/Windows/v7.0/Bin/SetEnv.Cmd"
- load_psdkwin7()
- {
- # http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en
- w_call dotnet20
- w_call mfc42 # need mfc42u, or setup will abort
- # don't have a working unattended recipe. Maybe we'll have to
- # do an autohotkey script until msft gets its act together:
- # http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/c053b616-7d5b-405d-9841-ec465a8e21d5
- w_download http://download.microsoft.com/download/7/A/B/7ABD2203-C472-4036-8BA0-E505528CCCB7/winsdk_web.exe a01dcc67a38f461e80ea649edf1353f306582507
- cd "$W_CACHE/$W_PACKAGE"
- if w_workaround_wine_bug 21596
- then
- w_warn "When given a choice, select only C++ compilers and headers, the other options don't work yet. See http://bugs.winehq.org/show_bug.cgi?id=21596"
- fi
- w_try "$WINE" winsdk_web.exe
- if w_workaround_wine_bug 21362
- then
- # Assume user installed in default location
- cat > "$W_TMP"/set-psdk7.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs]
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows]
- "CurrentVersion"="v7.0"
- "CurrentInstallFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.0\\\"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0]
- "InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.0\\\"
- "ProductVersion"="7.0.7600.16385.40715"
- "ProductName"="Microsoft Windows SDK for Windows 7 (7.0.7600.16385.40715)"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-psdk7.reg
- fi
- }
- #----------------------------------------------------------------
- w_metadata psdkwin71 apps \
- title="MS Windows 7.1 SDK" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="winsdk_web.exe" \
- installed_exe1="C:/Program Files/Microsoft SDKs/Windows/v7.1/Bin/SetEnv.Cmd"
- load_psdkwin71()
- {
- w_call dotnet20
- w_call dotnet40
- w_call mfc42 # need mfc42u, or setup will abort
- # http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en
- w_download http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe a8717ebb20a69c7efa85232bcb9899b8b07f98cf
- if w_workaround_wine_bug 21596
- then
- w_warn "When given a choice, select only C++ compilers and headers, the other options don't work yet. See http://bugs.winehq.org/show_bug.cgi?id=21596"
- fi
- # don't have a working unattended recipe. Maybe we'll have to
- # do an autohotkey script until msft gets its act together:
- # http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/c053b616-7d5b-405d-9841-ec465a8e21d5
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" winsdk_web.exe
- if w_workaround_wine_bug 21362
- then
- # Assume user installed in default location
- cat > "$W_TMP"/set-psdk71.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs]
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows]
- "CurrentVersion"="v7.1"
- "CurrentInstallFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1]
- "InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\"
- "ProductVersion"="7.0.7600.0.30514"
- "ProductName"="Microsoft Windows SDK for Windows 7 (7.0.7600.0.30514)"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKBuild]
- "ComponentName"="Microsoft Windows SDK Headers and Libraries"
- "InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\"
- "ProductVersion"="7.0.7600.0.30514"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKTools]
- "ComponentName"="Microsoft Windows SDK Headers and Libraries"
- "InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\bin\\\"
- "ProductVersion"="7.0.7600.0.30514"
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKWin32Tools]
- "ComponentName"="Microsoft Windows SDK Utilities for Win32 Development"
- "InstallationFolder"="C:\\\Program Files\\\Microsoft SDKs\\\Windows\\\v7.1\\\bin\\\"
- "ProductVersion"="7.0.7600.0.30514"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-psdk71.reg
- fi
- }
- #----------------------------------------------------------------
- w_metadata python26 dlls \
- title="Python Interpreter, version 2.6.2" \
- publisher="Python Software Foundaton" \
- year="2009" \
- media="download" \
- file1="python-2.6.2.msi" \
- installed_exe1="c:/Python26/python.exe"
- load_python26()
- {
- w_download http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi 2d1503b0e8b7e4c72a276d4d9027cf4856b208b8
- w_download $WINETRICKS_SOURCEFORGE/project/pywin32/pywin32/Build%20214/pywin32-214.win32-py2.6.exe eca58f29b810d8e3e7951277ebb3e35ac35794a3
- if [ "$WINETRICKS_WINE_VERSION" = "wine-1.4.1" ]
- then
- w_die "This installer is broken under $WINETRICKS_WINE_VERSION. Please upgrade Wine. See https://code.google.com/p/winetricks/issues/detail?id=347 for more info."
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" msiexec /i python-2.6.2.msi ALLUSERS=1 $W_UNATTENDED_SLASH_Q
- w_ahk_do "
- SetTitleMatchMode, 2
- run pywin32-214.win32-py2.6.exe
- WinWait, Setup, Wizard will install pywin32
- if ( w_opt_unattended > 0 ) {
- ControlClick Button2 ; next
- WinWait, Setup, Python 2.6 is required
- ControlClick Button3 ; next
- WinWait, Setup, Click Next to begin
- ControlClick Button3 ; next
- WinWait, Setup, finished
- ControlClick Button4 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata python26_comtypes dlls \
- title="Comtypes for Python 2.6" \
- publisher="theller" \
- year="2014" \
- media="download" \
- file1="1.1.1.zip" \
- installed_file1="c:/Python26/Lib/site-packages/comtypes-1.1.1-py2.6.egg/EGG-INFO/PKG-INFO" \
- homepage="https://github.com/enthought/comtypes/releases"
- load_python26_comtypes()
- {
- w_call python26
- w_call python26_setuptools
- w_download https://github.com/enthought/comtypes/archive/${file1} 080921ede048063a3be273f5dca3acc469dfe361
- w_try_unzip "$W_TMP" "${W_CACHE}/${W_PACKAGE}/${file1}"
- cd "$W_TMP/comtypes-$(basename ${file1} .zip)"
- w_try "$WINE" "C:\Python26\python.exe" setup.py install
- }
- #----------------------------------------------------------------
- w_metadata python26_setuptools dlls \
- title="Setuptools 18.0.1 for Python 2.6" \
- publisher="Python Packaging Authority" \
- year="2010" \
- media="download" \
- file1="ez_setup.py" \
- installed_file1="c:/Python26/Lib/site-packages/setuptools.pth" \
- homepage="https://pypi.python.org/pypi/setuptools"
- load_python26_setuptools()
- {
- w_call python26
- # Not checking sha1sum, script frequently updates and there aren't stable versions
- w_download https://bootstrap.pypa.io/ez_setup.py
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" "C:\Python26\python.exe" ${file1}
- }
- #----------------------------------------------------------------
- w_metadata spotify apps \
- title="Spotify - All the music, all the time" \
- publisher="Spotify" \
- year="2011" \
- media="download" \
- file1="SpotifyInstaller.exe" \
- installed_exe1="c:/users/$LOGNAME/Application Data/Spotify/spotify.exe"
- load_spotify()
- {
- # 0.4.9 f26712b576baa1c78112a05474293deef39f7f62
- # 29 Apr 2011 0.4.10 4becb04f8ad08a3ff59d6830bf1d998fcca1815b
- # 7 may 2011 a3c7daecf1051c4aaab544e6b66753617c0706b1
- # updates too frequently to check checksum :-(
- w_download http://www.spotify.com/download/Spotify%20Installer.exe
- cd "$W_CACHE/$W_PACKAGE"
- # w_download doesn't handle renaming for us without a checksum, tsk.
- # And autohotkey thinks % is a variable reference.
- if test ! -f SpotifyInstaller.exe
- then
- cp Spotify%20Installer.exe SpotifyInstaller.exe
- fi
- # Install is silent by default, and always starts app
- # So all we have to do here is close app if we want unattended install
- w_ahk_do "
- SetTitleMatchMode, 2
- run SpotifyInstaller.exe
- WinWait, ahk_class SpotifyMainWindow
- if ( w_opt_unattended > 0 ) {
- WinClose
- }
- WinWaitClose
- sleep 1000
- Process, Close, SpotifyWebHelper.exe
- "
- }
- #----------------------------------------------------------------
- w_metadata safari apps \
- title="Safari" \
- publisher="Apple" \
- year="2010" \
- media="download" \
- file1="SafariSetup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Safari/Safari.exe"
- load_safari()
- {
- w_download http://appldnld.apple.com.edgesuite.net/content.info.apple.com/Safari5/061-7138.20100607.Y7U87/SafariSetup.exe e56d5d79d9cfbb85ac46ac78aa497d7f3d8dbc3d
- if test $W_OPT_UNATTENDED
- then
- w_warn "Safari's silent install is broken under wine. See http://bugs.winehq.org/show_bug.cgi?id=23493. You should do a regular install if you want to use Safari."
- fi
- cd "$W_CACHE"/$W_PACKAGE
- w_try "$WINE" SafariSetup.exe $W_UNATTENDED_SLASH_QN
- }
- #----------------------------------------------------------------
- w_metadata sketchup apps \
- title="Sketchup 8" \
- publisher="Google" \
- year="2012" \
- media="download" \
- file1="GoogleSketchUpWEN.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Google/Google SketchUp 8/SketchUp.exe"
- load_sketchup()
- {
- w_download http://dl.google.com/sketchup/GoogleSketchUpWEN.exe f0628e6f05241f91e4f36d6be3b8685a408ad12b
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run GoogleSketchUpWEN.exe
- WinWait, SketchUp, Welcome
- if ( w_opt_unattended > 0 ) {
- Sleep 4000
- Send {Enter}
- WinWait, SketchUp, License
- Sleep 1000
- ControlClick Button1 ; accept
- Sleep 1000
- ControlClick Button4 ; Next
- WinWait, SketchUp, Destination
- Sleep 1000
- ControlClick Button1 ; Next
- WinWait, SketchUp, Ready
- Sleep 1000
- ControlClick Button1 ; Install
- }
- WinWait, SketchUp, Completed
- if ( w_opt_unattended > 0 ) {
- Sleep 1000
- ControlClick Button1 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata steam apps \
- title="Steam" \
- publisher="Valve" \
- year="2010" \
- media="download" \
- file1="SteamInstall.msi" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/Steam.exe"
- load_steam()
- {
- # 18 Mar 2011 7f2fee9ffeaba8424a6c76d6c95b794735ac9959
- # 29 Nov 2012 fa053c268b6285741d1a1392c25f92c5cb2a6ffb
- # 17 Mar 2014 b2a3fdbe4a662f3bf751f5b8bfc61f8d35e050fe
- # 11 Dec 2014 7ad8fbeffa6c963b821f80129c15c9d8e85f9a4a
- # 6 Jan 2015 e04aefe8bc894f11f211edec8e8a008abe0147d2
- # 21 Jun 2015 0e8046d40c38d817338135ec73a5b217cc340cf5
- # 29 Dec 2015 728e3c82fd57c68cbbdb64965719081ffee6272c
- w_download http://media.steampowered.com/client/installer/SteamSetup.exe 728e3c82fd57c68cbbdb64965719081ffee6272c
- cd "$W_CACHE/$W_PACKAGE"
- # Should be fixed in newer steam versions, since 2012. Commenting out for a while before removing in case users need to revert locally
- #
- # Install corefonts first, so if the user doesn't have cabextract/Wine with cab support, we abort before installing Steam.
- # FIXME: support using Wine's cab support
- #if ! test -f "$W_FONTSDIR_UNIX/Times.TTF" && \
- # w_workaround_wine_bug 22751 "Installing corefonts to prevent a Steam crash"
- #then
- # w_call corefonts
- #fi
- if test $W_OPT_UNATTENDED
- then
- w_ahk_do "
- run, SteamSetup.exe
- SetTitleMatchMode, 2
- WinWait, Steam, Using Steam
- ControlClick, Button2
- WinWait, Steam, Please review
- ControlClick, Button4
- sleep 1000
- ControlClick, Button2
- WinWait, Steam, Select the language
- ControlClick, Button2
- WinWait, Steam, Choose the folder
- ControlClick, Button2
- WinWait, Steam, Steam has been installed
- ControlClick, Button4
- sleep 1000
- ControlClick, Button2
- WinWaitClose
- "
- else
- w_try "$WINE" SteamSetup.exe
- fi
- # Not all users need this disabled, but let's play it safe for now
- if w_workaround_wine_bug 22053 "Disabling gameoverlayrenderer to prevent game crashes on some machines."
- then
- w_override_dlls disabled gameoverlayrenderer
- fi
- }
- #----------------------------------------------------------------
- w_metadata uplay apps \
- title="Uplay" \
- publisher="Ubisoft" \
- year="2013" \
- media="download" \
- file1="UplayInstaller.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Ubisoft/Ubisoft Game Launcher/Uplay.exe"
- load_uplay()
- {
- # 4 June 2013 3.0.1 sha1sum fdb9e736b5b2211fb23b35d30d52deae6f4b32a4
- # 1 July 2013 3.1.0 sha1sum 21a7f469534dd1463eaaab6b2be2fa9084bceea2
- # 11 Nov 2013 4.0 sha1sum 52e287f9f78313e4713d2f070b15734410da0c5a
- # 26 Dec 2013 4.2 sha1sum ada2c11ee62eee19f8b1661bd974862e336623c6
- # 16 Feb 2014 ? sha1sum 19f98632ad1ff330c647f8ff1a3a15b44238c709
- # Changes too frequently, don't check anymore
- w_download http://static3.cdn.ubi.com/orbit/launcher_installer/UplayInstaller.exe
- cd "$W_CACHE/$W_PACKAGE"
- # NSIS installer
- w_try "$WINE" UplayInstaller.exe ${W_OPT_UNATTENDED:+ /S}
- if w_workaround_wine_bug 33673 "Installing gdiplus to work around slow navigation"
- then
- w_call gdiplus
- fi
- }
- #----------------------------------------------------------------
- w_metadata utorrent apps \
- title="µTorrent 2.2.1" \
- publisher="BitTorrent" \
- year="2011" \
- media="manual_download" \
- file1="utorrent_2.2.1.exe" \
- installed_exe1="c:/windows/utorrent.exe"
- load_utorrent()
- {
- # Torrent client supported on Windows,Mac OSX, Linux through WINE
- # Oct 2010 2.0.4 sha1sum 8382b8a7bc625d68b6efe18a7b9e5488dc0119ee
- # Nov 6 2010 2.0.4 sha1sum 263a91693d0976473cd321cd6f1b0103a814f3ad
- # Dev 17 2010 2.2 sha1sum 0c95bdfba07421fe706b30ee2ec6779217c5dce4, hangs, see wine bug 24946
- # Feb 11 2011 2.2.1beta sha1sum 82e81e1484b4e8654b83908509f3777532c6fcb3
- # Mar 28 2011 2.2.1 sha1sum 7049109e4d3f72338d54b42ae37ecf38fafed46f
- # Apr 14 2011 2.2.1 sha1sum b1378d7cbe5d1e1b168ce44def8f59facdc046d5
- # 7 May 2011 sha1sum 2932c9ed1c1225e485f7e3dd2ed267aa7d568c80
- # 14 May 2011 removed checksum, updates too quickly to track :-(
- # 7 Mar 2012 sha1sum c6d9a80c02898139b17194d10293f17ecef054cb
- w_download_manual "http://www.oldapps.com/utorrent.php?old_utorrent=38" utorrent_2.2.1.exe c6d9a80c02898139b17194d10293f17ecef054cb
- w_try cp -f "$W_CACHE/utorrent/$file1" "$W_WINDIR_UNIX"/utorrent.exe
- }
- #----------------------------------------------------------------
- w_metadata utorrent3 apps \
- title="µTorrent 3.1" \
- publisher="BitTorrent" \
- year="2011" \
- media="download" \
- file1="uTorrent.exe" \
- installed_exe1="c:/users/$LOGNAME/Application Data/uTorrent/uTorrent.exe"
- load_utorrent3()
- {
- # 15 Apr 2011: sha1sum a5f198207919e8f2091a9b4459d7d6fc8a63e874
- # 27 Apr 2011: sha1sum d969f0c61cf2b2afaea4121f097ef690dffbf771
- # 7 May 2011: sha1sum 1793a7b15d905a9fa82f9a969a96fa53abaac04c
- # 14 May: removed checksum, changes too often to track
- # 7 Mar 2012: sha1sum 73ba69b5d0004239a709af5db57c88c9d9c8f7b2
- # 28 Jun 2013: sha1sum d2408c8a09a2bd9704af39f818ec7ac9e9cca46e
- w_download http://download-new.utorrent.com/endpoint/utorrent/os/windows/track/stable/ d2408c8a09a2bd9704af39f818ec7ac9e9cca46e uTorrent.exe
- cd "$W_CACHE/$W_PACKAGE"
- # If you don't use /PERFORMINSTALL, it just runs uTorrent
- # FIXME: That's no longer a quiet option, though..
- "$WINE" $file1 /PERFORMINSTALL /NORUN
- # dang installer exits with status 1 on success
- status=$?
- case $status in
- 0|1) ;;
- *) w_die "Note: utorrent installer returned status '$status'. Aborting." ;;
- esac
- }
- #----------------------------------------------------------------
- w_metadata vc2005express apps \
- title="MS Visual C++ 2005 Express" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="VC.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Visual Studio 8/Common7/IDE/VCExpress.exe"
- load_vc2005express()
- {
- # Thanks to http://blogs.msdn.com/astebner/articles/551674.aspx for the recipe
- w_call dotnet20
- # http://blogs.msdn.com/b/astebner/archive/2006/03/14/551674.aspx
- # http://go.microsoft.com/fwlink/?linkid=57034
- w_download http://download.microsoft.com/download/A/9/1/A91D6B2B-A798-47DF-9C7E-A97854B7DD18/VC.iso 1ae44e4eaf8c61c3a39e573fd6efd9889e940529
- # Unpack ISO (how handy that 7z can do this!)
- w_try_7z "$W_TMP" "$W_CACHE"/vc2005express/VC.iso
- cd "$W_TMP"
- if [ $W_UNATTENDED_SLASH_Q ]
- then
- chmod +x Ixpvc.exe
- # Add /qn after ReallySuppress for a really silent install (but then you won't see any errors)
- w_try "$WINE" Ixpvc.exe /t:"$W_TMP_WIN" /q:a /c:"msiexec /i vcsetup.msi VSEXTUI=1 ADDLOCAL=ALL REBOOT=ReallySuppress"
- else
- w_try "$WINE" setup.exe
- w_ahk_do "
- SetTitleMatchMode, 2
- WinWait, Visual C++ 2005 Express Edition Setup
- WinWaitClose, Visual C++ 2005 Express Edition Setup
- "
- fi
- }
- #----------------------------------------------------------------
- w_metadata vc2005expresssp1 apps \
- title="MS Visual C++ 2005 Express SP1" \
- publisher="Microsoft" \
- year="2007" \
- media="download" \
- file1="VS80sp1-KB926748-X86-INTL.exe"
- load_vc2005expresssp1()
- {
- w_call vc2005express
- # http://www.microsoft.com/downloads/details.aspx?FamilyId=7B0B0339-613A-46E6-AB4D-080D4D4A8C4E
- if w_workaround_wine_bug 37375
- then
- w_warn "Installer currently fails"
- fi
- w_download http://download.microsoft.com/download/7/7/3/7737290f-98e8-45bf-9075-85cc6ae34bf1/VS80sp1-KB926748-X86-INTL.exe 8b9a0172efad64774aa122f29e093ad2043b308d
- w_try $WINE "$W_CACHE"/vc2005expresssp1/VS80sp1-KB926748-X86-INTL.exe
- }
- #----------------------------------------------------------------
- w_metadata vc2005trial apps \
- title="MS Visual C++ 2005 Trial" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="En_vs_2005_vsts_180_Trial.img" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Visual Studio 8/Common7/IDE/devenv.exe"
- load_vc2005trial()
- {
- w_call dotnet20
-
- # Without mfc42.dll, pidgen.dll won't load, and the app claims "A trial edition is already installed..."
- w_call mfc42
- w_download http://download.microsoft.com/download/6/f/5/6f5f7a01-50bb-422d-8742-c099c8896969/En_vs_2005_vsts_180_Trial.img f66ae07618d67e693ca0524d3582208c20e07823
- # Unpack ISO (how handy that 7z can do this!)
- # Only the windows version of 7z can handle .img files?
- WINETRICKS_OPT_SHAREDPREFIX=1 w_call 7zip
- cd "$W_PROGRAMS_X86_UNIX"/7-Zip
- w_try "$WINE" 7z.exe x -y -o"$W_TMP_WIN" "$W_CACHE_WIN\\vc2005trial\\En_vs_2005_vsts_180_Trial.img"
- cd "$W_TMP"
- # Sanity check...
- w_verify_sha1sum 15433993ab7573c5154dbea2dcb65450f2adbf5c vs/wcu/runmsi.exe
- cd vs/Setup
- w_ahk_do "
- SetTitleMatchMode 2
- run setup.exe
- winwait, Visual Studio, Setup is loading
- if ( w_opt_unattended > 0 ) {
- winwait, Visual Studio, Loading completed
- controlclick, button2
- winwait, Visual Studio, Select features
- controlclick, button38
- controlclick, button40
- winwait, Visual Studio, You have chosen
- controlclick, button1
- winwait, Visual Studio, Select features
- controlclick, button11
- }
- ;this can take a while
- winwait, Finish Page
- if ( w_opt_unattended > 0 )
- controlclick, button2
- winwaitclose, Finish Page
- "
- }
- #----------------------------------------------------------------
- w_metadata vc2008express apps \
- title="MS Visual C++ 2008 Express" \
- publisher="Microsoft" \
- year="2008" \
- media="download" \
- file1="VS2008ExpressENUX1397868.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Visual Studio 9.0/Common7/IDE/VCExpress.exe"
- load_vc2008express()
- {
- w_call dotnet35
- # This is the version without sp1 baked in. (sp1 requires dotnet35sp1, which doesn't work yet.)
- w_download http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso 76c6d28274a67741da720744026ea991a70867d1
- # Unpack ISO
- w_try_7z "$W_TMP" "$W_CACHE"/vc2008express/VS2008ExpressENUX1397868.iso
- # See also http://blogs.msdn.com/b/astebner/archive/2008/04/25/8425198.aspx
- cd "$W_TMP"/VCExpress
- w_try "$WINE" setup.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata vc2010express apps \
- title="MS Visual C++ 2010 Express" \
- publisher="Microsoft" \
- year="2010" \
- media="download" \
- file1="VS2010Express1.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Visual Studio 10.0/Common7/IDE/VCExpress.exe"
- load_vc2010express()
- {
- w_download http://download.microsoft.com/download/1/E/5/1E5F1C0A-0D5B-426A-A603-1798B951DDAE/VS2010Express1.iso adef5e361a1f64374f520b9a2d03c54ee43721c6
- # Unpack ISO
- w_try_7z "$W_TMP" "$W_CACHE"/vc2010express/VS2010Express1.iso
- cd "$W_TMP"/VCExpress
- # dotnet40 leaves winver at win2k, which causes vc2010 to abort on
- # start because it looks for c:\users\$LOGNAME\Application Data
- w_set_winver winxp
- if w_workaround_wine_bug 12501 "Installing mspatcha to work around bug in SQL Server install"
- then
- w_call mspatcha
- fi
- if w_workaround_wine_bug 34627 "Installing Visual C++ 2005 managed runtime to work around bug in SQL Server install"
- then
- w_call vcrun2005
- fi
- w_try $WINE setup.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- w_metadata vlc apps \
- title="VLC media player 2.2.1" \
- publisher="videolan.org" \
- year="2015" \
- media="download" \
- file1="vlc-2.2.1-win32.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/VideoLAN/VLC/vlc.exe" \
- homepage="http://www.videolan.org/vlc/"
- load_vlc()
- {
- w_download http://get.videolan.org/vlc/2.2.1/win32/vlc-2.2.1-win32.exe 4cbcea9764b6b657d2147645eeb5b973b642530e
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S}
- }
- #----------------------------------------------------------------
- w_metadata winamp apps \
- title="Winamp" \
- publisher="Radionomy (AOL (Nullsoft))" \
- year="2013" \
- media="download" \
- file1="winamp5666_full_all_redux.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Winamp/winamp.exe" \
- homepage="http://www.winamp.com"
- load_winamp()
- {
- w_info "may send information while installing, see http://www.microsoft.com/security/portal/Threat/Encyclopedia/Entry.aspx?threatid=159633"
- # 2014 winamp5621_full_emusic-7plus_en-us.exe afc172039db52fdc202114bec7bcf8b5bf2468bb
- w_download http://winampplugins.co.uk/Winamp/winamp5666_full_all_redux.exe 136314be0da42ed399b88a106cb1f43093e2c0c2
- cd "$W_CACHE/$W_PACKAGE"
- if test $W_OPT_UNATTENDED
- then
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 2
- Run $file1
- WinWait, Installer Language, Please select
- Sleep 500
- ControlClick, Button1 ; OK
- WinWait, Winamp Installer, Welcome to the Winamp installer
- Sleep 500
- ControlClick, Button2 ; Next
- WinWait, Winamp Installer, License Agreement
- Sleep 500
- ControlClick, Button2 ; I Agree
- WinWait, Winamp Installer, Choose Install Location
- Sleep 500
- ControlClick, Button2 ; Next
- WinWait, Winamp Installer, Choose Components
- Sleep 500
- ControlClick, Button2 ; Next for Full install
- WinWait, Winamp Installer, Choose Start Options
- Sleep 500
- ControlClick, Button4 ; uncheck start menu entry
- Sleep 500
- ControlClick, Button5 ; uncheck ql icon
- Sleep 500
- ControlClick, Button6 ; uncheck deskto icon
- Sleep 500
- ControlClick, Button2 ; Install
- WinWait, Winamp Installer, Installation Complete
- Sleep 500
- ControlClick, Button4 ; uncheck launch when complete
- Sleep 500
- ControlClick, Button2 ; Finish
- WinWaitClose
- "
- else
- w_try "$WINE" "$file1"
- fi
- }
- #----------------------------------------------------------------
- w_metadata wme9 apps \
- title="MS Windows Media Encoder 9 (broken in wine)" \
- publisher="Microsoft" \
- year="2002" \
- media="download" \
- file1="WMEncoder.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Windows Media Components/Encoder/wmenc.exe"
- load_wme9()
- {
- if [ $W_ARCH = win64 ]
- then
- w_die "Installer doesn't support 64-bit architecture."
- fi
- # See also http://www.microsoft.com/downloads/details.aspx?FamilyID=5691ba02-e496-465a-bba9-b2f1182cdf24
- w_download http://download.microsoft.com/download/8/1/f/81f9402f-efdd-439d-b2a4-089563199d47/WMEncoder.exe 7a3f8781f3e5705651992ef0150ee30bc1295116
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" WMEncoder.exe $W_UNATTENDED_SLASH_Q
- }
- #----------------------------------------------------------------
- # helper - not useful by itself
- load_wm9codecs()
- {
- # Note: must install WMP9 or 10 first, or installer will complain and abort.
- # See http://www.microsoft.com/downloads/details.aspx?FamilyID=06fcaab7-dcc9-466b-b0c4-04db144bb601
- # Used by direct calls from load_wmp9, so have to specify cache directory.
- # http://birds.camden.rutgers.edu/
- w_download_to wm9codecs http://birds.camden.rutgers.edu/WM9Codecs9x.exe 8b76bdcbea0057eb12b7966edab4b942ddacc253
- cd "$W_CACHE/wm9codecs"
- w_set_winver win2k
- w_try "$WINE" WM9Codecs9x.exe $W_UNATTENDED_SLASH_Q
- }
- w_metadata wmp9 dlls \
- title="Windows Media Player 9" \
- publisher="Microsoft" \
- year="2003" \
- media="download" \
- file1="MPSetup.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN"/l3codeca.acm
- load_wmp9()
- {
- w_skip_windows wmp9 && return
- # Not really expected to work well yet; see
- # http://appdb.winehq.org/appview.php?versionId=1449
- if [ $W_ARCH = win64 ]
- then
- w_die "Installer doesn't support 64-bit architecture."
- fi
- w_call wsh57
- w_set_winver win2k
- # See also http://www.microsoft.com/windows/windowsmedia/player/9series/default.aspx
- w_download http://download.microsoft.com/download/1/b/c/1bc0b1a3-c839-4b36-8f3c-19847ba09299/MPSetup.exe 580536d10657fa3868de2869a3902d31a0de791b
- # remove builtin placeholders to allow update
- rm -f "$W_SYSTEM32_DLLS"/wmvcore.dll "$W_SYSTEM32_DLLS"/wmp.dll
- # need native wmp override to allow update and later checks to succeed
- w_override_dlls native wmp
- # FIXME: should we override quartz? Builtin crashes when you play
- # anything, but maybe that's bug 30557 and only affects new systems?
- # Wine's pidgen is too stubby, crashes, see wine bug 31111
- w_override_app_dlls MPSetup.exe native pidgen
- cd "$W_CACHE"/"$W_PACKAGE"
- w_try "$WINE" MPSetup.exe $W_UNATTENDED_SLASH_Q
- load_wm9codecs
- w_unset_winver
- }
- #----------------------------------------------------------------
- w_metadata wmp10 dlls \
- title="Windows Media Player 10" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="MP10Setup.exe" \
- installed_file1="$W_SYSTEM32_DLLS_WIN/l3codecp.acm"
- load_wmp10()
- {
- if [ $W_ARCH = win64 ]
- then
- w_die "Installer doesn't support 64-bit architecture. Use a 32-bit WINEPREFIX instead."
- fi
- # FIXME: what versions of windows are really bundled with wmp10?
- w_skip_windows wmp10 && return
- # See http://appdb.winehq.org/appview.php?iVersionId=3212
- w_call wsh57
- # http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b446ae53-3759-40cf-80d5-cde4bbe07999
- w_download http://download.microsoft.com/download/1/2/a/12a31f29-2fa9-4f50-b95d-e45ef7013f87/MP10Setup.exe 69862273a5d9d97b4a2e5a3bd93898d259e86657
- # Crashes on exit, but otherwise ok; see http://bugs.winehq.org/show_bug.cgi?id=12633
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" MP10Setup.exe $W_UNATTENDED_SLASH_Q
- # Disable WMP's services, since they depend on unimplemented stuff, they trigger the GUI debugger several times
- w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdr4_2K"
- w_try_regedit /D "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdralw2k"
- load_wm9codecs
- w_unset_winver
- }
- #----------------------------------------------------------------
- # Benchmarks
- #----------------------------------------------------------------
- w_metadata 3dmark2000 benchmarks \
- title="3DMark2000" \
- publisher="MadOnion.com" \
- year="2000" \
- media="download" \
- file1="3dmark2000_v11_100308.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/MadOnion.com/3DMark2000/3DMark2000.exe"
- load_3dmark2000()
- {
- # http://www.futuremark.com/download/3dmark2000/
- if ! test -f "$W_CACHE/$W_PACKAGE/3dmark2000_v11_100308.exe"
- then
- w_download http://www.ocinside.de/download/3dmark2000_v11_100308.exe b0400d59cfd45d8c8893d3d4edc58b6285ee1502
- fi
- w_try_unzip "$W_TMP/$W_PACKAGE" "$W_CACHE/$W_PACKAGE"/3dmark2000_v11_100308.exe
- cd "$W_TMP/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run Setup.exe
- WinWait Welcome
- ;ControlClick Button1 ; Next
- Sleep 1000
- Send {Enter} ; Next
- WinWait License
- ;ControlClick Button2 ; Yes
- Sleep 1000
- Send {Enter} ; Yes
- ;WinWaitClose ahk_class #32770 ; License
- WinWait ahk_class #32770, Destination
- ;ControlClick Button1 ; Next
- Sleep 1000
- Send {Enter} ; Next
- ;WinWaitClose ahk_class #32770 ; Destination
- WinWait, Start
- ;ControlClick Button1 ; Next
- Sleep 1000
- Send {Enter} ; Next
- WinWait Registration
- ControlClick Button1 ; Next
- WinWait Complete
- Sleep 1000
- ControlClick Button1 ; Unclick View Readme
- ;ControlClick Button4 ; Finish
- Send {Enter} ; Finish
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata 3dmark2001 benchmarks \
- title="3DMark2001" \
- publisher="MadOnion.com" \
- year="2001" \
- media="download" \
- file1="3dmark2001se_330_100308.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/MadOnion.com/3DMark2001 SE/3DMark2001SE.exe"
- load_3dmark2001()
- {
- # http://www.futuremark.com/download/3dmark2001/
- if ! test -f "$W_CACHE/$W_PACKAGE"/3dmark2001se_330_100308.exe
- then
- w_download http://www.ocinside.de/download/3dmark2001se_330_100308.exe 643bacbcc1615bb4f46d3b045b1b8d78371a6b54
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run 3dmark2001se_330_100308.exe
- WinWait ahk_class #32770 ; welcome
- if ( w_opt_unattended > 0 ) {
- ControlClick Button2 ; Next
- sleep 5000
- WinWait ahk_class #32770 ; License
- ControlClick Button2 ; Next
- WinWait ahk_class #32770, Destination
- ControlClick Button1 ; Next
- WinWait ahk_class #32770, Start
- ControlClick Button1 ; Next
- WinWait,, Registration
- ControlClick Button2 ; Next
- }
- WinWait,, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Unclick View Readme
- ControlClick Button4 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata 3dmark03 benchmarks \
- title="3D Mark 03" \
- publisher="Futuremark" \
- year="2003" \
- media="manual_download" \
- file1="3DMark03_v360_1901.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Futuremark/3DMark03/3DMark03.exe"
- load_3dmark03()
- {
- # http://www.futuremark.com/benchmarks/3dmark03/download/
- if ! test -f "$W_CACHE/$W_PACKAGE/3DMark03_v360_1901.exe"
- then
- w_download_manual http://www.futuremark.com/download/3dmark03/ 3DMark03_v360_1901.exe 46a439101ddbbe3c9563b5e9651cb61b46ce0619
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_warn "Don't use mouse while this installer is running. Sorry..."
- # This old installer doesn't seem to be scriptable the usual way, so spray and pray.
- w_ahk_do "
- SetTitleMatchMode, 2
- run 3DMark03_v360_1901.exe
- WinWait 3DMark03 - InstallShield Wizard, Welcome
- if ( w_opt_unattended > 0 ) {
- WinActivate
- Send {Enter}
- Sleep 2000
- WinWait 3DMark03 - InstallShield Wizard, License
- WinActivate
- ; Accept license
- Send a
- Send {Enter}
- Sleep 2000
- ; Choose Destination
- Send {Enter}
- Sleep 2000
- ; Begin install
- Send {Enter}
- ; Wait for install to finish
- WinWait 3DMark03, Registration
- ; Purchase later
- Send {Tab}
- Send {Tab}
- Send {Enter}
- }
- WinWait, 3DMark03 - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- ; Uncheck readme
- Send {Space}
- Send {Tab}
- Send {Tab}
- Send {Enter}
- }
- WinWaitClose, 3DMark03 - InstallShield Wizard, Complete
- "
- }
- #----------------------------------------------------------------
- w_metadata 3dmark05 benchmarks \
- title="3D Mark 05" \
- publisher="Futuremark" \
- year="2005" \
- media="download" \
- file1="3dmark05_v130_1901.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Futuremark/3DMark05/3DMark05.exe"
- load_3dmark05()
- {
- # http://www.futuremark.com/download/3dmark05/
- if ! test -f "$W_CACHE/$W_PACKAGE/3DMark05_v130_1901.exe"
- then
- w_download http://www.ocinside.de/download/3dmark05_v130_1901.exe 8ad6bc2917e22edf5fc95d1fa96cc82515093fb2
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- run 3DMark05_v130_1901.exe
- WinWait ahk_class #32770, Welcome
- if ( w_opt_unattended > 0 ) {
- Send {Enter}
- WinWait, ahk_class #32770, License
- ControlClick Button1 ; Accept
- ControlClick Button4 ; Next
- WinWait, ahk_class #32770, Destination
- ControlClick Button1 ; Next
- WinWait, ahk_class #32770, Install
- ControlClick Button1 ; Install
- WinWait, ahk_class #32770, Purchase
- ControlClick Button4 ; Later
- }
- WinWait, ahk_class #32770, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Uncheck view readme
- ControlClick Button3 ; Finish
- }
- WinWaitClose, ahk_class #32770, Complete
- "
- ARGS=""
- if w_workaround_wine_bug 22392
- then
- w_warn "You must run the app with the -nosysteminfo option to avoid a crash on startup"
- ARGS="-nosysteminfo"
- fi
- }
- #----------------------------------------------------------------
- w_metadata 3dmark06 benchmarks \
- title="3D Mark 06" \
- publisher="Futuremark" \
- year="2006" \
- media="manual_download" \
- file1="3DMark06_v121_installer.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Futuremark/3DMark06/3DMark06.exe"
- load_3dmark06()
- {
- w_download_manual http://www.futuremark.com/support/downloads 3DMark06_v121_installer.exe a125a4b0a5649f848292f38cf424c672d8142058
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- run $file1
- WinWait ahk_class #32770, Welcome
- if ( w_opt_unattended > 0 ) {
- Send {Enter}
- WinWait, ahk_class #32770, License
- ControlClick Button1 ; Accept
- ControlClick Button4 ; Next
- WinWait, ahk_class #32770, Destination
- ControlClick Button1 ; Next
- WinWait, ahk_class #32770, Install
- ControlClick Button1 ; Install
- WinWait ahk_class OpenAL Installer
- ControlClick Button2 ; OK
- WinWait ahk_class #32770
- ControlClick Button1 ; OK
- }
- WinWait, ahk_class #32770, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Uncheck view readme
- ControlClick Button3 ; Finish
- }
- WinWaitClose, ahk_class #32770, Complete
- "
- if w_workaround_wine_bug 24417 "Installing shader compiler..."
- then
- # "Demo" button doesn't work without this. d3dcompiler_43 related.
- w_call d3dx9_28
- w_call d3dx9_36
- fi
- ARGS=""
- if w_workaround_wine_bug 22392
- then
- w_warn "You must run the app with the -nosysteminfo option to avoid a crash on startup"
- ARGS="-nosysteminfo"
- fi
- }
- #----------------------------------------------------------------
- w_metadata unigine_heaven benchmarks \
- title="Unigen Heaven 2.1 Benchmark" \
- publisher="Unigen" \
- year="2010" \
- media="manual_download" \
- file1="Unigine_Heaven-2.1.msi"
- load_unigine_heaven()
- {
- # FIXME: use w_download_torrent()
- w_download_manual http://unigine.com/download/torrents/Unigine_Heaven-2.1.msi.torrent Unigine_Heaven-2.1.msi 3d7b94a3734cdae85f98032b61668e743979c444
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run msiexec /i $file1
- if ( w_opt_unattended > 0 ) {
- WinWait ahk_class MsiDialogCloseClass
- Send {Enter}
- WinWait ahk_class MsiDialogCloseClass, License
- ControlClick Button1 ; Accept
- ControlClick Button3 ; Accept
- WinWait ahk_class MsiDialogCloseClass, Choose
- ControlClick Button1 ; Typical
- WinWait ahk_class MsiDialogCloseClass, Ready
- ControlClick Button2 ; Install
- ; FIXME: on systems with OpenAL already (Win7?), the next four lines
- ; are not needed. We should somehow wait for either OpenAL window
- ; *or* Completed window.
- WinWait ahk_class OpenAL Installer
- ControlClick Button2 ; OK
- WinWait ahk_class #32770
- ControlClick Button1 ; OK
- }
- WinWait ahk_class MsiDialogCloseClass, Completed
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Finish
- Send {Enter}
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- # Games
- #----------------------------------------------------------------
- w_metadata algodoo_demo games \
- title="Algodoo Demo" \
- publisher="Algoryx" \
- year="2009" \
- media="download" \
- file1="Algodoo_1_7_1-Win32.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Algodoo/Algodoo.exe"
- load_algodoo_demo()
- {
- w_download http://www.algodoo.com/download/Algodoo_1_7_1-Win32.exe caa73e73669a8787652a6bed123bbe2682152f12
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- ; This one's funny... on Wine, keyboard works once you click manually, but until then, only ControlClick seems to work.
- run, Algodoo_1_7_1-Win32.exe
- SetTitleMatchMode, 2
- winwait, Algodoo, Welcome
- if ( w_opt_unattended > 0 ) {
- ControlClick, TNewButton1
- winwait, Algodoo, License
- ;send {Tab}a{Space}{Enter}
- ControlClick, TNewRadioButton1 ; Accept
- ControlClick, TNewButton2 ; Next
- winwait, Algodoo, Destination
- ;send {Enter}
- ControlClick, TNewButton3 ; Next
- winwait, Algodoo, Folder
- ;send {Enter}
- ControlClick, TNewButton4 ; Next
- winwait, Algodoo, Select Additional Tasks
- ;send {Enter}
- ControlClick, TNewButton4 ; Next
- winwait, Algodoo, Ready to Install
- ;send {Enter}
- ControlClick, TNewButton4 ; Next
- }
- winwait, Algodoo, Completing
- if ( w_opt_unattended > 0 ) {
- sleep 500
- send {Space}{Tab}{Space}{Tab}{Space}{Enter} ; decline to run app or view tutorials
- }
- WinWaitClose, Algodoo, Completing
- "
- }
- #----------------------------------------------------------------
- w_metadata amnesia_tdd_demo games \
- title="Amnesia: The Dark Descent Demo" \
- publisher="Frictional Games" \
- year="2010" \
- media="manual_download" \
- file1="amnesia_tdd_demo_1.0.1.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Amnesia - The Dark Descent Demo/redist/Amnesia.exe"
- load_amnesia_tdd_demo()
- {
- w_download_manual "http://www.amnesiagame.com/#demo" amnesia_tdd_demo_1.0.1.exe 0bf0bc6e9c8ea76f1c44582d9302a9b22d31d1b6
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, amnesia_tdd_demo_1.0.1.exe
- if ( w_opt_unattended > 0 ) {
- WinWait,Select Setup Language, language
- ControlClick, TNewButton1
- WinWait, Amnesia - The Dark Descent Demo, Welcome
- ControlClick, TNewButton1
- WinWait, Amnesia - The Dark Descent Demo, License
- ControlClick, TNewRadioButton1
- ControlClick, TNewButton2
- WinWait, Amnesia - The Dark Descent Demo, installed?
- ControlClick, TNewButton3
- WinWait, Folder Does Not Exist, created
- ControlClick, Button1
- WinWait, Amnesia - The Dark Descent Demo, shortcuts
- ControlClick, TNewButton4
- WinWait, Amnesia - The Dark Descent Demo, additional tasks
- ControlClick, TNewButton4
- WinWait, Amnesia - The Dark Descent Demo, ready to begin installing
- ControlClick, TNewButton4
- WinWait, Amnesia - The Dark Descent Demo, finished
- ControlClick, TNewButton4
- WinWaitClose, Amnesia - The Dark Descent Demo, finished
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata aoe3_demo games \
- title="Age of Empires III Trial" \
- publisher="Microsoft" \
- year="2005" \
- media="download" \
- file1="aoe3trial.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Age of Empires III Trial/age3.exe"
- load_aoe3_demo()
- {
- w_download "http://download.microsoft.com/download/a/5/2/a525997e-8423-435b-b694-08118d235064/aoe3trial.exe" 2b0a123243092d79f910db5691d99d469f7c17c3
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run aoe3trial.exe
- WinWait,Empires,Welcome
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- winactivate ; else next button click ignored on vista?
- Sleep 500
- ControlClick Button1 ; Next
- WinWait,Empires,Please
- Sleep 500
- ControlClick Button4 ; Next
- WinWait,Empires,Complete
- Sleep 500
- ControlClick Button4 ; Finish
- }
- WinWaitClose
- "
- if w_workaround_wine_bug 24912
- then
- # kill off lingering installer
- w_ahk_do "
- SetTitleMatchMode, 2
- WinKill,Empires
- "
- # or should we just do $WINESERVER -k, like fable_tlc does?
- PID=`ps augxw | grep IDriver | grep -v grep | awk '{print $2}'`
- kill $PID
- fi
- }
- #----------------------------------------------------------------
- w_metadata aoe_demo games \
- title="Age of Empires Demo" \
- publisher="Microsoft" \
- year="1997" \
- media="download" \
- file1="MSAoE.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Age of Empires Trial/empires.exe"
- load_aoe_demo()
- {
- w_download http://download.microsoft.com/download/aoe/Trial/1.0/WIN98/EN-US/MSAoE.exe 23630a65ce4133038107f3175f8fc54a914bc2f3
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- run, MSAoE.exe
- SetTitleMatchMode, 2
- winwait, Microsoft Age of Empires Trial Version
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick, Button1
- winwait, End User License Agreement
- sleep 1000
- ControlClick, Button1
- winwait, Microsoft Age of Empires Trial Version, Setup will install
- sleep 1000
- ControlClick Button2
- winwait, Microsoft Age of Empires Trial Version, Setup has successfully
- sleep 1000
- ControlClick Button1
- }
- WinWaitClose, Microsoft Age of Empires Trial Version
- "
- }
- #----------------------------------------------------------------
- w_metadata acreedbro games \
- title="Assassin's Creed Brotherhood" \
- publisher="Ubisoft" \
- year="2011" \
- media="dvd" \
- file1="ACB.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Ubisoft/Assassin's Creed Brotherhood/AssassinsCreedBrotherhood.exe"
- load_acreedbro()
- {
- w_mount ACB
- w_read_key
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, Brotherhood, Choose
- if ( w_opt_unattended > 0 ) {
- WinActivate
- send {Enter}
- ;ControlClick, Button3 ; Accept default (english)
- winwait, Brotherhood, Welcome
- WinActivate
- send {Enter} ; Next
- winwait, Brotherhood, License
- WinActivate
- send a ; Agree
- sleep 500
- send {Enter} ; Next
- winwait, Brotherhood, begin
- send {Enter} ; Install
- }
- winwait, Brotherhood, Finish
- if ( w_opt_unattended > 0 ) {
- ControlClick Button4
- send {Enter} ; Finish
- }
- WinWaitClose
- "
- w_download http://static3.cdn.ubi.com/ac_brotherhood/ac_brotherhood_1.01_ww.exe a2b76f16616709cc16537b0e98faa4181ca904ce
- # FIXME: figure out why these executables don't exit, and do a proper workaround or fix
- sleep 10
- if ps augxw | grep -i exe | egrep 'winemenubuilder.exe|setup.exe|PnkBstrA.exe | egrep -v egrep'
- then
- w_warn "Killing processes so patcher does not complain about game still running"
- $WINESERVER -k
- sleep 10
- fi
- w_info "Applying patch $W_CACHE/$W_PACKAGE/ac_brotherhood_1.01_ww.exe..."
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run ac_brotherhood_1.01_ww.exe
- WinWait, Choose Setup Language, Select
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, Brotherhood 1.01, License
- WinActivate
- send a ; Agree
- sleep 500
- send {Enter} ; Next
- winwait, Brotherhood 1.01, Details
- ControlClick Button1 ; Next
- }
- winwait, Brotherhood 1.01, Complete
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata atmosphir games \
- title="Atmosphir" \
- publisher="Minor Studios" \
- year="2011" \
- media="manual_download" \
- file1="Atmosphir Installer v1.0.0 fixed.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Minor Studios/Atmosphir/Atmosphir.exe" \
- homepage="http://www.atmosphir.com"
- load_atmosphir()
- {
- w_download_manual http://download.cnet.com/Atmosphir/3000-7492_4-75335647.html "Atmosphir Installer v1.0.0 fixed.exe" 3ee46b45ea9a8e4a8888148556efb7e61882f7d0
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- run Atmosphir Installer v1.0.0 fixed.exe
- winwait, Atmosphir Setup, Welcome
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick Button2
- winwait, Atmosphir Setup, License Agreement
- sleep 1000
- ControlClick Button2
- winwait, Atmosphir Setup, Choose Install Location
- sleep 1000
- ControlClick Button2
- winwait, Atmosphir Setup, Choose Start Menu Folder
- sleep 1000
- ControlClick Button2
- }
- winwait, Atmosphir Setup, Installation complete
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- send {Space} ; ControlClick Button4 # start
- sleep 1000
- ControlClick Button2
- ; Let the launcher do the initial full download
- winwait, Atmosphir Launcher
- winwaitclose
- ; then kill the game when it starts
- winwait, Atmosphir
- ;winkill ; doesn't work, game traps it
- winclose
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata avatar_demo games \
- title="James Camerons Avatar: The Game Demo" \
- publisher="Ubisoft" \
- year="2009" \
- media="manual_download" \
- file1="Avatar_The_Game_Demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Ubisoft/Demo/James Cameron's AVATAR - THE GAME (Demo)/bin/AvatarDemo.exe"
- load_avatar_demo()
- {
- w_download_manual http://www.fileplanet.com/207386/200000/fileinfo/Avatar:-The-Game-Demo Avatar_The_Game_Demo.exe 8d8e4c82312962706bd2620406d592db4f0fa9c1
- if w_workaround_wine_bug 23094 "Installing Visual C++ 2005 runtime to avoid installer crash"
- then
- w_call vcrun2005
- fi
- cd "$W_TMP"
- w_try_unrar "$W_CACHE/$W_PACKAGE/Avatar_The_Game_Demo.exe"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run, setup.exe
- winwait, Language
- u = $W_OPT_UNATTENDED
- if ( u > 0 ) {
- WinActivate
- controlclick, Button1
- winwait, AVATAR, Welcome
- controlclick, Button1
- winwait, AVATAR, License
- controlclick, Button5
- controlclick, Button2
- winwait, AVATAR, setup type
- controlclick, Button2
- }
- winwait AVATAR
- if ( u > 0 ) {
- ; Strange CRC error workaround. Will check this out. Stay tuned.
- loop
- {
- ifwinexist, CRC Error
- {
- winactivate, CRC Error
- controlclick, Button3, CRC Error ; ignore
- }
- ifwinexist, AVATAR, Complete
- {
- controlclick, Button4
- break
- }
- sleep 1000
- }
- }
- winwaitclose AVATAR
- "
- }
- #----------------------------------------------------------------
- w_metadata bttf101 games \
- title="Back to the Future Episode 1" \
- publisher="Telltale" \
- year="2011" \
- media="manual_download" \
- file1="bttf_101_setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Telltale Games/Back to the Future The Game/Episode 1/BackToTheFuture101.exe"
- load_bttf101()
- {
- w_download_manual http://www.telltalegames.com/bttf bttf_101_setup.exe 9b15e26d9b4d454f714d6559efe509562df9c10b
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run, bttf_101_setup.exe
- winwait, Back to the Future, Welcome
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button2 ; Next
- winwait, Back to the Future, Checking DirectX
- ControlClick, Button5 ; Don't check
- ControlClick, Button2 ; Next
- winwait, Back to the Future, License
- ControlClick, Button2 ; Agree
- winwait, Back to the Future, Location
- ControlClick, Button2 ; Install
- }
- winwait, Back to the Future, has been installed
- if ( w_opt_unattended > 0 ) {
- ControlClick Button4 ; Don't start now
- ControlClick Button2 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata bioshock_demo games \
- title="Bioshock Demo" \
- publisher="2K Games" \
- year="2007" \
- media="download" \
- file1="nzd_BioShockPC.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/2K Games/BioShock Demo/Builds/Release/Bioshock.exe"
- load_bioshock_demo()
- {
- w_download http://us.download.nvidia.com/downloads/nZone/demos/nzd_BioShockPC.zip 7a19186602cec5210e4505b58965e8c04945b3cf
- w_info "Unzipping demo, installer will start in about 30 seconds."
- w_try unzip "$W_CACHE/$W_PACKAGE/nzd_BioShockPC.zip" -d "$W_TMP/$W_PACKAGE"
- cd "$W_TMP/$W_PACKAGE/BioShock PC Demo"
- w_ahk_do "
- SetTitleMatchMode, 2
- run setup.exe
- winwait, BioShock Demo - InstallShield Wizard, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- sleep 2000
- ControlClick, Button3
- ControlClick, Button3
- winwait, BioShock Demo - InstallShield Wizard, Welcome
- sleep 1000
- ControlClick, Button1
- winwait, BioShock Demo - InstallShield Wizard, Please read
- sleep 1000
- ControlClick, Button5
- sleep 1000
- ControlClick, Button2
- winwait, BioShock Demo - InstallShield Wizard, Select the setup type
- sleep 1000
- ControlClick, Button2
- winwait, BioShock Demo - InstallShield Wizard, Click Install to begin
- ControlClick, Button1
- }
- winwait, BioShock Demo - InstallShield Wizard, The InstallShield Wizard has successfully installed BioShock
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick, Button2 ; don't launch
- ControlClick, Button6 ; don't show readme
- send {Enter} ; finish
- }
- winwaitclose
- sleep 3000 ; wait for splash screen to close
- "
- }
- #----------------------------------------------------------------
- w_metadata bioshock2 games \
- title="Bioshock 2" \
- publisher="2K Games" \
- year="2010" \
- media="dvd" \
- file1="BIOSHOCK_2.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/2K Games/BioShock 2/SP/Builds/Binaries/Bioshock2Launcher.exe" \
- installed_exe2="$W_PROGRAMS_X86_WIN/2K Games/BioShock 2/MP/Builds/Binaries/Bioshock2Launcher.exe"
- load_bioshock2()
- {
- w_mount BIOSHOCK_2
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- if ( w_opt_unattended > 0 ) {
- winwait BioShock 2, Language
- controlclick Button3
- winwait BioShock 2, Welcome
- controlclick Button1 ; Accept
- winwait BioShock 2, License
- controlclick Button3 ; Accept
- sleep 500
- controlclick Button1 ; Next
- winwait BioShock 2, Setup Type
- controlclick Button4 ; Next
- winwait BioShock 2, Ready to Install
- controlclick Button1 ; Install
- }
- winwait BioShock 2, Complete
- if ( w_opt_unattended > 0 ) {
- controlclick Button4 ; Finish
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata bfbc2 games \
- title="Battlefield Bad Company 2" \
- publisher="EA" \
- year="2010" \
- media="dvd" \
- file1="BFBC2.iso"
- load_bfbc2()
- {
- # Title of installer window gets the TM symbol wrong, even in utf8 locales.
- # Is it like that in Windows, too?
- w_mount BFBC2
- w_read_key
- w_ahk_do "
- SetTitleMatchMode, 2
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, Bad Company, English
- sleep 500
- ControlClick, Next, Bad Company
- winwait, Bad Company, Registration Code
- sleep 500
- send {RAW}$W_KEY
- ControlClick, Next, Bad Company, Registration Code
- winwait, Bad Company, Setup Wizard will install
- sleep 500
- ControlClick, Button1, Bad Company, Setup Wizard
- winwait, Bad Company, License Agreement
- sleep 500
- ControlClick, Button1, Bad Company, License Agreement
- ControlClick, Button3, Bad Company, License Agreement
- winwait, Bad Company, End-User License Agreement
- sleep 500
- ControlClick, Button1, Bad Company, License Agreement
- ControlClick, Button3, Bad Company, License Agreement
- winwait, Bad Company, Destination Folder
- sleep 500
- ControlClick, Button1, Bad Company, Destination Folder
- winwait, Bad Company, Ready to install
- sleep 500
- ControlClick, Install, Bad Company, Ready to install
- winwait, Authenticate Battlefield
- sleep 500
- ControlClick, Disc authentication, Authenticate Battlefield
- ControlClick, Button4, Authenticate Battlefield
- winwait, Bad Company, PunkBuster
- sleep 500
- ControlClick, Button4, Bad Company, PunkBuster
- ControlClick, Finish, Bad Company
- winwaitclose
- "
- w_warn "Patching to latest version..."
- cd "$W_PROGRAMS_X86_UNIX/Electronic Arts/Battlefield Bad Company 2"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, BFBC2Updater.exe
- winwait, Updater, have to update to
- sleep 500
- ControlClick, Yes, Updater, have to update
- winwait, Updater, successfully updated
- sleep 500
- ControlClick,No, Updater, successfully updated ; Button2
- "
- if w_workaround_wine_bug 22762
- then
- # FIXME: does this directory name change in win7?
- cd "$W_DRIVE_C/users/$LOGNAME/My Documents"
- if test -f BFBC2/settings.ini
- then
- mv BFBC2/settings.ini BFBC2/oldsettings.ini
- sed 's,DxVersion=auto,DxVersion=9,;
- s,Fullscreen=true,Fullscreen=false,' BFBC2/oldsettings.ini > BFBC2/settings.ini
- else
- mkdir -p BFBC2
- echo "[Graphics]" > BFBC2/settings.ini
- echo "DxVersion=9" >> BFBC2/settings.ini
- fi
- fi
- if w_workaround_wine_bug 22961
- then
- w_warn 'If the game says "No CD/DVD error", try "sudo mount -o remount,unhide,uid=`uid -u`". See http://bugs.winehq.org/show_bug.cgi?id=22961 for more info.'
- fi
- }
- #----------------------------------------------------------------
- w_metadata bladekitten_demo games \
- title="Blade Kitten Demo" \
- publisher="Krome Studios" \
- year="2010" \
- media="manual_download" \
- file1="BladeKittenDemoInstall.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Krome Studios/Blade Kitten Demo/BladeKitten_Demo.exe"
- load_bladekitten_demo()
- {
- w_download_manual http://news.bigdownload.com/2010/09/23/download-blade-kitten-demo BladeKittenDemoInstall.exe d3568f94c1ce284b7381e457e9497065bd45001d
- cp "$W_CACHE/$W_PACKAGE"/BladeKittenDemoInstall.exe "$W_TMP"
- cd "$W_TMP"
- w_ahk_do "
- ; This script always gives full window title, so no need to set a different title match mode
- run BladeKittenDemoInstall.exe
- WinWait Blade Kitten Demo Install Package
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button2 ; Install
- WinWait Blade Kitten Demo, Next
- Sleep 500
- ControlClick Button1
- WinWait Blade Kitten Demo, Cost
- Sleep 500
- ControlClick Button1 ; Next
- WinWait Blade Kitten Demo, ready
- Sleep 500
- ControlClick Button1 ; Next
- ; Note - in older versions of wine, the directx installer may take 6-10 minutes at this point
- }
- WinWaitClose
- WinWait Blade Kitten Demo, Complete
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button1 ; Close
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata cnc_tiberian_sun games \
- title="Command and Conquer: Tiberian Sun (2010 edition)" \
- publisher="EA" \
- year="1999" \
- media="download" \
- file1="OfficialCnCTiberianSun.rar" \
- installed_exe1="$W_PROGRAMS_X86_WIN\\EA Games\\Command & Conquer The First Decade\\Command & Conquer(tm) Tiberian Sun(tm)\\SUN\\Game.exe"
- load_cnc_tiberian_sun()
- {
- w_download http://lvlt.bioware.cdn.ea.com/u/f/eagames/cnc3/cnc3tv/Classic/$file1 591aabd639fb9f2d2476a2150f3c00b1162674f5
- cd "$W_PROGRAMS_X86_UNIX"
- # FIXME: we need a progress indicator when unpacking large archives
- w_info "Unpacking rar file. This will take a minute."
- w_try_unrar "$W_CACHE/$W_PACKAGE/$file1"
- }
- #----------------------------------------------------------------
- w_metadata cnc3_demo games \
- title="Command and Conquer 3 Demo" \
- publisher="EA" \
- year="2007" \
- media="download" \
- file1="CnC3Demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/Command & Conquer 3 Tiberium Wars Demo/CNC3Demo.exe"
- load_cnc3_demo()
- {
- w_download "http://largedownloads.ea.com/pub/demos/CommandandConquer3/CnC3Demo.exe" f6af21eba2d17eb6d8bb6a131b501b41c3a7eaf7
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, CnC3Demo.exe
- winwait, Conquer 3, free space to install
- if ( w_opt_unattended > 0 ) {
- controlclick, button1
- winwait, WinZip, After installation
- controlclick, button1
- winwait, Conquer 3, InstallShield
- controlclick, button1
- winwait, Conquer 3, license
- controlclick, button3
- controlclick, button5
- winwait, Conquer 3, setup type
- controlclick, button5
- winwait, Conquer 3, EA Link
- controlclick, button1
- winwait, Conquer 3, GameSpy
- controlclick, button1
- }
- winwait, Conquer 3, Launch the program
- if ( w_opt_unattended > 0 )
- controlclick, button1
- winwaitclose, Conquer 3, Launch the program
- "
- }
- #----------------------------------------------------------------
- w_metadata cnc_redalert3_demo games \
- title="Command & Conquer Red Alert 3 Demo" \
- publisher="EA" \
- year="2008" \
- media="manual_download" \
- file1="RedAlert3Demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/Red Alert 3 Demo/RA3Demo.exe"
- load_cnc_redalert3_demo()
- {
- w_download_manual 'http://www.fileplanet.com/194888/190000/fileinfo/Command-&-Conquer:-Red-Alert-3-Demo' RedAlert3Demo.exe f909b87cc12e386a51be51ede708634348c8af48
- cd "$W_CACHE/$W_PACKAGE"
- if test ! "$W_OPT_UNATTENDED"
- then
- w_try "$WINE" $file1
- else
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run $file1
- winwait, Demo, readme
- send {enter} ; Install button
- winwait, Demo, Agreement
- ControlFocus, TNewCheckListBox1, accept
- send {space} ; accept license
- sleep 1000
- send N ; Next
- winwait, Demo, Agreement ; DirectX
- ControlFocus, TNewCheckListBox1, accept
- send {space} ; accept license
- sleep 1000
- send N ; Next
- winwait, Demo, Next
- send N ; Next
- winwait, Demo, Install
- send {enter} ; Really install
- winwait, Demo, Finish
- send F ; finish
- WinWaitClose
- "
- fi
- }
- #----------------------------------------------------------------
- # http://appdb.winehq.org/objectManager.php?sClass=version&iId=9320
- w_metadata blobby_volley games \
- title="Blobby Volley" \
- publisher="Daniel Skoraszewsky" \
- year="2000" \
- media="manual_download" \
- file1="blobby.zip" \
- installed_exe1="c:/BlobbyVolley/volley.exe"
- load_blobby_volley()
- {
- w_download_manual http://www.chip.de/downloads/Blobby-Volley_12990993.html blobby.zip c7057c77a5009a88d9d877e17a63b5536ebeb177
- w_try_unzip "$W_DRIVE_C/BlobbyVolley" "$W_CACHE/$W_PACKAGE"/blobby.zip
- }
- #----------------------------------------------------------------
- w_metadata cim_demo games \
- title="Cities In Motion Demo" \
- publisher="Paradox Interactive" \
- year="2010" \
- media="manual_download" \
- file1="cim-demo-1-0-8.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Cities In Motion Demo/Cities In Motion.exe"
- load_cim_demo()
- {
- # 29 Mar 2011 d40408b59bc0e6e33b564e9bbb55dbab6c44c630, Inno Setup installer
- #w_download http://www.pcgamestore.com/games/cities-in-motion-nbsp/trial/cim-demo-1-0-8.exe d40408b59bc0e6e33b564e9bbb55dbab6c44c630
- w_download_manual http://www.fileplanet.com/218762/210000/fileinfo/Cities-in-Motion-Demo cim-demo-1-0-8.exe d40408b59bc0e6e33b564e9bbb55dbab6c44c630
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" cim-demo-1-0-8.exe ${W_OPT_UNATTENDED:+ /sp- /silent /norestart}
- }
- #----------------------------------------------------------------
- w_metadata cod_demo games \
- title="Call of Duty demo" \
- publisher="Activision" \
- year="2003" \
- media="manual_download" \
- file1="call_of_duty_demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Call of Duty Single Player Demo/CoDSP.exe"
- load_cod_demo()
- {
- w_download_manual http://www.gamefront.com/files/968870/call_of_duty_demo_exe Call_Of_Duty_Demo.exe 1c480a1e64a80f7f97fd0acd9582fe190c64ad8e
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run Call_Of_Duty_Demo.exe
- WinWait,Call of Duty Single Player Demo,Welcome
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick Button1 ; next
- WinWait,Call of Duty Single Player Demo,License
- sleep 1000
- WinActivate
- send A ; I Agree
- WinWait,Call of Duty Single Player Demo,System
- sleep 1000
- send n ; Next
- WinWait,Call of Duty Single Player Demo,Location
- sleep 1000
- send {Enter}
- WinWait,Call of Duty Single Player Demo,Select
- sleep 1000
- send n
- WinWait,Call of Duty Single Player Demo,Start
- sleep 1000
- send i ; Install
- WinWait,Create Shortcut
- sleep 1000
- send n ; No
- }
- WinWait,Call of Duty Single Player Demo, Complete
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- send {Enter} ; Finish
- }
- WinWaitClose
- "
- if w_workaround_wine_bug 21558
- then
- # Work around a buffer overflow - not really Wine's fault
- setvar="@if not defined %__GL_ExtensionStringVersion% then echo \"If you get a buffer overflow error, set __GL_ExtensionStringVersion=17700 before starting Wine. See http://bugs.winehq.org/show_bug.cgi?id=21558.\""
- else
- setvar=
- fi
- }
- #----------------------------------------------------------------
- w_metadata cod1 games \
- title="Call of Duty" \
- publisher="Activision" \
- year="2003" \
- media="dvd" \
- file1="CoD1.iso" \
- file2="CoD2.iso"
- load_cod1()
- {
- # FIXME: port load_harder from winetricks and use it when caching first disc
- w_mount CoD1
- w_read_key
- __GL_ExtensionStringVersion=17700 w_ahk_do "
- SetTitleMatchMode, 2
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- WinWait, CD Key, enter
- if ( w_opt_unattended > 0 ) {
- send {Raw}$W_KEY
- ControlClick Button1
- WinWait, CD Key, valid
- ControlClick Button1
- WinWait, Call of Duty, Welcome
- ControlClick Button1
- WinWait, Call of Duty, License
- ControlClick Button3
- WinWait, Call of Duty, Minimum
- ControlClick Button4
- WinWait, Call of Duty, Location
- ControlClick Button1
- WinWait, Call of Duty, Folder
- ControlClick Button1
- WinWait, Call of Duty, Start
- ControlClick Button1
- }
- WinWait, Insert CD, Please insert the Call of Duty CD 2
- "
- "$WINE" eject ${W_ISO_MOUNT_LETTER}:
- w_mount CoD2
- w_ahk_do "
- SetTitleMatchMode, 2
- if ( w_opt_unattended > 0 ) {
- Send {Enter} ;continue installation
- }
- WinWait, Insert CD, Please insert the Call of Duty CD 1
- "
- "$WINE" eject ${W_ISO_MOUNT_LETTER}:
- w_mount CoD1
- w_ahk_do "
- SetTitleMatchMode, 2
- if ( w_opt_unattended > 0 ) {
- Send {Enter} ;finalize install
- WinWait, Create Shortcut, Desktop
- ControlClick Button1
- WinWait, DirectX, Call ;directx 9
- ControlClick Button6
- ControlClick Button1
- WinWait, Confirm DX settings, Are
- ControlClick Button2
- }
- ; handle crash here
- WinWait, Installation Complete, Congratulations!
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1
- }
- WinWaitClose
- "
- "$WINE" eject ${W_ISO_MOUNT_LETTER}:
- if w_workaround_wine_bug 21558
- then
- # Work around a buffer overflow - not really Wine's fault
- setvar="@if not defined %__GL_ExtensionStringVersion% then echo \"If you get a buffer overflow error, set __GL_ExtensionStringVersion=17700 before starting Wine. See http://bugs.winehq.org/show_bug.cgi?id=21558.\""
- else
- setvar=
- fi
- w_warn "This game is copy-protected, and requires the real disc in a real drive to run."
- }
- #----------------------------------------------------------------
- w_metadata cod4mw_demo games \
- title="Call of Duty 4 Modern Warfare" \
- publisher="Activision" \
- year="2007" \
- media="manual_download" \
- file1="CoD4MWDemoSetup_v2.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Activision/Call of Duty 4 - Modern Warfare Demo/iw3sp.exe"
- load_cod4mw_demo()
- {
- w_download http://download.cnet.com/Call-of-Duty-4-Modern-Warfare/3000-7441_4-11277584.html CoD4MWDemoSetup_v2.exe 690a5f789a44437ed10784acfdd6418ca4a21886
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, CoD4MWDemoSetup_v2.exe
- WinWait,Modern Warfare,Welcome
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button1 ; Next
- WinWait,Modern Warfare, License
- Sleep 500
- ControlClick Button5 ; accept
- Sleep 2000
- ControlClick Button2 ; Next
- WinWait,Modern Warfare, System Requirements
- Sleep 500
- ControlClick Button1 ; Next
- Sleep 500
- ControlClick Button4 ; Next
- WinWait,Modern Warfare, Typical
- Sleep 500
- ControlClick Button4 ; License
- Sleep 500
- ControlClick Button1 ; Next
- WinWait,Question, shortcut
- Sleep 500
- ControlClick Button1 ; Yes
- WinWait,Microsoft DirectX Setup, license
- Sleep 500
- ControlClick Button1 ; Yes
- WinWait,Modern Warfare, finished
- Sleep 500
- ControlClick Button1 ; Finished
- }
- WinWaitClose,WinZip Self-Extractor - CoD4MWDemoSetup_v2
- "
- }
- #----------------------------------------------------------------
- w_metadata cod5_waw games \
- title="Call of Duty 5: World at War" \
- publisher="Activision" \
- year="2008" \
- media="dvd" \
- file1="5330161c7960f0770e6b05f498ab9fd13be4cfad.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Activision/Call of Duty - World at War/CoDWaW.exe"
- load_cod5_waw()
- {
- w_mount CODWAW
- w_read_key
- w_ahk_do "
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, Call of Duty, Key Code
- sleep 1000
- Send $W_KEY
- sleep 1000
- ControlClick, Button1, Call of Duty, Key Code
- winwait, Key Code Check
- sleep 1000
- controlclick, Button1, Key Code Check
- winwait, Call of Duty, License Agreement
- sleep 1000
- controlclick, Button5, Call of Duty, License Agreement
- sleep 1000
- controlclick, Button2, Call of Duty, License Agreement
- ; It wants to install PunkBuster here...OH BOY! Luckily, we can say no (see below)
- winwait, PunkBuster, Anti-Cheat software system
- sleep 1000
- controlclick, Button1, PunkBuster, Anti-Cheat software system
- winwait, Call of Duty, install PunkBuster
- sleep 1000
- ; Punkbuster: both are scripted below, so you can toggle which one you want.
- ; No:
- ; controlclick, Button2, Call of Duty, install PunkBuster
- ; Yes:
- controlclick, Button1, Call of Duty, install PunkBuster
- winwait, PunkBuster, License
- sleep 1000
- controlclick, Button5, PunkBuster, License
- sleep 1000
- controlclick, Button2, PunkBuster, License
- ; /end punkbuster
- winwait, Call of Duty, Minimum System
- sleep 1000
- controlclick, Button1, Call of Duty, Minimum System
- winwait, Call of Duty, Setup Type
- sleep 1000
- controlclick, Button1, Call of Duty, Setup Type
- ; Exits silently after install
- ; Need to wait here else next verb will run before this one is done
- winwaitclose, Call of Duty
- "
- # FIXME: Install latest updates
- w_warn "This game is copy-protected, and requires the real disc in a real drive to run."
- }
- #----------------------------------------------------------
- w_metadata cojbib_demo games \
- title="Call of Juarez: Bound in Blood Demo" \
- publisher="Ubisoft" \
- year="2009" \
- media="manual_download" \
- file1="CoJ2PC_20090713_DEMO_16_buy_now_INSTALLER.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Ubisoft/Demo/Techland/Call of Juarez - Bound in Blood SP Demo/CoJBiBDemo_x86.exe"
- load_cojbib_demo()
- {
- w_download_manual http://www.gamefront.com/files/14274183/CoJ2PC-20090713-DEMO-16-buy-now-INSTALLER.exe/ CoJ2PC_20090713_DEMO_16_buy_now_INSTALLER.exe 6426101f6c77bacd57c8449b12a3c76db7f761f0
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode 2
- SetWinDelay 500
- run CoJ2PC_20090713_DEMO_16_buy_now_INSTALLER.exe
- winwait Setup, language
- if ( w_opt_unattended > 0 ) {
- controlclick button1 ; next
- winwait Call of Juarez, Welcome
- controlclick button1 ; next
- winwait Call of Juarez, License
- controlclick button2 ; yes
- winwait Call of Juarez, Location
- controlclick button1 ; next
- winwait Call of Juarez, Start
- controlclick button1 ; next
- }
- winwait Call of Juarez, Complete
- if ( w_opt_unattended > 0 )
- controlclick button2 ; next
- winwaitclose Call of Juarez
- "
- }
- #----------------------------------------------------------------
- w_metadata civ4_demo games \
- title="Civilization IV Demo" \
- publisher="Firaxis Games" \
- year="2005" \
- media="manual_download" \
- file1="Civilization4_Demo.zip" \
- installed_file1="$W_PROGRAMS_X86_WIN/Firaxis Games/Sid Meier's Civilization 4 Demo/Civilization4.exe"
- load_civ4_demo()
- {
- w_download_manual http://download.cnet.com/Civilization-IV-demo/3000-7489_4-10465206.html Civilization4_Demo.zip b54f1e5d0a1c2d1ef456d0c20098c23bbb6a0ea7
- w_try_unzip "$W_TMP" "$W_CACHE/$W_PACKAGE"/Civilization4_Demo.zip
- cd "$W_TMP/$W_PACKAGE"
- chmod +x setup.exe
- w_ahk_do "
- SetTitleMatchMode, 2
- run, setup.exe
- winwait, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- Send {enter}
- winwait, Civilization 4, Welcome
- ControlClick &Next >, Civilization 4
- winwait, Civilization 4, I &accept the terms of the license agreement
- ControlClick I &accept, Civilization 4
- ControlClick &Next >, Civilization 4
- winwait, Civilization 4, Express Install
- ControlClick &Next >, Civilization 4
- winwait, Civilization 4, begin installation
- ControlClick &Install, Civilization 4
- winwait, Civilization 4, InstallShield Wizard Complete
- ControlClick Finish, Civilization 4
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata crayonphysics_demo games \
- title="Crayon Physics Deluxe demo" \
- publisher="Kloonigames" \
- year="2011" \
- media="download" \
- file1="crayon_release52demo.exe" \
- installed_exe1="$W_PROGRAMS_WIN/Crayon Physics Deluxe Demo/crayon.exe" \
- homepage="http://crayonphysics.com"
- load_crayonphysics_demo()
- {
- w_download http://crayonphysicsdeluxe.s3.amazonaws.com/crayon_release52demo.exe 4ffd64c630f69e7cf024ef946c2c64c8c4ce4eac
- # Inno Setup installer
- w_try "$WINE" "$W_CACHE/$W_PACKAGE/$file1" ${W_OPT_UNATTENDED:+ /sp- /silent /norestart}
- }
- #----------------------------------------------------------------
- w_metadata crysis2 games \
- title="Crysis 2" \
- publisher="EA" \
- year="2011" \
- media="dvd" \
- file1="Crysis2.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/Electronic Arts/Crytek/Crysis 2/bin32/Crysis2.exe"
- load_crysis2()
- {
- w_mount "Crysis 2"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay, 1000
- run ${W_ISO_MOUNT_LETTER}:EASetup.exe
- if ( w_opt_unattended > 0 ) {
- Loop {
- ; On Windows, this window does not pop up
- ifWinExist, Microsoft Visual C++ 2008 Redistributable Setup
- {
- winwait, Microsoft Visual C++ 2008 Redistributable Setup
- controlclick, Button12 ; Next
- winwait, Visual C++, License
- controlclick, Button11 ; Agree
- controlclick, Button8 ; Install
- winwait, Setup, configuring
- winwaitclose
- winwait, Visual C++, Complete
- controlclick, Button2 ; Finish
- break
- }
- ifWinExist, Setup, Please read the End User
- {
- break
- }
- sleep 1000
- }
- winwait, Setup, Please read the End User
- controlclick, Button1 ; accept
- sleep 500
- ;controlclick, Button3 ; next
- send {Enter}
- ; Again for DirectX
- winwait, Setup, Please read the following End
- ;controlclick, Button1 ; accept
- send a
- sleep 1000
- ;controlclick, Button3 ; next
- send {Enter}
- winwait,Setup, Ready to install
- controlclick, Button1
- }
- winwait, Setup, Click the Finish button
- if ( w_opt_unattended > 0 ) {
- controlclick, Button5 ; Don't install EA Download Manager
- controlclick, Button1 ; Finish
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata csi6_demo games \
- title="CSI: Fatal Conspiracy Demo" \
- publisher="Ubisoft" \
- year="2010" \
- media="manual_download" \
- file1="CSI6_PC_Demo_05.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Ubisoft/Telltale Games/CSI - Fatal Conspiracy Demo/CSI6Demo.exe"
- load_csi6_demo()
- {
- w_download_manual http://www.fileplanet.com/217175/download/CSI:-Fatal-Conspiracy-Demo CSI6_PC_Demo_05.exe 28473b4dc9760b659f24a397192b74d170b593bb
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run, CSI6_PC_Demo_05.exe
- winwait, Installer Language, Please select
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button1 ; Accept default (english)
- ;send {Enter} ; Accept default (english)
- winwait, CSI - Fatal Conspiracy Demo Setup
- send {Enter} ; Next
- winwait, CSI - Fatal Conspiracy Demo Setup, License
- send {Enter} ; Agree
- winwait, CSI - Fatal Conspiracy Demo Setup, Location
- send {Enter} ; Install
- }
- winwait, CSI - Fatal Conspiracy Demo Setup, Finish
- if ( w_opt_unattended > 0 ) {
- ControlClick Button4
- send {Enter} ; Finish
- WinWaitClose
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata darknesswithin2_demo games \
- title="Darkness Within 2 Demo" \
- publisher="Zoetrope Interactive" \
- year="2010" \
- media="manual_download" \
- file1="DarknessWithin2Demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Iceberg Interactive/Darkness Within 2 Demo/DarkLineage.exe"
- load_darknesswithin2_demo()
- {
- w_download_manual http://www.bigdownload.com/games/darkness-within-2-the-dark-lineage/pc/darkness-within-2-the-dark-lineage-demo DarknessWithin2Demo.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, DarknessWithin2Demo.exe
- winwait, Darkness Within, will install
- if ( w_opt_unattended > 0 ) {
- ControlClick, TNewButton1
- winwait, Darkness, License
- ControlClick, TNewRadioButton1
- ControlClick, TNewButton2
- winwait, Darkness, Location
- ControlClick, TNewButton3
- winwait, Darkness, shortcuts
- ControlClick, TNewButton4
- winwait, Darkness, additional
- ControlClick, TNewButton4
- winwait, Darkness, Ready to Install
- ControlClick, TNewButton4
- winwait, PhysX, License
- ControlClick, Button3
- ControlClick, Button4
- winwait, PhysX, successfully
- ControlClick, Button1
- }
- winwait, Darkness, Setup has finished
- if ( w_opt_unattended > 0 ) {
- ControlClick, TNewListBoxButton1
- ControlClick, TNewButton4
- }
- winwaitclose, Darkness, Setup has finished
- "
- if w_workaround_wine_bug 23041
- then
- w_call d3dx9_36
- fi
- }
- #----------------------------------------------------------------
- w_metadata darkspore games \
- title="Darkspore" \
- publisher="EA" \
- year="2011" \
- media="dvd" \
- file1="DARKSPORE.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/Darkspore/DarksporeBin/Darkspore.exe" \
- homepage="http://darkspore.com/"
- load_darkspore()
- {
- # Mount disc, verify that expected file is present
- w_mount DARKSPORE Darkspore.ico
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- if ( w_opt_unattended > 0 ) {
- winwait, Choose Setup Language
- controlclick, Button1 ; ok (accept default, English)
- winwait, InstallShield Wizard, Welcome
- controlclick, Button1 ; Next
- winwait, InstallShield Wizard, License Agreement
- controlclick, Button3 ; Accept
- sleep 1000
- controlclick, Button1 ; Next
- winwait, InstallShield Wizard, Select Features
- controlclick, Button5 ; Next
- winwait, InstallShield Wizard, Ready to Install the Program
- controlclick, Button1 ; Install
- winwait, DirectX
- controlclick, Button1 ; Accept
- sleep 1000
- controlclick, Button4 ; Next
- winwait, DirectX, DirectX setup
- controlclick, Button4
- winwait, DirectX, components installed
- controlclick, Button5 ; Finish
- }
- winwait, InstallShield Wizard, You are now ready
- if ( w_opt_unattended > 0 ) {
- controlclick, Button1 ; Uncheck View Readme.txt
- controlclick, Button4 ; Finish
- }
- WinWaitClose, InstallShield Wizard
- "
- }
- #----------------------------------------------------------------
- w_metadata dcuo games \
- title="DC Universe Online" \
- publisher="EA" \
- year="2011" \
- media="dvd" \
- file1="DCUO - Disc 1.iso" \
- file2="DCUO - Disc 2.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Sony Online Entertainment/Installed Games/DC Universe Online Live/LaunchPad.exe"
- load_dcuo()
- {
- # The installer would take care of this, but let's do it first
- w_call flash
- w_mount "DCUO - Disc 1"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:setup.exe
- if ( w_opt_unattended > 0 ) {
- winwait, DC Universe, Anti-virus
- ControlClick, Button1 ; next
- winwait, DC Universe, License
- ControlClick, Button5 ; accept
- sleep 500
- ControlClick, Button2 ; next
- winwait, DC Universe, Shortcut
- ControlClick, Button3 ; next
- Loop
- {
- IfWinExist, DC Universe, not enough space
- {
- exit 1 ; dang, have to quit
- }
- IfWinExist, DC Universe, Ready
- {
- break
- }
- Sleep 1000
- }
- winwait, DC Universe, Ready
- ControlClick, Button1 ; next
- }
- winwait, Setup Needs The Next Disk, Please insert disk 2
- "
- w_mount "DCUO - Disc 2"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- winwait, Setup Needs The Next Disk, Please insert disk 2
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button2 ; next
- winwaitclose
- Loop
- {
- IfWinExist, DirectX, Welcome
- {
- ControlClick, Button1 ; accept
- Sleep 1000
- ControlClick, Button4 ; next
- WinWait, DirectX, Runtime Install
- ControlClick, Button4 ; next
- WinWait, DirectX, Complete
- ControlClick, Button4 ; next
- sleep 1000
- process, close, dxsetup.exe ; work around strange 'next button does nothing' bug
- }
- IfWinExist, Flash ; a newer version of flash is already installed
- {
- ControlClick, Button3 ; quit
- }
- IfWinExist, DC Universe, Complete
- {
- break
- }
- Sleep 1000
- }
- }
- WinWait, DC Universe, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button4 ; finish
- }
- winwaitclose
- "
- w_warn "Now let the wookie install itself, and then quit."
- }
- #----------------------------------------------------------------
- w_metadata deadspace games \
- title="Dead Space" \
- publisher="EA" \
- year="2008" \
- media="dvd" \
- file1="DEADSPACE.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/Dead Space/Dead Space.exe"
- load_deadspace()
- {
- w_mount DEADSPACE
- if w_workaround_wine_bug 23324
- then
- msvcrun_me_harder="
- winwait, Microsoft
- controlclick, Button1
- "
- else
- msvcrun_me_harder=""
- fi
- w_read_key
- w_ahk_do "
- SetTitleMatchMode, 2
- ; note: if this is the second run, the installer skips the registration code prompt
- run, ${W_ISO_MOUNT_LETTER}:EASetup.exe
- winwait, Dead
- send {Enter}
- winwait, Dead, Registration Code
- send {RAW}$W_KEY
- Sleep 1000
- controlclick, Button2
- $msvcrun_me_harder
- winwait, Setup, License
- Sleep 1000
- controlclick, Button1
- Sleep 1000
- send {Enter}
- winwait, Setup, License
- Sleep 1000
- controlclick, Button1
- Sleep 1000
- send {Enter}
- winwait, Setup, Destination
- Sleep 1000
- controlclick, Button1
- winwait, Setup, begin
- Sleep 1000
- controlclick, Button1
- winwait, Setup, Finish
- Sleep 1000
- controlclick, Button5
- controlclick, Button1
- "
- }
- #----------------------------------------------------------------
- w_metadata deadspace2 games \
- title="Dead Space 2" \
- publisher="EA" \
- year="2011" \
- media="dvd" \
- file1="Disc1.iso" \
- file2="Disc2.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/EA Games/Dead Space 2/deadspace2.exe" \
- load_deadspace2()
- {
- w_read_key
- w_mount Disc1
- # FIXME: this bug was fixed in 1.3.36, so this is unneccessary
- #
- # Work around bug 25963 (fails to switch discs)
- w_warn "Copying discs to hard drive. This will take a few minutes."
- cd "$W_TMP"
- # Copy takes a LONG time, so offer a way to avoid copy while debugging verb
- # You'll need to comment out the five "rm -rf"'s, too.
- if test ! -f easetup.exe
- then
- w_try cp -R "$W_ISO_MOUNT_ROOT"/* .
- # Make the directories writable, else 2nd disc copy will fail.
- w_try chmod -R +w .
- w_mount Disc2
- # On Linux, use symlinks for disc 2. (On Cygwin, we'd have to copy.)
- w_try ln -s "$W_ISO_MOUNT_ROOT"/*.dat .
- mkdir -p movies/en movies/fr
- w_try ln -s "$W_ISO_MOUNT_ROOT"/movies/en/* movies/en/
- w_try ln -s "$W_ISO_MOUNT_ROOT"/movies/fr/* movies/fr/
- # Make the files writable, otherwise you'll get errors when trying to remove the temp directory.
- chmod -R +w .
- fi
- # Install takes a long time, so offer a way to skip installation
- # and go straight to activation while debugging that
- if ! test -f "$W_PROGRAMS_X86_UNIX/EA Games/Dead Space 2/deadspace2.exe"
- then
- w_ahk_do "
- run easetup.exe
- if ( w_opt_unattended > 0 ) {
- SetTitleMatchMode, 2
- ; Not all systems need the Visual C++ runtime
- loop
- {
- ifwinexist, Microsoft Visual C++ 2008 Redistributable Setup
- {
- sleep 500
- controlclick, Button12 ; Next
- winwait, Visual C++, License
- sleep 500
- controlclick, Button11 ; Agree
- sleep 500
- controlclick, Button8 ; Install
- winwait, Setup, configuring
- winwaitclose
- winwait, Visual C++, Complete
- sleep 500
- controlclick, Button2 ; Finish
- break
- }
- ifwinexist, Setup, Dead Space
- {
- break
- }
- sleep 1000
- }
- winwait, Setup, License ; Dead Space license
- sleep 500
- controlclick Button1 ; accept
- controlclick Button3 ; next
- SetTitleMatchMode, slow ; since word DirectX in next dialog can only be read 'slowly'
- winwait, Setup, DirectX ; DirectX license
- sleep 500
- controlclick Button1 ; accept
- controlclick Button3 ; next
- winwait, Setup, Ready to install
- sleep 500
- controlclick Button1 ; Install
- }
- winwait, Setup, Completed
- if ( w_opt_unattended > 0 ) {
- controlclick Button5 ; (Don't) install EA Download Manager
- controlclick Button1 ; Finish
- }
- winwaitclose
- "
- fi
- # Activate the game
- cd "$W_PROGRAMS_X86/EA Games/Dead Space 2"
- w_ahk_do "
- run activation.exe
- if ( w_opt_unattended > 0 ) {
- SetTitleMatchMode, 2
- WinWait, Product activation
- sleep 500
- controlclick TBitBtn2 ; Next
- WinWait, Product activation, Serial
- sleep 500
- send $W_KEY
- controlclick TBitBtn3 ; Next
- WinWait, Information
- sleep 4000 ; let user see what happened
- send {Enter}
- }
- WinWaitClose, Product activation
- "
- }
- #----------------------------------------------------------------
- w_metadata deusex2_demo games \
- title="Deus Ex 2 / Deus Ex: Invisible War Demo" \
- publisher="Eidos" \
- year="2003" \
- media="manual_download" \
- file1="dxiw_demo.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Deus Ex - Invisible War Demo/System/DX2.exe"
- load_deusex2_demo()
- {
- w_download_manual "http://www.techpowerup.com/downloads/1730/Deus_Ex:_Invisible_War_Demo.html" dxiw_demo.zip ccae48fb046d912b3714ea1b4be4294e74bb3092
- w_try unzip "$W_CACHE/$W_PACKAGE/dxiw_demo.zip" -d "$W_TMP"
- cd "$W_TMP"
- w_ahk_do "
- SetTitleMatchMode 2
- SetWinDelay 500
- run setup.exe
- winwait Deus Ex, Launch
- if ( w_opt_unattended > 0 ) {
- controlclick button2
- winwait Deus Ex, Welcome
- controlclick button1
- winwait Deus Ex, License
- controlclick button3 ;accept
- controlclick button1 ;next
- winwait Deus Ex, Setup Type
- controlclick button4
- winwait Deus Ex, Install
- controlclick button1
- winwait Question, Readme
- controlclick button2
- winwait Question, play
- controlclick button2
- }
- winwait Deus Ex, Complete
- if ( w_opt_unattended > 0 )
- controlclick button4
- winwaitclose Deus Ex, Complete
- "
- }
- #----------------------------------------------------------------
- w_metadata diablo2 games \
- title="Diablo II" \
- publisher="Blizzard" \
- year="2000" \
- media="cd" \
- file1="INSTALL.iso" \
- file2="PLAYDISC.iso" \
- file3="CINEMATICS.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Diablo II/Diablo II.exe"
- load_diablo2()
- {
- w_download http://ftp.blizzard.com/pub/diablo2/patches/PC/D2Patch_113c.exe c78761bfb06999a9788f25a23a1ed30260ffb8ab
- w_read_key
- w_mount INSTALL
- w_ahk_do "
- SetWinDelay 500
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, Diablo II Setup
- send {i}
- winwait, Choose Installation Size
- send {u}
- send {Enter}
- send {Raw}$LOGNAME
- send {Tab}{Raw}$W_KEY
- send {Enter}
- winwait, Diablo II - choose install directory
- send {Enter}
- winwait, Desktop Shortcut
- send {N}
- winwait, Insert Disc"
- w_mount PLAYDISC
- # Needed by patch 1.13c to avoid disc swapping
- cp "$W_ISO_MOUNT_ROOT"/d2music.mpq "$W_PROGRAMS_UNIX/Diablo II/"
- w_ahk_do "
- send, {Enter}
- Sleep 1000
- winwait, Insert Disc"
- w_mount CINEMATICS
- w_ahk_do "
- send, {Enter}
- Sleep 1000
- winwait, Insert Disc"
- w_mount INSTALL
- w_ahk_do "
- send, {Enter}
- Sleep 1000
- winwait, View ReadMe?
- ControlClick &No, View ReadMe?
- winwait, Register Diablo II Electronically?
- send {N}
- winwait, Diablo II Setup - Video Test
- ControlClick &Cancel, Diablo II Setup - Video Test
- winclose, Diablo II Setup"
- cd "$W_CACHE"/$W_PACKAGE
- w_try "$WINE" D2Patch_113c.exe
- w_ahk_do "
- winwait, Blizzard Updater v2.72, has completed
- Sleep 1000
- send {Enter}
- winwait Diablo II
- Sleep 1000
- ControlClick &Cancel, Diablo II"
- # Dagnabbit, the darn updater starts the game after it updates, no matter what I do?
- w_killall "Game.exe"
- }
- w_metadata digitanks_demo games \
- title="Digitanks Demo" \
- publisher="Lunar Workshop" \
- year="2011" \
- media="download" \
- file1="digitanks.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Digitanks/digitanksdemo.exe" \
- homepage="http://www.digitanks.com"
- load_digitanks_demo()
- {
- # 8 june 2011: f204b13dc64c1a54fb1aaf27187c6083ebb16acf
- # 11 Nov 2011: e54ffb07232f434bcfaf7b3d43ddf9affa93ef15
- w_download "http://static.digitanks.com/files/digitanks.exe" e54ffb07232f434bcfaf7b3d43ddf9affa93ef15
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" $file1 ${W_OPT_UNATTENDED:+ /S}
- if w_workaround_wine_bug 8060 "installing corefonts"
- then
- w_call corefonts
- fi
- }
- w_metadata dirt2_demo games \
- title="Dirt 2 Demo" \
- publisher="Codemasters" \
- year="2009" \
- media="manual_download" \
- file1="Dirt2Demo.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Codemasters/DiRT2 Demo/dirt2.exe"
- load_dirt2_demo()
- {
- w_download_manual http://www.joystiq.com/game/dirt-2/download/dirt-2-demo/ Dirt2Demo.zip 13af1beb8c4f6300e4655045b66aea1f8a29f2b3
- w_try_unzip "$W_TMP/$W_PACKAGE" "$W_CACHE/$W_PACKAGE/Dirt2Demo.zip"
- if w_workaround_wine_bug 23532
- then
- w_call gfw
- fi
- if w_workaround_wine_bug 24868
- then
- w_call d3dx9_36
- fi
- cd "$W_TMP/$W_PACKAGE"
- w_ahk_do "
- Run, "Setup.exe"
- WinWait, Choose Setup Language, Select
- if ( w_opt_unattended > 0 ) {
- sleep 500
- ControlClick Button1 ;next
- WinWait, DiRT2 Demo - InstallShield Wizard, Welcome
- sleep 500
- ControlClick Button1 ;next
- WinWait, DiRT2 Demo - InstallShield Wizard, License
- sleep 500
- ControlClick Button3 ;i accept
- sleep 500
- ControlClick Button1 ;next
- WinWait, DiRT2 Demo - InstallShield Wizard, Setup
- sleep 500
- ControlClick Button4 ;next
- WinWait, InstallShield Wizard, In order
- sleep 500
- ControlClick Button1 ;next
- WinWait, DiRT2 Demo - InstallShield Wizard, Ready
- sleep 500
- ControlClick Button1 ;next
- }
- WinWait, DiRT2 Demo - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- sleep 500
- ControlClick Button4 ;finish
- }
- WinWaitClose, DiRT2 Demo - InstallShield Wizard, Complete
- "
- }
- #----------------------------------------------------------------
- w_metadata divinity2_demo games \
- title="Divinity II Demo" \
- publisher="DTP Entertainment" \
- year="2010" \
- media="manual_download" \
- file1="Divinity2_DEMO_EN_US.zip" \
- installed_file1="$W_PROGRAMS_X86_WIN/Divinity II - Ego Draconis - Demo/Bin/Divinity2_Demo.exe"
- load_divinity2_demo()
- {
- w_download_manual "http://www.gamershell.com/download_54304.shtml" $file1 2a33670b705d4da89e1119d808cda64977bb6096
- w_try unzip -d "$W_TMP" "$W_CACHE/$W_PACKAGE/$file1"
- cd "$W_TMP"
- w_ahk_do "
- Run, Divinity2_DEMO_EN_US.exe
- SetTitleMatchMode, 2
- WinWait,Setup - Divinity II - Ego Draconis - Demo
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick TNewButton1 ; Next
- WinWait,Setup - Divinity II - Ego Draconis - Demo, read
- Sleep 500
- ControlClick TNewRadioButton1 ;agreement
- Sleep 500
- ControlClick TNewButton2 ; Next
- WinWait,Setup - Divinity II - Ego Draconis - Demo, into
- Sleep 500
- ControlClick TNewButton3 ; Next
- WinWait,Setup - Divinity II - Ego Draconis - Demo, place
- Sleep 500
- ControlClick TNewButton4 ; Next
- WinWait,Setup - Divinity II - Ego Draconis - Demo, installation
- Sleep 500
- ControlClick TNewButton4 ; Install
- Loop
- {
- IfWinExist, NVIDIA PhysX Setup, must
- {
- WinWait,NVIDIA PhysX Setup, must
- Sleep 500
- ControlClick Button3 ;accept
- Sleep 500
- ControlClick Button4 ; Next
- WinWait,NVIDIA PhysX Setup, been
- Sleep 500
- ControlClick Button1 ; Finish
- }
- IfWinExist,Setup - Divinity II - Ego Draconis - Demo, launched
- {
- break
- }
- Sleep 2000
- }
- WinWait,Setup - Divinity II - Ego Draconis - Demo, launched
- Sleep 500
- ControlFocus, TNewCheckListBox1, Desktop
- Sleep 500
- Send {Space}
- Sleep 500
- ControlClick TNewButton4 ; Finish
- }
- WinWaitClose
- "
- if w_workaround_wine_bug 24417
- then
- w_call d3dx9_36
- fi
- if w_workaround_wine_bug 25329
- then
- w_call wmp9
- fi
- }
- #----------------------------------------------------------------
- w_metadata demolition_company_demo games \
- title="Demolition Company demo" \
- publisher="Giants Software" \
- year="2010" \
- media="manual_download" \
- file1="DemolitionCompanyDemoENv2.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Demolition Company Demo/DemolitionCompany.exe"
- load_demolition_company_demo()
- {
- w_download_manual http://www.demolitioncompany-thegame.com/demo.php DemolitionCompanyDemoENv2.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, DemolitionCompanyDemoENv2.exe
- winwait, Setup - Demolition, This will install
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, TNewButton1, Setup - Demolition, This will install
- winwait, Setup - Demolition, License Agreement
- sleep 1000
- controlclick, TNewRadioButton1, Setup - Demolition, License Agreement
- sleep 1000
- controlclick, TNewButton2, Setup - Demolition, License Agreement
- winwait, Setup - Demolition, Setup Type
- sleep 1000
- controlclick, TNewButton2, Setup - Demolition, Setup Type
- winwait, Setup - Demolition, Ready to Install
- sleep 1000
- controlclick, TNewButton2, Setup - Demolition, Ready to Install
- winwait, Setup - Demolition, Completing
- sleep 1000
- controlclick, TNewButton2, Setup - Demolition, Completing
- }
- winwaitclose, Setup - Demolition
- "
- }
- #----------------------------------------------------------------
- w_metadata dragonage games \
- title="Dragon Age: Origins" \
- publisher="Bioware / EA" \
- year="2009" \
- media="dvd" \
- file1="DragonAge.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Dragon Age/bin_ship/daorigins.exe"
- load_dragonage()
- {
- w_read_key
- # game can do this, why do we need to?
- w_call physx
- w_mount DragonAge
- w_ahk_do "
- SetWinDelay 1000
- Run, ${W_ISO_MOUNT_LETTER}:Setup.exe
- SetTitleMatchMode, 2
- winwait, Installer Language
- if ( w_opt_unattended > 0 ) {
- WinActivate
- send {Enter}
- winwait, Dragon Age: Origins Setup
- ControlClick Next, Dragon Age: Origins Setup
- winwait, Dragon Age: Origins Setup, End User License
- ;ControlClick Button4, Dragon Age: Origins Setup ; agree
- send {Tab}a ; agree
- ;ControlClick I agree, Dragon Age: Origins Setup
- send {Enter} ; continue
- SetTitleMatchMode, 1
- winwait, Dragon Age: Origins, Registration
- send $W_KEY
- send {Enter}
- }
- winwait, Dragon Age: Origins Setup, Install Type
- if ( w_opt_unattended > 0 )
- send {Enter}
- winwaitclose
- "
- # Since the installer explodes on exit, just wait for the
- # last file it's known to create
- while ! test -f "$W_PROGRAMS_X86_UNIX/Dragon Age/bin_ship/DAOriginsLauncher-MCE.png"
- do
- w_info "Waiting for installer to finish..."
- sleep 1
- done
- # FIXME: does this directory name change in win7?
- ini="$W_DRIVE_C/users/$LOGNAME/My Documents/BioWare/Dragon Age/Settings/DragonAge.ini"
- if ! test -f "$ini"
- then
- w_warn "$ini not found?"
- else
- cp -f "$ini" "$ini.old"
- fi
- if w_workaround_wine_bug 22383 "use strictdrawordering to avoid video problems"
- then
- w_call strictdrawordering=enabled
- fi
- if w_workaround_wine_bug 22557 "Setting UseVSync=0 to avoid black menu"
- then
- sed 's,UseVSync=1,UseVSync=0,' < "$ini" > "$ini.new"
- mv -f "$ini.new" "$ini"
- fi
- }
- #----------------------------------------------------------------
- w_metadata dragonage_ue games \
- title="Dragon Age: Origins - Ultimate Edition" \
- publisher="Bioware / EA" \
- year="2010" \
- media="dvd" \
- file1="DRAGONAGE-1.iso" \
- file2="DRAGONAGE-2.iso"
- load_dragonage_ue()
- {
- w_read_key
- w_mount DRAGONAGE Setup.exe 1
- # Annoyingly, it runs a webbrowser so you can activate the extra stuff. Disable that, and w_warn the user after install:
- WINEDLLOVERRIDES="winebrowser.exe="
- export WINEDLLOVERRIDES
- w_ahk_do "
- SetTitleMatchMode, 2
- SetTitleMatchMode, slow
- SetWinDelay 1000
- Run, ${W_ISO_MOUNT_LETTER}:Setup.exe
- winwait, Installer, English
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1, Installer, English
- winwait, Dragon Age: Origins Setup
- ControlClick Button2, Dragon Age: Origins Setup
- winwait, Dragon Age: Origins Setup, License Agreement
- ControlClick Button4, Dragon Age: Origins Setup
- ControlClick Button2, Dragon Age: Origins Setup
- winwait, Dragon Age: Origins, Registration
- controlclick, Edit1
- sleep 1000
- send $W_KEY
- send {Enter}
- winwait, Dragon Age: Origins Setup, Install Type
- controlclick, Button2, Dragon Age: Origins Setup, Install Type
- winwait, Dragon Age: Origins Setup, expanded content
- controlclick, Button1
- }
- winwait, Insert Disc...
- "
- w_mount DRAGONAGE data/ultimate_en.rar 2
- w_ahk_do "
- sleep 5000
- SetTitleMatchMode, 2
- if ( w_opt_unattended > 0 ) {
- controlclick, Button2, Insert Disc...
- winwait, Dragon Age, Setup was completed successfully
- controlclick, Button2, Dragon Age, Setup was completed successfully
- }
- winwait, Dragon Age, Click Finish to close
- if ( w_opt_unattended > 0 ) {
- controlclick, Button5, Dragon Age, Click Finish to close
- controlclick, Button2, Dragon Age, Click Finish to close
- }
- winwaitclose
- "
- if w_workaround_wine_bug 22383
- then
- w_try_winetricks strictdrawordering=enabled
- fi
- if w_workaround_wine_bug 23730
- then
- w_warn "Run with WINEDEBUG=-all to reduce flickering."
- fi
- if w_workaround_wine_bug 23081
- then
- w_warn "If you still see flickering, try applying the patch from http://bugs.winehq.org/show_bug.cgi?id=23081"
- fi
- w_warn "To activate the additional content, visit http://social.bioware.com/redeem_code.php?path=/dragonage/pc/dlcactivate/en"
- }
- #----------------------------------------------------------------
- w_metadata dragonage2_demo games \
- title="Dragon Age II demo" \
- publisher="EA/Bioware" \
- year="2011" \
- media="download" \
- file1="DragonAge2Demo_F93M2qCj_EnEsItPlRu.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Dragon Age 2 Demo/bin_ship/DragonAge2Demo.exe"
- load_dragonage2_demo()
- {
- w_download http://lvlt.bioware.cdn.ea.com/bioware/u/f/eagames/bioware/dragonage2/demo/DragonAge2Demo_F93M2qCj_EnEsItPlRu.exe a94715cd7943533a3cf1d84d40e667b04e1abc2e
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 2
- run, DragonAge2Demo_F93M2qCj_EnEsItPlRu.exe
- winwait, Installer Language
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, Dragon Age II Demo Setup
- send {Enter}
- winwait, Dragon Age II Demo Setup, License
- send !a
- send {Enter}
- winwait, Dragon Age II Demo Setup, Select
- send {Enter}
- }
- winwait, Dragon Age II Demo Setup, Complete, completed
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, Dragon Age II Demo Setup, Completing
- send {Enter}
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata eve games \
- title="EVE Online Tyrannis" \
- publisher="CCP Games" \
- year="2011" \
- media="download" \
- file1="EVE_Online_Installer_561078.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/CCP/EVE/eve.exe"
- load_eve()
- {
- # http://www.eveonline.com/download/?fallback=1&
- w_download http://content.eveonline.com/561078/EVE_Online_Installer_561078.exe 5b5f0cd4fbd42f82b1d1cccb2e22ddeed97d1d3a
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- run, $file1
- WinWait, EVE Online
- if ( w_opt_unattended > 0 ) {
- WinActivate
- send {Enter} ; Next
- WinWait, EVE,License Agreement
- WinActivate
- send {Enter} ; Next
- WinWait, EVE,Choose Install
- WinActivate
- send {Enter} ; Install
- WinWait, EVE,has been installed
- WinActivate
- ;Send {Tab}{Tab}{Tab} ; select Launch
- ;Send {Space} ; untick Launch
- ControlClick Button4 ; untick Launch
- Send {Enter} ; Finish (Button2)
- }
- WinWaitClose, EVE Online
- "
- }
- #----------------------------------------------------------------
- w_metadata fable_tlc games \
- title="Fable: The Lost Chapters" \
- publisher="Microsoft" \
- year="2005" \
- media="cd" \
- file1="FABLE_DISC_1.iso" \
- file2="FABLE DISC 2.iso" \
- file3="FABLE DISC 3.iso" \
- file4="FABLE DISC 4.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Fable - The Lost Chapters/Fable.exe"
- load_fable_tlc()
- {
- w_read_key
- if w_workaround_wine_bug 657
- then
- w_call mfc42
- fi
- w_mount FABLE_DISK_1
- w_ahk_do "
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:setup.exe
- WinWait,Fable,Welcome
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button1 ; Next
- WinWait,Fable,Please
- Sleep 500
- ControlClick Button4 ; Next
- WinWait,Fable,Product Key
- Sleep 500
- Send $W_KEY
- Send {Enter}
- }
- WinWait,Fable,Disk 2
- "
- w_mount "FABLE DISK 2"
- w_ahk_do "
- SetTitleMatchMode, 2
- WinWait,Fable,Disk 2
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button2 ; Retry
- }
- WinWait,Fable,Disk 3
- "
- w_mount "FABLE DISK 3"
- w_ahk_do "
- SetTitleMatchMode, 2
- WinWait,Fable,Disk 3
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button2 ; Retry
- }
- WinWait,Fable,Disk 4
- "
- w_mount "FABLE DISK 4"
- w_ahk_do "
- SetTitleMatchMode, 2
- WinWait,Fable,Disk 4
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button2 ; Retry
- }
- WinWait,Fable,Disk 1
- WinKill
- "
- # Now tell game what the real disc is so user can insert disc 1 and run the game!
- # FIXME: don't guess it's D:
- cat > "$W_TMP"/$W_PACKAGE.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\D3BE9C3CAF4226447B48E06CAACF2DDD\InstallProperties]
- "InstallSource"="D:\\"
- _EOF_
- try_regedit "$W_TMP_WIN"\\$W_PACKAGE.reg
- # Also accept EULA
- cat > "$W_TMP"/$W_PACKAGE.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Microsoft\Microsoft Games\Fable TLC]
- "FIRSTRUN"=dword:00000001
- _EOF_
- try_regedit "$W_TMP_WIN"\\$W_PACKAGE.reg
- if w_workaround_wine_bug 24912
- then
- # kill off lingering installer
- w_ahk_do "
- SetTitleMatchMode, 2
- WinKill,Fable
- "
- w_killall IDriverT.exe
- w_killall IDriver.exe
- fi
- if w_workaround_wine_bug 25352
- then
- w_call devenum
- w_call quartz
- w_call wmp9
- fi
- if w_workaround_wine_bug 20074
- then
- w_call d3dx9_36
- fi
- }
- #----------------------------------------------------------------
- w_metadata farmsim2011_demo games \
- title="Farming Simulator 2011 Demo" \
- publisher="Astragon" \
- year="2011" \
- media="manual_download" \
- file1="FarmingSimulator2011DemoEN.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Farming Simulator 2011 Demo/game.exe"
- load_farmsim2011_demo()
- {
- # From http://www.landwirtschafts-simulator.de/demo.php
- w_download_manual http://www.landwirtschafts-simulator.de/demo.php FarmingSimulator2011DemoEN.exe c1221110e55625a3e797a3060c4bf5e3219bf2f0
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 2
- run, FarmingSimulator2011DemoEN.exe
- if ( w_opt_unattended > 0 ) {
- WinWait, Setup - Farming Simulator 2011 Demo
- ControlClick TNewButton1 ; Next
- WinWait, Setup - Farming Simulator 2011 Demo, License Agreement
- ControlClick TNewRadioButton1 ; Accept
- ControlClick TNewButton2 ; Next
- WinWait, Setup - Farming Simulator 2011 Demo, Setup Type
- ControlClick TNewButton2 ; Next
- WinWait, Setup - Farming Simulator 2011 Demo, Ready to Install
- ControlClick TNewButton2 ; Install
- }
- WinWait, Setup - Farming Simulator 2011 Demo, finished
- if ( w_opt_unattended > 0 )
- ControlClick TNewButton2 ; Finish
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata fifa11_demo games \
- title="FIFA 11 Demo" \
- publisher="EA Sports" \
- year="2010" \
- media="download" \
- file1="fifa11_pc_demo_NA.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/EA Sports/FIFA 11 Demo/Game/fifa.exe"
- load_fifa11_demo()
- {
- # From http://www.ea.com/uk/football/news/fifa11-download-2
- w_download "http://static.cdn.ea.com/fifa/u/f/fifa11_pc_demo_NA.zip" c3a66284bffb985f31b11e477dade50c0d4cac52
- w_try unzip -d "$W_TMP" "$W_CACHE/$W_PACKAGE/fifa11_pc_demo_NA.zip"
- cd "$W_TMP"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, EASetup.exe
- winwait, Microsoft Visual C++ 2008, wizard
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, Button12, Microsoft Visual C++ 2008, wizard
- winwait, Microsoft Visual C++ 2008, License Terms
- sleep 1000
- controlclick, Button11, Microsoft Visual C++ 2008, License Terms
- sleep 1000
- controlclick, Button8, Microsoft Visual C++ 2008, License Terms
- winwait, Setup, is configuring
- winwaitclose
- winwait, Microsoft Visual C++ 2008, Setup Complete
- sleep 1000
- controlclick, Button2
- ; There are two license agreements...one is for Directx
- winwait, FIFA 11, I &accept the terms in the End User License Agreement
- sleep 1000
- controlclick, Button1
- sleep 1000
- controlclick, Button3
- winwaitclose
- winwait, FIFA 11, I &accept the terms in the End User License Agreement
- sleep 1000
- controlclick, Button1, FIFA 11, I &accept the terms in the End User License Agreement
- sleep 1000
- controlclick, Button3, FIFA 11, I &accept the terms in the End User License Agreement
- winwait, FIFA 11, Ready to install FIFA 11
- sleep 1000
- controlclick, Button1, FIFA 11, Ready to install FIFA 11
- }
- winwait, FIFA 11, Click the Finish button to exit the Setup Wizard.
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, Button5, FIFA 11, Click the Finish button to exit the Setup Wizard.
- sleep 1000
- controlclick, Button1, FIFA 11, Click the Finish button to exit the Setup Wizard.
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata hon games \
- title="Heroes of Newerth" \
- publisher="S2 Games" \
- year="2013" \
- media="download" \
- file1="HoNClient-3.1.2.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Heroes of Newerth/hon.exe"
- load_hon()
- {
- w_download http://dl.heroesofnewerth.com/HoNClient-3.1.2.exe 49123d092f1fa75b8dddc20c817ab8addd5aee5f
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, $file1
- winwait, Installer Language
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, Heroes of Newerth
- controlclick, Button2, Heroes of Newerth
- winwait, Heroes of Newerth, License
- controlclick, Button2, Heroes of Newerth, License
- winwait, Heroes of Newerth, Components
- controlclick, Button2, Heroes of Newerth, Components
- winwait, Heroes of Newerth, Install Location
- controlclick, Button2, Heroes of Newerth, Install Location
- winwait, Heroes of Newerth, Start Menu
- controlclick, Button2, Heroes of Newerth, Start Menu
- winwait, Heroes of Newerth, Finish
- controlclick, Button2, Heroes of Newerth, Finish
- }
- winwaitclose, Heroes of Newerth, Finish
- "
- }
- #----------------------------------------------------------------
- w_metadata hordesoforcs2_demo games \
- title="Hordes of Orcs 2 Demo" \
- publisher="Freeverse" \
- year="2010" \
- media="manual_download" \
- file1="HoO2Demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Hordes of Orcs 2 Demo/HoO2.exe"
- load_hordesoforcs2_demo()
- {
- w_download_manual http://www.fileplanet.com/216619/download/Hordes-of-Orcs-2-Demo HoO2Demo.exe 1ba26d35697e359f89a30915140e471fadc675da
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- SetTitleMatchMode, slow
- run HoO2Demo.exe
- WinWait,Orcs
- if ( w_opt_unattended > 0 ) {
- WinActivate
- ControlFocus, Button1, Hordes ; Next
- sleep 500
- Send n ; next
- WinWait,Orcs,conditions
- ControlFocus, Button4, Hordes, agree
- Send {Space}
- Send {Enter} ; next
- WinWait,Orcs,files
- Send {Enter} ; next
- WinWait,Orcs,exist ; Destination does not exist, create?
- Send {Enter} ; yes
- WinWait,Orcs,Start
- Send {Enter} ; Start
- }
- WinWait,Orcs,successfully
- if ( w_opt_unattended > 0 ) {
- Send {Space} ; Finish
- }
- winwaitclose Orcs
- "
- }
- #----------------------------------------------------------------
- w_metadata mfsxde games \
- title="Microsoft Flight Simulator X: Deluxe Edition" \
- publisher="Microsoft" \
- year="2006" \
- media="dvd" \
- file1="FSX DISK 1.iso" \
- file2="FSX DISK 2.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Microsoft Flight Simulator X/fsx.exe"
- load_mfsxde()
- {
- if w_workaround_wine_bug 25139 "Setting virtual desktop so license screen shows up on first run"
- then
- w_call vd=1024x768
- fi
- w_mount "FSX DISK 1"
- if w_workaround_wine_bug 25558 "Copying disc to hard drive. This will take a few minutes."
- then
- cd "$W_CACHE/$W_PACKAGE"
- # Copy takes a LONG time, so offer a way to avoid copy while debugging verb
- if test ! -f bothdiscs/setup.exe
- then
- mkdir bothdiscs
- cd bothdiscs
- w_try cp -R "$W_ISO_MOUNT_ROOT"/* .
- # A few files are on both DVDs. Remove them manually so cp doesn't complain.
- rm -f DVDCheck.exe autorun.inf fsx.ico vcredist_x86.exe
- # Make the directories writable, else 2nd disc copy will fail.
- w_try chmod -R +w .
- w_mount "FSX DISK 2"
- # On Linux, use symlinks for disc 2. (On Cygwin, we'd have to copy.)
- w_try ln -s "$W_ISO_MOUNT_ROOT"/* .
- # Make the files writable, otherwise you'll get errors when trying to remove bothdiscs.
- chmod -R +w .
- # If you leave it mounted, it doesn't ask for the second disk to be inserted.
- # If you mount it without extracting though, the install fails.
- # Apparently it uses the files from the cache, but does a disk check.
- else
- cd bothdiscs
- fi
- else
- w_die "non-broken case not yet supported for this game"
- fi
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run setup.exe,,,mfs_pid
- winwait, Microsoft Flight Simulator X, To continue, click Install
- ControlClick, Button1, Microsoft Flight Simulator X, To continue
- ; Accept license:
- winwait, Flight Simulator X - End User License Agreement
- controlclick, Button1, Flight Simulator X - End User License Agreement
- winwait, Microsoft Flight Simulator X Product Activation Wizard
- ; Activate later, currently broken on Wine, see http://bugs.winehq.org/show_bug.cgi?id=25579
- controlclick, Button2, Microsoft Flight Simulator X Product Activation Wizard
- sleep 1000
- controlclick, Button5, Microsoft Flight Simulator X Product Activation Wizard
- ; Close main window:
- winwait, Microsoft Flight Simulator, LEARNING CENTER
- ; A winclose/winkill isn't forceful enough:
- process, close, fsx.exe
- ; Setup doesn't close on its own, because this process doesn't exit cleanly
- process, close, IDriver.exe
- "
- }
- #----------------------------------------------------------------
- w_metadata mfsx_demo games \
- title="Microsoft Flight Simulator X Demo" \
- publisher="Microsoft" \
- year="2006" \
- media="download" \
- file1="FSXDemo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Microsoft Flight Simulator X Demo/fsx.exe" \
- wine_showstoppers="26411"
- load_mfsx_demo()
- {
- w_workaround_wine_bug 26411 "Game hangs on first screen for me"
- if w_workaround_wine_bug 25139 "Setting virtual desktop so license screen shows up on first run"
- then
- w_call vd=1024x768
- fi
- w_download http://download.microsoft.com/download/4/7/7/477dcc35-0b98-42c5-b06f-7ded38a40491/FSXDemo.exe cbb13d2a7918f409f224eab7d3a2014330fc87bc
- cd "$W_TMP"
- unzip "$W_CACHE/$W_PACKAGE"/FSXDemo.exe
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run setup.exe,,,mfs_pid
- winwait, Microsoft Flight Simulator X, To continue, click Install
- ControlClick, Button1, Microsoft Flight Simulator X, To continue
- ; Accept license:
- winwait, Flight Simulator X - End User License Agreement
- controlclick, Button1, Flight Simulator X - End User License Agreement
- winwait, Microsoft Flight Simulator X Product Activation Wizard
- ; Activate later, currently broken on Wine, see http://bugs.winehq.org/show_bug.cgi?id=25579
- controlclick, Button2, Microsoft Flight Simulator X Product Activation Wizard
- sleep 1000
- controlclick, Button5, Microsoft Flight Simulator X Product Activation Wizard
- ; Close main window:
- winwait, Microsoft Flight Simulator, LEARNING CENTER
- ; A winclose/winkill isn't forceful enough:
- process, close, fsx.exe
- ; Setup doesn't close on its own, because this process doesn't exit cleanly
- process, close, IDriver.exe
- "
- }
- #----------------------------------------------------------------
- w_metadata gothic4_demo games \
- title="Gothic 4 demo (drm broken on wine)" \
- publisher="Jowood" \
- year="2010" \
- media="manual_download" \
- file1="ArcaniA_Gothic4_Demo_Setup.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/JoWooD Entertainment AG/ArcaniA - Gothic 4 Demo/Arcania.exe"
- # http://appdb.winehq.org/objectManager.php?sClass=version&iId=21507
- load_gothic4_demo()
- {
- w_download_manual http://www.gamershell.com/download_63874.shtml ArcaniA_Gothic4_Demo_Setup.zip d36024c0235878c4589234a56cc8b6e05da5c593
- cd "$W_TMP"
- w_try unzip "$W_CACHE/$W_PACKAGE"/ArcaniA_Gothic4_Demo_Setup.zip
- w_ahk_do "
- Settitlematchmode, 2
- run, ArcaniA_Gothic4_Demo_Setup.exe
- if ( w_opt_unattended > 0 ) {
- winwait, Select Setup Language
- sleep 1000
- controlclick, TNewButton1, Select Setup Language
- winwait, Setup - ArcaniA, Welcome to the
- sleep 1000
- controlclick, TNewButton1, Setup - ArcaniA, Welcome to the
- winwait, Setup - ArcaniA, License Agreement
- sleep 1000
- controlclick, TNewRadioButton1, Setup - ArcaniA, License Agreement
- sleep 1000
- controlclick, TNewButton2, Setup - ArcaniA, License Agreement
- winwait, Setup - ArcaniA, Select Destination Location
- sleep 1000
- controlclick, TNewButton3, Setup - ArcaniA, Select Destination Location
- winwait, Setup - ArcaniA, Select Components
- sleep 1000
- controlclick, TNewButton3, Setup - ArcaniA, Select Components
- winwait, Setup - ArcaniA, Select Start Menu
- sleep 1000
- controlclick, TNewButton4, Setup - ArcaniA, Select Start Menu
- winwait, Setup - ArcaniA, Select Additional
- sleep 1000
- controlclick, TNewButton4, Setup - ArcaniA, Select Additional
- winwait, Setup - ArcaniA, Ready to Install
- sleep 1000
- controlclick, TNewButton4, Setup - ArcaniA, Ready to Install
- winwait, Setup - ArcaniA, Information
- sleep 1000
- controlclick, TNewButton4, Setup - ArcaniA, Information
- }
- winwait, Setup - ArcaniA, Completing
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ; The two checkboxes share the same button id. App/Wine bug?
- mousemove, 190, 155
- click
- sleep 1000
- mousemove, 190, 180
- click
- sleep 1000
- controlclick, TNewButton4, Setup - ArcaniA, Completing
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata gta_vc games \
- title="Grand Theft Auto: Vice City" \
- publisher="Rockstar" \
- year="2003" \
- media="cd" \
- file1="GTA_VICE_CITY.iso" \
- file2="VICE_CITY_PLAY.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Rockstar Games/Grand Theft Auto Vice City/gta-vc.exe"
- load_gta_vc()
- {
- w_mount GTA_VICE_CITY
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- Run, ${W_ISO_MOUNT_LETTER}:Setup.exe
- winwait, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- Send {enter}
- winwait, Grand Theft Auto Vice City, Welcome to the InstallShield Wizard
- Send {enter}
- winwait, Grand Theft Auto Vice City, License Agreement
- Send !a
- send {enter}
- winwait, Grand Theft Auto Vice City, Customer Information
- controlclick, edit1
- send $LOGNAME
- send {tab}
- send company ; installer won't proceed without something here
- send {enter}
- winwait, Grand Theft Auto Vice City, Choose Destination Location
- controlclick, Button1
- winwait, Grand Theft Auto Vice City, Select Components
- controlclick, Button2
- winwait, Grand Theft Auto Vice City, Ready to Install the Program
- send {enter}
- }
- winwait, Setup Needs The Next Disk, Please insert disk 2
- "
- w_mount VICE_CITY_PLAY
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- winwait, Setup Needs The Next Disk, Please insert disk 2
- if ( w_opt_unattended > 0 ) {
- controlclick, Button2
- }
- winwait, Grand Theft Auto Vice City, InstallShield Wizard Complete
- if ( w_opt_unattended > 0 ) {
- send {enter}
- }
- winwaitclose
- "
- if w_workaround_wine_bug 26322 "Setting virtual desktop"
- then
- w_call vd=800x600
- fi
- myexec="Exec=env WINEPREFIX=\"$WINEPREFIX\" wine cmd /c 'C:\\\\\\\\Run-gta_vc.bat'"
- mymenu="$XDG_DATA_HOME/applications/wine/Programs/Rockstar Games/Grand Theft Auto Vice City/Play GTA Vice City.desktop"
- if test -f "$mymenu" && w_workaround_wine_bug 26304 "Fixing system menu"
- then
- # this is a hack, hopefully the wine bug will be fixed soon
- sed -i "s,Exec=.*,$myexec," "$mymenu"
- fi
- }
- #----------------------------------------------------------------
- w_metadata guildwars games \
- title="Guild Wars" \
- publisher="NCsoft" \
- year="2005" \
- media="download" \
- file1="GwSetup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Guild Wars/Gw.exe" \
- homepage="http://www.guildwars.com"
- load_guildwars()
- {
- w_download "http://guildwars.com/download/" a7c4c8cb3b8cbee20707dcf8176d3da6a1686c05 GwSetup.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- Run, GwSetup.exe
- WinWait, ahk_class ArenaNet_Dialog_Class
- if ( w_opt_unattended > 0 ) {
- ; Wait for network connection to finish. This might need to be longer. Can we detect this better?
- Sleep 6000
- ; For some reason, the OK doesn't take for me unless I activate the window first
- WinActivate
- Send {Enter}
- ; Installation takes a long time... and then starts the game, which we don't want.
- }
- WinWait, ahk_class ArenaNet_Dx_Window_Class
- Sleep 4000
- WinClose, ahk_class ArenaNet_Dx_Window_Class
- "
- }
- #----------------------------------------------------------------
- w_metadata hegemonygold_demo games \
- title="Hegemony Gold" \
- publisher="Longbow Games" \
- year="2011" \
- media="download" \
- file1="HegemonyGoldInstaller.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Longbow Digital Arts/Hegemony Gold/Hegemony Gold.exe" \
- homepage="http://www.longbowgames.com/forums/topic/?id=2146" \
- rating="bronze"
- load_hegemonygold_demo()
- {
- # 6 Mar 2011: 8c4d8aa8f997b106c78b065a4b200e5e1ab846a8
- # 28 Apr 2011: 93677013fc17f014b1640bed070e8bb1b2a17445
- # 25 Jun 2011: 4069656ea3c3760b67d1c5adff37de7472955f72
- # 5 Nov 2011: 723c575ff5fff77941a1c786e28f46c094b8159c
- # 8 Mar 2012: 36634314f571e345d082bdefe1150c76ef5610a7
- w_download "http://www.longbowgames.com/downloads/Hegemony%20Gold%20Installer.exe" 36634314f571e345d082bdefe1150c76ef5610a7 HegemonyGoldInstaller.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 2
- Run, HegemonyGoldInstaller.exe
- WinWait,Hegemony
- if ( w_opt_unattended > 0 ) {
- ControlClick Button2 ; Next
- WinWait,Hegemony, License
- ControlClick Button2 ; Agree
- WinWait,Hegemony, Components
- Click, Left, 187, 185
- Sleep 500
- ControlClick Button2 ; Next
- WinWait,Hegemony, Location
- ControlClick Button2 ; Next
- WinWait,Hegemony, shortcuts
- ControlClick Button2 ; Install
- WinWait,Hegemony, Completing
- ControlFocus,Button4,launch
- Sleep 1000
- Send {Space}
- Sleep 500
- ControlClick Button2 ; finish
- }
- WinWaitClose,Hegemony
- "
- }
- #----------------------------------------------------------------
- w_metadata hegemony_demo games \
- title="Hegemony: Philip of Macedon Demo" \
- publisher="Longbow Games" \
- year="2010" \
- media="download" \
- file1="Hegemony_Philip_of_Macedon_Installer.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Longbow Digital Arts/Hegemony Philip of Macedon/Hegemony Philip of Macedon.exe"
- load_hegemony_demo()
- {
- # Oct 2010: d3d2aa020d38b594d112360ae40871662d35dea4
- # Nov 2010: 80cad805ad4bed0d3c493f2d9a40d06512c429a9 http://www.longbowgames.com/forums/topic/?id=2223&start=0#post22184
- # Feb 16 2011: 38e92e3e4d0f0d10393790bc37350a2094f60c37
- w_download "http://www.longbowgames.com/downloads/Hegemony%20Philip%20of%20Macedon%20Installer.exe" 38e92e3e4d0f0d10393790bc37350a2094f60c37 Hegemony_Philip_of_Macedon_Installer.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, Hegemony_Philip_of_Macedon_Installer.exe
- winwait, Hegemony, installation
- if ( w_opt_unattended > 0 ) {
- controlclick, Button2
- Sleep 500
- winwait, Hegemony, License
- controlclick, Button2
- winwait, Hegemony, Components
- controlclick, Button2
- winwait, Hegemony, Install Location
- controlclick, Button2
- winwait, Hegemony, shortcuts
- controlclick, Button2
- Loop
- {
- ; Work around wine bug 24484
- IfWinExist, Log message, IKnownFolderManager
- {
- send {Enter}
- }
- ; Work around wine bug 21261
- IfWinExist, Log message, Games Explorer
- {
- send {Enter}
- }
- IfWinExist, Hegemony, has been installed
- {
- break
- }
- Sleep (2000)
- }
- winwait, Hegemony, has been installed
- Sleep 500
- controlclick, Button4
- Sleep 500
- controlclick, Button2
- }
- WinWaitClose,Hegemony
- "
- }
- #----------------------------------------------------------------
- w_metadata hphbp_demo games \
- title="Harry Potter & The Half Blood Prince Demo" \
- publisher="EA" \
- year="2009" \
- media="download" \
- file1="Release_HBP_demo_PC_DD_DEMO_Final_348428.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/Harry Potter and the Half-Blood Prince Demo/pc/hp6_demo.exe"
- load_hphbp_demo()
- {
- case "$LANG" in
- ""|"C") w_die "Harry Potter will not install in the Posix locale; please do 'export LANG=en_US.UTF-8' or something like that" ;;
- esac
- w_download http://largedownloads.ea.com/pub/demos/HarryPotter/Release_HBP_demo_PC_DD_DEMO_Final_348428.exe dadc1366c3b5e641454aa337ad82bc8c5082bad2
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, Release_HBP_demo_PC_DD_DEMO_FINAL_348428.exe
- winwait, Harry Potter, Install
- if ( w_opt_unattended > 0 ) {
- controlclick, Button1, Harry Potter
- winwait, Setup, License
- controlclick, Button1
- controlclick, Button3
- winwait, Setup, License
- controlclick, Button1
- controlclick, Button3
- winwait, Setup, Destination
- controlclick, Button1
- winwait, Setup, begin
- controlclick, Button1
- }
- winwait, Setup, Finish
- if ( w_opt_unattended > 0 )
- controlclick, Button1
- winwaitclose
- "
- # Work around locale issues by symlinking the app's directory to not have a funny char
- # Won't really work on cygwin, but that's ok.
- cd "$W_PROGRAMS_X86_UNIX/Electronic Arts"
- ln -s "Harry Potter and the Half-Blood Prince"* "Harry Potter and the Half-Blood Prince Demo"
- }
- #----------------------------------------------------------------
- w_metadata imvu games \
- title="IMVU - Instant Messaging Virtual Universe" \
- publisher="IMVU" \
- year="2004" \
- media="download" \
- file1="InstallIMVU_465.0_st_c.exe" \
- installed_exe1="c:/users/$LOGNAME/Application Data/IMVUClient/IMVUClient.exe"
- load_imvu()
- {
- w_download http://static-akm.imvu.com/imvufiles/installers/InstallIMVU_465.0_st_c.exe 3a5c6c335227a5709c5772f91d8407edd07d4012
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- Run, $file1
- if ( w_opt_unattended > 0 ) {
- WinWait,IMVU Setup, IMVU Extension
- ControlClick Button4 ; Don't install extension
- Sleep 500
- ControlClick Button2 ; Finish
- ; There's no way to tell it not to launch
- WinWait,IMVU Login, chrome
- Click, Left, 29, 230 ; Uncheck [run on startup]
- Sleep 500
- Click, Left, 416, 11 ; Click X on window decoration to close
- Sleep 500
- WinKill,IMVU Login, chrome ; and then close harshly, just in case?
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata kotor1 games \
- title="Star Wars: Knights Of The Old Republic" \
- publisher="Lucas Arts" \
- year="2003" \
- media="cd" \
- file1="KOTOR_1.iso" \
- file2="KOTOR_2.iso" \
- file3="KOTOR_3.iso" \
- file4="KOTOR_4.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/LucasArts/SWKotOR/swkotor.exe"
- load_kotor1()
- {
- w_mount "KOTOR_1"
- w_ahk_do "
- SetTitleMatchMode 2
- SetWinDelay 500
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait Star Wars, Welcome
- if ( w_opt_unattended > 0 ) {
- controlclick button1
- winwait Star Wars, Licensing Agreement
- controlclick button2
- winwait Question, Licensing Agreement
- controlclick button1
- winwait Star Wars, Destination Folder
- controlclick button1
- winwait Star Wars, Program Folder
- controlclick button2
- winwait Star Wars, Additional Shortcuts
- ;unselect start menu shortcuts
- controlclick button1
- controlclick button2
- controlclick button3
- controlclick button4
- controlclick button5
- controlclick button11
- winwait Star Wars, Review settings
- controlclick button1
- }
- winwait Next Disk, Please insert disk 2
- "
- w_mount "KOTOR_2"
- w_ahk_do "
- SetTitleMatchMode 2
- if ( w_opt_unattended > 0 ) {
- winwait Next Disk
- controlclick button2
- }
- winwait Next Disk, Please insert disk 3
- "
- w_mount "KOTOR_3"
- w_ahk_do "
- SetTitleMatchMode 2
- if ( w_opt_unattended > 0 ) {
- winwait Next Disk
- controlclick button2
- }
- winwait Next Disk, Please insert disk 4
- "
- w_mount "KOTOR_4"
- w_ahk_do "
- SetTitleMatchMode 2
- if ( w_opt_unattended > 0 ) {
- winwait Next Disk
- controlclick button2
- winwait Question, Desktop
- controlclick button2
- winwait Question, DirectX
- controlclick button2 ;don't install directx
- }
- winwait Star Wars, Complete
- if ( w_opt_unattended > 0 ) {
- controlclick button1 ;don't launch game
- controlclick button4
- }
- winwaitclose Star Wars, Complete
- "
- }
- #----------------------------------------------------------------
- w_metadata losthorizon_demo games \
- title="Lost Horizon Demo" \
- publisher="Deep Silver" \
- year="2010" \
- media="manual_download" \
- file1="Lost_Horizon_Demo_EN.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Deep Silver/Lost Horizon Demo/fsasgame.exe"
- load_losthorizon_demo()
- {
- w_download_manual http://www.fileplanet.com/215704/download/Lost-Horizon-Demo Lost_Horizon_Demo_EN.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run Lost_Horizon_Demo_EN.exe
- WinWait,Lost Horizon Demo, Destination
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- Send {RAW}"$W_TMP"
- ControlClick Button2 ;Install
- WinWaitClose,Lost Horizon Demo,Installation
- Sleep 1000
- Click, Left, 169, 371
- WinWait,Lost Horizon Demo - InstallShield Wizard,Welcome
- Sleep 500
- ControlClick Button1 ;Next
- WinWait,Lost Horizon Demo - InstallShield Wizard,License
- ControlFocus,Button3,Lost Horizon Demo
- Sleep 500
- Send {Space}
- ControlClick Button1 ;Next
- WinWait,Lost Horizon Demo - InstallShield Wizard,program
- Sleep 500
- ControlClick Button2 ;Next
- WinWait,Lost Horizon Demo - InstallShield Wizard,features
- Sleep 500
- ControlClick Button4 ;Next
- WinWait,Lost Horizon Demo - InstallShield Wizard,begin
- Sleep 500
- ControlClick Button1 ;Next
- }
- WinWaitClose
- WinWait,Lost Horizon Demo - InstallShield Wizard,Complete
- if ( w_opt_unattended > 0 ) {
- ControlFocus,Button2,Lost Horizon
- Sleep 500
- Send {Space}
- Sleep 500
- ControlClick Button4 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata lego_potc_demo games \
- title="Lego Pirates of the Caribbean Demo" \
- publisher="Travellers Tales" \
- year="2011" \
- media="manual_download" \
- file1="LPOTC_PC_Demo.zip" \
- installed_file1="$W_PROGRAMS_X86_WIN/Disney Interactive Studios/LEGO Pirates DEMO/LEGOPiratesDEMO.exe"
- load_lego_potc_demo()
- {
- w_download_manual http://www.gamershell.com/download_73976.shtml LPOTC_PC_Demo.zip 3025dcbbee9ff2d74d7837a78ef5b7aceae15d8f
- cd "$W_TMP"
- w_info "Unpacking $file1"
- w_try_unzip . "$W_CACHE/$W_PACKAGE/$file1" LPOTC_PC_Demo.exe
- w_ahk_do "
- SetWinDelay, 500
- SetTitleMatchMode, 2
- SetTitleMatchMode, slow ; since word English in first dialog can only be read 'slowly'
- run LPOTC_PC_Demo.exe
- if ( w_opt_unattended > 0 ) {
- winwait,LEGO,English
- sleep 500
- winactivate
- send {Tab}{Tab}{Enter}
- winwaitclose,LEGO,English
- winwait, LEGO, License
- winactivate
- send {Space}
- sleep 500
- send {Enter}
- winwaitclose, LEGO, License
- winwait, DirectX
- ControlClick, Button1 ; next
- ;send {Enter} ; next
- winwaitclose, DirectX
- winwait, LEGO, License ; DIRECTX shows up in slow text, could wait for that
- winactivate
- sleep 500
- ControlClick, Button1 ; accept
- ;send {Tab}{Tab}{Space} ; accept
- sleep 500
- send {Enter}
- winwaitclose, LEGO, License
- }
- winwait, LEGO, continue
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button2
- sleep 1000
- }
- winwaitclose, LEGO
- "
- }
- #----------------------------------------------------------------
- w_metadata lhp_demo games \
- title="LEGO Harry Potter Demo [Years 1-4]" \
- publisher="Travellers Tales / WB" \
- year="2010" \
- media="download" \
- file1="LEGOHarryPotterDEMO.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/WB Games/LEGO_Harry_Potter_DEMO/LEGOHarryPotterDEMO.exe"
- load_lhp_demo()
- {
- case "$LANG" in
- *UTF-8*|*utf8*) ;;
- *)
- w_warn "This installer fails in non-utf-8 locales. Doing 'export LANG=en_US.UTF-8'."
- LANG=en_US.UTF-8
- export LANG
- ;;
- esac
- w_download "http://static.kidswb.com/legoharrypottergame/LEGOHarryPotterDEMO.exe" bb0a30ad9a7cc51c80e1bb1f3eec22e6ccc1a706
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, LEGOHarryPotterDEMO.exe
- winwait, LEGO, language
- if ( w_opt_unattended > 0 ) {
- controlclick, Button1
- winwait, LEGO, License
- controlclick, Button1
- controlclick, Button2
- winwait, LEGO, installation method
- controlclick, Button2
- }
- winwait, LEGO, Finish
- if ( w_opt_unattended > 0 )
- controlclick, Button1
- winwaitclose, LEGO, Finish
- "
- # Work around locale issues by symlinking the app's directory to not have a funny char
- # Won't really work on cygwin, but that's ok.
- cd "$W_PROGRAMS_X86_UNIX/WB Games"
- ln -s LEGO*Harry\ Potter*DEMO LEGO_Harry_Potter_DEMO
- }
- #----------------------------------------------------------------
- w_metadata lswcs games \
- title="Lego Star Wars Complete Saga" \
- publisher="Lucasarts" \
- year="2009" \
- media="dvd" \
- file1="LEGOSAGA.iso" \
- installed_file1="$W_PROGRAMS_X86_WIN/LucasArts/LEGO Star Wars - The Complete Saga/LEGOStarWarsSaga.exe"
- load_lswcs()
- {
- w_mount LEGOSAGA
- w_ahk_do "
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- SetTitleMatchMode, 2
- winwait, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, LEGO, License Agreement
- send a{Enter}
- }
- winwait, LEGO, method
- if ( w_opt_unattended > 0 ) {
- ControlClick Easy Installation
- sleep 1000
- }
- winwaitclose, LEGO
- "
- w_warn "This game is copy-protected, and requires the real disc in a real drive to run."
- }
- #----------------------------------------------------------------
- w_metadata lemonysnicket games \
- title="Lemony Snicket: A Series of Unfortunate Events" \
- publisher="Activision" \
- year="2004" \
- media="cd" \
- file1="Lemony Snicket.iso"
- load_lemonysnicket()
- {
- w_mount "Lemony Snicket"
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, ${W_ISO_MOUNT_LETTER}:setup.exe
- WinWait, Lemony, Welcome
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick, Button1 ; Next
- WinWait, Lemony, License
- sleep 1000
- ControlClick, Button2 ; Accept
- WinWait, Lemony, Minimum System
- sleep 1000
- ControlClick, Button2 ; Yes
- WinWait, Lemony, Destination
- sleep 1000
- ControlClick, Button1 ; Next
- WinWait, Lemony, Select Program Folder
- sleep 1000
- ControlClick, Button2 ; Next
- WinWait, Lemony, Start Copying
- sleep 1000
- ControlClick, Button1 ; Next
- WinWait, Question, Would you like to add a desktop shortcut
- sleep 1000
- ControlClick, Button2 ; No
- WinWait, Question, Would you like to register
- sleep 1000
- ControlClick, Button2 ; No
- ;WinWait, Information, Please register
- ;sleep 1000
- ;ControlClick, Button1 ; OK
- WinWait, Lemony, Complete
- sleep 1000
- ControlClick, Button4 ; Finish
- WinWait, Lemony, Play
- sleep 1000
- ControlClick, Button6 ; Exit
- WinWait, Lemony, Are you sure
- sleep 1000
- ControlClick, Button1 ; Yes already
- }
- WinWaitClose, Lemony
- "
- }
- #----------------------------------------------------------------
- w_metadata luxor_ar games \
- title="Luxor Amun Rising" \
- publisher="MumboJumbo" \
- year="2006" \
- media="cd" \
- file1="LUXOR_AMUNRISING.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/MumboJumbo/Luxor Amun Rising/Luxor AR.exe"
- load_luxor_ar()
- {
- w_mount LUXOR_AMUNRISING
- w_ahk_do "
- SetWinDelay, 500
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:Luxor_AR_Setup.exe
- winwait, Luxor
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button2 ; Agree
- winwait, Folder
- ControlClick, Button2 ; Install
- winwait, Completed
- ControlClick, Button2 ; Next
- }
- winwait, Success
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button6 ; Uncheck Play
- ControlClick, Button2 ; Close
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata masseffect2 games \
- title="Mass Effect 2 (drm broken on wine)" \
- publisher="BioWare" \
- year="2010" \
- media="dvd" \
- file1="MassEffect2.iso" \
- file2="ME2_Disc2.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Mass Effect 2/Binaries/MassEffect2.exe" \
- wine_showstoppers="23184"
- load_masseffect2()
- {
- w_mount MassEffect2
- w_read_key
- # FIXME: only do this for nvidia cards
- if w_workaround_wine_bug 23151 "Disabling glsl"
- then
- w_call glsl=disabled
- fi
- w_ahk_do "
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:Setup.exe
- winwait, Installer Language
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, Mass Effect
- send {Enter}
- winwait, Mass Effect, License
- ControlClick, Button4
- ControlClick, Button2
- winwait, Mass Effect, Registration Code
- send $W_KEY
- ControlClick, Button2
- winwait, Mass Effect, Install Type
- ControlClick, Button2
- }
- winwait, Insert Disc
- "
- sleep 5
- w_mount ME2_Disc2
- w_ahk_do "
- SetTitleMatchMode, 2
- if ( w_opt_unattended > 0 ) {
- winwait, Insert Disc
- ControlClick, Button4
- ; on windows, the first click doesn't seem to do it, so press enter, too
- sleep 1000
- send {Enter}
- }
- ; Some installs may not get to this point due to an installer hang/crash (bug 22919)
- ; The hang/crash happens after the Physx install but does not seem to affect gameplay
- loop
- {
- ifwinexist, Mass Effect, Finish
- {
- if ( w_opt_unattended > 0 ) {
- winkill, Mass Effect
- }
- break
- }
- Process, exist, Installer.exe
- me2pid = %ErrorLevel%
- if me2pid = 0
- break
- sleep 1000
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata masseffect2_demo games \
- title="Mass Effect 2" \
- publisher="BioWare" \
- year="2010" \
- media="download" \
- file1="MassEffect2DemoEN.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Mass Effect 2 Demo/Binaries/MassEffect2.exe"
- load_masseffect2_demo()
- {
- w_download http://static.cdn.ea.com/bioware/u/f/eagames/bioware/masseffect2/ME2_DEMO/MassEffect2DemoEN.exe cda9a25387a98e29772b3ccdcf609f87188285e2
- # FIXME: only do this for nvidia cards
- if w_workaround_wine_bug 23151 "Disabling glsl"
- then
- w_call glsl=disabled
- fi
- # Don't let self-extractor write into $W_CACHE
- case "$OS" in
- "Windows_NT")
- cp "$W_CACHE/$W_PACKAGE/MassEffect2DemoEN.exe" "$W_TMP"
- chmod +x "$W_TMP"/MassEffect2DemoEN.exe ;;
- *)
- ln -sf "$W_CACHE/$W_PACKAGE/MassEffect2DemoEN.exe" "$W_TMP" ;;
- esac
- cd "$W_TMP"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run, MassEffect2DemoEN.exe
- winwait, Mass Effect 2 Demo
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- winwait, Mass Effect 2 Demo, conflicts
- send {Enter}
- winwait, Mass Effect, License
- ControlClick, Button4
- ;ControlClick, Button2
- send {Enter}
- winwait, Mass Effect, Install Type
- ControlClick, Button2
- }
- ; Some installs may not get to this point due to an installer hang/crash (bug 22919)
- ; The hang/crash happens after the Physx install but does not seem to affect gameplay
- loop
- {
- ifwinexist, Mass Effect, Finish
- {
- if ( w_opt_unattended > 0 ) {
- winkill, Mass Effect
- }
- break
- }
- Process, exist, Installer.exe
- me2pid = %ErrorLevel%
- if me2pid = 0
- break
- sleep 1000
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata maxmagicmarker_demo games \
- title="Max & the Magic Marker Demo" \
- publisher="Press Play" \
- year="2010" \
- media="download" \
- file1="max_demo_pc.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/maxmagicmarker_demo/max and the magic markerdemo pc.exe"
- load_maxmagicmarker_demo()
- {
- w_download http://www.maxandthemagicmarker.com/maxdemo/max_demo_pc.zip 1a79c583ff40e7b2cf05d18a89a806fd6b88a5d1
- w_try_unzip "$W_PROGRAMS_X86_UNIX"/$W_PACKAGE "$W_CACHE/$W_PACKAGE"/max_demo_pc.zip
- # Work around bug in game?!
- cd "$W_PROGRAMS_X86_UNIX/$W_PACKAGE"
- mv "max and the magic markerdemo pc" "max and the magic markerdemo pc"_Data
- }
- #----------------------------------------------------------------
- w_metadata mdk games \
- title="MDK (3dfx)" \
- publisher="Playmates International" \
- year="1997" \
- media="cd" \
- file1="MDK.iso" \
- installed_exe1="C:/SHINY/MDK/MDK3DFX.EXE"
- load_mdk()
- {
- # Needed even on Windows, some people say. Haven't tried the D3D version on win7 yet.
- w_call glidewrapper
- w_download http://www.falconfly.de/downloads/patch-mdk3dfx.zip edcff0160c62d23b00c55c0bdfa38a6e90d925b0
- w_mount MDK
- cd "$W_ISO_MOUNT_ROOT"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetTitleMatchMode, slow
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, MDK
- if ( w_opt_unattended > 0 ) {
- click, left, 80, 80 ; USA
- winwait, Welcome, purchasing MDK
- ControlClick, Button1 ; Next
- winwait, Select Target Platform
- ControlClick, Button6 ; Next
- winwait, Select Installation Options
- ControlClick, Button3 ; Large
- ControlClick, Button6 ; Next
- winwait, Destination
- ControlClick, Button1 ; Next
- winwait, Program Folder
- ControlClick, Button2 ; Next
- winwait, Start
- ControlClick, Button1 ; Next
- Loop {
- IfWinExist, Setup, ProgramFolder
- send {Enter}
- IfWinExist, Setup Complete
- break
- sleep 500
- }
- }
- WinWait, Setup Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button1 ; uncheck readme
- ControlClick, Button4 ; Finish
- WinWait, Question, DirectX
- ControlClick, Button2 ; No
- WinWait, Information, complete
- ControlClick, Button1 ; No
- }
- WinWaitClose
- "
- cd "$W_DRIVE_C/SHINY/MDK"
- w_try_unzip . "$W_CACHE/$W_PACKAGE"/patch-mdk3dfx.zip
- # TODO: wine fails to install menu items, add a workaround for that
- }
- #----------------------------------------------------------------
- w_metadata menofwar games \
- title="Men of War" \
- publisher="Aspyr Media" \
- year="2009" \
- media="dvd" \
- file1="Men of War.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Aspyr/Men of War/mow.exe"
- load_menofwar()
- {
- w_mount "Men of War"
- cd "$W_ISO_MOUNT_ROOT"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetTitleMatchMode, slow
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, Select Setup Language, Select the language
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick, TNewButton1, Select Setup Language, Select the language
- winwait, Men of War
- sleep 1000
- ControlClick, TButton4, Men of War
- winwait, Setup - Men of War, ACCEPTANCE OF AGREEMENT
- sleep 1000
- ControlClick, TNewRadioButton1, Setup - Men of War, ACCEPTANCE OF AGREEMENT
- ControlClick, TNewButton1, Setup - Men of War, ACCEPTANCE OF AGREEMENT
- }
- winwait, Setup - Men of War, Setup has finished installing
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick, x242 y254
- ControlClick, x242 y278
- ControlClick, TNewButton1, Setup - Men of War, Setup has finished
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata mb_warband_demo games \
- title="Mount & Blade Warband Demo" \
- publisher="Taleworlds" \
- year="2010" \
- media="download" \
- file1="mb_warband_setup_1143.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Mount&Blade Warband/mb_warband.exe" \
- homepage="http://www.taleworlds.com"
- load_mb_warband_demo()
- {
- w_download "http://download.taleworlds.com/mb_warband_setup_1143.exe" 94fb829068678e27bcd67d9e0fde7f08c51a23af
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode 2
- run mb_warband_setup_1143.exe
- winwait Warband
- if ( w_opt_unattended > 0 ) {
- controlclick button2
- winwait Warband
- controlclick button2
- winwait Warband, Finish
- controlclick button4
- controlclick button2
- }
- winwaitclose Warband
- "
- }
- #----------------------------------------------------------------
- w_metadata mise games \
- title="Monkey Island: Special Edition" \
- publisher="LucasArts" \
- year="2009" \
- media="dvd" \
- file1="SecretOfMonkeyIslandSE_ddsetup.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/LucasArts/The Secret of Monkey Island Special Edition/MISE.exe"
- load_mise()
- {
- w_download_manual "http://www.direct2drive.com/8241/product/Buy-The-Secret-of-Monkey-Island(R):-Special-Edition-Download" SecretOfMonkeyIslandSE_ddsetup.zip 2e32458698c9ec7ebce94ae5c57531a3fe1dbb9e
- mkdir -p "$W_TMP/$W_PACKAGE"
- cd "$W_TMP/$W_PACKAGE"
- # Don't extract DirectX/dotnet35 installers, they just take up extra time and aren't needed. Luckily, MISE copes well and just skips them if they are missing:
- w_try unzip "$W_CACHE/$W_PACKAGE"/SecretOfMonkeyIslandSE_ddsetup.zip -x DirectX* dotnet*
- w_ahk_do "
- SetTitleMatchMode, 2
- run, setup.exe
- WinWait, The Secret of Monkey Island, This wizard will guide you
- sleep 1000
- ControlClick, Button2
- WinWait, The Secret of Monkey Island, License Agreement
- sleep 1000
- ControlSend, RichEdit20A1, {CTRL}{END}
- sleep 1000
- ControlClick, Button4
- sleep 1000
- ControlClick, Button2
- WinWait, The Secret of Monkey Island, Setup Type
- sleep 1000
- ControlClick, Button2
- WinWait, The Secret of Monkey Island, Click Finish
- sleep 1000
- ControlClick, Button2
- "
- # FIXME: This app has two different keys - you can use either one. How do we handle that with w_read_key?
- if test -f "$W_CACHE"/$W_PACKAGE/activationcode.txt
- then
- MISE_KEY=`cat "$W_CACHE"/$W_PACKAGE/activationcode.txt`
- w_ahk_do "
- SetTitleMatchMode, 2
- run, $W_PROGRAMS_X86_WIN\\LucasArts\\The Secret of Monkey Island Special Edition\\MISE.exe
- winwait, Product Activation
- ControlClick, Edit1 ; Activation Code
- send $MISE_KEY
- ControlClick Button4 ; Activate Online
- winwait, Product Activation, SUCCESSFUL
- winClose
- sleep 1000
- Process, Close, MISE.exe
- "
- elif test -f "$W_CACHE"/$W_PACKAGE/unlockcode.txt
- then
- MISE_KEY=`cat "$W_CACHE"/$W_PACKAGE/unlockcode.txt`
- w_ahk_do "
- SetTitleMatchMode, 2
- run, $W_PROGRAMS_X86_WIN\\LucasArts\\The Secret of Monkey Island Special Edition\\MISE.exe
- winwait, Product Activation
- ControlClick, Edit3 ; Unlock Code
- send $MISE_KEY
- ControlClick Button6 ; Activate manual
- winClose
- sleep 1000
- Process, Close, MISE.exe
- "
- fi
- }
- #----------------------------------------------------------------
- w_metadata myth2_demo games \
- title="Myth II demo 1.7.2" \
- publisher="Project Magma" \
- year="2011" \
- media="download" \
- file1="Myth2_Demo_172.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Myth II Demo/Myth II Demo.exe" \
- homepage="http://projectmagma.net/"
- load_myth2_demo()
- {
- # Originally a 1998 game by Bungie; according to Wikipedia, they handed the
- # source code to Project Magma for further development.
- # 1 May 2011 1.7.2 sha1sum e0a8f707377e71314a471a09ad2a55179ea44588
- w_download http://tain.totalcodex.net/items/download/myth-ii-demo-windows e0a8f707377e71314a471a09ad2a55179ea44588 Myth2_Demo_172.exe
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run, $file1
- winwait, Setup, Welcome
- if ( w_opt_unattended > 0 ) {
- winactivate
- send {Enter} ; next
- winwait, Setup, Components
- send {Enter} ; next
- winwait, Setup, Location
- send {Enter} ; install
- }
- winwait, Setup, Complete
- if ( w_opt_unattended > 0 ) {
- controlclick, Button4 ; Do not run
- controlclick, Button2 ; Finish
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata nfsshift_demo games \
- title="Need For Speed: SHIFT Demo" \
- publisher="EA" \
- year="2009" \
- media="download" \
- file1="NFSSHIFTPCDEMO.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/Need for Speed SHIFT Demo/shiftdemo.exe"
- load_nfsshift_demo()
- {
- #w_download http://cdn.needforspeed.com/data/downloads/shift/NFSSHIFTPCDEMO.exe 7b267654d08c54f15813f2917d9d74ec40905db7
- w_download http://www.legendaryreviews.com/download-center/demos/NFSSHIFTPCDEMO.exe 7b267654d08c54f15813f2917d9d74ec40905db7
- w_try cp "$W_CACHE/$W_PACKAGE/$file1" "$W_TMP"
- cd "$W_TMP"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetTitleMatchMode, slow
- run, $file1
- winwait, WinRAR
- if ( w_opt_unattended > 0 ) {
- ControlClick, Button2
- winwait, SHIFT, View the readme
- controlclick, Button1
- ; Not all systems need the Visual C++ runtime
- loop
- {
- ifwinexist, Visual C++
- {
- controlclick, Button1
- break
- }
- ifwinexist, Setup, SHIFT Demo License
- {
- break
- }
- sleep 1000
- }
- winwait, Setup, SHIFT Demo License
- Sleep 1000
- send {Space}
- Sleep 1000
- send {Enter}
- winwait, Setup, DirectX
- Sleep 1000
- send {Space}
- Sleep 1000
- send {Enter}
- winwait, Setup, Destination
- Sleep 1000
- send {Enter}
- winwait, Setup, begin
- Sleep 1000
- controlclick, Button1
- }
- winwait, Setup, Finish
- if ( w_opt_unattended > 0 ) {
- Sleep 1000
- controlclick, Button5
- controlclick, Button1
- }
- winwaitclose, Setup, Finish
- "
- }
- #----------------------------------------------------------------
- w_metadata njcwp_trial apps \
- title="NJStar Chinese Word Processor trial" \
- publisher="NJStar" \
- year="2009" \
- media="download" \
- file1="njcwp.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/NJStar Chinese WP/njstar.exe" \
- homepage="http://www.njstar.com/cms/njstar-chinese-word-processor"
- load_njcwp_trial()
- {
- w_download http://www.njstar.com/download/njcwp.exe 006da155bad1ac4a73b953c98cb821eb7fd96507
- cd "$W_CACHE/$W_PACKAGE"
- if test "$W_OPT_UNATTENDED"
- then
- w_ahk_do "
- SetTitleMatchMode, 2
- run $file1
- WinWait, Setup, Wizard
- ControlClick Button2 ; next
- WinWait, Setup, License
- ControlClick Button2 ; agree
- WinWait, Setup, Install
- ControlClick Button2 ; install
- WinWait, Setup, Completing
- ControlClick Button4 ; do not launch
- ControlClick Button2 ; finish
- WinWaitClose
- "
- else
- w_try "$WINE" $file1
- fi
- }
- #----------------------------------------------------------------
- w_metadata njjwp_trial apps \
- title="NJStar Japanese Word Processor trial" \
- publisher="NJStar" \
- year="2009" \
- media="download" \
- file1="njjwp.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/NJStar Japanese WP/njstarj.exe" \
- homepage="http://www.njstar.com/cms/njstar-japanese-word-processor"
- load_njjwp_trial()
- {
- w_download http://www.njstar.com/download/njjwp.exe 363d22e4ca7b79d0290a8ccdb0fa99169971d418
- cd "$W_CACHE/$W_PACKAGE"
- if test "$W_OPT_UNATTENDED"
- then
- w_ahk_do "
- SetTitleMatchMode, 2
- run $file1
- WinWait, Setup, Wizard
- ControlClick Button2 ; next
- WinWait, Setup, License
- ControlClick Button2 ; agree
- WinWait, Setup, Install
- ControlClick Button2 ; install
- WinWait, Setup, Completing
- ControlClick Button4 ; do not launch
- ControlClick Button2 ; finish
- WinWaitClose
- "
- else
- w_try "$WINE" $file1
- fi
- }
- #----------------------------------------------------------------
- w_metadata oblivion games \
- title="Elder Scrolls: Oblivion" \
- publisher="Bethesda Game Studios" \
- year="2006" \
- media="dvd" \
- file1="Oblivion.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Bethesda Softworks/Oblivion/Oblivion.exe"
- load_oblivion()
- {
- w_mount "Oblivion"
- cd "$W_ISO_MOUNT_ROOT"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, Setup.exe
- winwait, Oblivion, Welcome to the
- if ( w_opt_unattended > 0 ) {
- sleep 500
- controlclick, Button1
- winwait, Oblivion, License Agreement
- sleep 500
- controlclick, Button3
- sleep 500
- controlclick, Button1
- winwait, Oblivion, Choose Destination
- sleep 500
- controlclick, Button1
- winwait, Oblivion, Ready to Install
- sleep 500
- controlclick, Button1
- winwait, Oblivion, Complete
- sleep 500
- controlclick, Button1
- sleep 500
- controlclick, Button2
- sleep 500
- controlclick, Button3
- }
- winwaitclose, Oblivion, Complete
- "
- if w_workaround_wine_bug 20074 "Installing native d3dx9_36"
- then
- w_call d3dx9_36
- fi
- }
- #----------------------------------------------------------------
- w_metadata penpenxmas games \
- title="Pen-Pen Xmas Olympics" \
- publisher="Army of Trolls / Black Cat" \
- year="2007" \
- media="download" \
- file1="PenPenXmasOlympics100.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/PPO/PPO.exe"
- load_penpenxmas()
- {
- W_BROWSERAGENT=1 \
- w_download http://retrospec.sgn.net/download/files/PenPenXmasOlympics100.exe 36ec83cffa0ad3cc19dea33193b54bdaaea6db5b
- cd "$W_CACHE/$W_PACKAGE"
- "$WINE" PenPenXmasOlympics100.exe $W_UNATTENDED_SLASH_S
- }
- #----------------------------------------------------------------
- w_metadata plantsvszombies games \
- title="Plants vs. Zombies" \
- publisher="PopCap Games" \
- year="2009" \
- media="download" \
- file1="PlantsVsZombiesSetup.exe" \
- installed_file1="$W_PROGRAMS_X86_WIN/PopCap Games/Plants vs. Zombies/PlantsVsZombies.exe"
- load_plantsvszombies()
- {
- w_download "http://downloads.popcap.com/www/popcap_downloads/PlantsVsZombiesSetup.exe" c46979be135ef1c486144fa062466cdc51b740f5
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- run PlantsVsZombiesSetup.exe
- winwait, Plants vs. Zombies Installer
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- send {Enter}
- winwait, Plants vs. Zombies License Agreement
- ControlClick Button1
- }
- winwait, Plants vs. Zombies Installation Complete!
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- send {Space}{Enter}
- ControlClick, x309 y278, Plants vs. Zombies Installation Complete!,,,, Pos
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata popfs games \
- title="Prince of Persia The Forgotten Sands" \
- publisher="Ubisoft" \
- year="2010" \
- media="dvd" \
- file1="PoP_TFS.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Ubisoft/Prince of Persia The Forgotten Sands/Prince of Persia.exe"
- load_popfs()
- {
- w_mount PoP_TFS
- w_ahk_do "
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:Setup.exe
- winwait, Prince of Persia, Language
- if ( w_opt_unattended > 0 ) {
- sleep 500
- ControlClick, Button3
- winwait, Prince of Persia, Welcome
- sleep 500
- ControlClick, Button1
- winwait, Prince of Persia, License
- sleep 500
- ControlClick, Button5
- sleep 500
- ControlClick, Button2
- winwait, Prince of Persia, Click Install
- sleep 500
- ControlClick, Button1
- ; Avoid error when creating desktop shortcut
- Loop
- {
- IfWinActive, Prince of Persia, Click Finish
- break
- IfWinExist, Prince of Persia, desktop shortcut
- {
- sleep 500
- ControlClick, Button1, Prince of Persia, desktop shortcut
- break
- }
- sleep 5000
- }
- }
- winwait, Prince of Persia, Click Finish
- if ( w_opt_unattended > 0 ) {
- sleep 500
- ControlClick, Button4
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata qq apps \
- title="QQ 8.0(Chinese chat app)" \
- publisher="Tencent" \
- year="2015" \
- media="download" \
- file1="QQ8.0.exe" \
- file2="QQ.tar.gz"\
- installed_exe1="$W_PROGRAMS_X86_WIN/Tencent/QQ/Bin/QQScLauncher.exe" \
- homepage="http://www.qq.com" \
- unattended="no"
- load_qq()
- {
- w_download http://dldir1.qq.com/qqfile/qq/QQ8.0/16968/QQ8.0.exe ef92f3863113971c95a79aa75e601893d803826c
- w_download http://hillwoodhome.net/wine/QQ.tar.gz 08de45d3e5bb34b22e7c33e1163daec69742db58
- if w_workaround_wine_bug 5162 "Installing native riched20 to work around can't input username."
- then
- w_call riched20
- fi
- # Make sure chinese fonts are available
- w_call fakechinese
- # uses mfc42u.dll
- w_call mfc42
- if w_workaround_wine_bug 38171 "Installing desktop file to work around bug"
- then
- cd "$W_TMP/"
- tar -zxf "$W_CACHE/qq/QQ.tar.gz"
- mkdir -p $HOME/.local/share/applications/wine/Programs/腾讯软件/QQ
- mkdir -p $HOME/.local/share/icons/hicolor/48x48/apps
- mkdir -p $HOME/.local/share/icons/hicolor/256x256/apps
- w_try mv QQ/腾讯QQ.desktop ~/.local/share/applications/wine/Programs/腾讯软件/QQ
- w_try mv QQ/48x48/QQ.png ~/.local/share/icons/hicolor/48x48/apps
- w_try mv QQ/256x256/QQ.png ~/.local/share/icons/hicolor/256x256/apps
- echo Exec=env WINEPREFIX="$WINEPREFIX" "$WINE" $W_PROGRAMS_X86_WIN\/Tencent\/QQ\/bin\/QQScLauncher.exe >> $HOME/.local/share/applications/wine/Programs/腾讯软件/QQ/腾讯QQ.desktop
- fi
- if w_workaround_wine_bug 39657 "Disable ntoskrnl.exe to work around can't be started bug"
- then
- w_override_dlls disabled ntoskrnl.exe
- fi
- if w_workaround_wine_bug 37680 "Disable txplatform.exe to work around QQ can't be quit cleanly"
- then
- w_override_dlls disabled txplatform.exe
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" "$file1"
- }
- #----------------------------------------------------------------
- w_metadata qqintl apps \
- title="QQ International Instant Messenger 2.11" \
- publisher="Tencent" \
- year="2014" \
- media="download" \
- file1="QQIntl2.11.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Tencent/QQIntl/Bin/QQ.exe" \
- homepage="http://www.imqq.com" \
- unattended="no"
- load_qqintl()
- {
- w_download http://dldir1.qq.com/qqfile/QQIntl/QQi_PC/QQIntl2.11.exe 030df82390e7962177fcef66fc1a0fd1a3ba4090
- if w_workaround_wine_bug 33086 "Installing native riched20 to allow typing in username"
- then
- w_call riched20
- fi
- if w_workaround_wine_bug 37617 "Installing native wininet to work around crash"
- then
- w_call wininet
- fi
- if w_workaround_wine_bug 37680 "Disable txplatform.exe to work around QQ can't be quit cleanly"
- then
- w_override_dlls disabled txplatform.exe
- fi
- # Make sure chinese fonts are available
- w_call fakechinese
- # wants mfc80u.dll
- w_call vcrun2005
- cd "$W_CACHE/$W_PACKAGE"
- w_try "$WINE" "$file1"
- }
- #----------------------------------------------------------------
- w_metadata ragnarok games \
- title="Ragnarok" \
- publisher="GRAVITY" \
- year="2002" \
- media="manual_download" \
- file1="iRO-13.2.2-FullInstall-20110421-1717.msi" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Gravity/Ragnarok Online/Ragnarok.exe"
- load_ragnarok()
- {
- if w_workaround_wine_bug 657 "Visual C++ 6 runtime"
- then
- w_call vcrun6
- fi
- # publisher puts SHA1 checksums on download page, nice
- # BDA295E3A2A57CD02BD122ED7BF4836AC012369A
- w_download_manual http://www.playragnarok.com/downloads/clientdownload.aspx iRO-13.2.2-FullInstall-20110421-1717.msi bda295e3a2a57cd02bd122ed7bf4836ac012369a
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- Run, msiexec /i $file1
- SetTitleMatchMode, 2
- WinWait, Ragnarok Online Setup, Please read the Ragnarok Online License Agreement
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button1
- Sleep 500
- ControlClick Button3
- }
- WinWait, Ragnarok Online Setup, Completed the Ragnarok Online Setup Wizard
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button1 ;Direct
- }
- "
- # Game autoupdates:
- w_killall "Ragnarok.exe"
- }
- #----------------------------------------------------------------
- w_metadata rct3deluxe games \
- title="RollerCoaster Tycoon 3 Deluxe (drm broken on wine)" \
- publisher="Atari" \
- year="2004" \
- media="cd" \
- file1="RCT3.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Atari/RollerCoaster Tycoon 3/RCT3.EXE"\
- wine_showstoppers="21448"
- load_rct3deluxe()
- {
- w_mount RCT3
- # FIXME: make videos and music work
- # Game still doesn't show .wmv logo videos nor play .wma background audio in menu
- # though it does in Jake's screencast. Loading wmp9 and devenum gets it to
- # try to load the .wmv logos, but it crashes in quartz :-(
- # But at least it's playable without the logo videos and background.
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 2
- run ${W_ISO_MOUNT_LETTER}:setup-rtc3.exe
- if ( w_opt_unattended > 0 ) {
- WinWait, Select Setup Language
- controlclick, TButton1 ; accept
- WinWait Setup - RollerCoaster Tycoon 3, Welcome
- controlclick, TButton1 ; Next
- WinWait Setup - RollerCoaster Tycoon 3, License
- controlclick, TRadioButton1 ; Accept
- sleep 500
- controlclick, TButton2 ; Next
- WinWait Setup - RollerCoaster Tycoon 3, Destination
- controlclick, TButton3 ; Next
- WinWait Setup - RollerCoaster Tycoon 3, Start Menu
- controlclick, TButton4 ; Next
- WinWait Setup - RollerCoaster Tycoon 3, Additional
- controlclick, TButton4 ; Next
- WinWait Setup - RollerCoaster Tycoon 3, begin
- controlclick, TButton4 ; Install
- WinWait, Atari Product Registration
- controlclick, Button6 ; Close
- WinWait, Product Registration, skip
- controlclick, Button2 ; Yes, skip
- }
- WinWait Setup - RollerCoaster Tycoon 3, finished
- if ( w_opt_unattended > 0 ) {
- controlclick, TNewCheckListBox1 ; uncheck Launch
- controlclick, TButton4 ; Finish
- }
- WinWaitClose Setup - RollerCoaster Tycoon 3, finished
- "
- }
- #----------------------------------------------------------------
- w_metadata rayman2_demo games \
- title="Rayman 2 High Demo" \
- publisher="Ubisoft" \
- year="1999" \
- media="download" \
- file1="rayman2high.zip" \
- installed_exe1="c:/UbiSoft/Rayman2Demo/Rayman2Demo.exe"
- load_rayman2_demo()
- {
- w_download "ftp://ftp.ubisoft.com/Rayman2/rayman2high.zip" 14b2ad6f41e2e1358f3a4a5167d67a7111ea4fb5
- cd "$W_TMP"
- w_try unzip "$W_CACHE/$W_PACKAGE/rayman2high.zip"
- w_ahk_do "
- SetWinDelay 500
- SetTitleMatchMode, 3
- Run, SETUP.EXE
- WinWaitActive, UBI Soft Installer - Language Choice
- if ( w_opt_unattended > 0 ) {
- ControlClick button1 ; OK
- WinWait, Ubi Soft Installer - Rayman 2 Demo
- ControlClick button1 ; Install
- WinWait, Ubi Soft Installer - Configuration choice
- ControlClick button1 ; Install
- WinWait, Ubi Soft Installer - Installation Directory
- ControlClick button1 ; OK
- WinWait, Ubi Soft Installer - Shortcut Choice
- ControlClick button1 ; OK
- WinWait, Ubi Soft Installer - Information file
- ControlClick button2 ; No
- }
- WinWait, Ubi Soft Installer - Rayman 2 Demo
- if ( w_opt_unattended > 0 ) {
- ControlClick button4 ; Quit
- }
- WinWaitClose
- "
- myexec="Exec=env WINEPREFIX=\"$WINEPREFIX\" wine "'C:\\\\\\\\windows\\\\\\\\UbiSoft\\\\\\\\SetupUbi.exe -play Rayman2'
- mymenu="$HOME/Desktop/To Play Rayman 2 Demo.desktop"
- if test -f "$mymenu" && w_workaround_wine_bug 26303 "Fixing desktop entry"
- then
- # this is a hack, hopefully the wine bug will be fixed soon
- sed -i "s,Exec=.*,$myexec," "$mymenu"
- fi
- mymenu="$XDG_DATA_HOME/applications/wine/Programs/Ubi Soft Games/Rayman 2 Demo/1 To Play Rayman 2 Demo.desktop"
- if test -f "$mymenu" && w_workaround_wine_bug 26304 "Fixing system menu"
- then
- # this is a hack, hopefully the wine bug will be fixed soon
- sed -i "s,Exec=.*,$myexec," "$mymenu"
- fi
- }
- #----------------------------------------------------------------
- w_metadata riseofnations_demo games \
- title="Rise of Nations Trial" \
- publisher="Microsoft" \
- year="2003" \
- media="manual_download" \
- file1="RiseOfNationsTrial.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Rise of Nations Trial/nations.exe"
- load_riseofnations_demo()
- {
- w_download_manual http://download.cnet.com/Rise-of-Nations-Trial-Version/3000-7562_4-10730812.html RiseOfNationsTrial.exe 33cbf1ebc0a93cb840f6296d8b529f6155db95ee
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run RiseOfNationsTrial.exe
- WinWait,Rise Of Nations Trial Setup
- if ( w_opt_unattended > 0 ) {
- sleep 2500
- ControlClick CButtonClassName2
- WinWait,Rise Of Nations Trial Setup, installed
- sleep 2500
- ControlClick CButtonClassName7
- }
- WinWaitClose
- "
- if w_workaround_wine_bug 9027
- then
- w_call directmusic
- fi
- }
- #----------------------------------------------------------------
- w_metadata secondlife games \
- title="Second Life Viewer" \
- publisher="Linden Labs" \
- year="2003-2011" \
- media="download" \
- file1="Second_Life_3-2-8-248931_Setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/SecondLifeViewer/SecondLife.exe"
- load_secondlife()
- {
- w_download http://download.cloud.secondlife.com/Viewer-3/Second_Life_3-2-8-248931_Setup.exe e08c16edc4d2fb68bb6275bed11a259a74918da5
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run, $file1
- if ( w_opt_unattended > 0 ) {
- winwait, Installer Language
- send {Enter}
- winwait, Installation Folder
- send {Enter}
- }
- winwait, Second Life, Start Second Life now
- if ( w_opt_unattended > 0 ) {
- send {Tab}{Enter}
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata sims3 games \
- title="The Sims 3 (drm broken on wine)" \
- publisher="EA" \
- year="2009" \
- media="dvd" \
- file1="Sims3.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/The Sims 3/Game/Bin/TS3.exe" \
- wine_showstoppers="26273"
- load_sims3()
- {
- w_read_key
- w_mount Sims3
- # Default lang, USA, accept defaults, uncheck EA dl mgr, uncheck readme
- w_ahk_do "
- run ${W_ISO_MOUNT_LETTER}:Sims3Setup.exe
- winwait, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- SetTitleMatchMode, 2
- winwait, - InstallShield Wizard
- sleep 1000
- ControlClick &Next >, - InstallShield Wizard
- sleep 1000
- send uuuuuu{Tab}{Tab}{Enter}
- sleep 1000
- send a{Enter}
- sleep 1000
- send {Raw}$W_KEY
- send {Enter}
- winwait, - InstallShield Wizard, Setup Type
- send {Enter}
- winwait, - InstallShield Wizard, Click Install to begin
- send {Enter}
- winwait, - InstallShield Wizard, EA Download Manager
- ControlClick Yes, - InstallShield Wizard
- send {Enter}
- }
- winwait, - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick View the readme file, - InstallShield Wizard
- ControlClick Finish, - InstallShield Wizard
- }
- winwaitclose
- "
- w_umount
- # DVD Region code is last digit.
- # FIXME: download appropriate one rather than just US version.
- w_download http://akamai.cdn.ea.com/eadownloads/u/f/sims/sims3/patches/TS3_1.19.44.010001_Update.exe 7d21a81aaea70bf102267456df4629ce68be0cc8
- cd "$W_CACHE"/$W_PACKAGE
- w_ahk_do "
- run TS3_1.19.44.010001_Update.exe
- SetTitleMatchMode, 2
- winwait, - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Finish, - InstallShield Wizard
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata simsmed games \
- title="The Sims Medieval (drm broken on wine)" \
- publisher="EA" \
- year="2011" \
- media="dvd" \
- file1="TSimsM.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/The Sims Medieval/Game/Bin/TSM.exe" \
- wine_showstoppers="26273"
- load_simsmed()
- {
- w_read_key
- w_mount TSimsM
- # Default lang, USA, accept defaults, uncheck EA dl mgr, uncheck readme
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 1000
- run ${W_ISO_MOUNT_LETTER}:SimsMedievalSetup.exe
- winwait, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- SetTitleMatchMode, 2
- winwait, - InstallShield Wizard
- ControlClick &Next >, - InstallShield Wizard
- sleep 1000
- send uuuuuu{Tab}{Tab}{Enter}
- WinWait, Sims, License
- ControlClick Button3 ; Accept
- sleep 1000
- ControlClick Button1 ; Next
- sleep 1000
- send {Raw}$W_KEY
- send {Enter}
- winwait, - InstallShield Wizard, Setup Type
- ControlClick &Complete ; was not defaulting to complete?
- send {Enter}
- winwait, - InstallShield Wizard, Click Install to begin
- send {Enter}
- ; Handle optional dialogs
- ; In Wine-1.3.16 and lower, before
- ; http://www.winehq.org/pipermail/wine-cvs/2011-March/076262.html,
- ; wine didn't claim to already have .net 4 installed,
- ; and ran into bug 25535.
- Loop
- {
- ; .net 4 install sometimes fails nicely
- ifWinExist,, .NET Framework 4 has not been installed
- {
- ControlClick Button3 ; Finish
- }
- ; .net 4 install sometimes explodes
- ifWinExist .NET Framework Initialization Error
- {
- send {Enter}
- }
- ifWinExist, Sims, Customer Experience Improvement
- {
- send {Enter} ; Next
- }
- ifWinExist, - InstallShield Wizard, Complete
- break
- sleep 1000
- }
- }
- winwait, - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Do not view readme
- send {Enter} ; Finish
- }
- winwaitclose
- "
- # DVD Region code is last digit.
- # FIXME: download appropriate one rather than just US version.
- w_download http://akamai.cdn.ea.com/eadownloads/u/f/sims/sims/patches/TheSimsMedievalPatch_1.1.10.00001_Update.exe 7214ced8af7315741e05024faeacf9053b999b1b
- cd "$W_CACHE"/$W_PACKAGE
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run TheSimsMedievalPatch_1.1.10.00001_Update.exe
- winwait, Medieval, will reset any in-progress quests
- send {Enter}
- winwait, Medieval, Welcome
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- }
- winwait, - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Finish, - InstallShield Wizard
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata sims3_gen games \
- title="The Sims 3: Generations (drm broken on Wine)" \
- publisher="EA" \
- year="2011" \
- media="dvd" \
- file1="Sims3EP04.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/The Sims 3 Generations/Game/Bin/TS3EP04.exe" \
- wine_showstoppers="26273"
- load_sims3_gen()
- {
- if [ ! -f "$W_PROGRAMS_X86_WIN/Electronic Arts/The Sims 3/Game/Bin/TS3.exe" ]
- then
- w_die "You must have sims3 installed to install sims3_gen!"
- fi
- w_read_key
- w_mount Sims3EP04
- # Default lang, USA, accept defaults, uncheck EA dl mgr, uncheck readme
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 1000
- run ${W_ISO_MOUNT_LETTER}:Sims3EP04Setup.exe
- winwait, - InstallShield Wizard
- if ( w_opt_unattended > 0 ) {
- send {Enter}
- loop
- {
- SetTitleMatchMode, 2
- ifwinexist, - InstallShield Wizard, Setup will now attempt to update
- {
- ControlClick, Button1, - InstallShield Wizard
- sleep 1000
- winwait, - InstallShield Wizard, Setup has finished updating The Sims
- sleep 1000
- controlclick, Button1, - InstallShield Wizard
- sleep 1000
- }
- ifwinexist, Sims, License
- {
- winactivate, Sims, License
- sleep 1000
- ControlClick, Button3
- sleep 1000
- ControlClick, Button1
- sleep 1000
- break
- }
- sleep 1000
- }
- winwait, Sims, Please enter the entire Registration Code
- sleep 1000
- send {Raw}$W_KEY
- send {Enter}
- winwait, - InstallShield Wizard, Setup Type
- ControlClick &Complete ; was not defaulting to complete?
- send {Enter}
- winwait, - InstallShield Wizard, Click Install to begin
- send {Enter}
- winwait, - InstallShield Wizard, Would you like to install the latest
- sleep 1000
- ControlClick, Button4 ; No thanks
- sleep 1000
- ControlClick, Button1
- sleep 1000
- }
- winwait, - InstallShield Wizard, Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Do not view readme
- send {Enter} ; Finish
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata splitsecond games \
- title="Split Second" \
- publisher="Disney" \
- year="2010" \
- media="dvd" \
- file1="SplitSecond.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Disney Interactive Studios/Split Second/SplitSecond.exe"
- load_splitsecond()
- {
- # Key is used in first run activation, no need to read it here.
- w_mount SplitSecond
- # Aborts with dialog about FirewallInstallHelper.dll if that's not on the path (e.g. in current dir)
- cd "$W_ISO_MOUNT_ROOT"
- w_ahk_do "
- SetTitleMatchMode, 2
- run setup.exe
- winwait, Split, Language
- sleep 500
- ControlClick, Next, Split, Language ; FIXME: Use button name
- winwait, Split, game installation
- sleep 500
- ControlClick, Button1, Split, game installation
- winwait, Split, license
- sleep 500
- ControlClick, Button5, Split, license
- sleep 500
- ControlClick, Button2, Split, license
- winwait, Split, DirectX
- sleep 500
- ControlClick, Button5, Split, DirectX
- sleep 500
- ControlClick, Button2, Split, DirectX
- winwait, Split, installation method
- sleep 500
- controlclick, Next, Split, installation method ; FIXME: Use button name
- winwait, DirectX needs to be updated
- sleep 500
- send {Enter}
- winwait, Split, begin
- sleep 500
- ControlClick, Button1
- winwait, Split, completed
- sleep 500
- ControlClick, Button1, Split
- sleep 500
- ControlClick, Button4, Split
- "
- }
- #----------------------------------------------------------------
- w_metadata splitsecond_demo games \
- title="Split Second Demo" \
- publisher="Disney" \
- year="2010" \
- media="manual_download" \
- file1="SplitSecondDemo_FilePlanet.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Disney Interactive Studios/Split Second/SplitSecondDEMO.exe"
- load_splitsecond_demo()
- {
- w_download_manual http://www.fileplanet.com/212404/210000/fileinfo/Split/Second-Demo SplitSecondDemo_FilePlanet.exe 72b070712cfe951297263fae143521b45dae16b4
- if w_workaround_wine_bug 22774 "" 1.3.0
- then
- w_warn "On wine, install takes an extra 7 minutes at the end, please be patient."
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run, SplitSecondDemo_FilePlanet.exe
- winwait, Split, Language
- ;ControlClick, Next, Split, Language ; does not quite work, have to use {Enter} instead
- Send {Enter}
- winwait, Split, game installation
- ControlClick, Button1, Split, game installation
- winwait, Split, license
- ControlClick, Button5, Split, license
- ControlClick, Button2, Split, license
- winwait, Split, DirectX
- ControlClick, Button5, Split, DirectX
- ControlClick, Button2, Split, DirectX
- winwait, Split, installation path
- ControlClick, Button1, Split, installation path
- winwait, Split, Game features
- ControlClick, Button2, Split, Game features
- winwait, Split, start copying
- ControlClick, Button1, Split, start copying
- winwait, Split, completed
- ControlClick, Button1, Split, completed
- ControlClick, Button4, Split, completed
- "
- }
- #----------------------------------------------------------------
- w_metadata spore games \
- title="Spore" \
- publisher="EA" \
- year="2008" \
- media="dvd" \
- file1="SPORE.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/SPORE/Sporebin/SporeApp.exe"
- load_spore()
- {
- w_mount SPORE
- w_read_key
- w_ahk_do "
- SetTitleMatchMode, 2
- run, ${W_ISO_MOUNT_LETTER}:SPORESetup.exe
- winwait, Language
- if ( w_opt_unattended > 0 ) {
- sleep 500
- controlclick, Button1
- winwait, SPORE, Welcome
- sleep 500
- controlclick, Button1
- winwait, SPORE, License
- sleep 500
- controlclick, Button3
- sleep 500
- controlclick, Button1
- winwait, SPORE, Registration Code
- send {RAW}$W_KEY
- sleep 500
- controlclick, Button2
- winwait, SPORE, Setup Type
- sleep 500
- controlclick, Button6
- winwait, SPORE, Shortcut
- sleep 500
- controlclick, Button6
- winwait, SPORE, begin
- sleep 500
- controlclick, Button1
- winwait, Question
- ; download managers are usually a pain, so always say no to such questions
- sleep 500
- controlclick, Button2
- }
- winwait, SPORE, complete
- sleep 500
- if ( w_opt_unattended > 0 ) {
- controlclick, Button1
- sleep 500
- controlclick, Button2
- sleep 500
- controlclick, Button4
- }
- winwaitclose, SPORE, complete
- "
- }
- #----------------------------------------------------------------
- w_metadata spore_cc_demo games \
- title="Spore Creature Creator trial" \
- publisher="EA" \
- year="2008" \
- media="download" \
- file1="792248d6ad421d577132c2b648bbed45_scc_trial_na.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Electronic Arts/SPORE/Sporebin/SporeCreatureCreator.exe"
- load_spore_cc_demo()
- {
- w_download http://lvlt.bioware.cdn.ea.com/u/f/eagames/spore/scc/promo/792248d6ad421d577132c2b648bbed45_scc_trial_na.exe 06da5558e6ebbc39d2fac955eceab78cf8470e07
- w_info "The installer runs on for about a minute after it's done."
- cd "$W_CACHE/$W_PACKAGE"
- if test "$W_OPT_UNATTENDED"
- then
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- run $file1
- winwait, Wizard, Welcome to the SPORE
- send N
- winwait, Wizard, Please read the following
- send a
- send N
- winwait, Wizard, your setup
- send N
- winwait, Wizard, options below
- send N
- winwait, Wizard, We're ready
- ;send i ; didn't take once?
- ControlClick, Button1
- winwait, Question, do not install the latest
- send N ; reject EA Download Manager
- winwait, Wizard, Launch
- send {SPACE}{DOWN}{SPACE}{ENTER}
- winwaitclose
- "
- while ps | grep $file1 | grep -v grep > /dev/null
- do
- w_info "Waiting for installer to finish."
- sleep 2
- done
- else
- w_try "$WINE" "$file1"
- fi
- }
- #----------------------------------------------------------------
- w_metadata starcraft2_demo games \
- title="Starcraft II Demo" \
- publisher="Blizzard" \
- year="2010" \
- media="manual_download" \
- file1="SC2-WingsOfLiberty-enUS-Demo-Installer.zip" \
- installed_exe1="$W_PROGRAMS_X86_WIN/StarCraft II Demo/StarCraft II.exe"
- load_starcraft2_demo()
- {
- w_download_manual http://www.fileplanet.com/217982/210000/fileinfo/Starcraft-2-Demo SC2-WingsOfLiberty-enUS-Demo-Installer.zip 4c06ad755fbde73f135a7359bf6bfdbd2c6eb00e
- cd "$W_TMP"
- w_try_unzip . "$W_CACHE/$W_PACKAGE"/SC2-WingsOfLiberty-enUS-Demo-Installer.zip
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, Installer.exe
- WinWait, StarCraft II Installer
- if ( w_opt_unattended > 0 ) {
- sleep 500
- ControlClick, x300 y200
- winwait, End User License Agreement
- winactivate
- ;MouseMove, 300, 300
- ;Click WheelDown, 70
- Sleep, 1000
- ControlClick, Button2 ; Accept
- winwaitclose
- winwait, StarCraft II Installer
- sleep 1000
- ControlClick, x800 y500
- ; Is there any better wait to await completion?
- Loop {
- PixelGetColor, color, 473, 469 ; the 1 in 100%
- ; The digits are drawn white, but because the whole
- ; window is flickering, it cycles through about 20
- ; brightnesses. Check a bunch of them to reduce
- ; chances of getting stuck for a long time.
- ifEqual, color, 0xffffff
- break
- ifEqual, color, 0xf4f4f4
- break
- ifEqual, color, 0xf1f1f1
- break
- ifEqual, color, 0xf0f0f0
- break
- ifEqual, color, 0xeeeeee
- break
- ifEqual, color, 0xebebeb
- break
- ifEqual, color, 0xe4e4e4
- break
- sleep 500 ; changes rapidly, so sample often
- }
- ControlClick, x800 y500 ; Finish
- winwaitclose
- ; no way to tell game to not start?
- process, wait, SC2.exe
- sleep 2000
- process, close, SC2.exe
- }
- "
- }
- #----------------------------------------------------------------
- w_metadata theundergarden_demo games \
- title="The UnderGarden Demo" \
- publisher="Atari" \
- year="2010" \
- media="manual_download" \
- file1="TheUnderGarden_PC_B34_SRTB.30_28OCT10.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/The UnderGarden/TheUndergarden.exe"
- load_theundergarden_demo()
- {
- w_download_manual http://www.bigdownload.com/games/the-undergarden/pc/the-undergarden-demo TheUnderGarden_PC_B34_SRTB.30_28OCT10.exe acf90c422ac2f2f242100f39bedfe7df0c95f7a
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, TheUnderGarden_PC_B34_SRTB.30_28OCT10.exe
- WinWait,WinRAR
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick Button2 ; Install
- WinWait,Select Setup Language, during
- Sleep 500
- ControlClick TNewButton1 ;OK
- WinWait,Setup - The UnderGarden, your
- Sleep 500
- ControlClick TNewButton1 ;OK
- WinWait,Setup - The UnderGarden, License
- Sleep 500
- ControlClick TNewRadioButton1 ; accept
- Sleep 500
- ControlClick TNewButton2 ; Next
- WinWait,Setup - The UnderGarden, different
- Sleep 500
- ControlClick TNewButton3 ;Next
- WinWait,Setup - The UnderGarden, shortcuts
- Sleep 500
- ControlClick TNewButton4 ;OK
- WinWait,Setup - The UnderGarden, additional
- Sleep 500
- ControlFocus,TNewCheckListBox1,desktop
- Sleep 500
- Send {Space}
- Sleep 500
- ControlClick TNewButton4 ; Next
- WinWait,Setup - The UnderGarden, review
- Sleep 500
- ControlClick TNewButton4 ;Install
- WinWait,Microsoft Visual C, Visual
- Sleep 500
- ControlClick Button13 ;Cancel
- WinWait,Microsoft Visual C, want
- Sleep 500
- ControlClick Button1 ;Yes
- WinWait,Microsoft Visual C, chosen
- Sleep 500
- ControlClick Button2 ;Finish
- WinWait,Framework 3, Press
- Sleep 500
- ControlClick Button21 ;Cancel
- WinWait,Framework 3, want
- Sleep 500
- ControlClick Button1 ;Yes
- WinWait,Installing Microsoft, Runtime
- Sleep 500
- ControlClick Button6 ;Cancel
- }
- WinWait,Setup,launched
- if ( w_opt_unattended > 0 ) {
- Sleep 500
- ControlClick TNewButton4 ;Finish
- }
- WinWaitClose,Setup,launched
- "
- }
- #----------------------------------------------------------------
- w_metadata tmnationsforever games \
- title="TrackMania Nations Forever" \
- publisher="Nadeo" \
- year="2009" \
- media="download" \
- file1="tmnationsforever_setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/TmNationsForever/TmForever.exe"
- load_tmnationsforever()
- {
- # Before: cab0cf66db0471bc2674a3b1aebc35de0bca6ed0
- # 29 Mar 2011: 23388798d5c90ad4a233b4cd7e9fcafd69756978
- w_download "http://files.trackmaniaforever.com/tmnationsforever_setup.exe" 23388798d5c90ad4a233b4cd7e9fcafd69756978
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, tmnationsforever_setup.exe
- WinWait,Select Setup Language
- if ( w_opt_unattended > 0 ) {
- Sleep 1000
- ControlClick TNewButton1 ; OK
- WinWait,Setup - TmNationsForever,Welcome
- Sleep 1000
- ControlClick TNewButton1 ; Next
- WinWait,Setup - TmNationsForever,License
- Sleep 1000
- ControlClick TNewRadioButton1 ; Accept
- Sleep 1000
- ControlClick TNewButton2 ; Next
- WinWait,Setup - TmNationsForever,Where
- Sleep 1000
- ControlClick TNewButton3 ; Next
- WinWait,Setup - TmNationsForever,shortcuts
- Sleep 1000
- ControlClick TNewButton4 ; Next
- WinWait,Setup - TmNationsForever,perform
- Sleep 1000
- ControlClick TNewButton4 ; Next
- WinWait,Setup - TmNationsForever,installing
- Sleep 1000
- ControlClick TNewButton4 ; Install
- }
- WinWait,Setup - TmNationsForever,finished
- if ( w_opt_unattended > 0 ) {
- Sleep 1000
- ControlFocus, TNewCheckListBox1, TmNationsForever, finished
- Sleep 1000
- Send {Space} ; don't start game
- ControlClick TNewButton4 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata trainztcc_2004 games \
- title="Trainz: The Complete Collection: TRS2004" \
- publisher="Paradox Interactive" \
- year="2008" \
- media="dvd" \
- file1="TRS2006DVD.iso" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Auran/TRS2004/TRS2004.exe"
- load_trainztcc_2004()
- {
- w_call mfc42
- w_read_key
- # yup, they got the volume name wrong
- w_mount TRS2006DVD
- cd ${W_ISO_MOUNT_ROOT}/TRS2004_SP4_DVD_Installer_BUILD_2370/Installer/Disk1
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run setup.exe
- if ( w_opt_unattended > 0 ) {
- winwait TRS2004 Setup, Please install the latest drivers
- send {Enter}
- winwait TRS2004, Welcome
- send {Enter}
- winwait TRS2004, License
- ControlClick Button2
- winwait TRS2004, serial
- winactivate
- send ${W_RAW_KEY}{Enter}
- winwait TRS2004, Destination
- send {Enter}
- winwait Install DirectX
- send n
- winwait Windows Update, Your computer already
- send {Enter}
- }
- winwait TRS2004, Complete
- if ( w_opt_unattended > 0 ) {
- send {Space} ; uncheck View Readme
- send {Enter} ; Finish
- }
- winwaitclose
- "
- # And, while we're at it, also install the accompanying paint shed app
- cd ${W_ISO_MOUNT_ROOT}/TRAINZ_PAINTSHED
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run Trainz_Paint_Shed_Setup.exe
- if ( w_opt_unattended > 0 ) {
- winwait Trainz Paint Shed, Welcome
- send {Enter}
- winwait Trainz Paint Shed, License
- send a ; accept
- send {Enter} ; Next
- winwait Trainz Paint Shed, Destination
- send {Enter}
- winwait Trainz Paint Shed, Install
- send {Enter}
- }
- winwait Trainz Paint Shed, Complete
- if ( w_opt_unattended > 0 ) {
- send {Enter} ; Finish
- }
- winwaitclose
- "
- }
- #----------------------------------------------------------------
- w_metadata sammax301_demo games \
- title="Sam & Max 301: The Penal Zone" \
- publisher="Telltale Games" \
- year="2010" \
- media="manual_download" \
- file1="SamMax301_PC_Setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Telltale Games/Sam and Max - The Devil's Playhouse/The Penal Zone/SamMax301.exe"
- load_sammax301_demo()
- {
- w_download_manual "http://www.fileplanet.com/211314/210000/fileinfo/Sam-&-Max:-Devil's-Playhouse---Episode-One-Demo" SamMax301_PC_Setup.exe 83f47b7f3a5074a6e29bdc9b4f1fd2c4471d9641
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- SetWinDelay 500
- run SamMax301_PC_Setup.exe
- winwait Sam and Max The Penal Zone Setup, Welcome
- if ( w_opt_unattended > 0 ) {
- controlclick button2 ; Next
- winwait Sam and Max The Penal Zone Setup, DirectX
- controlclick button5 ; Uncheck check directx
- controlclick button2 ; Next
- winwait Sam and Max The Penal Zone Setup, License
- controlclick button2 ; I Agree
- winwait Sam and Max The Penal Zone Setup, Location
- controlclick button2 ; Install
- winwait Sam and Max The Penal Zone Setup, Finish
- controlclick button4 ; Uncheck play now
- controlclick button5 ; Uncheck create shortcut
- controlclick button2 ; Finish
- }
- winwaitclose Sam and Max The Penal Zone Setup
- "
- }
- #----------------------------------------------------------------
- w_metadata sammax304_demo games \
- title="Sam & Max 304: Beyond the Alley of the Dolls" \
- publisher="Telltale Games" \
- year="2010" \
- media="manual_download" \
- file1="SamMax304_PC_setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Telltale Games/Sam and Max - The Devil's Playhouse/Beyond the Alley of the Dolls/SamMax304.exe"
- load_sammax304_demo()
- {
- w_download_manual "http://www.fileplanet.com/214770/210000/fileinfo/Sam-&-Max:-The-Devi's-Playhouse---Beyond-the-Alley-of-the-Dolls-Demo" SamMax304_PC_setup.exe 1a385a1f1e83770c973e6457b923b7a44bbe44d8
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, $file1
- WinWait,Sam and Max Beyond the Alley of the Dolls Setup
- if ( w_opt_unattended > 0 ) {
- ControlClick Button2 ; Next
- WinWait,Sam and Max Beyond the Alley of the Dolls Setup,DirectX
- ControlClick Button2 ; Next - Directx check defaulted
- WinWait,Sam and Max Beyond the Alley of the Dolls Setup,License
- ControlClick Button2 ; Agree
- WinWait,Sam and Max Beyond the Alley of the Dolls Setup,Location
- ControlClick Button2 ; Install
- WinWait,Sam and Max Beyond the Alley of the Dolls Setup,Finish
- ControlClick Button4 ; Uncheck Play Now
- ControlClick Button2 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata tropico3_demo games \
- title="Tropico 3 Demo" \
- publisher="Kalypso Media GmbH" \
- year="2009" \
- media="manual_download" \
- file1="Tropico3Demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Kalypso/Tropico 3 Demo/Tropico3 Demo.exe"
- load_tropico3_demo()
- {
- w_download_manual "http://www.tropico3.com/?p=downloads" Tropico3Demo.exe e031749db346ac3a87a675787c81eb1ca8cb5909
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 1000
- SetTitleMatchMode, 2
- Run, Tropico3Demo.exe
- WinWait,Installer
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; OK
- WinWait,Tropico,Welcome
- ControlClick Button2 ; Next
- WinWait,Tropico,License
- ControlClick Button2 ; Agree
- WinWait,Tropico,Typical
- ControlClick Button2 ; Next
- }
- WinWait,Tropico,Completing
- if ( w_opt_unattended > 0 ) {
- ControlClick Button4 ; Uncheck Run Now
- ControlClick Button2 ; Finish
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata singularity games \
- title="Singularity" \
- publisher="Activision" \
- year="2010" \
- media="dvd" \
- file1="SNG_DVD.iso"
- load_singularity()
- {
- w_read_key
- w_mount SNG_DVD
- w_ahk_do "
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- winwait, Activision(R) - InstallShield, Select the language for the installation from the choices below.
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, Button1, Activision(R) - InstallShield, Select the language for the installation from the choices below.
- sleep 1000
- winwait, Singularity(TM), Keycode Check
- sleep 1000
- Send $W_KEY
- sleep 1000
- Send {Enter}
- ; Well this is annoying...
- Winwait, Keycode Check, The Keycode you entered appears to be valid.
- sleep 1000
- Send {Enter}
- winwait, Singularity(TM), The InstallShield Wizard will install Singularity(TM) on your computer
- sleep 1000
- controlclick, Button1, Singularity(TM), The InstallShield Wizard will install Singularity(TM) on your computer
- winwait, Singularity(TM), Please read the following license agreement carefully
- sleep 1000
- controlclick, Button5, Singularity(TM), Please read the following license agreement carefully
- sleep 1000
- controlclick, Button2, Singularity(TM), Please read the following license agreement carefully
- winwait, Singularity(TM), Minimum System Requirements
- sleep 1000
- controlclick, Button1, Singularity(TM), Minimum System Requirements
- winwait, Singularity(TM), Select the setup type to install
- controlclick, Button4, Singularity(TM), Select the setup type to install
- }
- ; Loop until installer window has been gone for at least two seconds
- Loop
- {
- sleep 1000
- IfWinExist, Singularity
- continue
- IfWinExist, Activision
- continue
- sleep 1000
- IfWinExist, Singularity
- continue
- IfWinExist, Activision
- continue
- break
- }
- "
- # Clean up crap left over in c:\ when the installer runs the vc 2008 redistributable installer
- cd "$W_DRIVE_C"
- rm -f VC_RED.* eula.*.txt globdata.ini install.exe install.ini install.res.*.dll vcredist.bmp
- }
- #----------------------------------------------------------------
- w_metadata wglgears benchmarks \
- title="wglgears" \
- publisher="Clinton L. Jeffery" \
- year="2005" \
- media="download" \
- file1="wglgears.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/misc/wglgears.exe"
- load_wglgears()
- {
- w_download http://www2.cs.uidaho.edu/~jeffery/win32/wglgears.exe d65d2098bc11af76cb614946342913b1af62924d
- mkdir -p "$W_PROGRAMS_X86_UNIX/misc"
- cp "$W_CACHE"/wglgears/wglgears.exe "$W_PROGRAMS_X86_UNIX/misc"
- chmod +x "$W_PROGRAMS_X86_UNIX/misc/wglgears.exe"
- }
- #----------------------------------------------------------------
- w_metadata stalker_pripyat_bench benchmarks \
- title="S.T.A.L.K.E.R Call of Pripyat benchmark" \
- publisher="GSC Game World" \
- year="2009" \
- media="manual_download" \
- file1="stkcop-bench-setup.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Call Of Pripyat Benchmark/Benchmark.exe"
- load_stalker_pripyat_bench()
- {
- # Much faster
- w_download_manual http://www.bigdownload.com/games/stalker-call-of-pripyat/pc/stalker-call-of-pripyat-benchmark stkcop-bench-setup.exe 8691c3f289ecd0521bed60ffd46e65ad080206e0
- #w_download http://files.gsc-game.com/st/bench/stkcop-bench-setup.exe 8691c3f289ecd0521bed60ffd46e65ad080206e0
- cd "$W_CACHE/$W_PACKAGE"
- # FIXME: a bit fragile, if you're browsing the web while installing, it sometimes gets stuck.
- w_ahk_do "
- SetTitleMatchMode, 2
- run stkcop-bench-setup.exe
- WinWait,Setup - Call Of Pripyat Benchmark
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick TNewButton1 ; Next
- WinWait,Setup - Call Of Pripyat Benchmark,License
- sleep 1000
- ControlClick TNewRadioButton1 ; accept
- sleep 1000
- ControlClick TNewButton2 ; Next
- WinWait,Setup - Call Of Pripyat Benchmark,Destination
- sleep 1000
- ControlClick TNewButton3 ; Next
- WinWait,Setup - Call Of Pripyat Benchmark,shortcuts
- sleep 1000
- ControlClick TNewButton4 ; Next
- WinWait,Setup - Call Of Pripyat Benchmark,performed
- sleep 1000
- ControlClick TNewButton4 ; Next
- WinWait,Setup - Call Of Pripyat Benchmark,ready
- sleep 1000
- ControlClick, TNewButton4 ; Next (nah, who reads doc?)
- }
- WinWait,Setup - Call Of Pripyat Benchmark,finished
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- Send {Space} ; uncheck launch
- sleep 1000
- ControlClick TNewButton4 ; Finish
- }
- WinWaitClose,Setup - Call Of Pripyat Benchmark,finished
- "
- if w_workaround_wine_bug 24868
- then
- w_call d3dx9_31
- w_call d3dx9_42
- fi
- }
- #----------------------------------------------------------------
- w_metadata torchlight games \
- title="Torchlight - boxed version" \
- publisher="Runic Games" \
- year="2009" \
- media="dvd" \
- file1="Torchlight.iso"
- load_torchlight()
- {
- w_mount "Torchlight"
- w_ahk_do "
- SetTitleMatchMode, 2
- Run, ${W_ISO_MOUNT_LETTER}:Torchlight.exe
- WinWait, Torchlight Setup, This wizard will guide
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- ControlClick, Button2, Torchlight Setup, This wizard will guide
- WinWait, Torchlight Setup, Please review the license terms
- sleep 1000
- ControlClick, Button2, Torchlight Setup, Please review the license terms
- WinWait, Torchlight Setup, Choose Install Location
- sleep 1000
- ControlClick, Button2, Torchlight Setup, Choose Install Location
- WinWait, Torchlight Setup, Installation Complete
- sleep 1000
- ControlClick, Button2, Torchlight Setup, Installation Complete
- WinWait, Torchlight Setup, Completing the Torchlight Setup Wizard
- sleep 1000
- ControlClick, Button4, Torchlight Setup, Completing the Torchlight Setup Wizard
- ControlClick, Button2, Torchlight Setup, Completing the Torchlight Setup Wizard
- }
- WinWaitClose, Torchlight Setup
- "
- }
- #----------------------------------------------------------------
- w_metadata twfc games \
- title="Transformers: War for Cybertron" \
- publisher="Activision" \
- year="2010" \
- media="dvd" \
- file1="TWFC_DVD.iso"
- load_twfc()
- {
- w_read_key
- w_mount TWFC_DVD
- w_ahk_do "
- run ${W_ISO_MOUNT_LETTER}:setup.exe
- SetTitleMatchMode, 2
- winwait, Activision, Select the language for the installation
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, Button1, Activision, Select the language for the installation
- winwait, Transformers, Press NEXT to verify your key
- sleep 1000
- send $W_KEY
- send {Enter}
- winwait, Keycode Check, The Keycode you entered appears to be valid
- sleep 1000
- send {Enter}
- winwait, Transformers, The InstallShield Wizard will install Transformers
- sleep 1000
- controlclick, Button1, Transformers, The InstallShield Wizard will install Transformers
- winwait, Transformers, License Agreement
- sleep 1000
- controlclick, Button5, Transformers, License Agreement
- sleep 1000
- controlclick, Button2, Transformers, License Agreement
- winwait, Transformers, Minimum System Requirements
- sleep 1000
- controlclick, Button1, Transformers, Minimum System Requirements
- winwait, Transformers, Select the setup type to install
- sleep 1000
- controlclick, Button4, Transformers, Select the setup type to install
- }
- ; Installer exits silently. Prevent an early umount
- Loop
- {
- sleep 1000
- IfWinExist, Transformers
- continue
- IfWinExist, Activision
- continue
- sleep 1000
- IfWinExist, Transformers
- continue
- IfWinExist, Activision
- continue
- break
- }
- "
- # Clean up crap left over in c:\ when the installer runs the vc 2008 redistributable installer
- cd "$W_DRIVE_C"
- rm -f VC_RED.* eula.*.txt globdata.ini install.exe install.ini install.res.*.dll vcredist.bmp
- }
- #----------------------------------------------------------------
- w_metadata typingofthedead_demo games \
- title="Typing of the Dead Demo" \
- publisher="Sega" \
- year="1999" \
- media="manual_download" \
- file1="Tod_e_demo.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/SEGA/TOD-Demo/Tod_e_demo.exe"
- load_typingofthedead_demo()
- {
- w_download "http://www.fileplanet.com/54947/50000/fileinfo/The-Typing-of-the-Dead-Demo" 96fe3edb2431210932af840e29c59bce6b7fc80f
- cd "$W_TMP"
- w_try_unzip . "$W_CACHE/$W_PACKAGE/tod-demo.zip"
- w_ahk_do "
- SetTitleMatchMode, 2
- run SETUP.EXE
- if ( w_opt_unattended > 0 ) {
- WinWait,InstallShield Wizard,where
- sleep 1000
- ControlClick Button1 ; Next
- WinWait,InstallShield Wizard,icons
- sleep 1000
- ControlClick Button2 ; Next
- }
- ; installer crashes here?
- Sleep 20000
- "
- }
- #----------------------------------------------------------------
- w_metadata ut3 games \
- title="Unreal Tournament 3" \
- publisher="Midway Games" \
- year="2007" \
- media="dvd" \
- file1="UT3_RC7.iso" \
- file2="UT3Patch5.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Unreal Tournament 3/Binaries/UT3.exe"
- load_ut3()
- {
- w_download_manual "http://www.filefront.com/13709855/UT3Patch5.exe" UT3Patch5.exe
- w_try w_mount UT3_RC7
- w_ahk_do "
- run ${W_ISO_MOUNT_LETTER}:SetupUT3.exe
- SetTitleMatchMode, slow ; else can't see EULA text
- SetTitleMatchMode, 2
- SetWinDelay 1000
- WinWait, Choose Setup Language
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; OK
- WinWait, Unreal Tournament 3, GAMESPY ; License Agreement
- ControlClick Button2 ; Yes
- WinWait, Unreal Tournament 3, UnrealEd ; License Agreement
- ControlClick Button2 ; Yes
- WinWait, , Choose Destination
- ControlClick Button1 ; Next
- WinWait, AGEIA PhysX v7.09.13 Setup, License
- ControlClick Button3 ; Accept
- sleep 1000
- ControlClick Button4 ; Next
- WinWait, AGEIA PhysX v7.09.13, Finish
- ControlClick Button1 ; Finish
- ; game now begins installing
- }
- WinWait, , InstallShield Wizard Complete
- if ( w_opt_unattended > 0 ) {
- ControlClick Button4 ; Finish
- }
- WinWaitClose
- "
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetTitleMatchMode, 2
- run UT3Patch5.exe
- WinWait, License
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; Accept
- WinWait, End User License Agreement
- ControlClick Button1 ; Accept
- WinWait, Patch UT3
- ControlClick Button1 ; Yes
- }
- WinWait, , UT3 was successfully patched!
- if ( w_opt_unattended > 0 ) {
- ControlClick Button1 ; OK
- }
- WinWaitClose
- "
- }
- #----------------------------------------------------------------
- w_metadata wog games \
- title="World of Goo Demo" \
- publisher="2D Boy" \
- year="2008" \
- media="download" \
- file1="WorldOfGooDemo.1.0.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/WorldOfGooDemo/WorldOfGoo.exe"
- load_wog()
- {
- if ! test -f "$W_CACHE/wog/WorldOfGooDemo.1.0.exe"
- then
- # Get temporary download location
- w_download "http://www.worldofgoo.com/dl2.php?lk=demo&filename=WorldOfGooDemo.1.0.exe"
- URL=`cat "$W_CACHE/wog/dl2.php?lk=demo&filename=WorldOfGooDemo.1.0.exe" |
- grep WorldOfGooDemo.1.0.exe | sed 's,.*http,http,;s,".*,,'`
- rm "$W_CACHE/wog/dl2.php?lk=demo&filename=WorldOfGooDemo.1.0.exe"
- w_download "$URL" e61d8253b9fe0663cb3c69018bb3d2ec6152d488
- fi
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- SetWinDelay 500
- run WorldOfGooDemo.1.0.exe
- winwait, World of Goo Setup, License Agreement
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- WinActivate
- send {Enter}
- winwait, World of Goo Setup, Choose Components
- send {Enter}
- winwait, World of Goo Setup, Choose Install Location
- send {Enter}
- winwait, World of Goo Setup, Thank you
- ControlClick, Make me dirty right now, World of Goo Setup, Thank you
- send {Enter}
- }
- winwaitclose, World of Goo Setup
- "
- }
- #----------------------------------------------------------------
- w_metadata zootycoon2_demo games \
- title="Zoo Tycoon 2 demo" \
- publisher="Microsoft" \
- year="2004" \
- media="download" \
- file1="Zoo2Trial.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Microsoft Games/Zoo Tycoon 2 Trial Version/zt2demoretail.exe"
- load_zootycoon2_demo()
- {
- w_download "http://download.microsoft.com/download/9/f/6/9f6a95f0-f34a-4312-9749-77b81d3de245/Zoo2Trial.exe" 60ad1bb34351f97b579c58234b926055f7979126
- cd "$W_CACHE/$W_PACKAGE"
- w_ahk_do "
- ; Uses winwaitactive, because the windows appear and immediately after another window
- ; gets in the way, then disappears after a second or so
- SetTitleMatchMode, 2
- run Zoo2Trial.exe
- winwaitclose, APPMESSAGE
- winwaitactive, Zoo Tycoon 2 Trial, AUTORUN
- if ( w_opt_unattended > 0 ) {
- sleep 1000
- controlclick, CButtonClassName1, Zoo Tycoon 2 Trial, AUTORUN
- winwaitclose, APPMESSAGE
- winwaitactive, Zoo Tycoon 2 Trial, INSTALLTYPE
- ; 1 second was not enough.
- sleep 3000
- controlclick, CButtonClassName1, Zoo Tycoon 2 Trial, INSTALLTYPE
- }
- winwaitactive, Zoo Tycoon 2 Trial, COMPLETE
- winclose, Zoo Tycoon 2 Trial, COMPLETE
- "
- }
- #----------------------------------------------------------------
- # Gog.com games
- #----------------------------------------------------------------
- w_metadata beneath_a_steel_sky_gog games \
- title="Beneath a Steel Sky (GOG.com, free)" \
- publisher="Virgin Interactive" \
- year="1994" \
- file1="setup_beneath_a_steel_sky.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/GOG.com/Beneath a Steel Sky/ScummVM/scummvm.exe"
- load_beneath_a_steel_sky_gog()
- {
- winetricks_load_gog "beneath_a_steel_sky" "Beneath a Steel Sky" "" "TsCheckBox4" "ScummVM\\scummvm.exe -c \"C:\\Program Files\\GOG.com\\Beneath a Steel Sky\\beneath.ini\" beneath" "" "" "75176395,1f99e12643529baa91fecfb206139a8921d9589c"
- }
- w_metadata sacrifice_gog games \
- title="Sacrifice (GOG.com)" \
- publisher="Interplay" \
- year="2000" \
- media="manual_download" \
- file1="setup_sacrifice.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/GOG.com/Sacrifice/Sacrifice.exe"
- load_sacrifice_gog()
- {
- winetricks_load_gog "sacrifice" "Sacrifice" "" "TsCheckBox2" "sacrifice" "" "" "591161642,63e77685599ce20c08b004a9fa3324e466ce1679"
- }
- w_metadata the_witcher_2_gog games \
- title="The Witcher 2: Assassins of Kings" \
- publisher="Atari" \
- year="2011" \
- media="manual_download" \
- file1="setup_the_witcher_2_ee_3.0.1.17.exe" \
- installed_exe1="$W_PROGRAMS_X86_WIN/GOG.com/The Witcher 2/bin/witcher2.exe"
- load_the_witcher_2_gog()
- {
- winetricks_load_gog "the_witcher_2" \
- "The Witcher 2 - Assassins of Kings" \
- "setup_the_witcher_2-1.bin,2048477,b826cd7b096fd98eab78517752522b2a3ca8af5e\
- setup_the_witcher_2-2.bin,2050788,a419926e4d02de81d79d586bf893150d3231833c \
- setup_the_witcher_2-3.bin,2050788,6974cadc29fb8a8795aa245c5f8bb24e5e0cff5e \
- setup_the_witcher_2-4.bin,2050788,ed79c1e9456801addf6fd6e687528fa01354b0d8 \
- setup_the_witcher_2-5.bin,1631852,354cb73ae3e73cb88dedc53dd472803862a654cf \
- setup_the_witcher_2.bin,129136,d3aa93bf147e155c5035ae15444916feabfd47b4" \
- "" "bin/witcher2.exe" "" "The Witcher 2" \
- "2308,9ca06383301f242143f69fe08974f9d4d713ac6b"
- }
- # Brief HOWTO for adding a GOG game:
- # - "beneath_a_steel_sky" is the installer exe name, minus "setup_" and ".exe"
- # - "Beneath a Steel Sky" is installer window title, minus "Setup - "
- # - There are no other files for this game, so this parameter is empty.
- # Otherwise it should be of the following form:
- # file_name[,length[,sha1sum]] [...]
- # - "TsCheckBox4" is the control name for the checkbox deciding whether it will
- # install some reader (Foxit in this case, could be acrobat reader). That
- # installation is enabled by default, and would just bloat the generic
- # AutoHotKey script, so it gets disabled.
- # - "ScummVM\\[...]" is the command line to run the game, as fetched from the
- # shortcut/launcher installer/wine creates, which will be used in BAT scripts
- # created by wisotool
- # - The part in the url which is specific to this game is identical to its "id"
- # (first parameter), so this parameter is left out.
- # - The install directory is the same as installer window title (second
- # parameter), so this parameter is left out.
- # - Main installer size and sha1sum, separated by a comma.
- #----------------------------------------------------------------
- # Steam Games
- #----------------------------------------------------------------
- w_metadata alienswarm_steam games \
- title="Alien Swarm (Steam)" \
- publisher="Valve" \
- year="2010" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/alien swarm/swarm.exe"
- load_alienswarm_steam()
- {
- w_steam_install_game 630 "Alien Swarm"
- }
- #----------------------------------------------------------------
- w_metadata bioshock2_steam games \
- title="Bioshock 2 (Steam)" \
- publisher="2k" \
- year="2010" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/bioshock2/blort.exe"
- load_bioshock2_steam()
- {
- w_steam_install_game 8850 "BioShock 2"
- }
- #----------------------------------------------------------------
- w_metadata borderlands_steam games \
- title="Borderlands (Steam, nonfree)" \
- publisher="2K Games" \
- year="2009" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/borderlands/Binaries/Borderlands.exe"
- load_borderlands_steam()
- {
- w_steam_install_game 8980 "Borderlands"
- }
- #----------------------------------------------------------------
- w_metadata civ5_demo_steam games \
- title="Civ V Demo (Steam)" \
- publisher="2K Games" \
- year="2010" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/sid meier's civilization v - demo/CivilizationV.exe"
- load_civ5_demo_steam()
- {
- # Start autohotkey watching for directx9 option in the background, and select it when it comes up
- w_ahk_do "
- SetWinDelay 500
- loop
- {
- ifWinExist, Sid Meier's Civilization V - Demo - Steam
- {
- winactivate
- click 26,108 ; select directx9
- sleep 500
- click 200,150 ; Play
- }
- ifWinExist, Updating Sid Meier's Civilization V - Demo
- {
- break
- }
- sleep 1000
- }
- " &
- _job=$!
- # While that's running, install the game.
- # You'll see *two* Autohotkey icons until that first script
- # finds the dialog it's looking for, clicks, and exits.
- w_info "If you already own the full Civ 5 game on steam, the installer won't even appear."
- w_steam_install_game 65900 "Sid Meier's Civilization V - Demo"
- kill -s HUP $_job # just in case
- }
- #----------------------------------------------------------------
- w_metadata ruse_demo_steam games \
- title="Ruse Demo (Steam)" \
- publisher="Ubisoft" \
- year="2010" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/r.u.s.e. demo/Ruse.exe"
- load_ruse_demo_steam()
- {
- w_steam_install_game 33310 "R.U.S.E."
- }
- #----------------------------------------------------------------
- w_metadata supermeatboy_steam games \
- title="Super Meat Boy (Steam, nonfree)" \
- publisher="Independent" \
- year="2010" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/super meat boy/SuperMeatBoy.exe"
- load_supermeatboy_steam()
- {
- w_steam_install_game 40800 "Super Meat Boy"
- }
- #----------------------------------------------------------------
- w_metadata trine_steam games \
- title="Trine (Steam)" \
- publisher="Frozenbyte" \
- year="2009" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/trine/trine_launcher.exe"
- load_trine_steam()
- {
- w_steam_install_game 35700 "Trine"
- }
- #----------------------------------------------------------------
- w_metadata trine_demo_steam games \
- title="Trine Demo (Steam)" \
- publisher="Frozenbyte" \
- year="2009" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/trine demo/trine_launcher.exe"
- load_trine_demo_steam()
- {
- w_steam_install_game 35710 "Trine Demo"
- }
- #----------------------------------------------------------------
- w_metadata wormsreloaded_demo_steam games \
- title="Worms Reloaded Demo (Steam)" \
- publisher="Team17" \
- year="2010" \
- media="download" \
- installed_exe1="$W_PROGRAMS_X86_WIN/Steam/steamapps/common/worms reloaded/WormsReloaded.exe"
- load_wormsreloaded_demo_steam()
- {
- w_steam_install_game 22690 "Worms Reloaded Demo"
- }
- #----------------------------------------------------------------
- # Settings
- #----------------------------------------------------------------
- # Direct3D settings
- winetricks_set_wined3d_var()
- {
- # Filter out/correct bad or partial values
- # Confusing because dinput uses 'disable', but d3d uses 'disabled'
- # see wined3d_dll_init() in dlls/wined3d/wined3d_main.c
- # and DllMain() in dlls/ddraw/main.c
- case $2 in
- disable*) arg=disabled;;
- enable*) arg=enabled;;
- hard*) arg=hardware;;
- repack) arg=repack;;
- backbuffer|fbo|gdi|none|opengl|readdraw|readtex|texdraw|textex|auto) arg=$2;;
- [0-9]*) arg=$2;;
- *) w_die "illegal value $2 for $1";;
- esac
- echo "Setting Direct3D/$1 to $arg"
- cat > "$W_TMP"/set-wined3d.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Direct3D]
- "$1"="$arg"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-wined3d.reg
- }
- #----------------------------------------------------------------
- w_metadata glsl=enabled settings \
- title_uk="Включити glsl шейдери (за замовчуванням)" \
- title="Enable glsl shaders (default)"
- w_metadata glsl=disabled settings \
- title_uk="Вимкнути glsl шейдери та використовувати arb шейдери (швидше, але іноді з перервами)" \
- title="Disable glsl shaders, use arb shaders (faster, but sometimes breaks)"
- load_glsl()
- {
- winetricks_set_wined3d_var UseGLSL $1
- }
- #----------------------------------------------------------------
- w_metadata multisampling=enabled settings \
- title_uk="Включити Direct3D мультисемплінг" \
- title="Enable Direct3D multisampling"
- w_metadata multisampling=disabled settings \
- title_uk="Вимкнути Direct3D мультисемплінг" \
- title="Disable Direct3D multisampling"
- load_multisampling()
- {
- winetricks_set_wined3d_var Multisampling $1
- }
- #----------------------------------------------------------------
- w_metadata npm=repack settings \
- title_uk="Поставити NonPower2Mode на repack" \
- title="Set NonPower2Mode to repack"
- load_npm()
- {
- winetricks_set_wined3d_var NonPower2Mode $1
- }
- #----------------------------------------------------------------
- w_metadata orm=fbo settings \
- title_uk="Поставити OffscreenRenderingMode=fbo (за замовчуванням)" \
- title="Set OffscreenRenderingMode=fbo (default)"
- w_metadata orm=backbuffer settings \
- title_uk="Поставити OffscreenRenderingMode=backbuffer" \
- title="Set OffscreenRenderingMode=backbuffer"
- load_orm()
- {
- winetricks_set_wined3d_var OffscreenRenderingMode $1
- }
- #----------------------------------------------------------------
- w_metadata strictdrawordering=enabled settings \
- title_uk="Включити StrictDrawOrdering" \
- title="Enable StrictDrawOrdering"
- w_metadata strictdrawordering=disabled settings \
- title_uk="Вимкнути StrictDrawOrdering (за замовчуванням)" \
- title="Disable StrictDrawOrdering (default)"
- load_strictdrawordering()
- {
- winetricks_set_wined3d_var StrictDrawOrdering $1
- }
- #----------------------------------------------------------------
- w_metadata rtlm=auto settings \
- title_uk="Поставити RenderTargetLockMode на авто (за замовчуванням)" \
- title="Set RenderTargetLockMode to auto (default)"
- w_metadata rtlm=disabled settings \
- title_uk="Вимкнути RenderTargetLockMode" \
- title="Set RenderTargetLockMode to disabled"
- w_metadata rtlm=readdraw settings \
- title_uk="Поставити RenderTargetLockMode на readdraw" \
- title="Set RenderTargetLockMode to readdraw"
- w_metadata rtlm=readtex settings \
- title_uk="Поставити RenderTargetLockMode на readtex" \
- title="Set RenderTargetLockMode to readtex"
- w_metadata rtlm=texdraw settings \
- title_uk="Поставити RenderTargetLockMode на texdraw" \
- title="Set RenderTargetLockMode to texdraw"
- w_metadata rtlm=textex settings \
- title_uk="Поставити RenderTargetLockMode на textex" \
- title="Set RenderTargetLockMode to textex"
- load_rtlm()
- {
- winetricks_set_wined3d_var RenderTargetLockMode $1
- }
- #----------------------------------------------------------------
- # AlwaysOffscreen settings
- w_metadata ao=enabled settings \
- title_uk="Включити AlwaysOffscreen" \
- title="Enable AlwaysOffscreen"
- w_metadata ao=disabled settings \
- title_uk="Вимкнути AlwaysOffscreen (за замовчуванням)" \
- title="Disable AlwaysOffscreen (default)"
- load_ao()
- {
- winetricks_set_wined3d_var AlwaysOffscreen $1
- }
- #----------------------------------------------------------------
- # DirectDraw settings
- w_metadata ddr=gdi settings \
- title_uk="Поставити DirectDrawRenderer на gdi" \
- title="Set DirectDrawRenderer to gdi"
- w_metadata ddr=opengl settings \
- title_uk="Поставити DirectDrawRenderer на opengl" \
- title="Set DirectDrawRenderer to opengl"
- load_ddr()
- {
- winetricks_set_wined3d_var DirectDrawRenderer $1
- }
- #----------------------------------------------------------------
- # DirectInput settings
- w_metadata mwo=force settings \
- title_uk="Поставити примусове DirectInput MouseWarpOverride (необхідно для деяких ігор)" \
- title="Set DirectInput MouseWarpOverride to force (needed by some games)"
- w_metadata mwo=enabled settings \
- title_uk="Включити DirectInput MouseWarpOverride (за замовчуванням)" \
- title="Set DirectInput MouseWarpOverride to enabled (default)"
- w_metadata mwo=disable settings \
- title_uk="Вимкнути DirectInput MouseWarpOverride" \
- title="Set DirectInput MouseWarpOverride to disable"
- load_mwo()
- {
- # Filter out/correct bad or partial values
- # Confusing because dinput uses 'disable', but d3d uses 'disabled'
- # see alloc_device() in dlls/dinput/mouse.c
- case $1 in
- enable*) arg=enabled;;
- disable*) arg=disable;;
- force) arg=force;;
- *) w_die "illegal value $1 for MouseWarpOverride";;
- esac
- echo "Setting MouseWarpOverride to $arg"
- cat > "$W_TMP"/set-mwo.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\DirectInput]
- "MouseWarpOverride"="$arg"
- _EOF_
- w_try_regedit "$W_TMP"/set-mwo.reg
- }
- #----------------------------------------------------------------
- # Mac Driver settings
- w_metadata macdriver=mac settings \
- title_uk="Включити рідний Mac Quartz драйвер (за замовчуванням)" \
- title="Enable the Mac native Quartz driver (default)"
- w_metadata macdriver=x11 settings \
- title_uk="Вимкнути рідний Mac Quartz драйвер та використовувати замість нього X11" \
- title="Disable the Mac native Quartz driver, use X11 instead"
- load_macdriver()
- {
- echo "Setting MacDriver to $arg"
- cat > "$W_TMP"/set-mac.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Drivers]
- "Graphics"="$arg"
- _EOF_
- w_try_regedit "$W_TMP"/set-mac.reg
- }
- #----------------------------------------------------------------
- # X11 Driver settings
- w_metadata grabfullscreen=y settings \
- title_uk="Примусове захоплення курсору для повноекранних вікон (необхідно для деяких ігор)" \
- title="Force cursor clipping for full-screen windows (needed by some games)"
- w_metadata grabfullscreen=n settings \
- title_uk="Вимкнути примусове захоплення курсору для повноекранних вікон (за замовчуванням)" \
- title="Disable cursor clipping for full-screen windows (default)"
- load_grabfullscreen()
- {
- case $1 in
- y|n) arg=$1;;
- *) w_die "illegal value $1 for GrabFullscreen";;
- esac
- echo "Setting GrabFullscreen to $arg"
- cat > "$W_TMP"/set-gfs.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\X11 Driver]
- "GrabFullscreen"="$arg"
- _EOF_
- w_try_regedit "$W_TMP"/set-gfs.reg
- }
- w_metadata windowmanagerdecorated=y settings \
- title_uk="Дозволити менеджеру вікон декорувати вікна (за замовчуванням)" \
- title="Allow the window manager to decorate windows (default)"
- w_metadata windowmanagerdecorated=n settings \
- title_uk="Не дозволяти менеджеру вікон декорувати вікна" \
- title="Prevent the window manager from decorating windows"
- load_windowmanagerdecorated()
- {
- case $1 in
- y|n) arg=$1;;
- *) w_die "illegal value $1 for Decorated";;
- esac
- echo "Setting Decorated to $arg"
- cat > "$W_TMP"/set-wmd.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\X11 Driver]
- "Decorated"="$arg"
- _EOF_
- w_try_regedit "$W_TMP"/set-wmd.reg
- }
- w_metadata windowmanagermanaged=y settings \
- title_uk="Дозволити менеджеру вікон керування вікнами (за замовчуванням)" \
- title="Allow the window manager to control windows (default)"
- w_metadata windowmanagermanaged=n settings \
- title_uk="Не дозволяти менеджеру вікон керування вікнами" \
- title="Prevent the window manager from controling windows"
- load_windowmanagermanaged()
- {
- case $1 in
- y|n) arg=$1;;
- *) w_die "illegal value $1 for Managed";;
- esac
- echo "Setting Managed to $arg"
- cat > "$W_TMP"/set-wmm.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\X11 Driver]
- "Managed"="$arg"
- _EOF_
- w_try_regedit "$W_TMP"/set-wmm.reg
- }
- #----------------------------------------------------------------
- # Other settings
- #----------------------------------------------------------------
- w_metadata alldlls=default settings \
- title_uk="Видалити всі перевизначення DLL" \
- title="Remove all DLL overrides"
- w_metadata alldlls=builtin settings \
- title_uk="Перевизначити найбільш поширені DLL на вбудовані" \
- title="Override most common DLLs to builtin"
- load_alldlls()
- {
- case $1 in
- default) w_override_no_dlls ;;
- builtin) w_override_all_dlls ;;
- esac
- }
- w_metadata fontsmooth=disable settings \
- title_uk="Вимкнути згладжування шрифту" \
- title="Disable font smoothing"
- w_metadata fontsmooth=bgr settings \
- title_uk="Включити субпіксельне згладжування шрифту для BGR LCD моніторів" \
- title="Enable subpixel font smoothing for BGR LCDs"
- w_metadata fontsmooth=rgb settings \
- title_uk="Включити субпіксельне згладжування шрифту для RGB LCD моніторів" \
- title="Enable subpixel font smoothing for RGB LCDs"
- w_metadata fontsmooth=gray settings \
- title_uk="Включити субпіксельне згладжування шрифту" \
- title="Enable subpixel font smoothing"
- load_fontsmooth()
- {
- case $1 in
- disable) FontSmoothing=0; FontSmoothingOrientation=1; FontSmoothingType=0;;
- gray|grey) FontSmoothing=2; FontSmoothingOrientation=1; FontSmoothingType=1;;
- bgr) FontSmoothing=2; FontSmoothingOrientation=0; FontSmoothingType=2;;
- rgb) FontSmoothing=2; FontSmoothingOrientation=1; FontSmoothingType=2;;
- *) w_die "unknown font smoothing type $1";;
- esac
- echo "Setting font smoothing to $1"
- cat > "$W_TMP"/fontsmooth.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Control Panel\Desktop]
- "FontSmoothing"="$FontSmoothing"
- "FontSmoothingGamma"=dword:00000578
- "FontSmoothingOrientation"=dword:0000000$FontSmoothingOrientation
- "FontSmoothingType"=dword:0000000$FontSmoothingType
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\fontsmooth.reg
- }
- #----------------------------------------------------------------
- w_metadata forcemono settings \
- title_uk="Примусове використання mono замість .Net (для налогодження)" \
- title="Force using mono instead of .Net (for debugging)"
- load_forcemono()
- {
- w_override_dlls native mscoree
- w_override_dlls disabled mscorsvw.exe
- }
- #----------------------------------------------------------------
- w_metadata gsm=0 settings \
- title="Set MaxShaderModelGS to 0"
- w_metadata gsm=1 settings \
- title="Set MaxShaderModelGS to 1"
- w_metadata gsm=2 settings \
- title="Set MaxShaderModelGS to 2"
- w_metadata gsm=3 settings \
- title="Set MaxShaderModelGS to 3"
- load_gsm()
- {
- winetricks_set_wined3d_var MaxShaderModelGS $1
- }
- #----------------------------------------------------------------
- w_metadata heapcheck settings \
- title_uk="Включити накопичувальну перевірку GlobalFlag" \
- title="Enable heap checking with GlobalFlag"
- load_heapcheck()
- {
- cat > "$W_TMP"/heapcheck.reg <<_EOF_
- REGEDIT4
- [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager]
- "GlobalFlag"=dword:00200030
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\heapcheck.reg
- }
- #----------------------------------------------------------------
- w_metadata hidewineexports=enable settings \
- title="Enable hiding wine exports from applications (wine-staging)"
- w_metadata hidewineexports=disable settings \
- title="Disable hiding wine exports from applications (wine-staging)"
- load_hidewineexports()
- {
- # Wine exports some functions allowing apps to query the wine version and
- # information about the host environment. Using these functions, some apps
- # will intentionally terminate if they can detect that they are running in
- # a wine environment.
- #
- # Hiding these wine exports is only available in wine-staging.
- # See https://bugs.winehq.org/show_bug.cgi?id=38656
- case $arg in
- enable)
- local registry_value="\"Y\""
- ;;
- disable)
- local registry_value="-"
- ;;
- *) w_die "Unexpected argument, $arg";;
- esac
- cat > "$W_TMP"/set-wineexports.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine]
- "HideWineExports"=$registry_value
- _EOF_
- w_try_regedit "$W_TMP"/set-wineexports.reg
- }
- #----------------------------------------------------------------
- w_metadata hosts settings \
- title_uk="Додати порожні файли у C:\windows\system32\drivers\etc\{hosts,services}" \
- title="Add empty C:\windows\system32\drivers\etc\{hosts,services} files"
- load_hosts()
- {
- # Create fake system32\drivers\etc\hosts and system32\drivers\etc\services files.
- # The hosts file is used to map network names to IP addresses without DNS.
- # The services file is used map service names to network ports.
- # Some apps depend on these files, but they're not implemented in wine.
- # Fortunately, empty files in the correct location satisfy those apps.
- # See http://bugs.winehq.org/show_bug.cgi?id=12076
- # It's in system32 for both win32/win64
- mkdir -p "$W_WINDIR_UNIX"/system32/drivers/etc
- touch "$W_WINDIR_UNIX"/system32/drivers/etc/hosts
- touch "$W_WINDIR_UNIX"/system32/drivers/etc/services
- }
- #----------------------------------------------------------------
- w_metadata native_mdac settings \
- title_uk="Перевизначити odbc32, odbccp32 та oledb32" \
- title="Override odbc32, odbccp32 and oledb32"
- load_native_mdac()
- {
- # Set those overrides globally so user programs get MDAC's odbc
- # instead of wine's unixodbc
- w_override_dlls native,builtin odbc32 odbccp32 oledb32
- }
- #----------------------------------------------------------------
- w_metadata native_oleaut32 settings \
- title_uk="Перевизначити oleaut32" \
- title="Override oleaut32"
- load_native_oleaut32()
- {
- w_override_dlls native,builtin oleaut32
- }
- #----------------------------------------------------------------
- w_metadata nocrashdialog settings \
- title_uk="Вимкнути діалог про помилку" \
- title="Disable crash dialog"
- load_nocrashdialog()
- {
- echo "Disabling graphical crash dialog"
- cat > "$W_TMP"/crashdialog.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\WineDbg]
- "ShowCrashDialog"=dword:00000000
- _EOF_
- cd "$W_TMP"
- w_try_regedit crashdialog.reg
- }
- #----------------------------------------------------------------
- w_metadata nt40 settings \
- title_uk="Поставити версію Windows NT 4.0" \
- title="Set windows version to Windows NT 4.0"
- load_nt40()
- {
- w_set_winver nt40
- }
- #----------------------------------------------------------------
- w_metadata psm=0 settings \
- title="Set MaxShaderModelPS to 0"
- w_metadata psm=1 settings \
- title="Set MaxShaderModelPS to 1"
- w_metadata psm=2 settings \
- title="Set MaxShaderModelPS to 2"
- w_metadata psm=3 settings \
- title="Set MaxShaderModelPS to 3"
- load_psm()
- {
- winetricks_set_wined3d_var MaxShaderModelPS $1
- }
- #----------------------------------------------------------------
- w_metadata sandbox settings \
- title_uk="Пісочниця wineprefix - видалити посилання до HOME" \
- title="Sandbox the wineprefix - remove links to \$HOME"
- load_sandbox()
- {
- w_skip_windows sandbox && return
- # Unmap drive Z
- rm -f "$WINEPREFIX/dosdevices/z:"
- _olddir="`pwd`"
- cd "$WINEPREFIX/drive_c/users/$USER"
- for x in *
- do
- if test -h "$x" && test -d "$x"
- then
- rm -f "$x"
- mkdir -p "$x"
- fi
- done
- cd "$_olddir"
- unset _olddir
- # Disable unixfs
- # Unfortunately, when you run with a different version of Wine, Wine will recreate this key.
- # See http://bugs.winehq.org/show_bug.cgi?id=22450
- "$WINE" regedit /d 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace\{9D20AAE8-0625-44B0-9CA7-71889C2254D9}'
- # Disable recreation of the above key - or any updating of the registry - when running with a newer version of Wine.
- echo disable > "$WINEPREFIX/.update-timestamp"
- }
- #----------------------------------------------------------------
- w_metadata sound=alsa settings \
- title_uk="Поставити звуковий драйвер ALSA" \
- title="Set sound driver to ALSA"
- w_metadata sound=coreaudio settings \
- title_uk="Поставити звуковий драйвер Mac CoreAudio" \
- title="Set sound driver to Mac CoreAudio"
- w_metadata sound=disabled settings \
- title_uk="Вимкнути звуковий драйвер" \
- title="Set sound driver to disabled"
- w_metadata sound=oss settings \
- title_uk="Поставити звуковий драйвер OSS" \
- title="Set sound driver to OSS"
- w_metadata sound=pulse settings \
- title_uk="Поставити звуковий драйвер PulseAudio" \
- title="Set sound driver to PulseAudio"
- load_sound()
- {
- echo "Setting sound driver to $1"
- cat > "$W_TMP"/set-sound.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Drivers]
- "Audio"="$1"
- _EOF_
- w_try_regedit "$W_TMP_WIN"\\set-sound.reg
- }
- #----------------------------------------------------------------
- w_metadata vd=off settings \
- title_uk="Вимкнути віртуальний робочий стіл" \
- title="Disable virtual desktop"
- w_metadata vd=640x480 settings \
- title_uk="Включити віртуальний робочий стіл та поставити розмір 640x480" \
- title="Enable virtual desktop, set size to 640x480"
- w_metadata vd=800x600 settings \
- title_uk="Включити віртуальний робочий стіл та поставити розмір 800x600" \
- title="Enable virtual desktop, set size to 800x600"
- w_metadata vd=1024x768 settings \
- title_uk="Включити віртуальний робочий стіл та поставити розмір 1024x768" \
- title="Enable virtual desktop, set size to 1024x768"
- w_metadata vd=1280x1024 settings \
- title_uk="Включити віртуальний робочий стіл та поставити розмір 1280x1024" \
- title="Enable virtual desktop, set size to 1280x1024"
- w_metadata vd=1440x900 settings \
- title_uk="Включити віртуальний робочий стіл та поставити розмір 1440x900" \
- title="Enable virtual desktop, set size to 1440x900"
- load_vd()
- {
- size=$1
- case $size in
- off|disabled)
- cat > "$W_TMP"/vd.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Explorer]
- "Desktop"=-
- [HKEY_CURRENT_USER\Software\Wine\Explorer\Desktops]
- "Default"=-
- _EOF_
- ;;
- [1-9]*x[1-9]*)
- cat > "$W_TMP"/vd.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Explorer]
- "Desktop"="Default"
- [HKEY_CURRENT_USER\Software\Wine\Explorer\Desktops]
- "Default"="$size"
- _EOF_
- ;;
- *)
- w_die "you want a virtual desktop of $size? I don't understand."
- ;;
- esac
- w_try_regedit "$W_TMP_WIN"/vd.reg
- }
- #----------------------------------------------------------------
- w_metadata videomemorysize=default settings \
- title_uk="Дати можливість Wine визначити розмір відеопам'яті" \
- title="Let Wine detect amount of video card memory"
- w_metadata videomemorysize=512 settings \
- title_uk="Повідомити Wine про 512МБ відеопам'яті" \
- title="Tell Wine your video card has 512MB RAM"
- w_metadata videomemorysize=1024 settings \
- title_uk="Повідомити Wine про 1024МБ відеопам'яті" \
- title="Tell Wine your video card has 1024MB RAM"
- w_metadata videomemorysize=2048 settings \
- title_uk="Повідомити Wine про 2048МБ відеопам'яті" \
- title="Tell Wine your video card has 2048MB RAM"
- load_videomemorysize()
- {
- size=$1
- echo "Setting video memory size to $size"
- case $size in
- default)
- cat > "$W_TMP"/set-video.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Direct3D]
- "VideoMemorySize"=-
- _EOF_
- ;;
- *)
- cat > "$W_TMP"/set-video.reg <<_EOF_
- REGEDIT4
- [HKEY_CURRENT_USER\Software\Wine\Direct3D]
- "VideoMemorySize"="$size"
- _EOF_
- esac
- w_try_regedit "$W_TMP_WIN"\\set-video.reg
- }
- #----------------------------------------------------------------
- w_metadata vista settings \
- title_uk="Поставити версію Windows Vista" \
- title="Set windows version to Windows Vista"
- load_vista()
- {
- w_set_winver vista
- }
- #----------------------------------------------------------------
- w_metadata vsm=0 settings \
- title="Set MaxShaderModelVS to 0"
- w_metadata vsm=1 settings \
- title="Set MaxShaderModelVS to 1"
- w_metadata vsm=2 settings \
- title="Set MaxShaderModelVS to 2"
- w_metadata vsm=3 settings \
- title="Set MaxShaderModelVS to 3"
- load_vsm()
- {
- winetricks_set_wined3d_var MaxShaderModelVS $1
- }
- #----------------------------------------------------------------
- w_metadata win2k settings \
- title_uk="Поставити версію Windows 2000" \
- title="Set windows version to Windows 2000"
- load_win2k()
- {
- w_set_winver win2k
- }
- #----------------------------------------------------------------
- w_metadata win2k3 settings \
- title_uk="Поставити версію Windows 2003" \
- title="Set windows version to Windows 2003"
- load_win2k3()
- {
- w_set_winver win2k3
- }
- #----------------------------------------------------------------
- w_metadata win31 settings \
- title_uk="Поставити версію Windows 3.1" \
- title="Set windows version to Windows 3.1"
- load_win31()
- {
- w_set_winver win31
- }
- #----------------------------------------------------------------
- w_metadata win7 settings \
- title_uk="Поставити версію Windows 7" \
- title="Set windows version to Windows 7"
- load_win7()
- {
- w_set_winver win7
- }
- #----------------------------------------------------------------
- w_metadata win95 settings \
- title_uk="Поставити версію Windows 95" \
- title="Set windows version to Windows 95"
- load_win95()
- {
- w_set_winver win95
- }
- #----------------------------------------------------------------
- w_metadata win98 settings \
- title_uk="Поставити версію Windows 98" \
- title="Set windows version to Windows 98"
- load_win98()
- {
- w_set_winver win98
- }
- #----------------------------------------------------------------
- # Really, we should support other values, since winetricks did
- w_metadata winver= settings \
- title_uk="Поставити версію Windows за замовчуванням (winxp)" \
- title="Set windows version to default (winxp)"
- load_winver()
- {
- w_set_winver winxp
- }
- #----------------------------------------------------------------
- w_metadata winxp settings \
- title_uk="Поставити версію Windows XP" \
- title="Set windows version to Windows XP"
- load_winxp()
- {
- w_set_winver winxp
- }
- #----------------------------------------------------------------
- #---- Derived Metadata ----
- # Generated automatically by measuring time and space requirements of all verbs
- # size_MB includes size of virgin wineprefix, but not the cached installer
- case $WINETRICKS_OPT_VERBOSE in
- 2) set -x ;;
- *) set +x ;;
- esac
- for data in \
- 3dmark03:size_MB=895,time_sec=149 \
- 3dmark05:size_MB=1255,time_sec=208 \
- 3dmark06:size_MB=2627,time_sec=461 \
- 3dmark2000:size_MB=165,time_sec=71 \
- 3dmark2001:size_MB=260,time_sec=141 \
- 7zip:size_MB=53,time_sec=9 \
- abiword:size_MB=119,time_sec=15 \
- adobeair:size_MB=132,time_sec=8 \
- algodoo_demo:size_MB=165,time_sec=52 \
- allcodecs:size_MB=48,time_sec=3 \
- allfonts:size_MB=132,time_sec=114 \
- amstream:size_MB=48,time_sec=2 \
- aoe3_demo:size_MB=4472,time_sec=422 \
- aoe_demo:size_MB=164,time_sec=35 \
- art2kmin:size_MB=363,time_sec=36 \
- atmlib:size_MB=454,time_sec=73 \
- autohotkey:size_MB=53,time_sec=4 \
- baekmuk:size_MB=138,time_sec=3 \
- bioshock_demo:size_MB=7510,time_sec=1543 \
- bladekitten_demo:size_MB=1444,time_sec=174 \
- cjkfonts:size_MB=48,time_sec=4 \
- cmake:size_MB=85,time_sec=8 \
- cnc3_demo:size_MB=5244,time_sec=1022 \
- cod4mw_demo:size_MB=5730,time_sec=1108 \
- cod_demo:size_MB=574,time_sec=115 \
- colorprofile:size_MB=47,time_sec=1 \
- comctl32:size_MB=49,time_sec=1 \
- comdlg32ocx:size_MB=49,time_sec=1 \
- controlpad:size_MB=69,time_sec=4 \
- corefonts:size_MB=62,time_sec=2 \
- crypt32:size_MB=178,time_sec=71 \
- crysis2:size_MB=8259,time_sec=1200 \
- crysis2_demo_mp:size_MB=5259,time_sec=1473 \
- d3dcompiler_43:size_MB=138,time_sec=51 \
- d3dx10:size_MB=50,time_sec=4 \
- d3dx11_43:size_MB=48,time_sec=1 \
- d3dx9:size_MB=126,time_sec=3 \
- d3dx9_26:size_MB=48,time_sec=2 \
- d3dx9_28:size_MB=48,time_sec=1 \
- d3dx9_31:size_MB=48,time_sec=2 \
- d3dx9_35:size_MB=50,time_sec=2 \
- d3dx9_36:size_MB=48,time_sec=1 \
- d3dx9_42:size_MB=48,time_sec=1 \
- d3dxof:size_MB=48,time_sec=2 \
- dc2ba_demo:size_MB=209,time_sec=38 \
- deadspace2:size_MB=12693,time_sec=720 \
- devenum:size_MB=59,time_sec=2 \
- diablo2:size_MB=2577,time_sec=37 \
- dinput:size_MB=48,time_sec=1 \
- dinput8:size_MB=61,time_sec=2 \
- dirac:size_MB=50,time_sec=4 \
- directmusic:size_MB=63,time_sec=4 \
- directplay:size_MB=61,time_sec=3 \
- directx9:size_MB=387,time_sec=12 \
- dirt2_demo:size_MB=6241,time_sec=977 \
- divinity2_demo:size_MB=2906,time_sec=2627 \
- dmsynth:size_MB=57,time_sec=2 \
- dotnet11:size_MB=94,time_sec=15 \
- dotnet20:size_MB=360,time_sec=64 \
- dotnet30:size_MB=645,time_sec=302 \
- dotnet35:size_MB=1149,time_sec=445 \
- dragonage:size_MB=23771,time_sec=673 \
- dragonage2_demo:size_MB=4014,time_sec=1428 \
- droid:size_MB=63,time_sec=8 \
- dsound:size_MB=48,time_sec=1 \
- dxdiag:size_MB=75,time_sec=6 \
- dxdiagn:size_MB=48,time_sec=1 \
- eufonts:size_MB=58,time_sec=2 \
- eve:size_MB=5313,time_sec=1568 \
- eve:size_MB=11215,time_sec=467 \
- farmsim2011_demo:size_MB=48,time_sec=4 \
- ffdshow:size_MB=53,time_sec=4 \
- fifa11_demo:size_MB=4932,time_sec=845 \
- flash:size_MB=57,time_sec=3 \
- fontfix:size_MB=47,time_sec=0 \
- fontxplorer:size_MB=51,time_sec=5 \
- gdiplus:size_MB=50,time_sec=2 \
- gfw:size_MB=211,time_sec=11 \
- glut:size_MB=47,time_sec=1 \
- gothic4_demo:size_MB=7719,time_sec=1402 \
- guildwars:size_MB=224,time_sec=392 \
- hegemony_demo:size_MB=1927,time_sec=315 \
- hegemonygold_demo:size_MB=2339,time_sec=247 \
- hon:size_MB=1536,time_sec=337 \
- hphbp_demo:size_MB=2898,time_sec=556 \
- icodecs:size_MB=60,time_sec=29 \
- ie6:size_MB=340,time_sec=58 \
- ie7:size_MB=181,time_sec=44 \
- ie8:size_MB=202,time_sec=39 \
- imvu:size_MB=194,time_sec=17 \
- jet40:size_MB=54,time_sec=3 \
- l3codecx:size_MB=60,time_sec=5 \
- lhp_demo:size_MB=3200,time_sec=645 \
- liberation:size_MB=50,time_sec=3 \
- lucida:size_MB=51,time_sec=1 \
- masseffect2_demo:size_MB=8291,time_sec=1397 \
- mb_warband_demo:size_MB=1495,time_sec=35 \
- mdac25:size_MB=97,time_sec=6 \
- mdac27:size_MB=70,time_sec=3 \
- mdac28:size_MB=75,time_sec=4 \
- mfc40:size_MB=48,time_sec=0 \
- mfc42:size_MB=47,time_sec=1 \
- mingw:size_MB=132,time_sec=3 \
- mozillabuild:size_MB=891,time_sec=26 \
- mpc:size_MB=87,time_sec=2 \
- msasn1:size_MB=178,time_sec=3 \
- mshflxgd:size_MB=47,time_sec=0 \
- msi2:size_MB=62,time_sec=4 \
- msls31:size_MB=48,time_sec=0 \
- msmask:size_MB=47,time_sec=0 \
- mspaint:size_MB=49,time_sec=0 \
- msscript:size_MB=48,time_sec=0 \
- msxml3:size_MB=49,time_sec=1 \
- msxml4:size_MB=55,time_sec=0 \
- msxml6:size_MB=54,time_sec=1 \
- nfsshift_demo:size_MB=4877,time_sec=157 \
- ogg:size_MB=54,time_sec=1 \
- opensymbol:size_MB=49,time_sec=1 \
- openwatcom:size_MB=274,time_sec=12 \
- osmos_demo:size_MB=67,time_sec=5 \
- pdh:size_MB=48,time_sec=0 \
- penpenxmas:size_MB=49,time_sec=6 \
- physx:size_MB=213,time_sec=5 \
- plantsvszombies:size_MB=156,time_sec=24 \
- pngfilt:size_MB=49,time_sec=0 \
- puzzleagent_demo:size_MB=495,time_sec=36 \
- python26:size_MB=160,time_sec=9 \
- python26_comtypes:size_MB=46,time_sec=1 \
- quartz:size_MB=62,time_sec=3 \
- quicktime72:size_MB=219,time_sec=9 \
- quicktime76:size_MB=237,time_sec=6 \
- rayman2_demo:size_MB=239,time_sec=146 \
- riched20:size_MB=49,time_sec=0 \
- riched30:size_MB=48,time_sec=0 \
- richtx32:size_MB=48,time_sec=0 \
- safari:size_MB=210,time_sec=4 \
- sammax301_demo:size_MB=1419,time_sec=341 \
- sammax304_demo:size_MB=1642,time_sec=88 \
- secondlife:size_MB=266,time_sec=24 \
- secur32:size_MB=47,time_sec=0 \
- shockwave:size_MB=134,time_sec=6 \
- sims3:size_MB=12884,time_sec=584 \
- sketchup:size_MB=319,time_sec=15 \
- spotify:size_MB=59,time_sec=4 \
- starcraft2_demo:size_MB=5241,time_sec=211 \
- tahoma:size_MB=48,time_sec=0 \
- takao:size_MB=176,time_sec=3 \
- tmnationsforever:size_MB=1871,time_sec=116 \
- uff:size_MB=47,time_sec=0 \
- unifont:size_MB=51,time_sec=0 \
- usp10:size_MB=50,time_sec=0 \
- ut3:size_MB=7355,time_sec=426 \
- utorrent:size_MB=48,time_sec=1 \
- vb2run:size_MB=48,time_sec=0 \
- vb3run:size_MB=47,time_sec=0 \
- vb4run:size_MB=49,time_sec=0 \
- vb5run:size_MB=49,time_sec=0 \
- vb6run:size_MB=50,time_sec=1 \
- vc2005express:size_MB=1614,time_sec=173 \
- vc2005trial:size_MB=7156,time_sec=53 \
- vcrun2003:size_MB=47,time_sec=0 \
- vcrun2005:size_MB=60,time_sec=2 \
- vcrun2008:size_MB=60,time_sec=2 \
- vcrun2010:size_MB=71,time_sec=7 \
- vcrun6:size_MB=51,time_sec=0 \
- vcrun6sp6:size_MB=109,time_sec=2 \
- vjrun20:size_MB=319,time_sec=57 \
- vlc:size_MB=221,time_sec=7 \
- wenquanyi:size_MB=50,time_sec=0 \
- windowscodecs:size_MB=53,time_sec=2 \
- winhttp:size_MB=49,time_sec=0 \
- wininet:size_MB=47,time_sec=0 \
- wme9:size_MB=136,time_sec=5 \
- wmi:size_MB=62,time_sec=12 \
- wmp10:size_MB=161,time_sec=7 \
- wmp9:size_MB=143,time_sec=12 \
- wog:size_MB=124,time_sec=5 \
- wsh56js:size_MB=45,time_sec=0 \
- xact:size_MB=60,time_sec=6 \
- xinput:size_MB=47,time_sec=2 \
- xmllite:size_MB=50,time_sec=4 \
- xvid:size_MB=54,time_sec=2 \
- zootycoon2_demo:size_MB=299,time_sec=32 \
- do
- cmd=${data%%:*}
- file="`echo "$WINETRICKS_METADATA"/*/$cmd.vars`"
- if test -f "$file"
- then
- case $data in
- *size_MB*)
- size_MB=${data##*size_MB=} # remove anything before value
- size_MB=${size_MB%%,*} # remove anything after value
- echo size_MB=$size_MB >> "$file"
- ;;
- esac
- case $data in
- *time_sec*)
- time_sec=${data##*time_sec=}
- time_sec=${time_sec%%,*}
- echo time_sec=$time_sec >> "$file"
- esac
- fi
- unset size_MB time_sec
- done
- # Restore verbosity:
- case $WINETRICKS_OPT_VERBOSE in
- 1|2) set -x ;;
- *) set +x ;;
- esac
- #---- Main Program ----
- winetricks_stats_save()
- {
- # Save opt-in status
- if test "$WINETRICKS_STATS_REPORT"
- then
- echo "$WINETRICKS_STATS_REPORT" > "$W_CACHE"/track_usage
- fi
- }
- winetricks_stats_init()
- {
- # Load opt-in status if not already set by a commandline option
- if test ! "$WINETRICKS_STATS_REPORT" && test -f "$W_CACHE"/track_usage
- then
- WINETRICKS_STATS_REPORT=`cat "$W_CACHE"/track_usage`
- fi
- if test ! "$WINETRICKS_STATS_REPORT"
- then
- # No opt-in status found. If GUI active, ask user whether they would like to opt in.
- case $WINETRICKS_GUI in
- zenity)
- case $LANG in
- de*)
- title="Einmalige Frage zur Hilfe an der Winetricks Entwicklung"
- question="Möchten Sie die Winetricks Entwicklung unterstützen indem Sie Winetricks Statistiken übermitteln lassen? Sie können die Übermittlung jederzeit mit 'winetricks --optout' ausschalten"
- thanks="Danke! Sie bekommen diese Frage nicht mehr gestellt. Sie können die Übermittlung jederzeit mit 'winetricks --optout' wieder ausschalten"
- declined="OK, Winetricks wird *keine* Statistiken übermitteln. Sie bekommen diese Frage nicht mehr gestellt."
- ;;
- *)
- title="One-time question about helping Winetricks development"
- question="Would you like to help winetricks development by letting winetricks report statistics? You can turn reporting off at any time with the command 'winetricks --optout'"
- thanks="Thanks! You won't be asked this question again. Remember, you can turn reporting off at any time with the command 'winetricks --optout'"
- declined="OK, winetricks will *not* report statistics. You won't be asked this question again."
- ;;
- esac
- if $WINETRICKS_GUI --question --text "$question" --title "$title"
- then
- $WINETRICKS_GUI --info --text "$thanks"
- WINETRICKS_STATS_REPORT=1
- else
- $WINETRICKS_GUI --info --text "$declined"
- WINETRICKS_STATS_REPORT=0
- fi
- echo $WINETRICKS_STATS_REPORT > "$W_CACHE"/track_usage
- ;;
- esac
- fi
- winetricks_stats_save
- }
- # Retrieve a short string with the operating system name and version
- winetricks_os_description()
- {
- (
- case "$OS" in
- "Windows_NT")
- echo windows ;;
- *) echo "$WINETRICKS_WINE_VERSION" ;;
- esac
- ) | tr '\012' ' '
- }
- winetricks_stats_report()
- {
- # If user has opted in to usage tracking, report what he used (if anything)
- case "$WINETRICKS_STATS_REPORT" in
- 1) ;;
- *) return;;
- esac
- test -f "$WINETRICKS_WORKDIR"/breadcrumbs || return
- WINETRICKS_STATS_BREADCRUMBS=`cat "$WINETRICKS_WORKDIR"/breadcrumbs | tr '\012' ' '`
- echo "You opted in, so reporting '$WINETRICKS_STATS_BREADCRUMBS' to the winetricks maintainer so he knows which winetricks verbs get used and which don't. Use --optout to disable future reports."
- report="os=`winetricks_os_description`&winetricks=$WINETRICKS_VERSION&breadcrumbs=$WINETRICKS_STATS_BREADCRUMBS"
- report="`echo $report | sed 's/ /%20/g'`"
- # Just do a HEAD request with the raw commandline.
- # Yes, this can be fooled by caches. That's ok.
- if [ -x "`which wget 2>/dev/null`" ]
- then
- wget --spider "http://kegel.com/data/winetricks-usage?$report" > /dev/null 2>&1 || true
- elif [ -x "`which curl 2>/dev/null`" ]
- then
- curl -I "http://kegel.com/data/winetricks-usage?$report" > /dev/null 2>&1 || true
- fi
- }
- winetricks_stats_log_command()
- {
- # log what we execute for possible later statistics reporting
- echo "$*" >> "$WINETRICKS_WORKDIR"/breadcrumbs
- # and for the user's own reference later, when figuring out what he did
- case "$OS" in
- "Windows_NT") _W_LOGDIR="$W_WINDIR_UNIX"/Temp ;;
- *) _W_LOGDIR="$WINEPREFIX" ;;
- esac
- mkdir -p "$_W_LOGDIR"
- echo "$*" >> "$_W_LOGDIR"/winetricks.log
- unset _W_LOGDIR
- }
- # Launch a new terminal window if in gui, or
- # spawn a shell in the current window if commandline.
- # New shell contains proper WINEPREFIX and WINE environment variables.
- # May be useful when debugging verbs.
- winetricks_shell()
- {
- (
- cd "$W_DRIVE_C"
- export WINE
- case $WINETRICKS_GUI in
- none)
- $SHELL
- ;;
- *)
- for term in gnome-terminal konsole Terminal xterm
- do
- if test `which $term` 2> /dev/null
- then
- $term
- break
- fi
- done
- ;;
- esac
- )
- }
- # Usage: execute_command verb[=argument]
- execute_command()
- {
- case "$1" in
- *=*) arg=`echo $1 | sed 's/.*=//'`; cmd=`echo $1 | sed 's/=.*//'`;;
- *) cmd="$1"; arg="" ;;
- esac
- case "$1" in
- # FIXME: avoid duplicated code
- apps|benchmarks|dlls|fonts|games|prefix|settings)
- WINETRICKS_CURMENU=$1
- ;;
- # Late options
- -*)
- if ! winetricks_handle_option $1
- then
- winetricks_usage
- exit 1
- fi
- ;;
- # Hard-coded verbs
- main) WINETRICKS_CURMENU=main ;;
- help) w_open_webpage https://code.google.com/archive/p/winetricks/wikis ;;
- list) winetricks_list_all ;;
- list-cached) winetricks_list_cached ;;
- list-download) winetricks_list_download ;;
- list-manual-download) winetricks_list_manual_download ;;
- list-installed) winetricks_list_installed ;;
- list-all)
- old_menu="$WINETRICKS_CURMENU"
- for WINETRICKS_CURMENU in apps benchmarks dlls fonts games prefix settings
- do
- echo "===== $WINETRICKS_CURMENU ====="
- winetricks_list_all
- done
- WINETRICKS_CURMENU="$old_menu"
- ;;
- unattended) winetricks_set_unattended 1 ;;
- attended) winetricks_set_unattended 0 ;;
- showbroken) W_OPT_SHOWBROKEN=1 ;;
- hidebroken) W_OPT_SHOWBROKEN=0 ;;
- prefix=*) winetricks_set_wineprefix "$arg" ;;
- annihilate) winetricks_annihilate_wineprefix ;;
- folder) w_open_folder "$WINEPREFIX" ;;
- winecfg) "$WINE" winecfg ;;
- regedit) "$WINE" regedit ;;
- taskmgr) "$WINE" taskmgr & ;;
- uninstaller) "$WINE" uninstaller ;;
- shell) winetricks_shell ;;
- # These have to come before *=disabled to avoid looking like dlls
- fontsmooth=disable*) w_call fontsmooth=disable ;;
- glsl=disable*) w_call glsl=disabled ;;
- multisampling=disable*) w_call multisampling=disabled ;;
- mwo=disable*) w_call mwo=disable ;; # FIXME: relax matching so we can handle these spelling differences in verb instead of here
- rtlm=disable*) w_call rtlm=disabled ;;
- sound=disable*) w_call sound=disabled ;;
- ao=disable*) w_call ao=disabled ;;
- strictdrawordering=disable*) w_call strictdrawordering=disabled ;;
- # Use winecfg if you want a gui for plain old dll overrides
- alldlls=*) w_call $1 ;;
- *=native) w_do_call native $cmd;;
- *=builtin) w_do_call builtin $cmd;;
- *=default) w_do_call default $cmd;;
- *=disabled) w_do_call disabled $cmd;;
- vd=*) w_do_call $cmd;;
- # Hacks for backwards compatibility
- cc580) w_call comctl32 ;;
- comdlg32.ocx) w_call comdlg32ocx ;;
- dotnet1) w_call dotnet11 ;;
- dotnet2) w_call dotnet20 ;;
- flash11) w_call flash ;;
- fm20) w_call controlpad ;; # art2kmin also comes with fm20.dll
- fontsmooth-bgr) w_call fontsmooth=bgr ;;
- fontsmooth-disable) w_call fontsmooth=disable ;;
- fontsmooth-gray) w_call fontsmooth=gray ;;
- fontsmooth-rgb) w_call fontsmooth=rgb ;;
- glsl-disable) w_call glsl=disabled ;;
- glsl-enable) w_call glsl=enabled ;;
- ie6_full) w_call ie6 ;;
- jscript) w_call wsh56js ;; # FIXME: use wsh57 instead?
- npm-repack) w_call npm=repack ;;
- oss) w_call sound=oss ;;
- python) w_call python26 ;;
- python-comtypes) w_call python26_comtypes ;;
- vbrun60) w_call vb6run ;;
- vcrun2005sp1) w_call vcrun2005 ;;
- vcrun2008sp1) w_call vcrun2008 ;;
- wsh56) w_call wsh57 ;;
- xlive) w_call gfw ;;
- # Normal verbs, with metadata and load_ functions
- *)
- if winetricks_metadata_exists $1
- then
- w_call "$1"
- else
- echo Unknown arg $1
- winetricks_usage
- exit 1
- fi
- ;;
- esac
- }
- if ! test "$WINETRICKS_LIB"
- then
- # If user opted out, save that preference now.
- winetricks_stats_save
- # If user specifies menu on commandline, execute that command, but don't commit to commandline mode
- # FIXME: this code is duplicated several times; unify it
- if echo "$WINETRICKS_CATEGORIES" | grep -w "$1" > /dev/null
- then
- WINETRICKS_CURMENU=$1
- shift
- fi
- case "$1" in
- die) w_die "we who are about to die salute you." ;;
- volnameof=*)
- # Debug code. Remove later?
- # Since linux's volname command can't handle dvds, winetricks has its own,
- # implemented using dd, old gum, and some string I had laying around.
- # You can try it like this:
- # winetricks volnameof=/dev/sr0
- # or
- # winetricks volnameof=foo.iso
- # This will read the volname from the given image and put it to stdout.
- winetricks_volname ${1#volnameof=}
- ;;
- "")
- if test x"$DISPLAY" = x""
- then
- echo "DISPLAY not set, not defaulting to gui"
- winetricks_usage
- exit 0
- fi
- # GUI case
- # No non-option arguments given, so read them from GUI, and loop until user quits
- winetricks_detect_gui
- winetricks_detect_sudo
- while true
- do
- case $WINETRICKS_CURMENU in
- main) verbs=`winetricks_mainmenu` ;;
- prefix)
- verbs=`winetricks_prefixmenu`;
- # Cheezy hack: choosing 'attended' or 'unattended' leaves you in same menu
- case "$verbs" in
- attended) winetricks_set_unattended 0 ; continue;;
- unattended) winetricks_set_unattended 1 ; continue;;
- esac
- ;;
- settings) verbs=`winetricks_settings_menu` ;;
- *) verbs="`winetricks_showmenu`" ;;
- esac
- if test "$verbs" = ""
- then
- # "user didn't pick anything, back up a level in the menu"
- case "$WINETRICKS_CURMENU"-"$WINETRICKS_OPT_SHAREDPREFIX" in
- apps-0|benchmarks-0|games-0|main-*) WINETRICKS_CURMENU=prefix ;;
- prefix-*) break ;;
- *) WINETRICKS_CURMENU=main ;;
- esac
- elif echo "$WINETRICKS_CATEGORIES" | grep -w "$verbs" > /dev/null
- then
- WINETRICKS_CURMENU=$verbs
- else
- winetricks_stats_init
- # Otherwise user picked one or more real verbs.
- case "$verbs" in
- prefix=*)
- # prefix menu is special, it only returns one verb, and the
- # verb can contain spaces
- execute_command "$verbs"
- # after picking a prefix, want to land in main.
- WINETRICKS_CURMENU=main ;;
- *)
- for verb in $verbs
- do
- execute_command "$verb"
- done
- case "$WINETRICKS_CURMENU"-"$WINETRICKS_OPT_SHAREDPREFIX" in
- prefix-*|apps-0|benchmarks-0|games-0)
- # After installing isolated app, return to prefix picker
- WINETRICKS_CURMENU=prefix
- ;;
- *)
- # Otherwise go to main menu.
- WINETRICKS_CURMENU=main
- ;;
- esac
- ;;
- esac
- fi
- done
- ;;
- *)
- winetricks_stats_init
- # Commandline case
- winetricks_detect_sudo
- # User gave commandline arguments, so just run those verbs and exit
- for verb
- do
- case $verb in
- *.verb)
- # Load the verb file
- case $verb in
- */*) . $verb ;;
- *) . ./$verb ;;
- esac
- # And forget that the verb comes from a file
- verb="`echo $verb | sed 's,.*/,,;s,.verb,,'`"
- ;;
- esac
- execute_command "$verb"
- done
- ;;
- esac
- winetricks_stats_report
- fi
|