From aad2a283f459391b73053d4ba81ad4b2df4b1b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Zwing?= Date: Tue, 29 Oct 2024 17:58:10 +0100 Subject: [PATCH] add Hangover --- apps/Hangover/credits | 1 + apps/Hangover/description | 10 +++ apps/Hangover/icon-24.png | Bin 0 -> 8735 bytes apps/Hangover/icon-64.png | Bin 0 -> 12128 bytes apps/Hangover/install-64 | 145 ++++++++++++++++++++++++++++++++++++++ apps/Hangover/uninstall | 24 +++++++ apps/Hangover/website | 1 + etc/categories | 1 + 8 files changed, 182 insertions(+) create mode 100644 apps/Hangover/credits create mode 100644 apps/Hangover/description create mode 100644 apps/Hangover/icon-24.png create mode 100644 apps/Hangover/icon-64.png create mode 100755 apps/Hangover/install-64 create mode 100755 apps/Hangover/uninstall create mode 100644 apps/Hangover/website diff --git a/apps/Hangover/credits b/apps/Hangover/credits new file mode 100644 index 00000000000..2b00e6f76ed --- /dev/null +++ b/apps/Hangover/credits @@ -0,0 +1 @@ +@AndreRH diff --git a/apps/Hangover/description b/apps/Hangover/description new file mode 100644 index 00000000000..3aa006b4c6e --- /dev/null +++ b/apps/Hangover/description @@ -0,0 +1,10 @@ +Hangover runs simple Win64 and Win32 applications on arm64 Linux. Only the application is emulated instead of a whole Wine installation. + +Examples on how to run: + +$ wine your_x86_64_application.exe # Uses FEX for 64-bit apps +$ wine your_x86_application.exe # To use Box64 for 32-bit apps +$ HODLL=libwow64fex.dll wine your_x86_application.exe # To use FEX for 32-bit apps +$ HODLL=xtajit.dll taskset -c 1 wine your_x86_application.exe # To use QEMU for 32-bit apps + +For more information see https://github.com/AndreRH/hangover/blob/master/README.md diff --git a/apps/Hangover/icon-24.png b/apps/Hangover/icon-24.png new file mode 100644 index 0000000000000000000000000000000000000000..144a830817fc507c1e0a4e1d84b4b4282eb60689 GIT binary patch literal 8735 zcmbVS2_RHm^ndoHMM6nr->ETXkSxhM_AR^0GMKTCokS8s)+`~ak)5nr3MIxK*;7Qw zR>_v#{NGsm`o917Uq|oFaql_r-m~1_Imhdswx;qiY9?v`0FEJ46m-FFM#4o&4&KMS zq}Ks}=q5^DUK?d)1ps`p{;|?3Z?);~YUw@WV4%1}@6n?DNGL2^0?iPv&E7{{D4G0f zg(d~Y#eY63$o|cnjHbLh5oJZki-OqJNxppjnmNP4J(@&s(zrghB=gR1+U2u7uHX_#B8l2o&82-eNlJQEgfPiRwa(pKJ&A~xw;+ypm%R+d+fFc>Vvj`j8$u8*I z@_XW8+2W3OmStRn6RZ=~)4V$}$?vgN7kO{vs%J`Hi*nlVNNX{(pNe29aEAy!WLl(m zRquCiJ6(D%Kdn;2K7q-8we>pVyLrKOvuq}%lMzNiq_os%J}mKB*I^G`q0CvS@d;M< zos-q{n1nYiC4mC4mLk?|np<510_vLHh;h>Hoi7rsoR{rR+YPWxZwF{LaDv=YO<4iJ6Mi1oX2*jgR4yvUZUCTJOSp*K(026T zAcZ?ZLy=;J`YbgakK(zSRsbMLM<~eYt2BEgnmd0|pbyC?sh#h1nmvC^gIb{5;3g%* z`M>}mpd5eah*OS!umC%|f?8@1j|x|e`@~3vw5Y92mC>ceTgIg}-ySa4xqW?Q`!1*I zX4oiQ0e4uFDQdIbz>uM)DE4axCaTY`2Zs}14yss>GC#rolK3=xn9!Tlx*~xnP0enP z`{A^&czvV2jxR8u`6>5Yxo23+aps1#;h3=BTV}=NQ)G83wE!CYcHV$gG-D!?JuFa!>#8DBSp3QmsWX+quMSnZ zJ5#|mMGsfDGTBc=oLNmBoY`Q`hmSIr>-GhD{g5Poh*O14 zMsGfCPzQKN-=cx?9CcF28;(_C{6+U`=|R)%kv#15y2np)!Py@V7a*6W+2*kT2OpbW z%t=a3Hd4#r@+7(%SvugPp zwIV}D!=cbO?6v_q4;mUSrv&PT3sFU47>`4J?^*3Gd6j-}K=!u-;z!J5QO%tlK0MRB zX3RUPIv2}H0#p6pN(>%de!bFkp((&f6w)E4ny4Y4z z@{bF*8JvWod<;&7G04bDb3aFaDzd7(f8Q(7vssA1hY|sXGRG-QBdq1|ajunU}2ZqhkvOk}cbo#hWve$hN$G{A^nLJRaby z?s@adiAr5HlULT4mP-rixi$h_M39S{$FLFnYl!vDu^8tC*|E2wG$L4w>C$5AI%Ags za%Ee*Yn{=FxYyIoKm1Gm-y6GyJi4BI5l$LO_1v1N!A@Pyqbw?-xIW9|KOPDj}3W zBN4U^-tZp*d4Q6foPwN;l7fPQii(o@DE+acM~)mlbCQmRo`s3^919aOGaJ`=UN#OP zPG)94aeg6)2n+^e<-I5^0hKy03WE|JLPSMHb@a$l#$(4Aq3q1;(EsxX{~DmBBMEC!NtTS zE=tNPC@LwdAXN4AuNoK{8Jk#HBW-N$P-r)I4^J;|AKyE{cSAzM?uEz2KS)SSN`9E~ z6r1@hD?2AQue7YZ;zeaubxp(D#wJ{IOKV$CZ(skw;LwNR@h=mTQ(vcNX6F`{mRDAP zt*vit67(YIdHC7a>>qm3f_f2?l9G^85cDD<_97@wOG?HrLVi+Chr+^@jstp|lKx8U zlae=7oT9ov87wjHsZVji#<>>>s_kj^zf&ye|E1Y)#s1Q37&uBo1Uip|7LWzjHu;_g zQd_|2)Ol`alJ;45Yd}&Ixk!7d9;ZYSh=Y;+DgBy0VMmIEX$5H)E!iX!Y9TtEc%!oQ z^v>g)2zYv%JGsc3R3%FOw%(1Jn7%6gSJvxl0^?!^*JL$}YF> zZeSBaEAI8h>%^ON{n}aB5yb;_D5ZLj5f0hgc!0^Q;F$@90=SvC=KgpficD6iNj+uc z<?baDtH_!)wpu^@4liNIGLZ3m9S8te-;RszAN5ymqA6H$IJB8Olc<>-4>S{WsA zd@xB?)`eX1mPgkRif-;ko2{bRlA4pljx4UoJI{PDMtP@?cUg7^{XXgS+C6%`p^@`T zfu$D({>wjZr6OWc8+Gha&a5LP9(Z9{N)v|E3$0*X zdrzP7GnNhyoUh*i?}d6cc6oYmlb$|2&|WUP_Btn}ts5j?T@U(F79B=~2a=q(13*3v zrjDh6{EDvbc*RV^@=P;-XlMOY7^@OTJ_7sNtz<;2p5tzkQQ8+_8NG}j4Y=%Rg+=bq z+b>_C{YvzkSD)~onA7=YZT10y3SFj;{3-V)zsA3}>#R^Hx5%>ZK;t#C>Lp~#(yUjo zW$rnn_$a7Wty_)N7sKmUJ1+{uc_Nd_&1yKc_dQ^g9(P$oNdpYQOx*+G@o%Rb`a&f$ z8pVU<2|@)A8ZXcO;n;l-qYg%bK<9%|fc2t&c5mz`7|$4!dt1(7+jZCuBRoJfxH;%} zF4v6`_jAnCHRTKJhLZ7>x#iO1GxqGxpj>>h8u zuiCuPZ*5+zR2MGrD!cGf=|w%8+x@~NAvDn*Ii`laavL>xU{DfQ6%P#P$4$oTPIg*d z5t^5+bZ?r?Xppq>PI==i)VZRw3vVt@ID$}nlvw;zazo14p&m18uo)wZ%TxQZp|aDT z$BzdbBLePXI=LaOY7Y~0^u9TM^1h>8L#DoKlK%dF{d1G4$1+!cNghqef8V-nnKMFj z{#)@v2>nDZ!_y}=i5)!z8+|xK-(b&K{dbf673oZZ4{}$#YsC zXWrencn?1tPuVK!)g$P5S*tmAabmN-!Je)W^Svwz;^WmdMu7+N?pCR(ypS7j`B~QC z7lYl%m^IB4Z^_^JLS{4be#6)D+}&2I-2m$T(z6Se=Qg&hpZt&zy!`}3x zz|>-jLmT(mTo)R6@{;~qoaZV$eMw(5?}*%Y?khd|&frZ~=s~MGR9~1|$vRU9$@TX6 zK*ZEm^!inK?&}$AFW7hQUuEfVrCy}Wa2N0|kwXWK)O#vF$)(CkjGTSCk(;##Y)Tr4 znkygzfe?VAj{(6<4n&A>72N~m=#hS$0wSYMyt!>xCO-i@Kn?^EtO1ND0*b&I`oIwt z&_G|e6?x`!u)A}%ghM}rD7v=2gEjro=d8c0KT-Y2Iiy*R*vH^KhzcYtg~#}uUh!__ zXszTO?Z-Ynh8th(24qdt+z_+m=2hsHnp+ixFx@)OC-4lJM;<&bkNu4d(h9#tA^8eF zyt~%A^;$YFqSjIC@o1|c%g^Y1)}MLb$5SWpfUqMTSjfTy)Yov%PimecggXr5o}vUD zUkTpw)d1)G#n<&OjB6;k`+06&++)kOtSeF5h&1rE@a>C#D_OcT#DE7zVgqvXMC~>+ zWpCjE)~SE&UOk^SFjHZYI;>J~?S+umqikpt7J~;e-W6ZJ=~&U9P|J8@;9cNWkM#=M zZoqDynrr_6sW!97xqf!|nd|4rL_s#xSCIVAZg%SbR_n!gcy8WY4d5FXX8!3^+$|9sW<-Q z8*GCIWFMgrZmP{PJZ8Bt51kJR_1?}ht0fjp&#H$X6ORCS4B2QAboxfo2b{?LI0^cx zi`Uc*a!j(&A(}*R+Ozy3?Q{zWMTQX_qE))~S!wGl$r#@X^=!;dj z^8=f(QPww6XjIp$rxPUcj4SxYr{md-yA=jeNtS&t3W}b@-r+w(%6v!dDvw^~tY-J? zCCbpYM^FSFnC~sGF1k=C)%uuLLV}Gs+@Lr0u}2B4xJl9>1r{4nGe^0DPCLiayFGi3 zay!)G-P`7=U54z*;_NHbn$-(UNcb5}l{Ot;(Jpv|L23W=?JzFLMV2L^-3pbIk;Nc~ z!F#(assYKn30-v8kVqRpAHSLyF!2SUq4p#_Dqxl)#CgOa0Y<*Ml^puF<-y>t>B<0S zPwlxQ^FO&D?yR7t*d|lgPcYBlOUv$|+itoR@K9xyA!9t0Dj%Bu{4C$*Byl_3@VTI+=ddQjQ)}>+? zmWXAQAxh1Q43eWEkv{y4^4-rliWj9(Xi#F`z>amVDgodNI`?YWAkose_P4qpw5J` z{Cs#I9>~9|zk|_QWoRw49!$FK_Nm>lY3U%8-OiO>1}hy9cL|AZ4{-=($UadHCc0z| zvOMU1k@D9p8ssNr$bCT&gm4JWjDmts-wj8a*R-zp!V5HP(b@}g0;|{RRdZB3nrXFC z&V@P^oRQ}zrHxVcO`*D(EAJ`AH2q3ECnDl{Y0Kx@;G5My>UW$n5}XWkQqr^-vQME! zT3T|ByN%+NwMZdEMno+LReiv|lkTkw~f>?q?~bI{dO z9HYVIUScm(@+^ zwa-p{PEH$*QJ&Mik9S0jx%%SkFDW}!n58VuwJpiSlc>c#`m7CF983@c${2!qub_en zDQ|D6N0<#f9wCH$5&NBMzc`+k@h1!h_3b4Qb)Fc|bEo#Q3EBe8CR8~?lPC5oQ9f32 zt(S-~%V(PUctG{Ld#x&q=8)ux(hHw8=K>n45rBulTeg0c$qdbEP?7Iw%-LJp}2bBBZ#elCpf6%FaE>9lnw$^*Y#^+${QaUxAxRqNq&=zpP8FIsM4{ zFJEStuA)5prk$KtFHH*E#A%Kj+HIpR39^=wCtf+))yzWXe!BG5f^%-cL(?=JoniJn z+1~}ZHqo$s?aZ>f_xx@0kJ?r2u&LXNn1ho4Z#@52*6z0yAcUG6RDgEi8Q<$D2#5V2 zgfLqd9Mk%1BVzuJ@l;;lv5Ky$!kn`94y^4dnb}Inxr9_sWY<7Z+lQM2_F|fL1-}G^ z?oaU(V)#@Ro!NBh9vTop@6~ON{Q82xCPLM@^?b zG)?3v*)ZBNuxF}6K*S`!!&BabYAg5Y7FHXZS6j317r4dJ?uR+(Fd6L?zlSyNK_=R3 z3JAMBs4!5c4z?YcvImTNu-Sc>r+z1_1G9q`0ueHESgS&f^nz4Avwii@81>B9`+|Zm z%g)w@obibb;RCRNZ_9HNTvP383l|e2TpMz&W&|cpG*&V&@2)p_;sME_q{dCfzz@LZ zsP1gm4C1n{i{oc#jjcU}d1TeEUgK*X8q8f31N%L_w>7B&?N!(FpRW%fKWRDjH1Uu; z5pbOoFqZPqwVezaqH$^79MH@!;z0GF4gK`nG(Drl-F6vt;v5?4&gnl*Rl1*c0n`1K zk!+IPke4~-r5ASe13wCT8C#!{F>&qM=M%QZPq&C2tuG$+M^|)(trlvuYlyzMRsON$ zk))HFf>+!elQ$-gxp;mnOE!nWya<--Z5*C~beKXxBS;n=54E zC^l?pJNxszS&CWtu^?z@ z?;|gL^jDHtp>57(+ZVzw?JP4{Ux%+ctc$sBwXCe*0bkY&8@E+q3q0k0tlE%=M%UGmZxMTH!CV)_EIK@@dLu#VJE~ zO*HFtCkBNhch5YxipI$>m1w-sZn?b6D15Vi=ZK?T&3Z(PVtTqVRviy?DzEqICmESV~*Y&lR=P#S$wBjw+#QvTAc?

