From fa162dc60ccdb16d3f3202a2b5949731d901add9 Mon Sep 17 00:00:00 2001 From: Christopher Monsanto Date: Sat, 25 Mar 2023 23:42:10 -0400 Subject: [PATCH] Remove deflopt --- README.md | 6 --- Tuprules.lua | 6 --- pnpm-lock.yaml | 11 ----- tools/deflopt/deflopt.ts | 53 --------------------- tools/deflopt/index.ts | 15 ------ tools/deflopt/package.json | 7 --- tools/deflopt/tsconfig.json | 9 ---- tsconfig-workspace.json | 1 - vendor/DeflOpt.exe | Bin 52736 -> 0 bytes vendor/tup-remove-fuse-context-check.patch | 31 ------------ 10 files changed, 139 deletions(-) delete mode 100644 tools/deflopt/deflopt.ts delete mode 100644 tools/deflopt/index.ts delete mode 100644 tools/deflopt/package.json delete mode 100644 tools/deflopt/tsconfig.json delete mode 100644 vendor/DeflOpt.exe delete mode 100644 vendor/tup-remove-fuse-context-check.patch diff --git a/README.md b/README.md index 31741110..621946df 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,6 @@ Build settings are configurable in `tup.config`. - `CONFIG_DEFAULT_OPTIPNG`: Command line to pass to `optipng`. - `CONFIG_DEFAULT_ADVPNG`: Command line to pass to `advpng`. - `CONFIG_DEFAULT_PNGQUANT`: Command line to pass to `pngquant`. -- `CONFIG_DEFAULT_DEFLOPT`: `true`, `false`, or blank There are src-specific versions of these settings: @@ -87,17 +86,12 @@ For example, these settings reflect the compression settings for the files chaos ``` CONFIG_DEFAULT_OPTIPNG=-o7 CONFIG_DEFAULT_ADVPNG=-z4 -i5000 -CONFIG_DEFAULT_DEFLOPT=true ``` ## Gotchas - Tup, like Git, tracks files, not directories. If you `readdir()` and forget to declare a dependency it won't catch it, like it would for `read()`. You can work around this by having build tools `stat()` any filenames they acquire. -- Using DeflOpt requires a custom build of tup. Checkout the repo and `git am vendor/tup-remove-fuse-context-check.patch`, and run with environment variable `TUP_NO_NAMESPACING=1`. - -- DeflOpt performance can suffer under Wine due to repeatedly starting/shutting down `wineserver`. You can specify the server timeout with `wineserver -p`, where `n` is the # of seconds (default 3). If you don't specify `n` it never shuts down. Sometimes wine will hang so you may want to instead pick something high like 30 seconds. - ## License All code in this repository is licensed under the [MIT License](https://opensource.org/licenses/MIT). diff --git a/Tuprules.lua b/Tuprules.lua index 1704dcd7..34bc98e9 100644 --- a/Tuprules.lua +++ b/Tuprules.lua @@ -28,7 +28,6 @@ local function compressopts(program, copts) copts.pngquant = getconfig(program .. "_PNGQUANT") or copts.pngquant copts.optipng = getconfig(program .. "_OPTIPNG") or copts.optipng copts.advpng = getconfig(program .. "_ADVPNG") or copts.advpng - copts.deflopt = booleanconfig(program .. "_DEFLOPT") or copts.deflopt end function compresspng(opts) @@ -49,11 +48,6 @@ function compresspng(opts) if copts.advpng then cmds += rep{"advpng -q ${opts} ${output}", opts=copts.advpng, output=output} end - if copts.deflopt then - cmds += rep{"node ${root}/tools/deflopt ${output}", - root=ROOTDIR, - output=output} - end return cmds end diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a4e41152..dbf40b8a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,12 +27,6 @@ importers: dependencies: '@types/node': 14.10.1 - tools/deflopt: - specifiers: - commander: ^6.1.0 - dependencies: - commander: 6.1.0 - tools/deploy: specifiers: commander: ^5.1.0 @@ -461,11 +455,6 @@ packages: engines: {node: '>= 6'} dev: false - /commander/6.1.0: - resolution: {integrity: sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==} - engines: {node: '>= 6'} - dev: false - /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true diff --git a/tools/deflopt/deflopt.ts b/tools/deflopt/deflopt.ts deleted file mode 100644 index f9dde8d3..00000000 --- a/tools/deflopt/deflopt.ts +++ /dev/null @@ -1,53 +0,0 @@ - -import cp from 'child_process'; -import root from '@smogon/sprite-root'; - -/* - Output looks something like: - -*** DeflOpt V2.07 *** -*** Built on Wed Sep 5 18:56:30 2007 *** -*** Copyright (C) 2003-2007 by Ben Jos Walbeehm *** - - - - -Number of files processed : 0 -Number of files rewritten : 0 -Total number of bytes saved: 0 -2,097,357 cycles. - */ - -const PROCESSED_RE = /Number of files processed : *([0-9]+)/; -const REWRITTEN_RE = /Number of files rewritten : *([0-9]+)/; - -function parse(re : RegExp, output : string) { - const m = output.match(re); - if (!m) { - throw new Error(`Can't match output: ` + output); - } - const num = parseInt(m[1], 10); - return num; -} - -const DEFLOPT_EXE = `${root}/vendor/DeflOpt.exe`; - -export function deflopt(file : string) { - file = file.replace(/\//g, "\\"); - - let cmd, args; - if (process.platform === 'win32') { - cmd = DEFLOPT_EXE; - args = [file]; - } else { - cmd = "wine"; - // DeflOpt doesn't like absolute paths, it thinks they are Windows-style - // command line switches. - args = [DEFLOPT_EXE, file]; - } - - const output = cp.execFileSync(cmd, args, {encoding: 'utf8'}); - const processed = parse(PROCESSED_RE, output); - const rewritten = parse(REWRITTEN_RE, output); - return {processed, rewritten}; -} diff --git a/tools/deflopt/index.ts b/tools/deflopt/index.ts deleted file mode 100644 index 2b5c3f06..00000000 --- a/tools/deflopt/index.ts +++ /dev/null @@ -1,15 +0,0 @@ - -import program from 'commander'; - -import {deflopt} from './deflopt.js'; - -program - .arguments('') - .action((file : string) => { - const {processed, rewritten} = deflopt(file); - if (processed !== 1) { - console.error(`Didn't process any files.`); - process.exit(1); - } - }).parse(process.argv); - diff --git a/tools/deflopt/package.json b/tools/deflopt/package.json deleted file mode 100644 index 00f1ae3b..00000000 --- a/tools/deflopt/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "type": "module", - "dependencies": { - "commander": "^6.1.0" - }, - "main": "./dist/index.js" -} diff --git a/tools/deflopt/tsconfig.json b/tools/deflopt/tsconfig.json deleted file mode 100644 index 3ab3b81b..00000000 --- a/tools/deflopt/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../../tsconfig-base", - "compilerOptions": { - "outDir": "dist" - }, - "references": [ - {"path": "../../lib/root"} - ] -} diff --git a/tsconfig-workspace.json b/tsconfig-workspace.json index ff801c21..e4d2de53 100644 --- a/tsconfig-workspace.json +++ b/tsconfig-workspace.json @@ -3,7 +3,6 @@ "references": [ {"path": "tools/tupctime"}, {"path": "tools/deploy"}, - {"path": "tools/deflopt"}, {"path": "tools/sheet"}, {"path": "tools/trim"}, {"path": "lib/root"}, diff --git a/vendor/DeflOpt.exe b/vendor/DeflOpt.exe deleted file mode 100644 index 7f0cd4ca67780f9930df82db458f5b5777c59c33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52736 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�K=f)aE#4grSy;3_B z>6P$;EZB4}hrGu__$kZDhaixLj!`Zo_>T!zM6fi1%?9X30u=)?2>=SU+>GZk%JS2! zC_oFT+?3_)eAcn$>}$%rh|SBS(u-jge3pG^vSr}Wq?X+<)*GMys*haXr3R%##q-6V zLFw(FRL!4UKnGa+v|I4RddL_bKskpY*7e-8F3~xBg~|;h4l!$7WKyg0gMSaPR8-;@ zjW$QHtkPxFH&ikksNBAhs3DaOi>h2y-f6vsw(!@2VB^Rnm#~MFh_l2FiqPXpxcT&} zoenj4ivME%8|>#N|CZM8DC`>f&AW; zP6Pi?{ttal{1blU^sY=cat&?JTFUiPVsi-HJPtD)Y%4v2AEu4Ju2nwtgFWjA*%b^brmeg?#6TpdkMV;j#|HS21?*Ed2{Ax)T+##SY6y z*!F|UF&8%K-B1aY>pFOxp;Qt zaFdLN83_bN*PSyS&y$wpw-5+08vt}~Okx1B6Qr2UK`*CS+zbjX_}QEr@r2(_NXAo{ zH)jfUP;@-xPXQya18~BZV=7r_93hQZ26;~IOk(3#*i4>vW;yFu^RJqO)8299*5&M4 zDPJY>Nv}s$>n&=rW0LnBAaocR4TOitPEF$(u~QSylVz`3HfoahJ&=%WWQIo4DBymD zGCPsk(xv8SPA6lLrj5WenF@+4rWoUfA@(&?;&bder|z0>QUktVsea^+inWe!2i%P{ zSTW#&}p4)!t{5keu!XDB3SH9!O%(GMd+Zh6_d?yP#uK4&=mYJ4r-tmO4Z=l zA*kWWK=GZxxX9AW&QtCp6OL-bF+P^>^b+HSl-S*Ay@6AJ4wx)dC5WC$-Vu=D-DJ#9 z)Upwi@a<;*OoKs^X!~{T=jkqR1m3okEB4uwHFE z_O9b#9rSM!Jm%NN0g~lCaZP-SKhWYjz?_XKT_G61jfHBv`NT{wuNgF zA$LOx(>wG`<*e`u()Z23?jW}3&b4VKxFOgw5Xq!0JUgHm4dAytLZg8cnTQm1)z{wB zYpxR+a9$hz1i@5$W-xx zUO2gWWp;G8vP|o8wkR{f(#clZ(YMl;vm)LnkybQx_> zN$5q{lp!}bOm4jjBF3&1PcaMyxzT)RWLoRj8+oZ@aD-G?7U>$IncqW1-7EtNp z+#nbetTy%%2)Wmj+z$^Mn0^azfWSLqU|0s4ewXLBnV z07F5hkUzs)qpFrBGd~Ad^vwc?p$i7OcfUfpnN)7Bt(=-E`b#uZr(tmn^v_c^H?mb? zVHdtnGDm+9d9j{hWHxXHDf8(B;KUr!8=s5D4NmaJlUStiBsAnuu@q7E9mrl8XAG5d zZ4kXjtLFIQF2|oj1%8bJ((5obSPCW+l&q}-M6ekl58B|=U_tv5rS2iBV3yG6!JkU6 z?;T1+IxM0$c4WU%w3UjEM^UJUdx!+~W0mF#5_pyhoQyXlK%5&)7|mNx zS@w!7PWA**j2}0IWHC)5%Z3x(@Z`pHDXVok>ylfq7lyV8MRYD{^fS0LWM4*TS0RtO zl6;6__Wt10HrXGk3?b|QEBV5*z^0vkPJNBs9whWa`*2s&#bi$0~@cA4^Oe*x`e282!< z&9IHY{jdf!U*X0bP0FyZ!tapvWP3=xEKZlvNC-bm7TaSJ~%$s=w@4nX5KIK?s( zH>!W6>UXIA(W>96`jb_E%5vs+FUL>jA`ytk1I17Itsf4IYl^sq>*Bgq+`=<)<>Hq4 zGt{CVt3_#w>o)$FsTO4@uIad!UiZ7zqD=A-#fHx9g@9t<)L(L6IYs>~L6C2}zWBi| zBAG9KY_fa=xQDIGMN%7va-P&p!TC+pL+ZXJAzBVbcCk~zv9MYJde-iL7)^*FnT=Xv z=|R)oql~({1AV~BY?i%C5Q7GYhtdGEqb(p^(H!6z!$T4^2tMvrT25PmlQI;Mkj4}#aB7onVN!lYE0KGn=GCx|>3K3F$kUUxzwe!Zu zlO0WsC(*`es3HK+(k^OghE~J4<)Wr$Xgf5qi<%hplIE^wTNQFt9Q81(`%K(O&JEOg*#~m;}rp5vdwhuF(SJooH@MRHD}}f}M$8ALO55eD2v3y?z7# z-lP9Pm}J`>iQS|)w9m+6J^NX^!!#d}<3p5scA3X%5qFY zS=USV6X_#j=J4vH>D_Ec#LPaUv!Ja04)OCN3o!--4n6z*-ym_Ld6oM$`Tk4zHHN6` zU66XG4Ab$HIVwY^@D+9S0EpK!@u1kEu08z8&7YdO>A}>Ti6?D0EDtIoT(Iij6$0!9ltqZW5boXJ^m66rx2O$yt9Md zuSG*WQP)dIM|(Vvujuu!@XuC!2H?8WhuNfIUP}eCT01(T*B|0JKE~%@`Llvnzcvo> z(mOj^Y@2Lj_VArgx5``k+{a=nuO~%Tz*`OaM9ly ze1~!U7S|?RFXL*#wFB2)Tz|r);p)eA4wtRPWEzd@T3nNG-HNLS*Lqw};(8iaJFeZh z4&ge2s~;DwpV)D^ab@E2;hKkQDXt(c<8K_Zndo;a=_e}vb1WG2>96&6@($u~VYoLD z5Pp#fuCfW!CKIXCC|uXz`Vp?1a81K?FRnUVZMe*4+~cAjjxhs?8A#0VHqAC%2v(TU zxy{MA+_*Av`EV^AS|76WI#GnzI|ARBlJoizo#Ql+nYtR+b-2dint&@ER~9ZWt{J$f zo85=28kdZ#8CM6cKjVr6jaT|3FkK`ALk|B>c~|or$#LC_l$6AT0SAT=B=M!Z2(jdX z9CAr&wc#4#=Wv%=iX=$xhou!JJ>5MsZT57J`-9{NIw*h;zA-R$g9SpdoVt>@DSMR-g^}f1CdI8sz zg_Q?oLK-cdln-gO^io!&+0sqg!MZfcknN)mONTvMdhD4r)tjZyo=Ic9+4&%Tk>BTw z2c+4qFZm(O97mdoi*$1y(#*M0auoS+9jZgGA3mIzJbd`lOK87DeOiBiU40W~`onLp z3m9|GKlskN`ZF{hAO43q^O}7;^XOqr{UHDEjy>bp-^Vld{pyd_1>E8w%{oTJY@Q8EGWHzg6_VSEH4*=|8Rb_(`n~L*yXLdJX13uYlS6D+{eu z1iPd@fc>gH`)k;or+9YN@rz(fzo@ptIQ1Vmkr(>vUnid=LFVrSxc<$F`+m0Pq**gb z;)E4}V?SfhVH`x6k0+le1fLuSZ~JORZ6&^A25+cepFHv%PY|gmYTFNe+p|GDTXB@e zp}&Kk&u6C`QzK>c)LFLs@9C-Hst7iuR? z`cC$`pQcWi^FC}I?Kk(9ml|Fe;?3S^H!oa&kOgt1)E`dvoiL1D zrT%g<9VC!pNBv+j%@Vf zb2*-RGTDg-euS8FZEYElPXS8EZ%+38ejg%KJCklkiSDWv$=XREGAr{RPqaWl;PwY_ zytp2OK{kM>l)90VragEagtxfAxjJNdOVPBK{EwYA&XaNxIss1vWRKiX)nKLzCL$B(y;PK*@) zUbXy-AX5)i>!~~7I#AhmC*`5?z{Q}|!g%Oubf%u-zUyawCy1P+o2t)ENEe3m;WJz0 zAy07wru+nQ{+4Pv-dFQ9YjwQf3|ejQxiN(0L9Vg6@0h#aH5gjXV9+Ajh*wA**R<7> zEt9}u|3J0eILeYZ>_Cn`U&mqLBO1^PQdYa)=KW^S(B3Kn_>f%zBw- z!GXbTq5YGOZ+|4KPCGdt(H${^lxwxBG>p$z#1Ix-6Kqru{|~rG%M^D|1hcxTr&9!= zm0UOlX*`-NQG6ajJAy70p;FD-+*aQ>uWV2%^gRu0sH@41 zlIspV9$Bf4m;Fq__9(0j=I*&NB{(edH8`%?(pSw@Euu{SyczLnV;;Dt2gNqsDh*NO zpIZ)*^ZwnsdLQjQw0F?5;y%RLLwkmHg0_do<3Vx0)wrc@HQo+r&~G&cQCH4c_iZ`L zNgdtaL=1ou#fH{A51dfWcrNF)FRguv&%dHgf6_)?SCX0dbkCY0(0t)b06R6c38guO z4b6Nv^Swr+p$DPwVAal@09Llg<=pl=;lUu&E_$L==L3LEG4-k8FKt_gBdmd|<}dr> zJR9U$2>}}RE5jXRvi6t?>rVsZocSL0T+d7|HkJ$1J}Yx`ez2;y;{G6k(je?v<-ML> zT)LRz#fInI40R`Ty6ITY*3lLLR`ue=^y1wM!DqGHjl(#H;h_UY%CF(9Eq>kivtI1! zK0G?fTOd1C0NGm`fj7|1T6HOXlU@Hs-`mH>+5=w>iPLsp)#}3nN+uf43}JB)-`xO z=e{uOFA^;Ol-lqpvTF`HY1jzDMG-wY5G#nyN78ABYrXg1*v0!4?tq%mIqwdh-Ne?3 zAdw`+UjY&$JLYa%5-7fqcbNAJT3HCX0SmD z1s?5BgKp$xd4hQJO1VyB_s9+`B`b0$+;fm>W3LdoR7;J{Jo3tUxQ}Ynz-}0=w(|7? zMtG?fMawUVpMk(JG6H~mPUgVS;U9?g5*`o}A~46^5D!8N=A;F9MX#~5ROQQC8yId( zr#J4whhdMxc2HM2DMO+d$yGl{{RRbq@s=jUpDxH7YO2FMot_4R0is0#Q&Vq3DGr<4 zZ>L z?Ic{=np5gvU7+Jh?83=F8E6Uark4Q9m9qdRafW?9o|RZj1q`&sL-^E!H@j!4WZ0>- zD68&gkztNIanXm=O#&IX3ca)r8_70EhvH)AUzUOJG_UG6uenAH^VVBaQyXVU&t&dmFcB>{NV1?aDN~Vx2pE(MJ}3jjB1V&+ zxegagWXu>U=?4))ryg`uY>+<$HXclC5IQ?L%?AV2CLkIZHK5ZoT!=#4xPs)95gAu2 z)F5SThW7)yd00!)OeaiZP8rc;iC~ZsA;J<>7c=;_pP+}al`M>?pddqNb%@Z(PtK?& z%%!z-2$J8IOMx(Xs(r0pnS_z_ToD^VqmDiuZeJw=Gq(3?ZrQ6~?xIZlB^ zr7TQ1>It?EvZ**BLq442(E3j*MY*Zw*cVl7f|&)A=8v&-x~dRMx0=R4|%Q+HRhtaNFqb#$X|d^KMTRBhA}hVfwMpgcrEV zW2{O<@q2y)>AbO0a4RTBVBLmTd1Id_IhT<(HWG?Oabhr>t?I{q(ni@$n@|~Q4lJO3 zhHg++6{=>63ao2Ui=cyZ8mXP#`Hk!%n_Zon*9T$~QYfx$veKx4RT|GW$kV8{rC1m} zb7SGgtgOCgAI#sFZ2-%YAoN`9`&8eO{sKKZFvT#BR*S_Vr9E21 zL@btI$9}=gG z;$_-sMWIs;YzI8K%#6+0ym0!+k;UU!h8Geo={vlbEBQNc+P?XR`o`Akv+dZ;jm4z8 zql71}^4TV=+G}z8?De58A$W5b7>jkIhN;nbhJVux)k8hsUT_yq^}Tw+9R)Mk#96B5!-V84$2fz~hU+jm!A zzO%Z#sFxPY@#UzkcrZkwgxq&#YnBkp^8yB6Ua+j6IAPoOdws1rN(u_o*y-@`p2vi~ zNX|h%azj&rDkD2R zhPgAdhO02xJ{0f+ObG_WpN@>*31b*x7{CGFR>7=zmnj*8Nrhy$=Y#O);kt?>HHIrF z(mmAI5^)A~jF({j3urX9dJ3Oh0~~|9mfdkUKcWi?u>mnTRJ+a$Y5{y#5k$F!SoN+l zH#F6#kzr*YeP)~n5)ju1?}k`V%z52{ZX^jE9&=Dc6?lWbxzFkR$&FDoPrMjQPqZ%@< zz>6FYNhga?8W|^&`EEq(QKM=)T|lkHcyE(#OIj>7K)$1>y@wph!^&EUgpa5E8yxW8EOrU3-imvSd zY9ApJ5qY3G(Px+`TN8CT~F(ixfv-uEoz>MLJuRX^EP`Gdb(H6>ADAS>ryp{O@ zvkBG^P2oUF3qge1V^I$PEl5oUAZJJiU!b7|vtSbX6gQNncn*jHQ5(#jf{wBArN0zP zieZ$Kn+sa@Ma7(uv~D@LQ&0?se@pp(&|wrx$5N_t8oR}f{VT!*^MWzI*%AYAroHC z>0=Ds-p7CwdW|Fvy#*gA+kP5ETY*4bXZ5EnkOFrnxPTC9#DfF4;7zK9k%OIA9?2FK z@LaPZ$r9>8r^7s+hlM?6nQ;cCuYzn7ZUFXj2UeW($-+Zb?Eoo}FQG&(xlxd@=xGX6 z3f~!!W^T_^Z4XhU3S4t{Pn$(!i7&sW%}UFSnzGd~jHJ%30^f6W9?B+mfc6mu-H#26 z0`C@``RzLAH6VUPUC!k~H6TmLds_ET3D>>Hwb-Ygq;e3+0~gv#v0cZLuI%kK+*IycAY?!#vl#cJ07ih5to zVuLi#jrIk!UqSotf5UffXg@>yN3@@!{Rr&?wC|vO9qk>o0h))l3u8?6*xuSx z3|Zl5?yLZJajlPY1RfpeN$uH=xh-M*r_g)X6O?xENT$H93@UciZ=>9{!W6z8YKdEd}@6SZ`V zv$R>dEKMt*&Cs(_oR^EUeSVws^TkhL6L7{`E_h-TpCuQR{e}>qpZC~!TkWH|CeD#x zC5dP5A*w;3JW{Y{2FAn=K9ZL%948!enZFN-k3N+_y;V|r-2W$1$h2mnY=ZbHUh zANn*XtTw+ygEXUXqo!8NuiUEsGR&35fCYUHtl%#7KV` zv*E)nzPUgg#`4|X!B%ts1ffn*F~gX>v1P(*tnyWkQgMMv11Y;Er`6TW}hdFyDW!eKT%S+&!w4AVTYLb*PKn1^vBEbld~s9i zIN?5$rtRJP<1|%cWNxuf@ab3L-yWZot1&_?5C$>6+CiqNyey;po)$UYU9L#-650qYmvH~`JEC?Fn3D*c}dgAz$PYx zY%g(h-R_cnim1)1Q1fk~i_be{QoCNoHlY^OzGqz9c+9}Q_^{M;;_pOx^^15h!QY}O z{9NVTQSK*1F8EmH((})}h;N_({5$VHo%rkvqoa8D*%ugIJ;rZSTKL;kN4VNm2WlVp zyZF0fqa4=&ryl;%oCo_1kDGs*S%&-Ni3GCh)77SoPHazvzk75Y#xhlhOsgK_|ute|=oX znBi2uKY0Vc2AU}6*+y@wT$z6WIs!n-CvD)$-1qS;6)25wk$q4VVwMb7p3=B8^wL73 zj)PyKRJb1lCc)SW=aOoG_E!XU5x=IG5I%`3!K@B2R~(Qs&SmIO>H^p&)E=I81(KW( zz%wP+#n0y$dtZL0)%QT<5@ub*FOBAlt5@)>jj>v70$+slYrvM`{6uiK@ze*-K5(v! zoDYh5C{xmD*NJyV;-mC7F#ZCKn)5}_eTeZfB$h+gS&d74uK=j$QE*e}8pTclHbmB= tc*iAPmp9BH=y(izlal&M%kY~N=qIuf^ir47VwJ14`^<|U5a8$T_+S6UhS>lB diff --git a/vendor/tup-remove-fuse-context-check.patch b/vendor/tup-remove-fuse-context-check.patch deleted file mode 100644 index 1a5275a9..00000000 --- a/vendor/tup-remove-fuse-context-check.patch +++ /dev/null @@ -1,31 +0,0 @@ -From aa0d590380db26d1669fb6368328c71cd9f389d1 Mon Sep 17 00:00:00 2001 -From: Christopher Monsanto -Date: Tue, 15 Sep 2020 06:05:50 -0400 -Subject: [PATCH] Remove fuse context check - -This allows using wine in build rules. ---- - src/tup/server/fuse_fs.c | 7 ------- - 1 file changed, 7 deletions(-) - -diff --git a/src/tup/server/fuse_fs.c b/src/tup/server/fuse_fs.c -index b8ff82c0..7867b18b 100644 ---- a/src/tup/server/fuse_fs.c -+++ b/src/tup/server/fuse_fs.c -@@ -290,13 +290,6 @@ static int context_check(void) - return 0; - } - -- if(ourpgid != pgid) { -- if(server_debug_enabled()) { -- fprintf(stderr, "tup fuse warning: Process pid=%i, uid=%i, gid=%i is trying to access the tup server's fuse filesystem.\n", -- fuse_get_context()->pid, fuse_get_context()->uid, fuse_get_context()->gid); -- } -- return -1; -- } - return 0; - } - --- -2.25.1 -