BK!@L{y5yo+*2_i$`M+MLqYWKzaUbp*ayB%DOfB`D>MQj zDxqyk-E#DkB5p|;>!w>&G_lY~)BWX%!?_ANj`V)j%-G;!ecM-R6Goxy*cg8ZD&U3V z%X<{#U=df4b>DwZEX+6Mxg+O=Z*3QzFIj^fhJzg*mA%8m3!_U>Rb<6~0K~k62roUk z-4%`8tu5S2MSYax-ZuaFGUNp@>j=n9_nTP}TvW@(#trEXh=@yk8Zfv8PSgLM zMmSp7BGr*jw(fQS6fQR3juZNu_};uB%6flVqH^E~IQ^G4dd@cPUKSW6@aJ0^&adX8 zAQ#u~McnN?94(zJP!9jDJ=@t8J&>RIU-;#n9bGU;H#d~C6Ck#MbTI_^&ixDDKh)56 zfe>CivHVw@zZD82-z2<^;`-NJoO?~@GSOrR9ozew$e5h0+o zQQk-gKy-Yt(*)!_OW+0nhlQk-vx^S~WozdSXnR;Xpsd&woEJ;dR~d c-we*y;ARM-rZ*7s;0%CJ)Knn+a literal 0 HcmV?d00001 diff --git a/apps/Hangover/icon-64.png b/apps/Hangover/icon-64.png new file mode 100644 index 0000000000000000000000000000000000000000..791570564ac8607e48e6e18d1295d8ee9c10f600 GIT binary patch literal 12128 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/dev/null + echo "[pi5]" | sudo tee --append $boot_config >/dev/null + echo "kernel=kernel8.img" | sudo tee --append $boot_config >/dev/null + echo -e "The 4K PageSize Kernel has been enabled by adding 'kernel=kernel8.img' to $boot_config\nPlease reboot now and install the Wine (x64) app again." + sleep infinity + else + error "User error (reporting allowed): Your current running kernel is built with 16K PageSize and is incompatible with Wine (x64) with Box64. Changing kernels automatically cannot be done since no /boot/config.txt or /boot/firmware/config.txt file was found." + fi +fi + +if [ "$__os_codename" == "bullseye" ]; then + ho_distro="debian11" +elif [ "$__os_codename" == "bookworm" ]; then + ho_distro="debian12" +elif [ "$__os_codename" == "focal" ]; then + ho_distro="ubuntu2004" +elif [ "$__os_codename" == "jammy" ]; then + ho_distro="ubuntu2204" +elif [ "$__os_codename" == "noble" ]; then + ho_distro="ubuntu2404" +else + error "User error: You are not using a supported Pi-Apps distribution." +fi + +cd /tmp || error "Could not move to /tmp folder" +wget https://github.com/AndreRH/hangover/releases/download/hangover-${version}/hangover_${version}_${ho_distro}_${__os_codename}_arm64.tar || error "Failed to download Hangover!" +tar -xf hangover_${version}_${ho_distro}_${__os_codename}_arm64.tar || error "Failed to extract Hangover!" +rm -f hangover_${version}_${ho_distro}_${__os_codename}_arm64.tar +install_packages /tmp/hangover-libarm64ecfex_${version}_arm64.deb /tmp/hangover-libqemu_${version}~${__os_codename}_arm64.deb /tmp/hangover-libwow64fex_${version}_arm64.deb /tmp/hangover-wine_${version}~${__os_codename}_arm64.deb || exit 1 +rm -f ./hangover-libarm64ecfex_${version}_arm64.deb ./hangover-libqemu_${version}~${__os_codename}_arm64.deb ./hangover-libwow64fex_${version}_arm64.deb ./hangover-wine_${version}~${__os_codename}_arm64.deb + +cat << EOF | sudo tee /usr/local/bin/generate-hangover-prefix >/dev/null +#!/bin/bash +echo + +#set up functions +$(declare -f error) +$(declare -f status) +$(declare -f status_green) +$(declare -f warning) +$(declare -f userinput_func) + +if [ "\$(id -u)" == 0 ];then + error "Please don't run this script with sudo." +fi + +if [ -z "\$WINEPREFIX" ];then + WINEPREFIX="\$HOME/.wine" +fi +export WINEPREFIX + +if [ -f "\$WINEPREFIX/system.reg" ];then + registry_exists=true +else + registry_exists=false +fi + +export WINEDEBUG=-virtual #hide harmless memory errors + +if [ -e "\$WINEPREFIX" ];then + status "Checking Wine prefix at \$WINEPREFIX..." + echo "To choose another prefix, set the WINEPREFIX variable." + echo -n "Waiting 5 seconds... " + sleep 5 + echo + # check for existance of incompatible prefix (see server_init_process https://github.com/wine-mirror/wine/blob/884cff821481b4819f9bdba455217bd5a3f97744/dlls/ntdll/unix/server.c#L1544-L1670) + # Boot wine and check for errors (make fresh wineprefix) + output="\$(set -o pipefail; wine wineboot 2>&1 | tee /dev/stderr; )" #this won't display any dialog boxes that require a button to be clicked + if [ "\$?" != 0 ]; then + text="Your previously existing Wine prefix failed with an error (see terminal log). + +Would you like to remove and regenerate your Wine prefix? Doing so will delete anything you may have installed into your Wine prefix." + userinput_func "\$text" "No, keep broken Wine prefix and Exit" "Yes, delete and regenerate Wine prefix" + if [ "\$output" == "No, keep broken Wine prefix and Exit" ]; then + error "User error: Your current Wine prefix caused Wine to error on launch and you chose to keep it. Manually correct your Wine prefix before installing or updating Wine (x64)." + fi + warning "Your previously existing Wine prefix failed with an error (see above). You chose to remove it and so it will be re-generated." + rm -rf "\$WINEPREFIX" + registry_exists=false + wine wineboot #this won't display any dialog boxes that require a button to be clicked + fi + #wait until above process exits + sleep 2 + while [ ! -z "\$(pgrep -i 'wine C:')" ];do + sleep 1 + done +else + status "Generating Wine prefix at \$WINEPREFIX..." + echo "To choose another prefix, set the WINEPREFIX variable." + echo "Waiting 5 seconds..." + sleep 5 + # Boot wine (make fresh wineprefix) + wine wineboot #this won't display any dialog boxes that require a button to be clicked + #wait until above process exits + sleep 2 + while [ ! -z "\$(pgrep -i 'wine C:')" ];do + sleep 1 + done +fi + +if [ "\$registry_exists" == false ];then +status "Making registry changes..." +TMPFILE="\$(mktemp)" || exit 1 +echo 'REGEDIT4' > \$TMPFILE + +echo " - Disabling Wine mime associations" #see https://askubuntu.com/a/400430 + +echo ' +[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices] +"winemenubuilder"="C:\\\\windows\\\\system32\\\\winemenubuilder.exe -r" + +[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices] +"winemenubuilder"="C:\\\\windows\\\\system32\\\\winemenubuilder.exe -r"' >> \$TMPFILE + +wine regedit \$TMPFILE + +rm -f \$TMPFILE +fi #end of if statement that only runs if this script was started when there was no wine registry +true +EOF + +sudo chmod +x /usr/local/bin/generate-hangover-prefix +/usr/local/bin/generate-hangover-prefix || exit 1 diff --git a/apps/Hangover/uninstall b/apps/Hangover/uninstall new file mode 100755 index 00000000000..0dc9d98cec2 --- /dev/null +++ b/apps/Hangover/uninstall @@ -0,0 +1,24 @@ +#!/bin/bash + +pkill -9 wine +command -v wineserver >/dev/null && wineserver -k + +status -n "Removing terminal commands... " +sudo rm -rf /usr/local/bin/generate-hangover-prefix +status_green "Done" + +status -n "Removing mimetypes... " +#See: https://askubuntu.com/a/400430 +rm -f ~/.local/share/mime/packages/x-wine* +rm -f ~/.local/share/applications/wine-extension* +rm -f ~/.local/share/icons/hicolor/*/*/application-x-wine-extension* +rm -f ~/.local/share/mime/application/x-wine-extension* +status_green "Done" + +purge_packages || exit 1 + +if [ -e "$HOME/.wine" ];then + echo -e "\n\n\e[93mYou just uninstalled the Hangover app, but it's not completely gone yet. +To prevent data loss, your Wine configuration is still\nlocated in the $HOME/.wine folder. Feel free to delete it to save space or to rename the folder for troubleshooting.\e[39m\n" +fi +true diff --git a/apps/Hangover/website b/apps/Hangover/website new file mode 100644 index 00000000000..5498f528170 --- /dev/null +++ b/apps/Hangover/website @@ -0,0 +1 @@ +https://github.com/AndreRH/hangover diff --git a/etc/categories b/etc/categories index 1e71938d8e5..147493f931a 100644 --- a/etc/categories +++ b/etc/categories @@ -81,6 +81,7 @@ Gnumeric|Office Godot|Games GParted|System Management Guake Terminal|Terminals +Hangover|Tools/Emulation Heroes 2|Games Https File Server|Tools HTTrack Website Copier|Internet